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) 5727b0a0e3cSJohannes Berg __field(unsigned int, link_id) 57314e8a3c4SBeni Lev ), 57414e8a3c4SBeni Lev TP_fast_assign( 57514e8a3c4SBeni Lev WIPHY_ASSIGN; 57614e8a3c4SBeni Lev NETDEV_ASSIGN; 577683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(&settings->chandef); 57814e8a3c4SBeni Lev __entry->beacon_interval = settings->beacon_interval; 57914e8a3c4SBeni Lev __entry->dtim_period = settings->dtim_period; 58014e8a3c4SBeni Lev __entry->hidden_ssid = settings->hidden_ssid; 58114e8a3c4SBeni Lev __entry->wpa_ver = settings->crypto.wpa_versions; 58214e8a3c4SBeni Lev __entry->privacy = settings->privacy; 58314e8a3c4SBeni Lev __entry->auth_type = settings->auth_type; 58414e8a3c4SBeni Lev __entry->inactivity_timeout = settings->inactivity_timeout; 58514e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 58614e8a3c4SBeni Lev memcpy(__entry->ssid, settings->ssid, settings->ssid_len); 5877b0a0e3cSJohannes Berg __entry->link_id = settings->beacon.link_id; 58814e8a3c4SBeni Lev ), 589ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " 590683b6d3bSJohannes Berg CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " 59114e8a3c4SBeni Lev "hidden ssid: %d, wpa versions: %u, privacy: %s, " 5927b0a0e3cSJohannes Berg "auth type: %d, inactivity timeout: %d, link_id: %d", 593683b6d3bSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, 59414e8a3c4SBeni Lev __entry->beacon_interval, __entry->dtim_period, 59514e8a3c4SBeni Lev __entry->hidden_ssid, __entry->wpa_ver, 59614e8a3c4SBeni Lev BOOL_TO_STR(__entry->privacy), __entry->auth_type, 5977b0a0e3cSJohannes Berg __entry->inactivity_timeout, __entry->link_id) 59814e8a3c4SBeni Lev ); 59914e8a3c4SBeni Lev 60014e8a3c4SBeni Lev TRACE_EVENT(rdev_change_beacon, 60114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 60214e8a3c4SBeni Lev struct cfg80211_beacon_data *info), 60314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, info), 60414e8a3c4SBeni Lev TP_STRUCT__entry( 60514e8a3c4SBeni Lev WIPHY_ENTRY 60614e8a3c4SBeni Lev NETDEV_ENTRY 6077b0a0e3cSJohannes Berg __field(int, link_id) 60814e8a3c4SBeni Lev __dynamic_array(u8, head, info ? info->head_len : 0) 60914e8a3c4SBeni Lev __dynamic_array(u8, tail, info ? info->tail_len : 0) 61014e8a3c4SBeni Lev __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) 61114e8a3c4SBeni Lev __dynamic_array(u8, proberesp_ies, 61214e8a3c4SBeni Lev info ? info->proberesp_ies_len : 0) 61314e8a3c4SBeni Lev __dynamic_array(u8, assocresp_ies, 61414e8a3c4SBeni Lev info ? info->assocresp_ies_len : 0) 61514e8a3c4SBeni Lev __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) 61614e8a3c4SBeni Lev ), 61714e8a3c4SBeni Lev TP_fast_assign( 61814e8a3c4SBeni Lev WIPHY_ASSIGN; 61914e8a3c4SBeni Lev NETDEV_ASSIGN; 62014e8a3c4SBeni Lev if (info) { 6217b0a0e3cSJohannes Berg __entry->link_id = info->link_id; 62214e8a3c4SBeni Lev if (info->head) 62314e8a3c4SBeni Lev memcpy(__get_dynamic_array(head), info->head, 62414e8a3c4SBeni Lev info->head_len); 62514e8a3c4SBeni Lev if (info->tail) 62614e8a3c4SBeni Lev memcpy(__get_dynamic_array(tail), info->tail, 62714e8a3c4SBeni Lev info->tail_len); 62814e8a3c4SBeni Lev if (info->beacon_ies) 62914e8a3c4SBeni Lev memcpy(__get_dynamic_array(beacon_ies), 63014e8a3c4SBeni Lev info->beacon_ies, info->beacon_ies_len); 63114e8a3c4SBeni Lev if (info->proberesp_ies) 63214e8a3c4SBeni Lev memcpy(__get_dynamic_array(proberesp_ies), 63314e8a3c4SBeni Lev info->proberesp_ies, 63414e8a3c4SBeni Lev info->proberesp_ies_len); 63514e8a3c4SBeni Lev if (info->assocresp_ies) 63614e8a3c4SBeni Lev memcpy(__get_dynamic_array(assocresp_ies), 63714e8a3c4SBeni Lev info->assocresp_ies, 63814e8a3c4SBeni Lev info->assocresp_ies_len); 63914e8a3c4SBeni Lev if (info->probe_resp) 64014e8a3c4SBeni Lev memcpy(__get_dynamic_array(probe_resp), 64114e8a3c4SBeni Lev info->probe_resp, info->probe_resp_len); 6427b0a0e3cSJohannes Berg } else { 6437b0a0e3cSJohannes Berg __entry->link_id = -1; 64414e8a3c4SBeni Lev } 64514e8a3c4SBeni Lev ), 6467b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d", 6477b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 6487b0a0e3cSJohannes Berg ); 6497b0a0e3cSJohannes Berg 6507b0a0e3cSJohannes Berg TRACE_EVENT(rdev_stop_ap, 6517b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 6527b0a0e3cSJohannes Berg unsigned int link_id), 6537b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id), 6547b0a0e3cSJohannes Berg TP_STRUCT__entry( 6557b0a0e3cSJohannes Berg WIPHY_ENTRY 6567b0a0e3cSJohannes Berg NETDEV_ENTRY 6577b0a0e3cSJohannes Berg __field(unsigned int, link_id) 6587b0a0e3cSJohannes Berg ), 6597b0a0e3cSJohannes Berg TP_fast_assign( 6607b0a0e3cSJohannes Berg WIPHY_ASSIGN; 6617b0a0e3cSJohannes Berg NETDEV_ASSIGN; 6627b0a0e3cSJohannes Berg __entry->link_id = link_id; 6637b0a0e3cSJohannes Berg ), 6647b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d", 6657b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 66614e8a3c4SBeni Lev ); 66714e8a3c4SBeni Lev 66814e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_evt, 66914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 67014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev), 67114e8a3c4SBeni Lev TP_STRUCT__entry( 67214e8a3c4SBeni Lev WIPHY_ENTRY 67314e8a3c4SBeni Lev NETDEV_ENTRY 67414e8a3c4SBeni Lev ), 67514e8a3c4SBeni Lev TP_fast_assign( 67614e8a3c4SBeni Lev WIPHY_ASSIGN; 67714e8a3c4SBeni Lev NETDEV_ASSIGN; 67814e8a3c4SBeni Lev ), 679ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 68014e8a3c4SBeni Lev ); 68114e8a3c4SBeni Lev 68214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, 68314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 68414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 68514e8a3c4SBeni Lev ); 68614e8a3c4SBeni Lev 68714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config, 68814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 68914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 69014e8a3c4SBeni Lev ); 69114e8a3c4SBeni Lev 69214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh, 69314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 69414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 69514e8a3c4SBeni Lev ); 69614e8a3c4SBeni Lev 69714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss, 69814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 69914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 70014e8a3c4SBeni Lev ); 70114e8a3c4SBeni Lev 7026e0bd6c3SRostislav Lisovy DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb, 7036e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 7046e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev) 7056e0bd6c3SRostislav Lisovy ); 7066e0bd6c3SRostislav Lisovy 70714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa, 70814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 70914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 71014e8a3c4SBeni Lev ); 71114e8a3c4SBeni Lev 71226ec17a1SOrr Mazor DEFINE_EVENT(wiphy_netdev_evt, rdev_end_cac, 71326ec17a1SOrr Mazor TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 71426ec17a1SOrr Mazor TP_ARGS(wiphy, netdev) 71526ec17a1SOrr Mazor ); 71626ec17a1SOrr Mazor 71714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(station_add_change, 71814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 71914e8a3c4SBeni Lev struct station_parameters *params), 72014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params), 72114e8a3c4SBeni Lev TP_STRUCT__entry( 72214e8a3c4SBeni Lev WIPHY_ENTRY 72314e8a3c4SBeni Lev NETDEV_ENTRY 72414e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 72514e8a3c4SBeni Lev __field(u32, sta_flags_mask) 72614e8a3c4SBeni Lev __field(u32, sta_flags_set) 72714e8a3c4SBeni Lev __field(u32, sta_modify_mask) 72814e8a3c4SBeni Lev __field(int, listen_interval) 7296e045905SJohannes Berg __field(u16, capability) 73014e8a3c4SBeni Lev __field(u16, aid) 73114e8a3c4SBeni Lev __field(u8, plink_action) 73214e8a3c4SBeni Lev __field(u8, plink_state) 73314e8a3c4SBeni Lev __field(u8, uapsd_queues) 7346e045905SJohannes Berg __field(u8, max_sp) 7356e045905SJohannes Berg __field(u8, opmode_notif) 7366e045905SJohannes Berg __field(bool, opmode_notif_used) 73714e8a3c4SBeni Lev __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 7386e045905SJohannes Berg __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 7395d8325ecSJohannes Berg __array(char, vlan, IFNAMSIZ) 7406e045905SJohannes Berg __dynamic_array(u8, supported_rates, 7416e045905SJohannes Berg params->supported_rates_len) 7426e045905SJohannes Berg __dynamic_array(u8, ext_capab, params->ext_capab_len) 7436e045905SJohannes Berg __dynamic_array(u8, supported_channels, 7446e045905SJohannes Berg params->supported_channels_len) 7456e045905SJohannes Berg __dynamic_array(u8, supported_oper_classes, 7466e045905SJohannes Berg params->supported_oper_classes_len) 74714e8a3c4SBeni Lev ), 74814e8a3c4SBeni Lev TP_fast_assign( 74914e8a3c4SBeni Lev WIPHY_ASSIGN; 75014e8a3c4SBeni Lev NETDEV_ASSIGN; 75114e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 75214e8a3c4SBeni Lev __entry->sta_flags_mask = params->sta_flags_mask; 75314e8a3c4SBeni Lev __entry->sta_flags_set = params->sta_flags_set; 75414e8a3c4SBeni Lev __entry->sta_modify_mask = params->sta_modify_mask; 75514e8a3c4SBeni Lev __entry->listen_interval = params->listen_interval; 75614e8a3c4SBeni Lev __entry->aid = params->aid; 75714e8a3c4SBeni Lev __entry->plink_action = params->plink_action; 75814e8a3c4SBeni Lev __entry->plink_state = params->plink_state; 75914e8a3c4SBeni Lev __entry->uapsd_queues = params->uapsd_queues; 76014e8a3c4SBeni Lev memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 76114e8a3c4SBeni Lev if (params->ht_capa) 76214e8a3c4SBeni Lev memcpy(__entry->ht_capa, params->ht_capa, 76314e8a3c4SBeni Lev sizeof(struct ieee80211_ht_cap)); 7646e045905SJohannes Berg memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 7656e045905SJohannes Berg if (params->vht_capa) 7666e045905SJohannes Berg memcpy(__entry->vht_capa, params->vht_capa, 7676e045905SJohannes Berg sizeof(struct ieee80211_vht_cap)); 7685d8325ecSJohannes Berg memset(__entry->vlan, 0, sizeof(__entry->vlan)); 7695d8325ecSJohannes Berg if (params->vlan) 7705d8325ecSJohannes Berg memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ); 7716e045905SJohannes Berg if (params->supported_rates && params->supported_rates_len) 7726e045905SJohannes Berg memcpy(__get_dynamic_array(supported_rates), 7736e045905SJohannes Berg params->supported_rates, 7746e045905SJohannes Berg params->supported_rates_len); 7756e045905SJohannes Berg if (params->ext_capab && params->ext_capab_len) 7766e045905SJohannes Berg memcpy(__get_dynamic_array(ext_capab), 7776e045905SJohannes Berg params->ext_capab, 7786e045905SJohannes Berg params->ext_capab_len); 7796e045905SJohannes Berg if (params->supported_channels && 7806e045905SJohannes Berg params->supported_channels_len) 7816e045905SJohannes Berg memcpy(__get_dynamic_array(supported_channels), 7826e045905SJohannes Berg params->supported_channels, 7836e045905SJohannes Berg params->supported_channels_len); 7846e045905SJohannes Berg if (params->supported_oper_classes && 7856e045905SJohannes Berg params->supported_oper_classes_len) 7866e045905SJohannes Berg memcpy(__get_dynamic_array(supported_oper_classes), 7876e045905SJohannes Berg params->supported_oper_classes, 7886e045905SJohannes Berg params->supported_oper_classes_len); 7896e045905SJohannes Berg __entry->max_sp = params->max_sp; 7906e045905SJohannes Berg __entry->capability = params->capability; 7916e045905SJohannes Berg __entry->opmode_notif = params->opmode_notif; 7926e045905SJohannes Berg __entry->opmode_notif_used = params->opmode_notif_used; 79314e8a3c4SBeni Lev ), 794ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 79514e8a3c4SBeni Lev ", station flags mask: %u, station flags set: %u, " 79614e8a3c4SBeni Lev "station modify mask: %u, listen interval: %d, aid: %u, " 7975d8325ecSJohannes Berg "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s", 79814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 79914e8a3c4SBeni Lev __entry->sta_flags_mask, __entry->sta_flags_set, 80014e8a3c4SBeni Lev __entry->sta_modify_mask, __entry->listen_interval, 80114e8a3c4SBeni Lev __entry->aid, __entry->plink_action, __entry->plink_state, 8025d8325ecSJohannes Berg __entry->uapsd_queues, __entry->vlan) 80314e8a3c4SBeni Lev ); 80414e8a3c4SBeni Lev 80514e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_add_station, 80614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 80714e8a3c4SBeni Lev struct station_parameters *params), 80814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 80914e8a3c4SBeni Lev ); 81014e8a3c4SBeni Lev 81114e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_change_station, 81214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 81314e8a3c4SBeni Lev struct station_parameters *params), 81414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 81514e8a3c4SBeni Lev ); 81614e8a3c4SBeni Lev 81714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt, 81814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 81914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac), 82014e8a3c4SBeni Lev TP_STRUCT__entry( 82114e8a3c4SBeni Lev WIPHY_ENTRY 82214e8a3c4SBeni Lev NETDEV_ENTRY 82314e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 82414e8a3c4SBeni Lev ), 82514e8a3c4SBeni Lev TP_fast_assign( 82614e8a3c4SBeni Lev WIPHY_ASSIGN; 82714e8a3c4SBeni Lev NETDEV_ASSIGN; 82814e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 82914e8a3c4SBeni Lev ), 830ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 83114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac)) 83214e8a3c4SBeni Lev ); 83314e8a3c4SBeni Lev 83489c771e5SJouni Malinen DECLARE_EVENT_CLASS(station_del, 83589c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 83689c771e5SJouni Malinen struct station_del_parameters *params), 83789c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params), 83889c771e5SJouni Malinen TP_STRUCT__entry( 83989c771e5SJouni Malinen WIPHY_ENTRY 84089c771e5SJouni Malinen NETDEV_ENTRY 84189c771e5SJouni Malinen MAC_ENTRY(sta_mac) 84298856866SJouni Malinen __field(u8, subtype) 84398856866SJouni Malinen __field(u16, reason_code) 84489c771e5SJouni Malinen ), 84589c771e5SJouni Malinen TP_fast_assign( 84689c771e5SJouni Malinen WIPHY_ASSIGN; 84789c771e5SJouni Malinen NETDEV_ASSIGN; 84889c771e5SJouni Malinen MAC_ASSIGN(sta_mac, params->mac); 84998856866SJouni Malinen __entry->subtype = params->subtype; 85098856866SJouni Malinen __entry->reason_code = params->reason_code; 85189c771e5SJouni Malinen ), 85298856866SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 85398856866SJouni Malinen ", subtype: %u, reason_code: %u", 85498856866SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 85598856866SJouni Malinen __entry->subtype, __entry->reason_code) 85689c771e5SJouni Malinen ); 85789c771e5SJouni Malinen 85889c771e5SJouni Malinen DEFINE_EVENT(station_del, rdev_del_station, 85989c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 86089c771e5SJouni Malinen struct station_del_parameters *params), 86189c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params) 86214e8a3c4SBeni Lev ); 86314e8a3c4SBeni Lev 86414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station, 86514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 86614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 86714e8a3c4SBeni Lev ); 86814e8a3c4SBeni Lev 86914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath, 87014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 87114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 87214e8a3c4SBeni Lev ); 87314e8a3c4SBeni Lev 87414e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_station, 875aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 87614e8a3c4SBeni Lev u8 *mac), 877aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mac), 87814e8a3c4SBeni Lev TP_STRUCT__entry( 87914e8a3c4SBeni Lev WIPHY_ENTRY 88014e8a3c4SBeni Lev NETDEV_ENTRY 88114e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 88214e8a3c4SBeni Lev __field(int, idx) 88314e8a3c4SBeni Lev ), 88414e8a3c4SBeni Lev TP_fast_assign( 88514e8a3c4SBeni Lev WIPHY_ASSIGN; 88614e8a3c4SBeni Lev NETDEV_ASSIGN; 88714e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 888aaaa10e0SJohannes Berg __entry->idx = _idx; 88914e8a3c4SBeni Lev ), 890ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d", 89114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 89214e8a3c4SBeni Lev __entry->idx) 89314e8a3c4SBeni Lev ); 89414e8a3c4SBeni Lev 89514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_station_info, 89614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo), 89714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, sinfo), 89814e8a3c4SBeni Lev TP_STRUCT__entry( 89914e8a3c4SBeni Lev WIPHY_ENTRY 90014e8a3c4SBeni Lev __field(int, ret) 90114e8a3c4SBeni Lev SINFO_ENTRY 90214e8a3c4SBeni Lev ), 90314e8a3c4SBeni Lev TP_fast_assign( 90414e8a3c4SBeni Lev WIPHY_ASSIGN; 90514e8a3c4SBeni Lev __entry->ret = ret; 90614e8a3c4SBeni Lev SINFO_ASSIGN; 90714e8a3c4SBeni Lev ), 90814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d" , 90914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 91014e8a3c4SBeni Lev ); 91114e8a3c4SBeni Lev 91214e8a3c4SBeni Lev DECLARE_EVENT_CLASS(mpath_evt, 91314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 91414e8a3c4SBeni Lev u8 *next_hop), 91514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop), 91614e8a3c4SBeni Lev TP_STRUCT__entry( 91714e8a3c4SBeni Lev WIPHY_ENTRY 91814e8a3c4SBeni Lev NETDEV_ENTRY 91914e8a3c4SBeni Lev MAC_ENTRY(dst) 92014e8a3c4SBeni Lev MAC_ENTRY(next_hop) 92114e8a3c4SBeni Lev ), 92214e8a3c4SBeni Lev TP_fast_assign( 92314e8a3c4SBeni Lev WIPHY_ASSIGN; 92414e8a3c4SBeni Lev NETDEV_ASSIGN; 92514e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 92614e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 92714e8a3c4SBeni Lev ), 928ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT, 92914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst), 93014e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 93114e8a3c4SBeni Lev ); 93214e8a3c4SBeni Lev 93314e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_add_mpath, 93414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 93514e8a3c4SBeni Lev u8 *next_hop), 93614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 93714e8a3c4SBeni Lev ); 93814e8a3c4SBeni Lev 93914e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_change_mpath, 94014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 94114e8a3c4SBeni Lev u8 *next_hop), 94214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 94314e8a3c4SBeni Lev ); 94414e8a3c4SBeni Lev 94514e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_get_mpath, 94614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 94714e8a3c4SBeni Lev u8 *next_hop), 94814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 94914e8a3c4SBeni Lev ); 95014e8a3c4SBeni Lev 95114e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_mpath, 952aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 95314e8a3c4SBeni Lev u8 *dst, u8 *next_hop), 954aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, dst, next_hop), 95514e8a3c4SBeni Lev TP_STRUCT__entry( 95614e8a3c4SBeni Lev WIPHY_ENTRY 95714e8a3c4SBeni Lev NETDEV_ENTRY 95814e8a3c4SBeni Lev MAC_ENTRY(dst) 95914e8a3c4SBeni Lev MAC_ENTRY(next_hop) 96014e8a3c4SBeni Lev __field(int, idx) 96114e8a3c4SBeni Lev ), 96214e8a3c4SBeni Lev TP_fast_assign( 96314e8a3c4SBeni Lev WIPHY_ASSIGN; 96414e8a3c4SBeni Lev NETDEV_ASSIGN; 96514e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 96614e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 967aaaa10e0SJohannes Berg __entry->idx = _idx; 96814e8a3c4SBeni Lev ), 969ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 97014e8a3c4SBeni Lev MAC_PR_FMT ", next hop: " MAC_PR_FMT, 97114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 97214e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 97314e8a3c4SBeni Lev ); 97414e8a3c4SBeni Lev 97566be7d2bSHenning Rogge TRACE_EVENT(rdev_get_mpp, 97666be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 97766be7d2bSHenning Rogge u8 *dst, u8 *mpp), 97866be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, dst, mpp), 97966be7d2bSHenning Rogge TP_STRUCT__entry( 98066be7d2bSHenning Rogge WIPHY_ENTRY 98166be7d2bSHenning Rogge NETDEV_ENTRY 98266be7d2bSHenning Rogge MAC_ENTRY(dst) 98366be7d2bSHenning Rogge MAC_ENTRY(mpp) 98466be7d2bSHenning Rogge ), 98566be7d2bSHenning Rogge TP_fast_assign( 98666be7d2bSHenning Rogge WIPHY_ASSIGN; 98766be7d2bSHenning Rogge NETDEV_ASSIGN; 98866be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 98966be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 99066be7d2bSHenning Rogge ), 99166be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT 99266be7d2bSHenning Rogge ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG, 99366be7d2bSHenning Rogge MAC_PR_ARG(dst), MAC_PR_ARG(mpp)) 99466be7d2bSHenning Rogge ); 99566be7d2bSHenning Rogge 99666be7d2bSHenning Rogge TRACE_EVENT(rdev_dump_mpp, 997aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 99866be7d2bSHenning Rogge u8 *dst, u8 *mpp), 999aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mpp, dst), 100066be7d2bSHenning Rogge TP_STRUCT__entry( 100166be7d2bSHenning Rogge WIPHY_ENTRY 100266be7d2bSHenning Rogge NETDEV_ENTRY 100366be7d2bSHenning Rogge MAC_ENTRY(dst) 100466be7d2bSHenning Rogge MAC_ENTRY(mpp) 100566be7d2bSHenning Rogge __field(int, idx) 100666be7d2bSHenning Rogge ), 100766be7d2bSHenning Rogge TP_fast_assign( 100866be7d2bSHenning Rogge WIPHY_ASSIGN; 100966be7d2bSHenning Rogge NETDEV_ASSIGN; 101066be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 101166be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 1012aaaa10e0SJohannes Berg __entry->idx = _idx; 101366be7d2bSHenning Rogge ), 101466be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 101566be7d2bSHenning Rogge MAC_PR_FMT ", mpp: " MAC_PR_FMT, 101666be7d2bSHenning Rogge WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 101766be7d2bSHenning Rogge MAC_PR_ARG(mpp)) 101866be7d2bSHenning Rogge ); 101966be7d2bSHenning Rogge 102014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mpath_info, 102114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo), 102214e8a3c4SBeni Lev TP_ARGS(wiphy, ret, pinfo), 102314e8a3c4SBeni Lev TP_STRUCT__entry( 102414e8a3c4SBeni Lev WIPHY_ENTRY 102514e8a3c4SBeni Lev __field(int, ret) 102614e8a3c4SBeni Lev __field(int, generation) 102714e8a3c4SBeni Lev __field(u32, filled) 102814e8a3c4SBeni Lev __field(u32, frame_qlen) 102914e8a3c4SBeni Lev __field(u32, sn) 103014e8a3c4SBeni Lev __field(u32, metric) 103114e8a3c4SBeni Lev __field(u32, exptime) 103214e8a3c4SBeni Lev __field(u32, discovery_timeout) 103314e8a3c4SBeni Lev __field(u8, discovery_retries) 103414e8a3c4SBeni Lev __field(u8, flags) 103514e8a3c4SBeni Lev ), 103614e8a3c4SBeni Lev TP_fast_assign( 103714e8a3c4SBeni Lev WIPHY_ASSIGN; 103814e8a3c4SBeni Lev __entry->ret = ret; 103914e8a3c4SBeni Lev __entry->generation = pinfo->generation; 104014e8a3c4SBeni Lev __entry->filled = pinfo->filled; 104114e8a3c4SBeni Lev __entry->frame_qlen = pinfo->frame_qlen; 104214e8a3c4SBeni Lev __entry->sn = pinfo->sn; 104314e8a3c4SBeni Lev __entry->metric = pinfo->metric; 104414e8a3c4SBeni Lev __entry->exptime = pinfo->exptime; 104514e8a3c4SBeni Lev __entry->discovery_timeout = pinfo->discovery_timeout; 104614e8a3c4SBeni Lev __entry->discovery_retries = pinfo->discovery_retries; 104714e8a3c4SBeni Lev __entry->flags = pinfo->flags; 104814e8a3c4SBeni Lev ), 104914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, " 105014e8a3c4SBeni Lev "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u," 105114e8a3c4SBeni Lev " discovery timeout: %u, discovery retries: %u, flags: %u", 105214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->generation, 105314e8a3c4SBeni Lev __entry->filled, __entry->frame_qlen, __entry->sn, 105414e8a3c4SBeni Lev __entry->metric, __entry->exptime, __entry->discovery_timeout, 105514e8a3c4SBeni Lev __entry->discovery_retries, __entry->flags) 105614e8a3c4SBeni Lev ); 105714e8a3c4SBeni Lev 105814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mesh_config, 105914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf), 106014e8a3c4SBeni Lev TP_ARGS(wiphy, ret, conf), 106114e8a3c4SBeni Lev TP_STRUCT__entry( 106214e8a3c4SBeni Lev WIPHY_ENTRY 106314e8a3c4SBeni Lev MESH_CFG_ENTRY 106414e8a3c4SBeni Lev __field(int, ret) 106514e8a3c4SBeni Lev ), 106614e8a3c4SBeni Lev TP_fast_assign( 106714e8a3c4SBeni Lev WIPHY_ASSIGN; 106814e8a3c4SBeni Lev MESH_CFG_ASSIGN; 106914e8a3c4SBeni Lev __entry->ret = ret; 107014e8a3c4SBeni Lev ), 107114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", 107214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 107314e8a3c4SBeni Lev ); 107414e8a3c4SBeni Lev 107514e8a3c4SBeni Lev TRACE_EVENT(rdev_update_mesh_config, 107614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask, 107714e8a3c4SBeni Lev const struct mesh_config *conf), 107814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mask, conf), 107914e8a3c4SBeni Lev TP_STRUCT__entry( 108014e8a3c4SBeni Lev WIPHY_ENTRY 108114e8a3c4SBeni Lev NETDEV_ENTRY 108214e8a3c4SBeni Lev MESH_CFG_ENTRY 108314e8a3c4SBeni Lev __field(u32, mask) 108414e8a3c4SBeni Lev ), 108514e8a3c4SBeni Lev TP_fast_assign( 108614e8a3c4SBeni Lev WIPHY_ASSIGN; 108714e8a3c4SBeni Lev NETDEV_ASSIGN; 108814e8a3c4SBeni Lev MESH_CFG_ASSIGN; 108914e8a3c4SBeni Lev __entry->mask = mask; 109014e8a3c4SBeni Lev ), 1091ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u", 109214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask) 109314e8a3c4SBeni Lev ); 109414e8a3c4SBeni Lev 109514e8a3c4SBeni Lev TRACE_EVENT(rdev_join_mesh, 109614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 109714e8a3c4SBeni Lev const struct mesh_config *conf, 109814e8a3c4SBeni Lev const struct mesh_setup *setup), 109914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, conf, setup), 110014e8a3c4SBeni Lev TP_STRUCT__entry( 110114e8a3c4SBeni Lev WIPHY_ENTRY 110214e8a3c4SBeni Lev NETDEV_ENTRY 110314e8a3c4SBeni Lev MESH_CFG_ENTRY 110414e8a3c4SBeni Lev ), 110514e8a3c4SBeni Lev TP_fast_assign( 110614e8a3c4SBeni Lev WIPHY_ASSIGN; 110714e8a3c4SBeni Lev NETDEV_ASSIGN; 110814e8a3c4SBeni Lev MESH_CFG_ASSIGN; 110914e8a3c4SBeni Lev ), 1110ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 111114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 111214e8a3c4SBeni Lev ); 111314e8a3c4SBeni Lev 111414e8a3c4SBeni Lev TRACE_EVENT(rdev_change_bss, 111514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 111614e8a3c4SBeni Lev struct bss_parameters *params), 111714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 111814e8a3c4SBeni Lev TP_STRUCT__entry( 111914e8a3c4SBeni Lev WIPHY_ENTRY 112014e8a3c4SBeni Lev NETDEV_ENTRY 112114e8a3c4SBeni Lev __field(int, use_cts_prot) 112214e8a3c4SBeni Lev __field(int, use_short_preamble) 112314e8a3c4SBeni Lev __field(int, use_short_slot_time) 112414e8a3c4SBeni Lev __field(int, ap_isolate) 112514e8a3c4SBeni Lev __field(int, ht_opmode) 112614e8a3c4SBeni Lev ), 112714e8a3c4SBeni Lev TP_fast_assign( 112814e8a3c4SBeni Lev WIPHY_ASSIGN; 112914e8a3c4SBeni Lev NETDEV_ASSIGN; 113014e8a3c4SBeni Lev __entry->use_cts_prot = params->use_cts_prot; 113114e8a3c4SBeni Lev __entry->use_short_preamble = params->use_short_preamble; 113214e8a3c4SBeni Lev __entry->use_short_slot_time = params->use_short_slot_time; 113314e8a3c4SBeni Lev __entry->ap_isolate = params->ap_isolate; 113414e8a3c4SBeni Lev __entry->ht_opmode = params->ht_opmode; 113514e8a3c4SBeni Lev ), 1136ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, " 113714e8a3c4SBeni Lev "use short preamble: %d, use short slot time: %d, " 113814e8a3c4SBeni Lev "ap isolate: %d, ht opmode: %d", 113914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot, 114014e8a3c4SBeni Lev __entry->use_short_preamble, __entry->use_short_slot_time, 114114e8a3c4SBeni Lev __entry->ap_isolate, __entry->ht_opmode) 114214e8a3c4SBeni Lev ); 114314e8a3c4SBeni Lev 114414e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 114514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 114614e8a3c4SBeni Lev struct ieee80211_txq_params *params), 114714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 114814e8a3c4SBeni Lev TP_STRUCT__entry( 114914e8a3c4SBeni Lev WIPHY_ENTRY 115014e8a3c4SBeni Lev NETDEV_ENTRY 115114e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 115214e8a3c4SBeni Lev __field(u16, txop) 115314e8a3c4SBeni Lev __field(u16, cwmin) 115414e8a3c4SBeni Lev __field(u16, cwmax) 115514e8a3c4SBeni Lev __field(u8, aifs) 115614e8a3c4SBeni Lev ), 115714e8a3c4SBeni Lev TP_fast_assign( 115814e8a3c4SBeni Lev WIPHY_ASSIGN; 115914e8a3c4SBeni Lev NETDEV_ASSIGN; 116014e8a3c4SBeni Lev __entry->ac = params->ac; 116114e8a3c4SBeni Lev __entry->txop = params->txop; 116214e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 116314e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 116414e8a3c4SBeni Lev __entry->aifs = params->aifs; 116514e8a3c4SBeni Lev ), 1166ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 116714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 116814e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 116914e8a3c4SBeni Lev ); 117014e8a3c4SBeni Lev 117114e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 117214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 117314e8a3c4SBeni Lev struct ieee80211_channel *chan), 117414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 117514e8a3c4SBeni Lev TP_STRUCT__entry( 117614e8a3c4SBeni Lev WIPHY_ENTRY 117714e8a3c4SBeni Lev NETDEV_ENTRY 117814e8a3c4SBeni Lev CHAN_ENTRY 117914e8a3c4SBeni Lev ), 118014e8a3c4SBeni Lev TP_fast_assign( 118114e8a3c4SBeni Lev WIPHY_ASSIGN; 118214e8a3c4SBeni Lev NETDEV_ASSIGN; 118314e8a3c4SBeni Lev CHAN_ASSIGN(chan); 118414e8a3c4SBeni Lev ), 1185ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 118614e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 118714e8a3c4SBeni Lev ); 118814e8a3c4SBeni Lev 118914e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1190683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1191683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1192683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 119314e8a3c4SBeni Lev TP_STRUCT__entry( 119414e8a3c4SBeni Lev WIPHY_ENTRY 1195683b6d3bSJohannes Berg CHAN_DEF_ENTRY 119614e8a3c4SBeni Lev ), 119714e8a3c4SBeni Lev TP_fast_assign( 119814e8a3c4SBeni Lev WIPHY_ASSIGN; 1199683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 120014e8a3c4SBeni Lev ), 1201ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1202683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 120314e8a3c4SBeni Lev ); 120414e8a3c4SBeni Lev 120514e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 120614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 120714e8a3c4SBeni Lev struct cfg80211_auth_request *req), 120814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 120914e8a3c4SBeni Lev TP_STRUCT__entry( 121014e8a3c4SBeni Lev WIPHY_ENTRY 121114e8a3c4SBeni Lev NETDEV_ENTRY 121214e8a3c4SBeni Lev MAC_ENTRY(bssid) 121314e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 121414e8a3c4SBeni Lev ), 121514e8a3c4SBeni Lev TP_fast_assign( 121614e8a3c4SBeni Lev WIPHY_ASSIGN; 121714e8a3c4SBeni Lev NETDEV_ASSIGN; 121814e8a3c4SBeni Lev if (req->bss) 121914e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 122014e8a3c4SBeni Lev else 1221d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 122214e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 122314e8a3c4SBeni Lev ), 1224ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT, 122514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 122614e8a3c4SBeni Lev MAC_PR_ARG(bssid)) 122714e8a3c4SBeni Lev ); 122814e8a3c4SBeni Lev 122914e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 123014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 123164a87472SJohannes Berg struct cfg80211_assoc_request *req, 123264a87472SJohannes Berg const struct cfg80211_bss_ies *bss_ies), 123364a87472SJohannes Berg TP_ARGS(wiphy, netdev, req, bss_ies), 123414e8a3c4SBeni Lev TP_STRUCT__entry( 123514e8a3c4SBeni Lev WIPHY_ENTRY 123614e8a3c4SBeni Lev NETDEV_ENTRY 123714e8a3c4SBeni Lev MAC_ENTRY(bssid) 123814e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 123914e8a3c4SBeni Lev __field(bool, use_mfp) 124014e8a3c4SBeni Lev __field(u32, flags) 124164a87472SJohannes Berg __dynamic_array(u8, bss_elements, bss_ies->len) 124264a87472SJohannes Berg __field(bool, bss_elements_bcon) 124364a87472SJohannes Berg __field(u64, bss_elements_tsf) 124464a87472SJohannes Berg __dynamic_array(u8, elements, req->ie_len) 124564a87472SJohannes Berg __array(u8, ht_capa, sizeof(struct ieee80211_ht_cap)) 124664a87472SJohannes Berg __array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap)) 124764a87472SJohannes Berg __array(u8, vht_capa, sizeof(struct ieee80211_vht_cap)) 124864a87472SJohannes Berg __array(u8, vht_capa_mask, sizeof(struct ieee80211_vht_cap)) 124964a87472SJohannes Berg __dynamic_array(u8, fils_kek, req->fils_kek_len) 125064a87472SJohannes Berg __dynamic_array(u8, fils_nonces, 125164a87472SJohannes Berg req->fils_nonces ? 2 * FILS_NONCE_LEN : 0) 125214e8a3c4SBeni Lev ), 125314e8a3c4SBeni Lev TP_fast_assign( 125414e8a3c4SBeni Lev WIPHY_ASSIGN; 125514e8a3c4SBeni Lev NETDEV_ASSIGN; 125614e8a3c4SBeni Lev if (req->bss) 125714e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 125814e8a3c4SBeni Lev else 1259d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 126014e8a3c4SBeni Lev MAC_ASSIGN(prev_bssid, req->prev_bssid); 126114e8a3c4SBeni Lev __entry->use_mfp = req->use_mfp; 126214e8a3c4SBeni Lev __entry->flags = req->flags; 126364a87472SJohannes Berg if (bss_ies->len) 126464a87472SJohannes Berg memcpy(__get_dynamic_array(bss_elements), 126564a87472SJohannes Berg bss_ies->data, bss_ies->len); 126664a87472SJohannes Berg __entry->bss_elements_bcon = bss_ies->from_beacon; 126764a87472SJohannes Berg __entry->bss_elements_tsf = bss_ies->tsf; 126864a87472SJohannes Berg if (req->ie) 126964a87472SJohannes Berg memcpy(__get_dynamic_array(elements), 127064a87472SJohannes Berg req->ie, req->ie_len); 127164a87472SJohannes Berg memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa)); 127264a87472SJohannes Berg memcpy(__entry->ht_capa_mask, &req->ht_capa_mask, 127364a87472SJohannes Berg sizeof(req->ht_capa_mask)); 127464a87472SJohannes Berg memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa)); 127564a87472SJohannes Berg memcpy(__entry->vht_capa_mask, &req->vht_capa_mask, 127664a87472SJohannes Berg sizeof(req->vht_capa_mask)); 127764a87472SJohannes Berg if (req->fils_kek) 127864a87472SJohannes Berg memcpy(__get_dynamic_array(fils_kek), 127964a87472SJohannes Berg req->fils_kek, req->fils_kek_len); 128064a87472SJohannes Berg if (req->fils_nonces) 128164a87472SJohannes Berg memcpy(__get_dynamic_array(fils_nonces), 128264a87472SJohannes Berg req->fils_nonces, 2 * FILS_NONCE_LEN); 128314e8a3c4SBeni Lev ), 1284ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 128514e8a3c4SBeni Lev ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u", 128614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 128714e8a3c4SBeni Lev MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp), 128814e8a3c4SBeni Lev __entry->flags) 128914e8a3c4SBeni Lev ); 129014e8a3c4SBeni Lev 129114e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 129214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 129314e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 129414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 129514e8a3c4SBeni Lev TP_STRUCT__entry( 129614e8a3c4SBeni Lev WIPHY_ENTRY 129714e8a3c4SBeni Lev NETDEV_ENTRY 129814e8a3c4SBeni Lev MAC_ENTRY(bssid) 129914e8a3c4SBeni Lev __field(u16, reason_code) 130014e8a3c4SBeni Lev ), 130114e8a3c4SBeni Lev TP_fast_assign( 130214e8a3c4SBeni Lev WIPHY_ASSIGN; 130314e8a3c4SBeni Lev NETDEV_ASSIGN; 130414e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 130514e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 130614e8a3c4SBeni Lev ), 1307ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u", 130814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 130914e8a3c4SBeni Lev __entry->reason_code) 131014e8a3c4SBeni Lev ); 131114e8a3c4SBeni Lev 131214e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 131314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 131414e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 131514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 131614e8a3c4SBeni Lev TP_STRUCT__entry( 131714e8a3c4SBeni Lev WIPHY_ENTRY 131814e8a3c4SBeni Lev NETDEV_ENTRY 131914e8a3c4SBeni Lev MAC_ENTRY(bssid) 132014e8a3c4SBeni Lev __field(u16, reason_code) 132114e8a3c4SBeni Lev __field(bool, local_state_change) 132214e8a3c4SBeni Lev ), 132314e8a3c4SBeni Lev TP_fast_assign( 132414e8a3c4SBeni Lev WIPHY_ASSIGN; 132514e8a3c4SBeni Lev NETDEV_ASSIGN; 132614e8a3c4SBeni Lev if (req->bss) 132714e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 132814e8a3c4SBeni Lev else 1329d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 133014e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 133114e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 133214e8a3c4SBeni Lev ), 1333ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 133414e8a3c4SBeni Lev ", reason: %u, local state change: %s", 133514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 133614e8a3c4SBeni Lev __entry->reason_code, 133714e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 133814e8a3c4SBeni Lev ); 133914e8a3c4SBeni Lev 134014e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 134114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 134214e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 134314e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 134414e8a3c4SBeni Lev TP_STRUCT__entry( 134514e8a3c4SBeni Lev WIPHY_ENTRY 134614e8a3c4SBeni Lev WDEV_ENTRY 134714e8a3c4SBeni Lev __field(u64, cookie) 134814e8a3c4SBeni Lev ), 134914e8a3c4SBeni Lev TP_fast_assign( 135014e8a3c4SBeni Lev WIPHY_ASSIGN; 135114e8a3c4SBeni Lev WDEV_ASSIGN; 135214e8a3c4SBeni Lev __entry->cookie = cookie; 135314e8a3c4SBeni Lev ), 1354ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 135514e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 135614e8a3c4SBeni Lev ); 135714e8a3c4SBeni Lev 135814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 135914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 136014e8a3c4SBeni Lev bool enabled, int timeout), 136114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 136214e8a3c4SBeni Lev TP_STRUCT__entry( 136314e8a3c4SBeni Lev WIPHY_ENTRY 136414e8a3c4SBeni Lev NETDEV_ENTRY 136514e8a3c4SBeni Lev __field(bool, enabled) 136614e8a3c4SBeni Lev __field(int, timeout) 136714e8a3c4SBeni Lev ), 136814e8a3c4SBeni Lev TP_fast_assign( 136914e8a3c4SBeni Lev WIPHY_ASSIGN; 137014e8a3c4SBeni Lev NETDEV_ASSIGN; 137114e8a3c4SBeni Lev __entry->enabled = enabled; 137214e8a3c4SBeni Lev __entry->timeout = timeout; 137314e8a3c4SBeni Lev ), 1374ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 137514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 137614e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 137714e8a3c4SBeni Lev ); 137814e8a3c4SBeni Lev 137914e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 138014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 138114e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 138214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 138314e8a3c4SBeni Lev TP_STRUCT__entry( 138414e8a3c4SBeni Lev WIPHY_ENTRY 138514e8a3c4SBeni Lev NETDEV_ENTRY 138614e8a3c4SBeni Lev MAC_ENTRY(bssid) 138714e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 138814e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 138914e8a3c4SBeni Lev __field(bool, privacy) 139014e8a3c4SBeni Lev __field(u32, wpa_versions) 139114e8a3c4SBeni Lev __field(u32, flags) 1392ba6fbacfSJouni Malinen MAC_ENTRY(prev_bssid) 139314e8a3c4SBeni Lev ), 139414e8a3c4SBeni Lev TP_fast_assign( 139514e8a3c4SBeni Lev WIPHY_ASSIGN; 139614e8a3c4SBeni Lev NETDEV_ASSIGN; 139714e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 139814e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 139914e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 140014e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 140114e8a3c4SBeni Lev __entry->privacy = sme->privacy; 140214e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 140314e8a3c4SBeni Lev __entry->flags = sme->flags; 1404ba6fbacfSJouni Malinen MAC_ASSIGN(prev_bssid, sme->prev_bssid); 140514e8a3c4SBeni Lev ), 1406ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 140714e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 1408ba6fbacfSJouni Malinen "flags: %u, previous bssid: " MAC_PR_FMT, 140914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid, 141014e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 1411ba6fbacfSJouni Malinen __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid)) 141214e8a3c4SBeni Lev ); 141314e8a3c4SBeni Lev 1414088e8df8Svamsi krishna TRACE_EVENT(rdev_update_connect_params, 1415088e8df8Svamsi krishna TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1416088e8df8Svamsi krishna struct cfg80211_connect_params *sme, u32 changed), 1417088e8df8Svamsi krishna TP_ARGS(wiphy, netdev, sme, changed), 1418088e8df8Svamsi krishna TP_STRUCT__entry( 1419088e8df8Svamsi krishna WIPHY_ENTRY 1420088e8df8Svamsi krishna NETDEV_ENTRY 1421088e8df8Svamsi krishna __field(u32, changed) 1422088e8df8Svamsi krishna ), 1423088e8df8Svamsi krishna TP_fast_assign( 1424088e8df8Svamsi krishna WIPHY_ASSIGN; 1425088e8df8Svamsi krishna NETDEV_ASSIGN; 1426088e8df8Svamsi krishna __entry->changed = changed; 1427088e8df8Svamsi krishna ), 1428088e8df8Svamsi krishna TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u", 1429088e8df8Svamsi krishna WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed) 1430088e8df8Svamsi krishna ); 1431088e8df8Svamsi krishna 143214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 143314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 143414e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 143514e8a3c4SBeni Lev u32 rssi_hyst), 143614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 143714e8a3c4SBeni Lev TP_STRUCT__entry( 143814e8a3c4SBeni Lev WIPHY_ENTRY 143914e8a3c4SBeni Lev NETDEV_ENTRY 144014e8a3c4SBeni Lev __field(s32, rssi_thold) 144114e8a3c4SBeni Lev __field(u32, rssi_hyst) 144214e8a3c4SBeni Lev ), 144314e8a3c4SBeni Lev TP_fast_assign( 144414e8a3c4SBeni Lev WIPHY_ASSIGN; 144514e8a3c4SBeni Lev NETDEV_ASSIGN; 144614e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 144714e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 144814e8a3c4SBeni Lev ), 1449ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 145014e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 145114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 145214e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 145314e8a3c4SBeni Lev ); 145414e8a3c4SBeni Lev 14554a4b8169SAndrew Zaborowski TRACE_EVENT(rdev_set_cqm_rssi_range_config, 14564a4b8169SAndrew Zaborowski TP_PROTO(struct wiphy *wiphy, 14574a4b8169SAndrew Zaborowski struct net_device *netdev, s32 low, s32 high), 14584a4b8169SAndrew Zaborowski TP_ARGS(wiphy, netdev, low, high), 14594a4b8169SAndrew Zaborowski TP_STRUCT__entry( 14604a4b8169SAndrew Zaborowski WIPHY_ENTRY 14614a4b8169SAndrew Zaborowski NETDEV_ENTRY 14624a4b8169SAndrew Zaborowski __field(s32, rssi_low) 14634a4b8169SAndrew Zaborowski __field(s32, rssi_high) 14644a4b8169SAndrew Zaborowski ), 14654a4b8169SAndrew Zaborowski TP_fast_assign( 14664a4b8169SAndrew Zaborowski WIPHY_ASSIGN; 14674a4b8169SAndrew Zaborowski NETDEV_ASSIGN; 14684a4b8169SAndrew Zaborowski __entry->rssi_low = low; 14694a4b8169SAndrew Zaborowski __entry->rssi_high = high; 14704a4b8169SAndrew Zaborowski ), 14714a4b8169SAndrew Zaborowski TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 14724a4b8169SAndrew Zaborowski ", range: %d - %d ", 14734a4b8169SAndrew Zaborowski WIPHY_PR_ARG, NETDEV_PR_ARG, 14744a4b8169SAndrew Zaborowski __entry->rssi_low, __entry->rssi_high) 14754a4b8169SAndrew Zaborowski ); 14764a4b8169SAndrew Zaborowski 147714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 147814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 147914e8a3c4SBeni Lev u32 pkts, u32 intvl), 148014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 148114e8a3c4SBeni Lev TP_STRUCT__entry( 148214e8a3c4SBeni Lev WIPHY_ENTRY 148314e8a3c4SBeni Lev NETDEV_ENTRY 148414e8a3c4SBeni Lev __field(u32, rate) 148514e8a3c4SBeni Lev __field(u32, pkts) 148614e8a3c4SBeni Lev __field(u32, intvl) 148714e8a3c4SBeni Lev ), 148814e8a3c4SBeni Lev TP_fast_assign( 148914e8a3c4SBeni Lev WIPHY_ASSIGN; 149014e8a3c4SBeni Lev NETDEV_ASSIGN; 149114e8a3c4SBeni Lev __entry->rate = rate; 149214e8a3c4SBeni Lev __entry->pkts = pkts; 149314e8a3c4SBeni Lev __entry->intvl = intvl; 149414e8a3c4SBeni Lev ), 1495ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 149614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 149714e8a3c4SBeni Lev __entry->intvl) 149814e8a3c4SBeni Lev ); 149914e8a3c4SBeni Lev 150014e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 150114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 150214e8a3c4SBeni Lev u16 reason_code), 150314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 150414e8a3c4SBeni Lev TP_STRUCT__entry( 150514e8a3c4SBeni Lev WIPHY_ENTRY 150614e8a3c4SBeni Lev NETDEV_ENTRY 150714e8a3c4SBeni Lev __field(u16, reason_code) 150814e8a3c4SBeni Lev ), 150914e8a3c4SBeni Lev TP_fast_assign( 151014e8a3c4SBeni Lev WIPHY_ASSIGN; 151114e8a3c4SBeni Lev NETDEV_ASSIGN; 151214e8a3c4SBeni Lev __entry->reason_code = reason_code; 151314e8a3c4SBeni Lev ), 1514ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 151514e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 151614e8a3c4SBeni Lev ); 151714e8a3c4SBeni Lev 151814e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 151914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 152014e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 152114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 152214e8a3c4SBeni Lev TP_STRUCT__entry( 152314e8a3c4SBeni Lev WIPHY_ENTRY 152414e8a3c4SBeni Lev NETDEV_ENTRY 152514e8a3c4SBeni Lev MAC_ENTRY(bssid) 152614e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 152714e8a3c4SBeni Lev ), 152814e8a3c4SBeni Lev TP_fast_assign( 152914e8a3c4SBeni Lev WIPHY_ASSIGN; 153014e8a3c4SBeni Lev NETDEV_ASSIGN; 153114e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 153214e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 153314e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 153414e8a3c4SBeni Lev ), 1535ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s", 153614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid) 153714e8a3c4SBeni Lev ); 153814e8a3c4SBeni Lev 15396e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 15406e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 15416e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 15426e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 15436e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 15446e0bd6c3SRostislav Lisovy WIPHY_ENTRY 15456e0bd6c3SRostislav Lisovy NETDEV_ENTRY 15466e0bd6c3SRostislav Lisovy ), 15476e0bd6c3SRostislav Lisovy TP_fast_assign( 15486e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 15496e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 15506e0bd6c3SRostislav Lisovy ), 15516e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 15526e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 15536e0bd6c3SRostislav Lisovy ); 15546e0bd6c3SRostislav Lisovy 155514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 155614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 155714e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 155814e8a3c4SBeni Lev TP_STRUCT__entry( 155914e8a3c4SBeni Lev WIPHY_ENTRY 156014e8a3c4SBeni Lev __field(u32, changed) 156114e8a3c4SBeni Lev ), 156214e8a3c4SBeni Lev TP_fast_assign( 156314e8a3c4SBeni Lev WIPHY_ASSIGN; 156414e8a3c4SBeni Lev __entry->changed = changed; 156514e8a3c4SBeni Lev ), 156614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 156714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 156814e8a3c4SBeni Lev ); 156914e8a3c4SBeni Lev 1570c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1571c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1572c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1573c8442118SJohannes Berg ); 1574c8442118SJohannes Berg 157514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1576c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1577c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1578c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 157914e8a3c4SBeni Lev TP_STRUCT__entry( 158014e8a3c4SBeni Lev WIPHY_ENTRY 1581c8442118SJohannes Berg WDEV_ENTRY 158214e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 158314e8a3c4SBeni Lev __field(int, mbm) 158414e8a3c4SBeni Lev ), 158514e8a3c4SBeni Lev TP_fast_assign( 158614e8a3c4SBeni Lev WIPHY_ASSIGN; 1587c8442118SJohannes Berg WDEV_ASSIGN; 158814e8a3c4SBeni Lev __entry->type = type; 158914e8a3c4SBeni Lev __entry->mbm = mbm; 159014e8a3c4SBeni Lev ), 1591ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1592c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 159314e8a3c4SBeni Lev ); 159414e8a3c4SBeni Lev 159514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 159614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 159714e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 159814e8a3c4SBeni Lev TP_STRUCT__entry( 159914e8a3c4SBeni Lev WIPHY_ENTRY 160014e8a3c4SBeni Lev __field(int, func_ret) 160114e8a3c4SBeni Lev __field(int, func_fill) 160214e8a3c4SBeni Lev ), 160314e8a3c4SBeni Lev TP_fast_assign( 160414e8a3c4SBeni Lev WIPHY_ASSIGN; 160514e8a3c4SBeni Lev __entry->func_ret = func_ret; 160614e8a3c4SBeni Lev __entry->func_fill = func_fill; 160714e8a3c4SBeni Lev ), 160814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 160914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 161014e8a3c4SBeni Lev ); 161114e8a3c4SBeni Lev 161214e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 161314e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1614fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1615fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 161614e8a3c4SBeni Lev TP_STRUCT__entry( 161714e8a3c4SBeni Lev WIPHY_ENTRY 1618fc73f11fSDavid Spinadel WDEV_ENTRY 161914e8a3c4SBeni Lev ), 162014e8a3c4SBeni Lev TP_fast_assign( 162114e8a3c4SBeni Lev WIPHY_ASSIGN; 1622fc73f11fSDavid Spinadel WDEV_ASSIGN; 162314e8a3c4SBeni Lev ), 1624fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 162514e8a3c4SBeni Lev ); 162614e8a3c4SBeni Lev 162714e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 162814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 162914e8a3c4SBeni Lev TP_ARGS(wiphy), 163014e8a3c4SBeni Lev TP_STRUCT__entry( 163114e8a3c4SBeni Lev WIPHY_ENTRY 163214e8a3c4SBeni Lev ), 163314e8a3c4SBeni Lev TP_fast_assign( 163414e8a3c4SBeni Lev WIPHY_ASSIGN; 163514e8a3c4SBeni Lev ), 163614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 163714e8a3c4SBeni Lev ); 163814e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 163914e8a3c4SBeni Lev 164014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 164114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 16427b0a0e3cSJohannes Berg unsigned int link_id, 164314e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 16447b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, peer, mask), 164514e8a3c4SBeni Lev TP_STRUCT__entry( 164614e8a3c4SBeni Lev WIPHY_ENTRY 164714e8a3c4SBeni Lev NETDEV_ENTRY 16487b0a0e3cSJohannes Berg __field(unsigned int, link_id) 164914e8a3c4SBeni Lev MAC_ENTRY(peer) 165014e8a3c4SBeni Lev ), 165114e8a3c4SBeni Lev TP_fast_assign( 165214e8a3c4SBeni Lev WIPHY_ASSIGN; 165314e8a3c4SBeni Lev NETDEV_ASSIGN; 16547b0a0e3cSJohannes Berg __entry->link_id = link_id; 165514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 165614e8a3c4SBeni Lev ), 16577b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT, 16587b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 16597b0a0e3cSJohannes Berg MAC_PR_ARG(peer)) 166014e8a3c4SBeni Lev ); 166114e8a3c4SBeni Lev 16626cd536feSJohannes Berg TRACE_EVENT(rdev_update_mgmt_frame_registrations, 166314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 16646cd536feSJohannes Berg struct mgmt_frame_regs *upd), 16656cd536feSJohannes Berg TP_ARGS(wiphy, wdev, upd), 166614e8a3c4SBeni Lev TP_STRUCT__entry( 166714e8a3c4SBeni Lev WIPHY_ENTRY 166814e8a3c4SBeni Lev WDEV_ENTRY 16696cd536feSJohannes Berg __field(u16, global_stypes) 16706cd536feSJohannes Berg __field(u16, interface_stypes) 167114e8a3c4SBeni Lev ), 167214e8a3c4SBeni Lev TP_fast_assign( 167314e8a3c4SBeni Lev WIPHY_ASSIGN; 167414e8a3c4SBeni Lev WDEV_ASSIGN; 16756cd536feSJohannes Berg __entry->global_stypes = upd->global_stypes; 16766cd536feSJohannes Berg __entry->interface_stypes = upd->interface_stypes; 167714e8a3c4SBeni Lev ), 16786cd536feSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x", 16796cd536feSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 16806cd536feSJohannes Berg __entry->global_stypes, __entry->interface_stypes) 168114e8a3c4SBeni Lev ); 168214e8a3c4SBeni Lev 168314e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 168414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 168514e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 168614e8a3c4SBeni Lev TP_STRUCT__entry( 168714e8a3c4SBeni Lev WIPHY_ENTRY 168814e8a3c4SBeni Lev __field(int, ret) 168914e8a3c4SBeni Lev __field(u32, tx) 169014e8a3c4SBeni Lev __field(u32, rx) 169114e8a3c4SBeni Lev ), 169214e8a3c4SBeni Lev TP_fast_assign( 169314e8a3c4SBeni Lev WIPHY_ASSIGN; 169414e8a3c4SBeni Lev __entry->ret = ret; 169514e8a3c4SBeni Lev __entry->tx = tx; 169614e8a3c4SBeni Lev __entry->rx = rx; 169714e8a3c4SBeni Lev ), 169814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 169914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 170014e8a3c4SBeni Lev ); 170114e8a3c4SBeni Lev 170214e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 170314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 170414e8a3c4SBeni Lev u32 rx, u32 rx_max), 170514e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 170614e8a3c4SBeni Lev TP_STRUCT__entry( 170714e8a3c4SBeni Lev WIPHY_ENTRY 170814e8a3c4SBeni Lev __field(u32, tx) 170914e8a3c4SBeni Lev __field(u32, tx_max) 171014e8a3c4SBeni Lev __field(u32, rx) 171114e8a3c4SBeni Lev __field(u32, rx_max) 171214e8a3c4SBeni Lev ), 171314e8a3c4SBeni Lev TP_fast_assign( 171414e8a3c4SBeni Lev WIPHY_ASSIGN; 171514e8a3c4SBeni Lev __entry->tx = tx; 171614e8a3c4SBeni Lev __entry->tx_max = tx_max; 171714e8a3c4SBeni Lev __entry->rx = rx; 171814e8a3c4SBeni Lev __entry->rx_max = rx_max; 171914e8a3c4SBeni Lev ), 172014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 172114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 172214e8a3c4SBeni Lev __entry->rx_max) 172314e8a3c4SBeni Lev ); 172414e8a3c4SBeni Lev 172514e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 172614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 172714e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 172814e8a3c4SBeni Lev TP_STRUCT__entry( 172914e8a3c4SBeni Lev WIPHY_ENTRY 173014e8a3c4SBeni Lev __field(u32, tx) 173114e8a3c4SBeni Lev __field(u32, rx) 173214e8a3c4SBeni Lev ), 173314e8a3c4SBeni Lev TP_fast_assign( 173414e8a3c4SBeni Lev WIPHY_ASSIGN; 173514e8a3c4SBeni Lev __entry->tx = tx; 173614e8a3c4SBeni Lev __entry->rx = rx; 173714e8a3c4SBeni Lev ), 173814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 173914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 174014e8a3c4SBeni Lev ); 174114e8a3c4SBeni Lev 174214e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 174314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 174414e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 174514e8a3c4SBeni Lev ); 174614e8a3c4SBeni Lev 1747ca986ad9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_netdev_id_evt, 1748ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1749ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id), 175014e8a3c4SBeni Lev TP_STRUCT__entry( 175114e8a3c4SBeni Lev WIPHY_ENTRY 175214e8a3c4SBeni Lev NETDEV_ENTRY 1753ca986ad9SArend Van Spriel __field(u64, id) 175414e8a3c4SBeni Lev ), 175514e8a3c4SBeni Lev TP_fast_assign( 175614e8a3c4SBeni Lev WIPHY_ASSIGN; 175714e8a3c4SBeni Lev NETDEV_ASSIGN; 1758ca986ad9SArend Van Spriel __entry->id = id; 175914e8a3c4SBeni Lev ), 1760ca986ad9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu", 1761ca986ad9SArend Van Spriel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id) 1762ca986ad9SArend Van Spriel ); 1763ca986ad9SArend Van Spriel 1764ca986ad9SArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start, 1765ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1766ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id) 176714e8a3c4SBeni Lev ); 176814e8a3c4SBeni Lev 17693a3ecf1dSArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop, 17703a3ecf1dSArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 17713a3ecf1dSArend Van Spriel TP_ARGS(wiphy, netdev, id) 17723a3ecf1dSArend Van Spriel ); 17733a3ecf1dSArend Van Spriel 177414e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 177514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 177614e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1777df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 177831fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 177914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 178031fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 178114e8a3c4SBeni Lev TP_STRUCT__entry( 178214e8a3c4SBeni Lev WIPHY_ENTRY 178314e8a3c4SBeni Lev NETDEV_ENTRY 178414e8a3c4SBeni Lev MAC_ENTRY(peer) 178514e8a3c4SBeni Lev __field(u8, action_code) 178614e8a3c4SBeni Lev __field(u8, dialog_token) 178714e8a3c4SBeni Lev __field(u16, status_code) 1788df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 178931fa97c5SArik Nemtsov __field(bool, initiator) 179014e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 179114e8a3c4SBeni Lev ), 179214e8a3c4SBeni Lev TP_fast_assign( 179314e8a3c4SBeni Lev WIPHY_ASSIGN; 179414e8a3c4SBeni Lev NETDEV_ASSIGN; 179514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 179614e8a3c4SBeni Lev __entry->action_code = action_code; 179714e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 179814e8a3c4SBeni Lev __entry->status_code = status_code; 1799df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 180031fa97c5SArik Nemtsov __entry->initiator = initiator; 180114e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 180214e8a3c4SBeni Lev ), 1803ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, " 180431fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 180531fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 180614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 180714e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1808df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 180931fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1810df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 181114e8a3c4SBeni Lev ); 181214e8a3c4SBeni Lev 181314e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 1814aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx), 1815aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx), 181614e8a3c4SBeni Lev TP_STRUCT__entry( 181714e8a3c4SBeni Lev WIPHY_ENTRY 181814e8a3c4SBeni Lev NETDEV_ENTRY 181914e8a3c4SBeni Lev __field(int, idx) 182014e8a3c4SBeni Lev ), 182114e8a3c4SBeni Lev TP_fast_assign( 182214e8a3c4SBeni Lev WIPHY_ASSIGN; 182314e8a3c4SBeni Lev NETDEV_ASSIGN; 1824aaaa10e0SJohannes Berg __entry->idx = _idx; 182514e8a3c4SBeni Lev ), 1826ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 182714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 182814e8a3c4SBeni Lev ); 182914e8a3c4SBeni Lev 183014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 183114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 183214e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 183314e8a3c4SBeni Lev TP_STRUCT__entry( 183414e8a3c4SBeni Lev WIPHY_ENTRY 183514e8a3c4SBeni Lev CHAN_ENTRY 183614e8a3c4SBeni Lev __field(int, ret) 18374ed20bebSJohannes Berg __field(u64, time) 18384ed20bebSJohannes Berg __field(u64, time_busy) 18394ed20bebSJohannes Berg __field(u64, time_ext_busy) 18404ed20bebSJohannes Berg __field(u64, time_rx) 18414ed20bebSJohannes Berg __field(u64, time_tx) 1842052536abSJohannes Berg __field(u64, time_scan) 184314e8a3c4SBeni Lev __field(u32, filled) 184414e8a3c4SBeni Lev __field(s8, noise) 184514e8a3c4SBeni Lev ), 184614e8a3c4SBeni Lev TP_fast_assign( 184714e8a3c4SBeni Lev WIPHY_ASSIGN; 184814e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 184914e8a3c4SBeni Lev __entry->ret = ret; 18504ed20bebSJohannes Berg __entry->time = info->time; 18514ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 18524ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 18534ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 18544ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1855052536abSJohannes Berg __entry->time_scan = info->time_scan; 185614e8a3c4SBeni Lev __entry->filled = info->filled; 185714e8a3c4SBeni Lev __entry->noise = info->noise; 185814e8a3c4SBeni Lev ), 185914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 186014e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 186114e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1862052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 186314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 18644ed20bebSJohannes Berg __entry->time, __entry->time_busy, 18654ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1866052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1867052536abSJohannes Berg __entry->filled, __entry->noise) 186814e8a3c4SBeni Lev ); 186914e8a3c4SBeni Lev 187014e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 187114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 187214e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 187314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 187414e8a3c4SBeni Lev TP_STRUCT__entry( 187514e8a3c4SBeni Lev WIPHY_ENTRY 187614e8a3c4SBeni Lev NETDEV_ENTRY 187714e8a3c4SBeni Lev MAC_ENTRY(peer) 187814e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 187914e8a3c4SBeni Lev ), 188014e8a3c4SBeni Lev TP_fast_assign( 188114e8a3c4SBeni Lev WIPHY_ASSIGN; 188214e8a3c4SBeni Lev NETDEV_ASSIGN; 188314e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 188414e8a3c4SBeni Lev __entry->oper = oper; 188514e8a3c4SBeni Lev ), 1886ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d", 188714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper) 188814e8a3c4SBeni Lev ); 188914e8a3c4SBeni Lev 189014e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 189114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 189214e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 189314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 189414e8a3c4SBeni Lev TP_STRUCT__entry( 189514e8a3c4SBeni Lev WIPHY_ENTRY 189614e8a3c4SBeni Lev NETDEV_ENTRY 189714e8a3c4SBeni Lev MAC_ENTRY(bssid) 189814e8a3c4SBeni Lev ), 189914e8a3c4SBeni Lev TP_fast_assign( 190014e8a3c4SBeni Lev WIPHY_ASSIGN; 190114e8a3c4SBeni Lev NETDEV_ASSIGN; 190214e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 190314e8a3c4SBeni Lev ), 1904ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT, 190514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid)) 190614e8a3c4SBeni Lev ); 190714e8a3c4SBeni Lev 190814e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 190914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 191014e8a3c4SBeni Lev const u8 *peer), 191114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 191214e8a3c4SBeni Lev TP_STRUCT__entry( 191314e8a3c4SBeni Lev WIPHY_ENTRY 191414e8a3c4SBeni Lev NETDEV_ENTRY 191514e8a3c4SBeni Lev MAC_ENTRY(peer) 191614e8a3c4SBeni Lev ), 191714e8a3c4SBeni Lev TP_fast_assign( 191814e8a3c4SBeni Lev WIPHY_ASSIGN; 191914e8a3c4SBeni Lev NETDEV_ASSIGN; 192014e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 192114e8a3c4SBeni Lev ), 1922ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 192314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 192414e8a3c4SBeni Lev ); 192514e8a3c4SBeni Lev 192614e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 192714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192814e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 192914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 193014e8a3c4SBeni Lev ); 193114e8a3c4SBeni Lev 193214e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 193314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 193414e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 193514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 193614e8a3c4SBeni Lev ); 193714e8a3c4SBeni Lev 193814e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 193914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 194014e8a3c4SBeni Lev struct ieee80211_channel *chan, 194142d97a59SJohannes Berg unsigned int duration), 194242d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 194314e8a3c4SBeni Lev TP_STRUCT__entry( 194414e8a3c4SBeni Lev WIPHY_ENTRY 194514e8a3c4SBeni Lev WDEV_ENTRY 194614e8a3c4SBeni Lev CHAN_ENTRY 194714e8a3c4SBeni Lev __field(unsigned int, duration) 194814e8a3c4SBeni Lev ), 194914e8a3c4SBeni Lev TP_fast_assign( 195014e8a3c4SBeni Lev WIPHY_ASSIGN; 195114e8a3c4SBeni Lev WDEV_ASSIGN; 195214e8a3c4SBeni Lev CHAN_ASSIGN(chan); 195314e8a3c4SBeni Lev __entry->duration = duration; 195414e8a3c4SBeni Lev ), 1955ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 195642d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 195714e8a3c4SBeni Lev ); 195814e8a3c4SBeni Lev 195914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 196014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 196114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 196214e8a3c4SBeni Lev TP_STRUCT__entry( 196314e8a3c4SBeni Lev WIPHY_ENTRY 196414e8a3c4SBeni Lev __field(int, ret) 196514e8a3c4SBeni Lev __field(u64, cookie) 196614e8a3c4SBeni Lev ), 196714e8a3c4SBeni Lev TP_fast_assign( 196814e8a3c4SBeni Lev WIPHY_ASSIGN; 196914e8a3c4SBeni Lev __entry->ret = ret; 197014e8a3c4SBeni Lev __entry->cookie = cookie; 197114e8a3c4SBeni Lev ), 197214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 197314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 197414e8a3c4SBeni Lev ); 197514e8a3c4SBeni Lev 197614e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 197714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 197814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 197914e8a3c4SBeni Lev TP_STRUCT__entry( 198014e8a3c4SBeni Lev WIPHY_ENTRY 198114e8a3c4SBeni Lev WDEV_ENTRY 198214e8a3c4SBeni Lev __field(u64, cookie) 198314e8a3c4SBeni Lev ), 198414e8a3c4SBeni Lev TP_fast_assign( 198514e8a3c4SBeni Lev WIPHY_ASSIGN; 198614e8a3c4SBeni Lev WDEV_ASSIGN; 198714e8a3c4SBeni Lev __entry->cookie = cookie; 198814e8a3c4SBeni Lev ), 1989ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 199014e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 199114e8a3c4SBeni Lev ); 199214e8a3c4SBeni Lev 199314e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 199414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1995b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 1996b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 199714e8a3c4SBeni Lev TP_STRUCT__entry( 199814e8a3c4SBeni Lev WIPHY_ENTRY 199914e8a3c4SBeni Lev WDEV_ENTRY 200014e8a3c4SBeni Lev CHAN_ENTRY 200114e8a3c4SBeni Lev __field(bool, offchan) 200214e8a3c4SBeni Lev __field(unsigned int, wait) 200314e8a3c4SBeni Lev __field(bool, no_cck) 200414e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 200514e8a3c4SBeni Lev ), 200614e8a3c4SBeni Lev TP_fast_assign( 200714e8a3c4SBeni Lev WIPHY_ASSIGN; 200814e8a3c4SBeni Lev WDEV_ASSIGN; 2009b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 2010b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 2011b176e629SAndrei Otcheretianski __entry->wait = params->wait; 2012b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 2013b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 201414e8a3c4SBeni Lev ), 2015ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 201642d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 201714e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 201842d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 201914e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 202014e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 202114e8a3c4SBeni Lev ); 202214e8a3c4SBeni Lev 20232576a9acSDenis Kenzior TRACE_EVENT(rdev_tx_control_port, 20242576a9acSDenis Kenzior TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20258d74a623SJohannes Berg const u8 *buf, size_t len, const u8 *dest, __be16 proto, 20262576a9acSDenis Kenzior bool unencrypted), 20278d74a623SJohannes Berg TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted), 20282576a9acSDenis Kenzior TP_STRUCT__entry( 20292576a9acSDenis Kenzior WIPHY_ENTRY 20302576a9acSDenis Kenzior NETDEV_ENTRY 20312576a9acSDenis Kenzior MAC_ENTRY(dest) 20328d74a623SJohannes Berg __field(__be16, proto) 20332576a9acSDenis Kenzior __field(bool, unencrypted) 20342576a9acSDenis Kenzior ), 20352576a9acSDenis Kenzior TP_fast_assign( 20362576a9acSDenis Kenzior WIPHY_ASSIGN; 20372576a9acSDenis Kenzior NETDEV_ASSIGN; 20382576a9acSDenis Kenzior MAC_ASSIGN(dest, dest); 20398d74a623SJohannes Berg __entry->proto = proto; 20402576a9acSDenis Kenzior __entry->unencrypted = unencrypted; 20412576a9acSDenis Kenzior ), 20428d74a623SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT "," 20438d74a623SJohannes Berg " proto: 0x%x, unencrypted: %s", 20448d74a623SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest), 20458d74a623SJohannes Berg be16_to_cpu(__entry->proto), 20462576a9acSDenis Kenzior BOOL_TO_STR(__entry->unencrypted)) 20472576a9acSDenis Kenzior ); 20482576a9acSDenis Kenzior 204914e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 205014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 205114e8a3c4SBeni Lev u16 noack_map), 205214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 205314e8a3c4SBeni Lev TP_STRUCT__entry( 205414e8a3c4SBeni Lev WIPHY_ENTRY 205514e8a3c4SBeni Lev NETDEV_ENTRY 205614e8a3c4SBeni Lev __field(u16, noack_map) 205714e8a3c4SBeni Lev ), 205814e8a3c4SBeni Lev TP_fast_assign( 205914e8a3c4SBeni Lev WIPHY_ASSIGN; 206014e8a3c4SBeni Lev NETDEV_ASSIGN; 206114e8a3c4SBeni Lev __entry->noack_map = noack_map; 206214e8a3c4SBeni Lev ), 2063ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 206414e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 206514e8a3c4SBeni Lev ); 206614e8a3c4SBeni Lev 2067*f2a0290bSJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_link_evt, 20687b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 20697b0a0e3cSJohannes Berg unsigned int link_id), 20707b0a0e3cSJohannes Berg TP_ARGS(wiphy, wdev, link_id), 20717b0a0e3cSJohannes Berg TP_STRUCT__entry( 20727b0a0e3cSJohannes Berg WIPHY_ENTRY 20737b0a0e3cSJohannes Berg WDEV_ENTRY 20747b0a0e3cSJohannes Berg __field(unsigned int, link_id) 20757b0a0e3cSJohannes Berg ), 20767b0a0e3cSJohannes Berg TP_fast_assign( 20777b0a0e3cSJohannes Berg WIPHY_ASSIGN; 20787b0a0e3cSJohannes Berg WDEV_ASSIGN; 20797b0a0e3cSJohannes Berg __entry->link_id = link_id; 20807b0a0e3cSJohannes Berg ), 20817b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", 20827b0a0e3cSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) 208314e8a3c4SBeni Lev ); 208414e8a3c4SBeni Lev 2085*f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel, 2086*f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2087*f2a0290bSJohannes Berg unsigned int link_id), 2088*f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2089*f2a0290bSJohannes Berg ); 2090*f2a0290bSJohannes Berg 2091683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2092683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2093683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2094683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 209514e8a3c4SBeni Lev TP_STRUCT__entry( 209614e8a3c4SBeni Lev WIPHY_ENTRY 2097683b6d3bSJohannes Berg __field(int, ret) 2098683b6d3bSJohannes Berg CHAN_DEF_ENTRY 209914e8a3c4SBeni Lev ), 210014e8a3c4SBeni Lev TP_fast_assign( 210114e8a3c4SBeni Lev WIPHY_ASSIGN; 2102683b6d3bSJohannes Berg if (ret == 0) 2103683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2104683b6d3bSJohannes Berg else 2105683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2106683b6d3bSJohannes Berg __entry->ret = ret; 210714e8a3c4SBeni Lev ), 2108ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2109683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 211014e8a3c4SBeni Lev ); 211114e8a3c4SBeni Lev 2112eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2113eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2114eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2115eeb126e9SJohannes Berg ); 2116eeb126e9SJohannes Berg 2117eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2118eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2119eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2120eeb126e9SJohannes Berg ); 2121eeb126e9SJohannes Berg 2122cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2123cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2124cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2125cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2126cb3b7d87SAyala Beker TP_STRUCT__entry( 2127cb3b7d87SAyala Beker WIPHY_ENTRY 2128cb3b7d87SAyala Beker WDEV_ENTRY 2129cb3b7d87SAyala Beker __field(u8, master_pref) 213004ae87a5SPeter Zijlstra __field(u8, bands) 2131cb3b7d87SAyala Beker ), 2132cb3b7d87SAyala Beker TP_fast_assign( 2133cb3b7d87SAyala Beker WIPHY_ASSIGN; 2134cb3b7d87SAyala Beker WDEV_ASSIGN; 2135cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 21368585989dSLuca Coelho __entry->bands = conf->bands; 2137cb3b7d87SAyala Beker ), 2138cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21398585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2140cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21418585989dSLuca Coelho __entry->bands) 2142cb3b7d87SAyala Beker ); 2143cb3b7d87SAyala Beker 2144a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2145a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2146a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2147a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2148a5a9dcf2SAyala Beker TP_STRUCT__entry( 2149a5a9dcf2SAyala Beker WIPHY_ENTRY 2150a5a9dcf2SAyala Beker WDEV_ENTRY 2151a5a9dcf2SAyala Beker __field(u8, master_pref) 215204ae87a5SPeter Zijlstra __field(u8, bands) 215304ae87a5SPeter Zijlstra __field(u32, changes) 2154a5a9dcf2SAyala Beker ), 2155a5a9dcf2SAyala Beker TP_fast_assign( 2156a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2157a5a9dcf2SAyala Beker WDEV_ASSIGN; 2158a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21598585989dSLuca Coelho __entry->bands = conf->bands; 2160a5a9dcf2SAyala Beker __entry->changes = changes; 2161a5a9dcf2SAyala Beker ), 2162a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21638585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2164a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21658585989dSLuca Coelho __entry->bands, __entry->changes) 2166a5a9dcf2SAyala Beker ); 2167a5a9dcf2SAyala Beker 2168cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2169cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2170cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2171cb3b7d87SAyala Beker ); 2172cb3b7d87SAyala Beker 2173a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2174a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2175a442b761SAyala Beker const struct cfg80211_nan_func *func), 2176a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2177a442b761SAyala Beker TP_STRUCT__entry( 2178a442b761SAyala Beker WIPHY_ENTRY 2179a442b761SAyala Beker WDEV_ENTRY 2180a442b761SAyala Beker __field(u8, func_type) 2181a442b761SAyala Beker __field(u64, cookie) 2182a442b761SAyala Beker ), 2183a442b761SAyala Beker TP_fast_assign( 2184a442b761SAyala Beker WIPHY_ASSIGN; 2185a442b761SAyala Beker WDEV_ASSIGN; 2186a442b761SAyala Beker __entry->func_type = func->type; 2187a442b761SAyala Beker __entry->cookie = func->cookie 2188a442b761SAyala Beker ), 2189a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2190a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2191a442b761SAyala Beker __entry->cookie) 2192a442b761SAyala Beker ); 2193a442b761SAyala Beker 2194a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2195a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2196a442b761SAyala Beker u64 cookie), 2197a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2198a442b761SAyala Beker TP_STRUCT__entry( 2199a442b761SAyala Beker WIPHY_ENTRY 2200a442b761SAyala Beker WDEV_ENTRY 2201a442b761SAyala Beker __field(u64, cookie) 2202a442b761SAyala Beker ), 2203a442b761SAyala Beker TP_fast_assign( 2204a442b761SAyala Beker WIPHY_ASSIGN; 2205a442b761SAyala Beker WDEV_ASSIGN; 2206a442b761SAyala Beker __entry->cookie = cookie; 2207a442b761SAyala Beker ), 2208a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2209a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2210a442b761SAyala Beker ); 2211a442b761SAyala Beker 221277765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 221377765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 221477765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 221577765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 221677765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 221777765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 221877765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 221977765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 222077765eafSVasanthakumar Thiagarajan ), 222177765eafSVasanthakumar Thiagarajan TP_fast_assign( 222277765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2223021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 222477765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 222577765eafSVasanthakumar Thiagarajan ), 222677765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 222777765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 222877765eafSVasanthakumar Thiagarajan ); 222977765eafSVasanthakumar Thiagarajan 2230355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2231355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2232355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2233355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2234355199e0SJouni Malinen TP_STRUCT__entry( 2235355199e0SJouni Malinen WIPHY_ENTRY 2236355199e0SJouni Malinen NETDEV_ENTRY 2237355199e0SJouni Malinen __field(u16, md) 2238355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2239355199e0SJouni Malinen ), 2240355199e0SJouni Malinen TP_fast_assign( 2241355199e0SJouni Malinen WIPHY_ASSIGN; 2242355199e0SJouni Malinen NETDEV_ASSIGN; 2243355199e0SJouni Malinen __entry->md = ftie->md; 2244355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2245355199e0SJouni Malinen ), 2246355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2247355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2248355199e0SJouni Malinen ); 2249355199e0SJouni Malinen 22505de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22515de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22525de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22535de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22545de17984SArend van Spriel TP_STRUCT__entry( 22555de17984SArend van Spriel WIPHY_ENTRY 22565de17984SArend van Spriel WDEV_ENTRY 22575de17984SArend van Spriel __field(u16, proto) 22585de17984SArend van Spriel __field(u16, duration) 22595de17984SArend van Spriel ), 22605de17984SArend van Spriel TP_fast_assign( 22615de17984SArend van Spriel WIPHY_ASSIGN; 22625de17984SArend van Spriel WDEV_ASSIGN; 22635de17984SArend van Spriel __entry->proto = protocol; 22645de17984SArend van Spriel __entry->duration = duration; 22655de17984SArend van Spriel ), 22665de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22675de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22685de17984SArend van Spriel ); 22695de17984SArend van Spriel 22705de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 22715de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 22725de17984SArend van Spriel TP_ARGS(wiphy, wdev), 22735de17984SArend van Spriel TP_STRUCT__entry( 22745de17984SArend van Spriel WIPHY_ENTRY 22755de17984SArend van Spriel WDEV_ENTRY 22765de17984SArend van Spriel ), 22775de17984SArend van Spriel TP_fast_assign( 22785de17984SArend van Spriel WIPHY_ASSIGN; 22795de17984SArend van Spriel WDEV_ASSIGN; 22805de17984SArend van Spriel ), 22815de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 22825de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 22835de17984SArend van Spriel ); 22845de17984SArend van Spriel 228516ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 228616ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 228716ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 228816ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 228916ef1fe2SSimon Wunderlich TP_STRUCT__entry( 229016ef1fe2SSimon Wunderlich WIPHY_ENTRY 229116ef1fe2SSimon Wunderlich NETDEV_ENTRY 229216ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 229316ef1fe2SSimon Wunderlich __field(bool, radar_required) 229416ef1fe2SSimon Wunderlich __field(bool, block_tx) 229516ef1fe2SSimon Wunderlich __field(u8, count) 22969a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 22979a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 229816ef1fe2SSimon Wunderlich ), 229916ef1fe2SSimon Wunderlich TP_fast_assign( 230016ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 230116ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 230216ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 230316ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 230416ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 230516ef1fe2SSimon Wunderlich __entry->count = params->count; 23069a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 23079a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 23089a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 23099a774c78SAndrei Otcheretianski 23109a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 23119a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 23129a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 23139a774c78SAndrei Otcheretianski params->counter_offsets_presp, 23149a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 231516ef1fe2SSimon Wunderlich ), 231616ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 23179a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 231816ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23199a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 232016ef1fe2SSimon Wunderlich ); 232116ef1fe2SSimon Wunderlich 2322fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2323fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2324fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2325fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2326fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2327fa9ffc74SKyeyoon Park WIPHY_ENTRY 2328fa9ffc74SKyeyoon Park NETDEV_ENTRY 2329fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2330fa9ffc74SKyeyoon Park ), 2331fa9ffc74SKyeyoon Park TP_fast_assign( 2332fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2333fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2334fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2335fa9ffc74SKyeyoon Park ), 2336fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2337fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2338fa9ffc74SKyeyoon Park ); 2339fa9ffc74SKyeyoon Park 2340e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2341e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23427b0a0e3cSJohannes Berg unsigned int link_id, 2343e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 23447b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, chandef), 2345e16821bcSJouni Malinen TP_STRUCT__entry( 2346e16821bcSJouni Malinen WIPHY_ENTRY 2347e16821bcSJouni Malinen NETDEV_ENTRY 2348e16821bcSJouni Malinen CHAN_DEF_ENTRY 23497b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2350e16821bcSJouni Malinen ), 2351e16821bcSJouni Malinen TP_fast_assign( 2352e16821bcSJouni Malinen WIPHY_ASSIGN; 2353e16821bcSJouni Malinen NETDEV_ASSIGN; 2354e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 23557b0a0e3cSJohannes Berg __entry->link_id = link_id; 2356e16821bcSJouni Malinen ), 23577b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 23587b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23597b0a0e3cSJohannes Berg __entry->link_id) 2360e16821bcSJouni Malinen ); 2361e16821bcSJouni Malinen 2362960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2363960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2364960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2365960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2366960d01acSJohannes Berg TP_STRUCT__entry( 2367960d01acSJohannes Berg WIPHY_ENTRY 2368960d01acSJohannes Berg NETDEV_ENTRY 2369960d01acSJohannes Berg MAC_ENTRY(peer) 2370960d01acSJohannes Berg __field(u8, tsid) 2371960d01acSJohannes Berg __field(u8, user_prio) 2372960d01acSJohannes Berg __field(u16, admitted_time) 2373960d01acSJohannes Berg ), 2374960d01acSJohannes Berg TP_fast_assign( 2375960d01acSJohannes Berg WIPHY_ASSIGN; 2376960d01acSJohannes Berg NETDEV_ASSIGN; 2377960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2378960d01acSJohannes Berg __entry->tsid = tsid; 2379960d01acSJohannes Berg __entry->user_prio = user_prio; 2380960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2381960d01acSJohannes Berg ), 2382960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2383960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2384960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2385960d01acSJohannes Berg ); 2386960d01acSJohannes Berg 2387960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2388960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2389960d01acSJohannes Berg u8 tsid, const u8 *peer), 2390960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2391960d01acSJohannes Berg TP_STRUCT__entry( 2392960d01acSJohannes Berg WIPHY_ENTRY 2393960d01acSJohannes Berg NETDEV_ENTRY 2394960d01acSJohannes Berg MAC_ENTRY(peer) 2395960d01acSJohannes Berg __field(u8, tsid) 2396960d01acSJohannes Berg ), 2397960d01acSJohannes Berg TP_fast_assign( 2398960d01acSJohannes Berg WIPHY_ASSIGN; 2399960d01acSJohannes Berg NETDEV_ASSIGN; 2400960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2401960d01acSJohannes Berg __entry->tsid = tsid; 2402960d01acSJohannes Berg ), 2403960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2404960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2405960d01acSJohannes Berg ); 2406960d01acSJohannes Berg 24071057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 24081057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24091057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 24101057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 24111057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 24121057d35eSArik Nemtsov TP_STRUCT__entry( 24131057d35eSArik Nemtsov WIPHY_ENTRY 24141057d35eSArik Nemtsov NETDEV_ENTRY 24151057d35eSArik Nemtsov MAC_ENTRY(addr) 24161057d35eSArik Nemtsov __field(u8, oper_class) 24171057d35eSArik Nemtsov CHAN_DEF_ENTRY 24181057d35eSArik Nemtsov ), 24191057d35eSArik Nemtsov TP_fast_assign( 24201057d35eSArik Nemtsov WIPHY_ASSIGN; 24211057d35eSArik Nemtsov NETDEV_ASSIGN; 24221057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24231057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 24241057d35eSArik Nemtsov ), 24251057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24261057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 24271057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 24281057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 24291057d35eSArik Nemtsov ); 24301057d35eSArik Nemtsov 24311057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 24321057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24331057d35eSArik Nemtsov const u8 *addr), 24341057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 24351057d35eSArik Nemtsov TP_STRUCT__entry( 24361057d35eSArik Nemtsov WIPHY_ENTRY 24371057d35eSArik Nemtsov NETDEV_ENTRY 24381057d35eSArik Nemtsov MAC_ENTRY(addr) 24391057d35eSArik Nemtsov ), 24401057d35eSArik Nemtsov TP_fast_assign( 24411057d35eSArik Nemtsov WIPHY_ASSIGN; 24421057d35eSArik Nemtsov NETDEV_ASSIGN; 24431057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24441057d35eSArik Nemtsov ), 24451057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 24461057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24471057d35eSArik Nemtsov ); 24481057d35eSArik Nemtsov 24493a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24503a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24513a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24523a00df57SAvraham Stern 24533a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24543a00df57SAvraham Stern 24553a00df57SAvraham Stern TP_STRUCT__entry( 24563a00df57SAvraham Stern WIPHY_ENTRY 24573a00df57SAvraham Stern NETDEV_ENTRY 24583a00df57SAvraham Stern MAC_ENTRY(aa) 24593a00df57SAvraham Stern __field(u8, pmk_len) 24603a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24613a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24623a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24633a00df57SAvraham Stern ), 24643a00df57SAvraham Stern 24653a00df57SAvraham Stern TP_fast_assign( 24663a00df57SAvraham Stern WIPHY_ASSIGN; 24673a00df57SAvraham Stern NETDEV_ASSIGN; 24683a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24693a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24703a00df57SAvraham Stern __entry->pmk_r0_name_len = 24713a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 24723a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 24733a00df57SAvraham Stern pmk_conf->pmk_len); 24743a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 24753a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 24763a00df57SAvraham Stern ), 24773a00df57SAvraham Stern 24783a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24793a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 24803a00df57SAvraham Stern NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len, 24813a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 24823a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 24833a00df57SAvraham Stern __entry->pmk_r0_name_len ? 24843a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 24853a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 24863a00df57SAvraham Stern ); 24873a00df57SAvraham Stern 24883a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 24893a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 24903a00df57SAvraham Stern 24913a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 24923a00df57SAvraham Stern 24933a00df57SAvraham Stern TP_STRUCT__entry( 24943a00df57SAvraham Stern WIPHY_ENTRY 24953a00df57SAvraham Stern NETDEV_ENTRY 24963a00df57SAvraham Stern MAC_ENTRY(aa) 24973a00df57SAvraham Stern ), 24983a00df57SAvraham Stern 24993a00df57SAvraham Stern TP_fast_assign( 25003a00df57SAvraham Stern WIPHY_ASSIGN; 25013a00df57SAvraham Stern NETDEV_ASSIGN; 25023a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 25033a00df57SAvraham Stern ), 25043a00df57SAvraham Stern 25053a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 25063a00df57SAvraham Stern WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa)) 25073a00df57SAvraham Stern ); 25083a00df57SAvraham Stern 250940cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 251040cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 251140cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 251240cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 251340cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 251440cbfa90SSrinivas Dasari NETDEV_ENTRY 251540cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 251640cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 251740cbfa90SSrinivas Dasari __field(u16, status) 251840cbfa90SSrinivas Dasari ), 251940cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 252040cbfa90SSrinivas Dasari NETDEV_ASSIGN; 252140cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 252240cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 252340cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 252440cbfa90SSrinivas Dasari params->ssid.ssid_len); 252540cbfa90SSrinivas Dasari __entry->status = params->status; 252640cbfa90SSrinivas Dasari ), 252740cbfa90SSrinivas Dasari TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 252840cbfa90SSrinivas Dasari ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 252940cbfa90SSrinivas Dasari __entry->bssid, __entry->ssid, __entry->status) 253040cbfa90SSrinivas Dasari ); 253140cbfa90SSrinivas Dasari 25325207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 25335207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25345207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 25355207ca55SJohannes Berg u32 cac_time_ms), 25365207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 25375207ca55SJohannes Berg TP_STRUCT__entry( 25385207ca55SJohannes Berg WIPHY_ENTRY 25395207ca55SJohannes Berg NETDEV_ENTRY 25405207ca55SJohannes Berg CHAN_DEF_ENTRY 25415207ca55SJohannes Berg __field(u32, cac_time_ms) 25425207ca55SJohannes Berg ), 25435207ca55SJohannes Berg TP_fast_assign( 25445207ca55SJohannes Berg WIPHY_ASSIGN; 25455207ca55SJohannes Berg NETDEV_ASSIGN; 25465207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25475207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25485207ca55SJohannes Berg ), 25495207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25505207ca55SJohannes Berg ", cac_time_ms=%u", 25515207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25525207ca55SJohannes Berg __entry->cac_time_ms) 25535207ca55SJohannes Berg ); 25545207ca55SJohannes Berg 25555207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25565207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25575207ca55SJohannes Berg int *mcast_rate), 25585207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25595207ca55SJohannes Berg TP_STRUCT__entry( 25605207ca55SJohannes Berg WIPHY_ENTRY 25615207ca55SJohannes Berg NETDEV_ENTRY 25625207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25635207ca55SJohannes Berg ), 25645207ca55SJohannes Berg TP_fast_assign( 25655207ca55SJohannes Berg WIPHY_ASSIGN; 25665207ca55SJohannes Berg NETDEV_ASSIGN; 25675207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 25685207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 25695207ca55SJohannes Berg ), 25705207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2571e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 25725207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25735207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 25745207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2575e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 25765207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 25775207ca55SJohannes Berg ); 25785207ca55SJohannes Berg 25795207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 25805207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 25815207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 25825207ca55SJohannes Berg TP_STRUCT__entry( 25835207ca55SJohannes Berg WIPHY_ENTRY 25845207ca55SJohannes Berg __field(int, n_rules) 25855207ca55SJohannes Berg ), 25865207ca55SJohannes Berg TP_fast_assign( 25875207ca55SJohannes Berg WIPHY_ASSIGN; 25885207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 25895207ca55SJohannes Berg ), 25905207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 25915207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 25925207ca55SJohannes Berg ); 25935207ca55SJohannes Berg 25945207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 25955207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 25965207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 25975207ca55SJohannes Berg ); 25985207ca55SJohannes Berg 25995207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 26005207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26015207ca55SJohannes Berg const bool enabled), 26025207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 26035207ca55SJohannes Berg TP_STRUCT__entry( 26045207ca55SJohannes Berg WIPHY_ENTRY 26055207ca55SJohannes Berg NETDEV_ENTRY 26065207ca55SJohannes Berg __field(bool, enabled) 26075207ca55SJohannes Berg ), 26085207ca55SJohannes Berg TP_fast_assign( 26095207ca55SJohannes Berg WIPHY_ASSIGN; 26105207ca55SJohannes Berg NETDEV_ASSIGN; 26115207ca55SJohannes Berg __entry->enabled = enabled; 26125207ca55SJohannes Berg ), 26135207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 26145207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26155207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 26165207ca55SJohannes Berg ); 26175207ca55SJohannes Berg 26185207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 26195207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26205207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26215207ca55SJohannes Berg ); 26225207ca55SJohannes Berg 26235207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 26245207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26255207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 26265207ca55SJohannes Berg 26275207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 26285207ca55SJohannes Berg 26295207ca55SJohannes Berg TP_STRUCT__entry( 26305207ca55SJohannes Berg WIPHY_ENTRY 26315207ca55SJohannes Berg NETDEV_ENTRY 26325207ca55SJohannes Berg __field(u64, timestamp) 26335207ca55SJohannes Berg __field(u32, success_num) 26345207ca55SJohannes Berg __field(u32, partial_num) 26355207ca55SJohannes Berg __field(u32, failed_num) 26365207ca55SJohannes Berg __field(u32, asap_num) 26375207ca55SJohannes Berg __field(u32, non_asap_num) 26385207ca55SJohannes Berg __field(u64, duration) 26395207ca55SJohannes Berg __field(u32, unknown_triggers) 26405207ca55SJohannes Berg __field(u32, reschedule) 26415207ca55SJohannes Berg __field(u32, out_of_window) 26425207ca55SJohannes Berg ), 26435207ca55SJohannes Berg 26445207ca55SJohannes Berg TP_fast_assign( 26455207ca55SJohannes Berg WIPHY_ASSIGN; 26465207ca55SJohannes Berg NETDEV_ASSIGN; 26475207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26485207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26495207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26505207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26515207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26525207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26535207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26545207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26555207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26565207ca55SJohannes Berg ), 26575207ca55SJohannes Berg 26585207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26595207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26605207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26615207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26625207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26635207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26645207ca55SJohannes Berg __entry->out_of_window) 26655207ca55SJohannes Berg ); 26665207ca55SJohannes Berg 26679bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 26689bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26699bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26709bb7e0f2SJohannes Berg ); 26719bb7e0f2SJohannes Berg 26729bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 26739bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26749bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26759bb7e0f2SJohannes Berg ); 26769bb7e0f2SJohannes Berg 2677e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2678e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2679e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2680e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2681e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2682e306784aSSubrat Mishra NETDEV_ENTRY 2683e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2684e306784aSSubrat Mishra __field(u8, kek_len) 2685e306784aSSubrat Mishra ), 2686e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2687e306784aSSubrat Mishra NETDEV_ASSIGN; 2688e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2689e306784aSSubrat Mishra ), 2690e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2691e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2692e306784aSSubrat Mishra __entry->kek_len) 2693e306784aSSubrat Mishra ); 2694e306784aSSubrat Mishra 2695c8a11ed5SJohannes Berg TRACE_EVENT(rdev_update_owe_info, 2696c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2697c8a11ed5SJohannes Berg struct cfg80211_update_owe_info *owe_info), 2698c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, owe_info), 2699c8a11ed5SJohannes Berg TP_STRUCT__entry(WIPHY_ENTRY 2700c8a11ed5SJohannes Berg NETDEV_ENTRY 2701c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2702c8a11ed5SJohannes Berg __field(u16, status) 2703c8a11ed5SJohannes Berg __dynamic_array(u8, ie, owe_info->ie_len)), 2704c8a11ed5SJohannes Berg TP_fast_assign(WIPHY_ASSIGN; 2705c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2706c8a11ed5SJohannes Berg MAC_ASSIGN(peer, owe_info->peer); 2707c8a11ed5SJohannes Berg __entry->status = owe_info->status; 2708c8a11ed5SJohannes Berg memcpy(__get_dynamic_array(ie), 2709c8a11ed5SJohannes Berg owe_info->ie, owe_info->ie_len);), 2710c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT 2711c8a11ed5SJohannes Berg " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2712c8a11ed5SJohannes Berg __entry->status) 2713c8a11ed5SJohannes Berg ); 2714c8a11ed5SJohannes Berg 2715c8a11ed5SJohannes Berg TRACE_EVENT(rdev_probe_mesh_link, 2716c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2717c8a11ed5SJohannes Berg const u8 *dest, const u8 *buf, size_t len), 2718c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, dest, buf, len), 2719c8a11ed5SJohannes Berg TP_STRUCT__entry( 2720c8a11ed5SJohannes Berg WIPHY_ENTRY 2721c8a11ed5SJohannes Berg NETDEV_ENTRY 2722c8a11ed5SJohannes Berg MAC_ENTRY(dest) 2723c8a11ed5SJohannes Berg ), 2724c8a11ed5SJohannes Berg TP_fast_assign( 2725c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2726c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2727c8a11ed5SJohannes Berg MAC_ASSIGN(dest, dest); 2728c8a11ed5SJohannes Berg ), 2729c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 2730c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest)) 2731c8a11ed5SJohannes Berg ); 2732c8a11ed5SJohannes Berg 2733c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_tid_config, 2734c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2735c8a11ed5SJohannes Berg struct cfg80211_tid_config *tid_conf), 2736c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, tid_conf), 2737c8a11ed5SJohannes Berg TP_STRUCT__entry( 2738c8a11ed5SJohannes Berg WIPHY_ENTRY 2739c8a11ed5SJohannes Berg NETDEV_ENTRY 2740c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2741c8a11ed5SJohannes Berg ), 2742c8a11ed5SJohannes Berg TP_fast_assign( 2743c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2744c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2745c8a11ed5SJohannes Berg MAC_ASSIGN(peer, tid_conf->peer); 2746c8a11ed5SJohannes Berg ), 2747c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 2748c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 2749c8a11ed5SJohannes Berg ); 2750c8a11ed5SJohannes Berg 2751c8a11ed5SJohannes Berg TRACE_EVENT(rdev_reset_tid_config, 2752c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2753c8a11ed5SJohannes Berg const u8 *peer, u8 tids), 2754c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 2755c8a11ed5SJohannes Berg TP_STRUCT__entry( 2756c8a11ed5SJohannes Berg WIPHY_ENTRY 2757c8a11ed5SJohannes Berg NETDEV_ENTRY 2758c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2759c8a11ed5SJohannes Berg __field(u8, tids) 2760c8a11ed5SJohannes Berg ), 2761c8a11ed5SJohannes Berg TP_fast_assign( 2762c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2763c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2764c8a11ed5SJohannes Berg MAC_ASSIGN(peer, peer); 2765c8a11ed5SJohannes Berg __entry->tids = tids; 2766c8a11ed5SJohannes Berg ), 2767c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x", 2768c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids) 2769c8a11ed5SJohannes Berg ); 2770c8a11ed5SJohannes Berg 2771c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_sar_specs, 2772c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 2773c8a11ed5SJohannes Berg TP_ARGS(wiphy, sar), 2774c8a11ed5SJohannes Berg TP_STRUCT__entry( 2775c8a11ed5SJohannes Berg WIPHY_ENTRY 2776c8a11ed5SJohannes Berg __field(u16, type) 2777c8a11ed5SJohannes Berg __field(u16, num) 2778c8a11ed5SJohannes Berg ), 2779c8a11ed5SJohannes Berg TP_fast_assign( 2780c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2781c8a11ed5SJohannes Berg __entry->type = sar->type; 2782c8a11ed5SJohannes Berg __entry->num = sar->num_sub_specs; 2783c8a11ed5SJohannes Berg 2784c8a11ed5SJohannes Berg ), 2785c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 2786c8a11ed5SJohannes Berg WIPHY_PR_ARG, __entry->type, __entry->num) 2787c8a11ed5SJohannes Berg ); 2788c8a11ed5SJohannes Berg 2789c8a11ed5SJohannes Berg TRACE_EVENT(rdev_color_change, 2790c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2791c8a11ed5SJohannes Berg struct cfg80211_color_change_settings *params), 2792c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, params), 2793c8a11ed5SJohannes Berg TP_STRUCT__entry( 2794c8a11ed5SJohannes Berg WIPHY_ENTRY 2795c8a11ed5SJohannes Berg NETDEV_ENTRY 2796c8a11ed5SJohannes Berg __field(u8, count) 2797c8a11ed5SJohannes Berg __field(u16, bcn_ofs) 2798c8a11ed5SJohannes Berg __field(u16, pres_ofs) 2799c8a11ed5SJohannes Berg ), 2800c8a11ed5SJohannes Berg TP_fast_assign( 2801c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2802c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2803c8a11ed5SJohannes Berg __entry->count = params->count; 2804c8a11ed5SJohannes Berg __entry->bcn_ofs = params->counter_offset_beacon; 2805c8a11ed5SJohannes Berg __entry->pres_ofs = params->counter_offset_presp; 2806c8a11ed5SJohannes Berg ), 2807c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 2808c8a11ed5SJohannes Berg ", count: %u", 2809c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 2810c8a11ed5SJohannes Berg __entry->count) 2811c8a11ed5SJohannes Berg ); 2812c8a11ed5SJohannes Berg 2813c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_radar_background, 2814c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 2815c8a11ed5SJohannes Berg 2816c8a11ed5SJohannes Berg TP_ARGS(wiphy, chandef), 2817c8a11ed5SJohannes Berg 2818c8a11ed5SJohannes Berg TP_STRUCT__entry( 2819c8a11ed5SJohannes Berg WIPHY_ENTRY 2820c8a11ed5SJohannes Berg CHAN_DEF_ENTRY 2821c8a11ed5SJohannes Berg ), 2822c8a11ed5SJohannes Berg 2823c8a11ed5SJohannes Berg TP_fast_assign( 2824c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2825c8a11ed5SJohannes Berg CHAN_DEF_ASSIGN(chandef) 2826c8a11ed5SJohannes Berg ), 2827c8a11ed5SJohannes Berg 2828c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 2829c8a11ed5SJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 2830c8a11ed5SJohannes Berg ); 2831c8a11ed5SJohannes Berg 2832*f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link, 2833*f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2834*f2a0290bSJohannes Berg unsigned int link_id), 2835*f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2836*f2a0290bSJohannes Berg ); 2837*f2a0290bSJohannes Berg 2838*f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link, 2839*f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2840*f2a0290bSJohannes Berg unsigned int link_id), 2841*f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2842*f2a0290bSJohannes Berg ); 2843*f2a0290bSJohannes Berg 28444ee3e063SBeni Lev /************************************************************* 28454ee3e063SBeni Lev * cfg80211 exported functions traces * 28464ee3e063SBeni Lev *************************************************************/ 28474ee3e063SBeni Lev 28484ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 28494ee3e063SBeni Lev TP_PROTO(bool ret), 28504ee3e063SBeni Lev TP_ARGS(ret), 28514ee3e063SBeni Lev TP_STRUCT__entry( 28524ee3e063SBeni Lev __field(bool, ret) 28534ee3e063SBeni Lev ), 28544ee3e063SBeni Lev TP_fast_assign( 28554ee3e063SBeni Lev __entry->ret = ret; 28564ee3e063SBeni Lev ), 28574ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 28584ee3e063SBeni Lev ); 28594ee3e063SBeni Lev 28604ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 28614ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28624ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 28634ee3e063SBeni Lev TP_STRUCT__entry( 28644ee3e063SBeni Lev NETDEV_ENTRY 28654ee3e063SBeni Lev MAC_ENTRY(macaddr) 28664ee3e063SBeni Lev ), 28674ee3e063SBeni Lev TP_fast_assign( 28684ee3e063SBeni Lev NETDEV_ASSIGN; 28694ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 28704ee3e063SBeni Lev ), 28714ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 28724ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 28734ee3e063SBeni Lev ); 28744ee3e063SBeni Lev 28754ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 28764ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28774ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 28784ee3e063SBeni Lev ); 28794ee3e063SBeni Lev 28804ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 28814ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28824ee3e063SBeni Lev TP_ARGS(netdev), 28834ee3e063SBeni Lev TP_STRUCT__entry( 28844ee3e063SBeni Lev NETDEV_ENTRY 28854ee3e063SBeni Lev ), 28864ee3e063SBeni Lev TP_fast_assign( 28874ee3e063SBeni Lev NETDEV_ASSIGN; 28884ee3e063SBeni Lev ), 28894ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 28904ee3e063SBeni Lev ); 28914ee3e063SBeni Lev 28924ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 28934ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28944ee3e063SBeni Lev TP_ARGS(netdev) 28954ee3e063SBeni Lev ); 28964ee3e063SBeni Lev 28974ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 28984ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss), 28994ee3e063SBeni Lev TP_ARGS(netdev, bss), 29004ee3e063SBeni Lev TP_STRUCT__entry( 29014ee3e063SBeni Lev NETDEV_ENTRY 29024ee3e063SBeni Lev MAC_ENTRY(bssid) 29034ee3e063SBeni Lev CHAN_ENTRY 29044ee3e063SBeni Lev ), 29054ee3e063SBeni Lev TP_fast_assign( 29064ee3e063SBeni Lev NETDEV_ASSIGN; 29074ee3e063SBeni Lev MAC_ASSIGN(bssid, bss->bssid); 29084ee3e063SBeni Lev CHAN_ASSIGN(bss->channel); 29094ee3e063SBeni Lev ), 2910ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT, 29114ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 29124ee3e063SBeni Lev ); 29134ee3e063SBeni Lev 29146ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 29156ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29166ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 29176ff57cf8SJohannes Berg TP_STRUCT__entry( 29186ff57cf8SJohannes Berg NETDEV_ENTRY 29196ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29206ff57cf8SJohannes Berg ), 29216ff57cf8SJohannes Berg TP_fast_assign( 29226ff57cf8SJohannes Berg NETDEV_ASSIGN; 29236ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29246ff57cf8SJohannes Berg ), 29256ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 29266ff57cf8SJohannes Berg NETDEV_PR_ARG, 29276ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 29284ee3e063SBeni Lev ); 29294ee3e063SBeni Lev 29306ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 29316ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29326ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29334ee3e063SBeni Lev ); 29344ee3e063SBeni Lev 29356ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 29366ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29376ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29384ee3e063SBeni Lev ); 29394ee3e063SBeni Lev 29406ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 29413bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 29423bb02143SJohannes Berg bool reconnect), 29433bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 29446ff57cf8SJohannes Berg TP_STRUCT__entry( 29456ff57cf8SJohannes Berg NETDEV_ENTRY 29466ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29473bb02143SJohannes Berg __field(int, reconnect) 29486ff57cf8SJohannes Berg ), 29496ff57cf8SJohannes Berg TP_fast_assign( 29506ff57cf8SJohannes Berg NETDEV_ASSIGN; 29516ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29523bb02143SJohannes Berg __entry->reconnect = reconnect; 29536ff57cf8SJohannes Berg ), 29543bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 29556ff57cf8SJohannes Berg NETDEV_PR_ARG, 29563bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 29573bb02143SJohannes Berg __entry->reconnect) 29584ee3e063SBeni Lev ); 29594ee3e063SBeni Lev 29604ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 29614ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29624ee3e063SBeni Lev TP_ARGS(netdev, mac), 29634ee3e063SBeni Lev TP_STRUCT__entry( 29644ee3e063SBeni Lev NETDEV_ENTRY 29654ee3e063SBeni Lev MAC_ENTRY(mac) 29664ee3e063SBeni Lev ), 29674ee3e063SBeni Lev TP_fast_assign( 29684ee3e063SBeni Lev NETDEV_ASSIGN; 29694ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 29704ee3e063SBeni Lev ), 29714ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 29724ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 29734ee3e063SBeni Lev ); 29744ee3e063SBeni Lev 29754ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 29764ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29774ee3e063SBeni Lev TP_ARGS(netdev, mac) 29784ee3e063SBeni Lev ); 29794ee3e063SBeni Lev 29804ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout, 29814ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29824ee3e063SBeni Lev TP_ARGS(netdev, mac) 29834ee3e063SBeni Lev ); 29844ee3e063SBeni Lev 29854ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 29864ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 29874ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 29884ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 29894ee3e063SBeni Lev TP_STRUCT__entry( 29904ee3e063SBeni Lev NETDEV_ENTRY 29914ee3e063SBeni Lev MAC_ENTRY(addr) 29924ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 29934ee3e063SBeni Lev __field(int, key_id) 29944ee3e063SBeni Lev __array(u8, tsc, 6) 29954ee3e063SBeni Lev ), 29964ee3e063SBeni Lev TP_fast_assign( 29974ee3e063SBeni Lev NETDEV_ASSIGN; 29984ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 29994ee3e063SBeni Lev __entry->key_type = key_type; 30004ee3e063SBeni Lev __entry->key_id = key_id; 30018c26d458SEliad Peller if (tsc) 30024ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 30034ee3e063SBeni Lev ), 3004ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 30054ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 30064ee3e063SBeni Lev __entry->key_id, __entry->tsc) 30074ee3e063SBeni Lev ); 30084ee3e063SBeni Lev 30094ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 30104ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30114ee3e063SBeni Lev struct ieee80211_channel *chan, 301242d97a59SJohannes Berg unsigned int duration), 301342d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 30144ee3e063SBeni Lev TP_STRUCT__entry( 30154ee3e063SBeni Lev WDEV_ENTRY 30164ee3e063SBeni Lev __field(u64, cookie) 30174ee3e063SBeni Lev CHAN_ENTRY 30184ee3e063SBeni Lev __field(unsigned int, duration) 30194ee3e063SBeni Lev ), 30204ee3e063SBeni Lev TP_fast_assign( 30214ee3e063SBeni Lev WDEV_ASSIGN; 30224ee3e063SBeni Lev __entry->cookie = cookie; 30234ee3e063SBeni Lev CHAN_ASSIGN(chan); 30244ee3e063SBeni Lev __entry->duration = duration; 30254ee3e063SBeni Lev ), 302642d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 30274ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 302842d97a59SJohannes Berg __entry->duration) 30294ee3e063SBeni Lev ); 30304ee3e063SBeni Lev 30314ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 30324ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 303342d97a59SJohannes Berg struct ieee80211_channel *chan), 303442d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 30354ee3e063SBeni Lev TP_STRUCT__entry( 30364ee3e063SBeni Lev WDEV_ENTRY 30374ee3e063SBeni Lev __field(u64, cookie) 30384ee3e063SBeni Lev CHAN_ENTRY 30394ee3e063SBeni Lev ), 30404ee3e063SBeni Lev TP_fast_assign( 30414ee3e063SBeni Lev WDEV_ASSIGN; 30424ee3e063SBeni Lev __entry->cookie = cookie; 30434ee3e063SBeni Lev CHAN_ASSIGN(chan); 30444ee3e063SBeni Lev ), 304542d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 304642d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30474ee3e063SBeni Lev ); 30484ee3e063SBeni Lev 30491c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 30501c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30511c38c7f2SJames Prestwood struct ieee80211_channel *chan), 30521c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 30531c38c7f2SJames Prestwood TP_STRUCT__entry( 30541c38c7f2SJames Prestwood WDEV_ENTRY 30551c38c7f2SJames Prestwood __field(u64, cookie) 30561c38c7f2SJames Prestwood CHAN_ENTRY 30571c38c7f2SJames Prestwood ), 30581c38c7f2SJames Prestwood TP_fast_assign( 30591c38c7f2SJames Prestwood WDEV_ASSIGN; 30601c38c7f2SJames Prestwood __entry->cookie = cookie; 30611c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 30621c38c7f2SJames Prestwood ), 30631c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 30641c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30651c38c7f2SJames Prestwood ); 30661c38c7f2SJames Prestwood 30674ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 30684ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 30694ee3e063SBeni Lev struct station_info *sinfo), 30704ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 30714ee3e063SBeni Lev TP_STRUCT__entry( 30724ee3e063SBeni Lev NETDEV_ENTRY 30734ee3e063SBeni Lev MAC_ENTRY(mac_addr) 30744ee3e063SBeni Lev SINFO_ENTRY 30754ee3e063SBeni Lev ), 30764ee3e063SBeni Lev TP_fast_assign( 30774ee3e063SBeni Lev NETDEV_ASSIGN; 30784ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 30794ee3e063SBeni Lev SINFO_ASSIGN; 30804ee3e063SBeni Lev ), 3081ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 30824ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 30834ee3e063SBeni Lev ); 30844ee3e063SBeni Lev 30854ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 30864ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 30874ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 30884ee3e063SBeni Lev ); 30894ee3e063SBeni Lev 30904ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 30916c2fb1e6SSergey Matyukevich TP_PROTO(struct wireless_dev *wdev, int freq, int sig_dbm), 30926c2fb1e6SSergey Matyukevich TP_ARGS(wdev, freq, sig_dbm), 30934ee3e063SBeni Lev TP_STRUCT__entry( 30944ee3e063SBeni Lev WDEV_ENTRY 30954ee3e063SBeni Lev __field(int, freq) 30966c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 30974ee3e063SBeni Lev ), 30984ee3e063SBeni Lev TP_fast_assign( 30994ee3e063SBeni Lev WDEV_ASSIGN; 31004ee3e063SBeni Lev __entry->freq = freq; 31016c2fb1e6SSergey Matyukevich __entry->sig_dbm = sig_dbm; 31024ee3e063SBeni Lev ), 3103e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 3104e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 31054ee3e063SBeni Lev ); 31064ee3e063SBeni Lev 31074ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 31084ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 31094ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 31104ee3e063SBeni Lev TP_STRUCT__entry( 31114ee3e063SBeni Lev WDEV_ENTRY 31124ee3e063SBeni Lev __field(u64, cookie) 31134ee3e063SBeni Lev __field(bool, ack) 31144ee3e063SBeni Lev ), 31154ee3e063SBeni Lev TP_fast_assign( 31164ee3e063SBeni Lev WDEV_ASSIGN; 31174ee3e063SBeni Lev __entry->cookie = cookie; 31184ee3e063SBeni Lev __entry->ack = ack; 31194ee3e063SBeni Lev ), 31204ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 31214ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 31224ee3e063SBeni Lev ); 31234ee3e063SBeni Lev 3124dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 3125dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 3126dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 3127dca9ca2dSMarkus Theil TP_STRUCT__entry( 3128dca9ca2dSMarkus Theil WDEV_ENTRY 3129dca9ca2dSMarkus Theil __field(u64, cookie) 3130dca9ca2dSMarkus Theil __field(bool, ack) 3131dca9ca2dSMarkus Theil ), 3132dca9ca2dSMarkus Theil TP_fast_assign( 3133dca9ca2dSMarkus Theil WDEV_ASSIGN; 3134dca9ca2dSMarkus Theil __entry->cookie = cookie; 3135dca9ca2dSMarkus Theil __entry->ack = ack; 3136dca9ca2dSMarkus Theil ), 3137dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 3138dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 3139dca9ca2dSMarkus Theil ); 3140dca9ca2dSMarkus Theil 31416a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 3142a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 3143a948f713SDenis Kenzior bool unencrypted), 3144a948f713SDenis Kenzior TP_ARGS(netdev, skb, unencrypted), 31456a671a50SDenis Kenzior TP_STRUCT__entry( 31466a671a50SDenis Kenzior NETDEV_ENTRY 3147a948f713SDenis Kenzior __field(int, len) 3148a948f713SDenis Kenzior MAC_ENTRY(from) 31496a671a50SDenis Kenzior __field(u16, proto) 31506a671a50SDenis Kenzior __field(bool, unencrypted) 31516a671a50SDenis Kenzior ), 31526a671a50SDenis Kenzior TP_fast_assign( 31536a671a50SDenis Kenzior NETDEV_ASSIGN; 3154a948f713SDenis Kenzior __entry->len = skb->len; 3155a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 3156a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 31576a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 31586a671a50SDenis Kenzior ), 31598d74a623SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s", 31608d74a623SJohannes Berg NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from), 31616a671a50SDenis Kenzior __entry->proto, BOOL_TO_STR(__entry->unencrypted)) 31626a671a50SDenis Kenzior ); 31636a671a50SDenis Kenzior 31644ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 31654ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 3166bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 3167bee427b8SAndrzej Zaborowski s32 rssi_level), 3168bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 31694ee3e063SBeni Lev TP_STRUCT__entry( 31704ee3e063SBeni Lev NETDEV_ENTRY 31714ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 3172bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 31734ee3e063SBeni Lev ), 31744ee3e063SBeni Lev TP_fast_assign( 31754ee3e063SBeni Lev NETDEV_ASSIGN; 31764ee3e063SBeni Lev __entry->rssi_event = rssi_event; 3177bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 31784ee3e063SBeni Lev ), 3179bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 3180bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 31814ee3e063SBeni Lev ); 31824ee3e063SBeni Lev 3183683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 3184174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3185923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 3186923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 31874ee3e063SBeni Lev TP_STRUCT__entry( 31884ee3e063SBeni Lev WIPHY_ENTRY 3189683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3190174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 3191923b352fSArik Nemtsov __field(bool, check_no_ir) 31924ee3e063SBeni Lev ), 31934ee3e063SBeni Lev TP_fast_assign( 31944ee3e063SBeni Lev WIPHY_ASSIGN; 3195683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3196174e0cd2SIlan Peer __entry->iftype = iftype; 3197923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 31984ee3e063SBeni Lev ), 3199923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3200923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3201923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 32024ee3e063SBeni Lev ); 32034ee3e063SBeni Lev 320404f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 320504f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 320604f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 320704f39047SSimon Wunderlich TP_STRUCT__entry( 320804f39047SSimon Wunderlich WIPHY_ENTRY 320904f39047SSimon Wunderlich CHAN_DEF_ENTRY 321004f39047SSimon Wunderlich ), 321104f39047SSimon Wunderlich TP_fast_assign( 321204f39047SSimon Wunderlich WIPHY_ASSIGN; 321304f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 321404f39047SSimon Wunderlich ), 321504f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 321604f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 321704f39047SSimon Wunderlich ); 321804f39047SSimon Wunderlich 32194ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3220683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 32217b0a0e3cSJohannes Berg struct cfg80211_chan_def *chandef, 32227b0a0e3cSJohannes Berg unsigned int link_id), 32237b0a0e3cSJohannes Berg TP_ARGS(netdev, chandef, link_id), 32244ee3e063SBeni Lev TP_STRUCT__entry( 32254ee3e063SBeni Lev NETDEV_ENTRY 3226683b6d3bSJohannes Berg CHAN_DEF_ENTRY 32277b0a0e3cSJohannes Berg __field(unsigned int, link_id) 32284ee3e063SBeni Lev ), 32294ee3e063SBeni Lev TP_fast_assign( 32304ee3e063SBeni Lev NETDEV_ASSIGN; 3231683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 32327b0a0e3cSJohannes Berg __entry->link_id = link_id; 32334ee3e063SBeni Lev ), 32347b0a0e3cSJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 32357b0a0e3cSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 32364ee3e063SBeni Lev ); 32374ee3e063SBeni Lev 3238f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3239f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3240f8d7552eSLuciano Coelho struct cfg80211_chan_def *chandef), 3241f8d7552eSLuciano Coelho TP_ARGS(netdev, chandef), 3242f8d7552eSLuciano Coelho TP_STRUCT__entry( 3243f8d7552eSLuciano Coelho NETDEV_ENTRY 3244f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3245f8d7552eSLuciano Coelho ), 3246f8d7552eSLuciano Coelho TP_fast_assign( 3247f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3248f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3249f8d7552eSLuciano Coelho ), 3250f8d7552eSLuciano Coelho TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 3251f8d7552eSLuciano Coelho NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 3252f8d7552eSLuciano Coelho ); 3253f8d7552eSLuciano Coelho 325404f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3255c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3256c47240cbSLorenzo Bianconi bool offchan), 3257c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 325804f39047SSimon Wunderlich TP_STRUCT__entry( 325904f39047SSimon Wunderlich WIPHY_ENTRY 326004f39047SSimon Wunderlich CHAN_DEF_ENTRY 3261c47240cbSLorenzo Bianconi __field(bool, offchan) 326204f39047SSimon Wunderlich ), 326304f39047SSimon Wunderlich TP_fast_assign( 326404f39047SSimon Wunderlich WIPHY_ASSIGN; 326504f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3266c47240cbSLorenzo Bianconi __entry->offchan = offchan; 326704f39047SSimon Wunderlich ), 3268c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3269c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 327004f39047SSimon Wunderlich ); 327104f39047SSimon Wunderlich 327204f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 327304f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 327404f39047SSimon Wunderlich TP_ARGS(netdev, evt), 327504f39047SSimon Wunderlich TP_STRUCT__entry( 327604f39047SSimon Wunderlich NETDEV_ENTRY 327704f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 327804f39047SSimon Wunderlich ), 327904f39047SSimon Wunderlich TP_fast_assign( 328004f39047SSimon Wunderlich NETDEV_ASSIGN; 328104f39047SSimon Wunderlich __entry->evt = evt; 328204f39047SSimon Wunderlich ), 328304f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 328404f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 328504f39047SSimon Wunderlich ); 328604f39047SSimon Wunderlich 32874ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 32884ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 32894ee3e063SBeni Lev TP_ARGS(netdev, addr), 32904ee3e063SBeni Lev TP_STRUCT__entry( 32914ee3e063SBeni Lev NETDEV_ENTRY 32924ee3e063SBeni Lev MAC_ENTRY(addr) 32934ee3e063SBeni Lev ), 32944ee3e063SBeni Lev TP_fast_assign( 32954ee3e063SBeni Lev NETDEV_ASSIGN; 32964ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 32974ee3e063SBeni Lev ), 3298ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 32994ee3e063SBeni Lev ); 33004ee3e063SBeni Lev 33014ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 33024ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33034ee3e063SBeni Lev TP_ARGS(netdev, addr) 33044ee3e063SBeni Lev ); 33054ee3e063SBeni Lev 33064ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 33074ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33084ee3e063SBeni Lev TP_ARGS(netdev, addr) 33094ee3e063SBeni Lev ); 33104ee3e063SBeni Lev 3311fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3312fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3313fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3314fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3315fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3316fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3317fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3318fe94f3a4SAntonio Quartulli CHAN_ENTRY 3319fe94f3a4SAntonio Quartulli ), 3320fe94f3a4SAntonio Quartulli TP_fast_assign( 3321fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3322fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3323fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3324fe94f3a4SAntonio Quartulli ), 3325fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 3326fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 3327fe94f3a4SAntonio Quartulli ); 3328fe94f3a4SAntonio Quartulli 33294ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 33304ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 33314ee3e063SBeni Lev bool acked), 33324ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 33334ee3e063SBeni Lev TP_STRUCT__entry( 33344ee3e063SBeni Lev NETDEV_ENTRY 33354ee3e063SBeni Lev MAC_ENTRY(addr) 33364ee3e063SBeni Lev __field(u64, cookie) 33374ee3e063SBeni Lev __field(bool, acked) 33384ee3e063SBeni Lev ), 33394ee3e063SBeni Lev TP_fast_assign( 33404ee3e063SBeni Lev NETDEV_ASSIGN; 33414ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33424ee3e063SBeni Lev __entry->cookie = cookie; 33434ee3e063SBeni Lev __entry->acked = acked; 33444ee3e063SBeni Lev ), 3345ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 33464ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 33474ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 33484ee3e063SBeni Lev ); 33494ee3e063SBeni Lev 33504ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 33514ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 33524ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 33534ee3e063SBeni Lev TP_STRUCT__entry( 33544ee3e063SBeni Lev NETDEV_ENTRY 33554ee3e063SBeni Lev MAC_ENTRY(peer) 33564ee3e063SBeni Lev __field(u32, num_packets) 33574ee3e063SBeni Lev ), 33584ee3e063SBeni Lev TP_fast_assign( 33594ee3e063SBeni Lev NETDEV_ASSIGN; 33604ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 33614ee3e063SBeni Lev __entry->num_packets = num_packets; 33624ee3e063SBeni Lev ), 33634ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 33644ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 33654ee3e063SBeni Lev ); 33664ee3e063SBeni Lev 33674ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 33684ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 33694ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 33704ee3e063SBeni Lev ); 33714ee3e063SBeni Lev 33724ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 33734ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 33744ee3e063SBeni Lev bool preauth), 33754ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 33764ee3e063SBeni Lev TP_STRUCT__entry( 33774ee3e063SBeni Lev NETDEV_ENTRY 33784ee3e063SBeni Lev __field(int, index) 33794ee3e063SBeni Lev MAC_ENTRY(bssid) 33804ee3e063SBeni Lev __field(bool, preauth) 33814ee3e063SBeni Lev ), 33824ee3e063SBeni Lev TP_fast_assign( 33834ee3e063SBeni Lev NETDEV_ASSIGN; 33844ee3e063SBeni Lev __entry->index = index; 33854ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 33864ee3e063SBeni Lev __entry->preauth = preauth; 33874ee3e063SBeni Lev ), 33884ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 33894ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 33904ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 33914ee3e063SBeni Lev ); 33924ee3e063SBeni Lev 33934ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 33944ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 33954ee3e063SBeni Lev int freq, int sig_dbm), 33964ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 33974ee3e063SBeni Lev TP_STRUCT__entry( 33984ee3e063SBeni Lev WIPHY_ENTRY 33994ee3e063SBeni Lev __field(int, freq) 34004ee3e063SBeni Lev __field(int, sig_dbm) 34014ee3e063SBeni Lev ), 34024ee3e063SBeni Lev TP_fast_assign( 34034ee3e063SBeni Lev WIPHY_ASSIGN; 34044ee3e063SBeni Lev __entry->freq = freq; 34054ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 34064ee3e063SBeni Lev ), 3407e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3408e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 34094ee3e063SBeni Lev ); 34104ee3e063SBeni Lev 34113475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 34123475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 34133475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 34143475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 34153475b094SJouni Malinen TP_STRUCT__entry( 34163475b094SJouni Malinen WIPHY_ENTRY 34173475b094SJouni Malinen NETDEV_ENTRY 34183475b094SJouni Malinen MAC_ENTRY(peer) 34193475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 34203475b094SJouni Malinen __field(u16, reason_code) 34213475b094SJouni Malinen ), 34223475b094SJouni Malinen TP_fast_assign( 34233475b094SJouni Malinen WIPHY_ASSIGN; 34243475b094SJouni Malinen NETDEV_ASSIGN; 34253475b094SJouni Malinen MAC_ASSIGN(peer, peer); 34263475b094SJouni Malinen __entry->oper = oper; 34273475b094SJouni Malinen __entry->reason_code = reason_code; 34283475b094SJouni Malinen ), 34293475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 34303475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 34313475b094SJouni Malinen __entry->reason_code) 34323475b094SJouni Malinen ); 34333475b094SJouni Malinen 34344ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 34351d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 34361d76250bSAvraham Stern struct cfg80211_scan_info *info), 34371d76250bSAvraham Stern TP_ARGS(request, info), 34384ee3e063SBeni Lev TP_STRUCT__entry( 34394ee3e063SBeni Lev __field(u32, n_channels) 34404ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 344157fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 34424ee3e063SBeni Lev __field(u32, wdev_id) 34434ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 34444ee3e063SBeni Lev __field(bool, no_cck) 34454ee3e063SBeni Lev __field(bool, aborted) 34461d76250bSAvraham Stern __field(u64, scan_start_tsf) 34471d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 34484ee3e063SBeni Lev ), 34494ee3e063SBeni Lev TP_fast_assign( 34504ee3e063SBeni Lev if (request) { 34514ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 34524ee3e063SBeni Lev request->ie_len); 34534ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 345457fbcce3SJohannes Berg NUM_NL80211_BANDS); 34554ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 34564ee3e063SBeni Lev request->wdev->identifier : 0; 34574ee3e063SBeni Lev if (request->wiphy) 34584ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 34594ee3e063SBeni Lev request->wiphy->perm_addr); 34604ee3e063SBeni Lev __entry->no_cck = request->no_cck; 34614ee3e063SBeni Lev } 34621d76250bSAvraham Stern if (info) { 34631d76250bSAvraham Stern __entry->aborted = info->aborted; 34641d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 34651d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 34661d76250bSAvraham Stern } 34674ee3e063SBeni Lev ), 34681d76250bSAvraham Stern TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT, 34691d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 34701d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 34711d76250bSAvraham Stern MAC_PR_ARG(tsf_bssid)) 34724ee3e063SBeni Lev ); 34734ee3e063SBeni Lev 3474b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3475b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3476b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3477b34939b9SArend Van Spriel TP_STRUCT__entry( 3478b34939b9SArend Van Spriel WIPHY_ENTRY 3479b34939b9SArend Van Spriel __field(u64, id) 3480b34939b9SArend Van Spriel ), 3481b34939b9SArend Van Spriel TP_fast_assign( 3482b34939b9SArend Van Spriel WIPHY_ASSIGN; 3483b34939b9SArend Van Spriel __entry->id = id; 3484b34939b9SArend Van Spriel ), 3485b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 34864ee3e063SBeni Lev ); 34874ee3e063SBeni Lev 3488b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3489b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3490b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3491b34939b9SArend Van Spriel ); 3492b34939b9SArend Van Spriel 3493b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3494b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3495b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 34964ee3e063SBeni Lev ); 34974ee3e063SBeni Lev 34984ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 34994ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 35004ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 35016eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 35026eb18137SDedy Lansky enum ieee80211_privacy privacy), 35036eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 35044ee3e063SBeni Lev TP_STRUCT__entry( 35054ee3e063SBeni Lev WIPHY_ENTRY 35064ee3e063SBeni Lev CHAN_ENTRY 35074ee3e063SBeni Lev MAC_ENTRY(bssid) 35084ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 35096eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 35106eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 35114ee3e063SBeni Lev ), 35124ee3e063SBeni Lev TP_fast_assign( 35134ee3e063SBeni Lev WIPHY_ASSIGN; 35144ee3e063SBeni Lev CHAN_ASSIGN(channel); 35154ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 35164ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 35176eb18137SDedy Lansky __entry->bss_type = bss_type; 35186eb18137SDedy Lansky __entry->privacy = privacy; 35194ee3e063SBeni Lev ), 35206eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 35216eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 35226eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 35236eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 35246eb18137SDedy Lansky __entry->privacy) 35254ee3e063SBeni Lev ); 35264ee3e063SBeni Lev 35276e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 35286e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 35296e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 35306e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 35314ee3e063SBeni Lev TP_STRUCT__entry( 35324ee3e063SBeni Lev WIPHY_ENTRY 35334ee3e063SBeni Lev CHAN_ENTRY 3534dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 35354ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 35364ee3e063SBeni Lev __field(s32, signal) 35376e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 35381d76250bSAvraham Stern __field(u64, parent_tsf) 35391d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 35404ee3e063SBeni Lev ), 35414ee3e063SBeni Lev TP_fast_assign( 35424ee3e063SBeni Lev WIPHY_ASSIGN; 35436e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 35446e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 35454ee3e063SBeni Lev if (mgmt) 35464ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 35476e19bc4bSDmitry Shmidt __entry->signal = data->signal; 35486e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 35491d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 35501d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 35514ee3e063SBeni Lev ), 35521d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 35531d76250bSAvraham Stern "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: " 35541d76250bSAvraham Stern MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 35551d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 35561d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 35571d76250bSAvraham Stern MAC_PR_ARG(parent_bssid)) 35584ee3e063SBeni Lev ); 35594ee3e063SBeni Lev 35604ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 35614ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35624ee3e063SBeni Lev TP_ARGS(pub), 35634ee3e063SBeni Lev TP_STRUCT__entry( 35644ee3e063SBeni Lev MAC_ENTRY(bssid) 35654ee3e063SBeni Lev CHAN_ENTRY 35664ee3e063SBeni Lev ), 35674ee3e063SBeni Lev TP_fast_assign( 35684ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 35694ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 35704ee3e063SBeni Lev ), 3571ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 35724ee3e063SBeni Lev ); 35734ee3e063SBeni Lev 35744ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 35754ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35764ee3e063SBeni Lev TP_ARGS(pub) 35774ee3e063SBeni Lev ); 35784ee3e063SBeni Lev 35794ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 35804ee3e063SBeni Lev TP_PROTO(unsigned int ret), 35814ee3e063SBeni Lev TP_ARGS(ret), 35824ee3e063SBeni Lev TP_STRUCT__entry( 35834ee3e063SBeni Lev __field(unsigned int, ret) 35844ee3e063SBeni Lev ), 35854ee3e063SBeni Lev TP_fast_assign( 35864ee3e063SBeni Lev __entry->ret = ret; 35874ee3e063SBeni Lev ), 35884ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 35894ee3e063SBeni Lev ); 35904ee3e063SBeni Lev 35914ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 35924ee3e063SBeni Lev TP_PROTO(u32 ret), 35934ee3e063SBeni Lev TP_ARGS(ret), 35944ee3e063SBeni Lev TP_STRUCT__entry( 35954ee3e063SBeni Lev __field(u32, ret) 35964ee3e063SBeni Lev ), 35974ee3e063SBeni Lev TP_fast_assign( 35984ee3e063SBeni Lev __entry->ret = ret; 35994ee3e063SBeni Lev ), 36004ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 36014ee3e063SBeni Lev ); 36024ee3e063SBeni Lev 3603cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3604cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3605cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3606cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3607cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3608cd8f7cb4SJohannes Berg WIPHY_ENTRY 3609cd8f7cb4SJohannes Berg WDEV_ENTRY 3610a92eecbbSJohannes Berg __field(bool, non_wireless) 3611cd8f7cb4SJohannes Berg __field(bool, disconnect) 3612cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3613cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3614cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3615cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3616cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3617cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3618cd8f7cb4SJohannes Berg __field(u32, packet_len) 3619a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3620a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3621cd8f7cb4SJohannes Berg ), 3622cd8f7cb4SJohannes Berg TP_fast_assign( 3623cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3624cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3625a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3626a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3627a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3628a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3629a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3630a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3631a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3632a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3633a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3634a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3635cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3636cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3637cd8f7cb4SJohannes Berg ), 3638cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3639cd8f7cb4SJohannes Berg ); 3640cd8f7cb4SJohannes Berg 3641355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3642355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3643355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3644355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3645355199e0SJouni Malinen TP_STRUCT__entry( 3646355199e0SJouni Malinen WIPHY_ENTRY 3647355199e0SJouni Malinen NETDEV_ENTRY 3648355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3649355199e0SJouni Malinen MAC_ENTRY(target_ap) 3650355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3651355199e0SJouni Malinen ), 3652355199e0SJouni Malinen TP_fast_assign( 3653355199e0SJouni Malinen WIPHY_ASSIGN; 3654355199e0SJouni Malinen NETDEV_ASSIGN; 3655355199e0SJouni Malinen if (ft_event->ies) 3656355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3657355199e0SJouni Malinen ft_event->ies_len); 3658355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3659355199e0SJouni Malinen if (ft_event->ric_ies) 3660355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3661355199e0SJouni Malinen ft_event->ric_ies_len); 3662355199e0SJouni Malinen ), 3663355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 3664355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 3665355199e0SJouni Malinen ); 3666355199e0SJouni Malinen 3667f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3668f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3669f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3670f04c2203SMichal Kazior TP_STRUCT__entry( 3671f04c2203SMichal Kazior WIPHY_ENTRY 3672f04c2203SMichal Kazior WDEV_ENTRY 3673f04c2203SMichal Kazior ), 3674f04c2203SMichal Kazior TP_fast_assign( 3675f04c2203SMichal Kazior WIPHY_ASSIGN; 3676f04c2203SMichal Kazior WDEV_ASSIGN; 3677f04c2203SMichal Kazior ), 3678f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3679f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3680f04c2203SMichal Kazior ); 36819bb7e0f2SJohannes Berg 36829bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 36839bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 36849bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 36859bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 36869bb7e0f2SJohannes Berg TP_STRUCT__entry( 36879bb7e0f2SJohannes Berg WIPHY_ENTRY 36889bb7e0f2SJohannes Berg WDEV_ENTRY 36899bb7e0f2SJohannes Berg __field(u64, cookie) 36909bb7e0f2SJohannes Berg MAC_ENTRY(addr) 36919bb7e0f2SJohannes Berg ), 36929bb7e0f2SJohannes Berg TP_fast_assign( 36939bb7e0f2SJohannes Berg WIPHY_ASSIGN; 36949bb7e0f2SJohannes Berg WDEV_ASSIGN; 36959bb7e0f2SJohannes Berg __entry->cookie = cookie; 36969bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 36979bb7e0f2SJohannes Berg ), 36989bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT, 36999bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37009bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 37019bb7e0f2SJohannes Berg MAC_PR_ARG(addr)) 37029bb7e0f2SJohannes Berg ); 37039bb7e0f2SJohannes Berg 37049bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 37059bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 37069bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 37079bb7e0f2SJohannes Berg TP_STRUCT__entry( 37089bb7e0f2SJohannes Berg WIPHY_ENTRY 37099bb7e0f2SJohannes Berg WDEV_ENTRY 37109bb7e0f2SJohannes Berg __field(u64, cookie) 37119bb7e0f2SJohannes Berg ), 37129bb7e0f2SJohannes Berg TP_fast_assign( 37139bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37149bb7e0f2SJohannes Berg WDEV_ASSIGN; 37159bb7e0f2SJohannes Berg __entry->cookie = cookie; 37169bb7e0f2SJohannes Berg ), 37179bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 37189bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37199bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 37209bb7e0f2SJohannes Berg ); 3721cb74e977SSunil Dutt 3722cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3723cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3724cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3725cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3726cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3727cb74e977SSunil Dutt NETDEV_ENTRY 3728cb74e977SSunil Dutt MAC_ENTRY(peer) 3729cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3730cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3731cb74e977SSunil Dutt NETDEV_ASSIGN; 3732cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3733cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 3734cb74e977SSunil Dutt owe_info->ie_len);), 3735cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 3736cb74e977SSunil Dutt WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 3737cb74e977SSunil Dutt ); 3738cb74e977SSunil Dutt 37390d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 37400d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 37410d2ab3aeSJohn Crispin enum nl80211_commands cmd, 37420d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 37430d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 37440d2ab3aeSJohn Crispin TP_STRUCT__entry( 37450d2ab3aeSJohn Crispin NETDEV_ENTRY 3746c448f0fdSJohannes Berg __field(u32, cmd) 37470d2ab3aeSJohn Crispin __field(u8, count) 37480d2ab3aeSJohn Crispin __field(u64, color_bitmap) 37490d2ab3aeSJohn Crispin ), 37500d2ab3aeSJohn Crispin TP_fast_assign( 37510d2ab3aeSJohn Crispin NETDEV_ASSIGN; 37520d2ab3aeSJohn Crispin __entry->cmd = cmd; 37530d2ab3aeSJohn Crispin __entry->count = count; 37540d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 37550d2ab3aeSJohn Crispin ), 37560d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 37570d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 37580d2ab3aeSJohn Crispin __entry->color_bitmap) 37590d2ab3aeSJohn Crispin ); 37600d2ab3aeSJohn Crispin 3761a083ee8aSIlan Peer TRACE_EVENT(cfg80211_assoc_comeback, 3762a083ee8aSIlan Peer TP_PROTO(struct wireless_dev *wdev, const u8 *bssid, u32 timeout), 3763a083ee8aSIlan Peer TP_ARGS(wdev, bssid, timeout), 3764a083ee8aSIlan Peer TP_STRUCT__entry( 3765a083ee8aSIlan Peer WDEV_ENTRY 3766a083ee8aSIlan Peer MAC_ENTRY(bssid) 3767a083ee8aSIlan Peer __field(u32, timeout) 3768a083ee8aSIlan Peer ), 3769a083ee8aSIlan Peer TP_fast_assign( 3770a083ee8aSIlan Peer WDEV_ASSIGN; 3771a083ee8aSIlan Peer MAC_ASSIGN(bssid, bssid); 3772a083ee8aSIlan Peer __entry->timeout = timeout; 3773a083ee8aSIlan Peer ), 3774a083ee8aSIlan Peer TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs", 3775a083ee8aSIlan Peer WDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->timeout) 3776a083ee8aSIlan Peer ); 3777a083ee8aSIlan Peer 377814e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 377914e8a3c4SBeni Lev 378014e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 378114e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 378214e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 378314e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 378414e8a3c4SBeni Lev #include <trace/define_trace.h> 3785