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) 572*7b0a0e3cSJohannes 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); 587*7b0a0e3cSJohannes 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, " 592*7b0a0e3cSJohannes 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, 597*7b0a0e3cSJohannes 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 607*7b0a0e3cSJohannes 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) { 621*7b0a0e3cSJohannes 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); 642*7b0a0e3cSJohannes Berg } else { 643*7b0a0e3cSJohannes Berg __entry->link_id = -1; 64414e8a3c4SBeni Lev } 64514e8a3c4SBeni Lev ), 646*7b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d", 647*7b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 648*7b0a0e3cSJohannes Berg ); 649*7b0a0e3cSJohannes Berg 650*7b0a0e3cSJohannes Berg TRACE_EVENT(rdev_stop_ap, 651*7b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 652*7b0a0e3cSJohannes Berg unsigned int link_id), 653*7b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id), 654*7b0a0e3cSJohannes Berg TP_STRUCT__entry( 655*7b0a0e3cSJohannes Berg WIPHY_ENTRY 656*7b0a0e3cSJohannes Berg NETDEV_ENTRY 657*7b0a0e3cSJohannes Berg __field(unsigned int, link_id) 658*7b0a0e3cSJohannes Berg ), 659*7b0a0e3cSJohannes Berg TP_fast_assign( 660*7b0a0e3cSJohannes Berg WIPHY_ASSIGN; 661*7b0a0e3cSJohannes Berg NETDEV_ASSIGN; 662*7b0a0e3cSJohannes Berg __entry->link_id = link_id; 663*7b0a0e3cSJohannes Berg ), 664*7b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d", 665*7b0a0e3cSJohannes 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, 1642*7b0a0e3cSJohannes Berg unsigned int link_id, 164314e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 1644*7b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, peer, mask), 164514e8a3c4SBeni Lev TP_STRUCT__entry( 164614e8a3c4SBeni Lev WIPHY_ENTRY 164714e8a3c4SBeni Lev NETDEV_ENTRY 1648*7b0a0e3cSJohannes 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; 1654*7b0a0e3cSJohannes Berg __entry->link_id = link_id; 165514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 165614e8a3c4SBeni Lev ), 1657*7b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT, 1658*7b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 1659*7b0a0e3cSJohannes 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*7b0a0e3cSJohannes Berg TRACE_EVENT(rdev_get_channel, 2068*7b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2069*7b0a0e3cSJohannes Berg unsigned int link_id), 2070*7b0a0e3cSJohannes Berg TP_ARGS(wiphy, wdev, link_id), 2071*7b0a0e3cSJohannes Berg TP_STRUCT__entry( 2072*7b0a0e3cSJohannes Berg WIPHY_ENTRY 2073*7b0a0e3cSJohannes Berg WDEV_ENTRY 2074*7b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2075*7b0a0e3cSJohannes Berg ), 2076*7b0a0e3cSJohannes Berg TP_fast_assign( 2077*7b0a0e3cSJohannes Berg WIPHY_ASSIGN; 2078*7b0a0e3cSJohannes Berg WDEV_ASSIGN; 2079*7b0a0e3cSJohannes Berg __entry->link_id = link_id; 2080*7b0a0e3cSJohannes Berg ), 2081*7b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", 2082*7b0a0e3cSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) 208314e8a3c4SBeni Lev ); 208414e8a3c4SBeni Lev 2085683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2086683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2087683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2088683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 208914e8a3c4SBeni Lev TP_STRUCT__entry( 209014e8a3c4SBeni Lev WIPHY_ENTRY 2091683b6d3bSJohannes Berg __field(int, ret) 2092683b6d3bSJohannes Berg CHAN_DEF_ENTRY 209314e8a3c4SBeni Lev ), 209414e8a3c4SBeni Lev TP_fast_assign( 209514e8a3c4SBeni Lev WIPHY_ASSIGN; 2096683b6d3bSJohannes Berg if (ret == 0) 2097683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2098683b6d3bSJohannes Berg else 2099683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2100683b6d3bSJohannes Berg __entry->ret = ret; 210114e8a3c4SBeni Lev ), 2102ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2103683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 210414e8a3c4SBeni Lev ); 210514e8a3c4SBeni Lev 2106eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2107eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2108eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2109eeb126e9SJohannes Berg ); 2110eeb126e9SJohannes Berg 2111eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2112eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2113eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2114eeb126e9SJohannes Berg ); 2115eeb126e9SJohannes Berg 2116cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2117cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2118cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2119cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2120cb3b7d87SAyala Beker TP_STRUCT__entry( 2121cb3b7d87SAyala Beker WIPHY_ENTRY 2122cb3b7d87SAyala Beker WDEV_ENTRY 2123cb3b7d87SAyala Beker __field(u8, master_pref) 212404ae87a5SPeter Zijlstra __field(u8, bands) 2125cb3b7d87SAyala Beker ), 2126cb3b7d87SAyala Beker TP_fast_assign( 2127cb3b7d87SAyala Beker WIPHY_ASSIGN; 2128cb3b7d87SAyala Beker WDEV_ASSIGN; 2129cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 21308585989dSLuca Coelho __entry->bands = conf->bands; 2131cb3b7d87SAyala Beker ), 2132cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21338585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2134cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21358585989dSLuca Coelho __entry->bands) 2136cb3b7d87SAyala Beker ); 2137cb3b7d87SAyala Beker 2138a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2139a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2140a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2141a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2142a5a9dcf2SAyala Beker TP_STRUCT__entry( 2143a5a9dcf2SAyala Beker WIPHY_ENTRY 2144a5a9dcf2SAyala Beker WDEV_ENTRY 2145a5a9dcf2SAyala Beker __field(u8, master_pref) 214604ae87a5SPeter Zijlstra __field(u8, bands) 214704ae87a5SPeter Zijlstra __field(u32, changes) 2148a5a9dcf2SAyala Beker ), 2149a5a9dcf2SAyala Beker TP_fast_assign( 2150a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2151a5a9dcf2SAyala Beker WDEV_ASSIGN; 2152a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21538585989dSLuca Coelho __entry->bands = conf->bands; 2154a5a9dcf2SAyala Beker __entry->changes = changes; 2155a5a9dcf2SAyala Beker ), 2156a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21578585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2158a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21598585989dSLuca Coelho __entry->bands, __entry->changes) 2160a5a9dcf2SAyala Beker ); 2161a5a9dcf2SAyala Beker 2162cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2163cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2164cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2165cb3b7d87SAyala Beker ); 2166cb3b7d87SAyala Beker 2167a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2168a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2169a442b761SAyala Beker const struct cfg80211_nan_func *func), 2170a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2171a442b761SAyala Beker TP_STRUCT__entry( 2172a442b761SAyala Beker WIPHY_ENTRY 2173a442b761SAyala Beker WDEV_ENTRY 2174a442b761SAyala Beker __field(u8, func_type) 2175a442b761SAyala Beker __field(u64, cookie) 2176a442b761SAyala Beker ), 2177a442b761SAyala Beker TP_fast_assign( 2178a442b761SAyala Beker WIPHY_ASSIGN; 2179a442b761SAyala Beker WDEV_ASSIGN; 2180a442b761SAyala Beker __entry->func_type = func->type; 2181a442b761SAyala Beker __entry->cookie = func->cookie 2182a442b761SAyala Beker ), 2183a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2184a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2185a442b761SAyala Beker __entry->cookie) 2186a442b761SAyala Beker ); 2187a442b761SAyala Beker 2188a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2189a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2190a442b761SAyala Beker u64 cookie), 2191a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2192a442b761SAyala Beker TP_STRUCT__entry( 2193a442b761SAyala Beker WIPHY_ENTRY 2194a442b761SAyala Beker WDEV_ENTRY 2195a442b761SAyala Beker __field(u64, cookie) 2196a442b761SAyala Beker ), 2197a442b761SAyala Beker TP_fast_assign( 2198a442b761SAyala Beker WIPHY_ASSIGN; 2199a442b761SAyala Beker WDEV_ASSIGN; 2200a442b761SAyala Beker __entry->cookie = cookie; 2201a442b761SAyala Beker ), 2202a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2203a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2204a442b761SAyala Beker ); 2205a442b761SAyala Beker 220677765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 220777765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 220877765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 220977765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 221077765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 221177765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 221277765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 221377765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 221477765eafSVasanthakumar Thiagarajan ), 221577765eafSVasanthakumar Thiagarajan TP_fast_assign( 221677765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2217021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 221877765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 221977765eafSVasanthakumar Thiagarajan ), 222077765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 222177765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 222277765eafSVasanthakumar Thiagarajan ); 222377765eafSVasanthakumar Thiagarajan 2224355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2225355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2226355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2227355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2228355199e0SJouni Malinen TP_STRUCT__entry( 2229355199e0SJouni Malinen WIPHY_ENTRY 2230355199e0SJouni Malinen NETDEV_ENTRY 2231355199e0SJouni Malinen __field(u16, md) 2232355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2233355199e0SJouni Malinen ), 2234355199e0SJouni Malinen TP_fast_assign( 2235355199e0SJouni Malinen WIPHY_ASSIGN; 2236355199e0SJouni Malinen NETDEV_ASSIGN; 2237355199e0SJouni Malinen __entry->md = ftie->md; 2238355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2239355199e0SJouni Malinen ), 2240355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2241355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2242355199e0SJouni Malinen ); 2243355199e0SJouni Malinen 22445de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22455de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22465de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22475de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22485de17984SArend van Spriel TP_STRUCT__entry( 22495de17984SArend van Spriel WIPHY_ENTRY 22505de17984SArend van Spriel WDEV_ENTRY 22515de17984SArend van Spriel __field(u16, proto) 22525de17984SArend van Spriel __field(u16, duration) 22535de17984SArend van Spriel ), 22545de17984SArend van Spriel TP_fast_assign( 22555de17984SArend van Spriel WIPHY_ASSIGN; 22565de17984SArend van Spriel WDEV_ASSIGN; 22575de17984SArend van Spriel __entry->proto = protocol; 22585de17984SArend van Spriel __entry->duration = duration; 22595de17984SArend van Spriel ), 22605de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22615de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22625de17984SArend van Spriel ); 22635de17984SArend van Spriel 22645de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 22655de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 22665de17984SArend van Spriel TP_ARGS(wiphy, wdev), 22675de17984SArend van Spriel TP_STRUCT__entry( 22685de17984SArend van Spriel WIPHY_ENTRY 22695de17984SArend van Spriel WDEV_ENTRY 22705de17984SArend van Spriel ), 22715de17984SArend van Spriel TP_fast_assign( 22725de17984SArend van Spriel WIPHY_ASSIGN; 22735de17984SArend van Spriel WDEV_ASSIGN; 22745de17984SArend van Spriel ), 22755de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 22765de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 22775de17984SArend van Spriel ); 22785de17984SArend van Spriel 227916ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 228016ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 228116ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 228216ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 228316ef1fe2SSimon Wunderlich TP_STRUCT__entry( 228416ef1fe2SSimon Wunderlich WIPHY_ENTRY 228516ef1fe2SSimon Wunderlich NETDEV_ENTRY 228616ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 228716ef1fe2SSimon Wunderlich __field(bool, radar_required) 228816ef1fe2SSimon Wunderlich __field(bool, block_tx) 228916ef1fe2SSimon Wunderlich __field(u8, count) 22909a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 22919a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 229216ef1fe2SSimon Wunderlich ), 229316ef1fe2SSimon Wunderlich TP_fast_assign( 229416ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 229516ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 229616ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 229716ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 229816ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 229916ef1fe2SSimon Wunderlich __entry->count = params->count; 23009a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 23019a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 23029a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 23039a774c78SAndrei Otcheretianski 23049a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 23059a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 23069a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 23079a774c78SAndrei Otcheretianski params->counter_offsets_presp, 23089a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 230916ef1fe2SSimon Wunderlich ), 231016ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 23119a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 231216ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23139a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 231416ef1fe2SSimon Wunderlich ); 231516ef1fe2SSimon Wunderlich 2316fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2317fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2318fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2319fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2320fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2321fa9ffc74SKyeyoon Park WIPHY_ENTRY 2322fa9ffc74SKyeyoon Park NETDEV_ENTRY 2323fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2324fa9ffc74SKyeyoon Park ), 2325fa9ffc74SKyeyoon Park TP_fast_assign( 2326fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2327fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2328fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2329fa9ffc74SKyeyoon Park ), 2330fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2331fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2332fa9ffc74SKyeyoon Park ); 2333fa9ffc74SKyeyoon Park 2334e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2335e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2336*7b0a0e3cSJohannes Berg unsigned int link_id, 2337e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 2338*7b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, chandef), 2339e16821bcSJouni Malinen TP_STRUCT__entry( 2340e16821bcSJouni Malinen WIPHY_ENTRY 2341e16821bcSJouni Malinen NETDEV_ENTRY 2342e16821bcSJouni Malinen CHAN_DEF_ENTRY 2343*7b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2344e16821bcSJouni Malinen ), 2345e16821bcSJouni Malinen TP_fast_assign( 2346e16821bcSJouni Malinen WIPHY_ASSIGN; 2347e16821bcSJouni Malinen NETDEV_ASSIGN; 2348e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 2349*7b0a0e3cSJohannes Berg __entry->link_id = link_id; 2350e16821bcSJouni Malinen ), 2351*7b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 2352*7b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 2353*7b0a0e3cSJohannes Berg __entry->link_id) 2354e16821bcSJouni Malinen ); 2355e16821bcSJouni Malinen 2356960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2357960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2358960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2359960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2360960d01acSJohannes Berg TP_STRUCT__entry( 2361960d01acSJohannes Berg WIPHY_ENTRY 2362960d01acSJohannes Berg NETDEV_ENTRY 2363960d01acSJohannes Berg MAC_ENTRY(peer) 2364960d01acSJohannes Berg __field(u8, tsid) 2365960d01acSJohannes Berg __field(u8, user_prio) 2366960d01acSJohannes Berg __field(u16, admitted_time) 2367960d01acSJohannes Berg ), 2368960d01acSJohannes Berg TP_fast_assign( 2369960d01acSJohannes Berg WIPHY_ASSIGN; 2370960d01acSJohannes Berg NETDEV_ASSIGN; 2371960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2372960d01acSJohannes Berg __entry->tsid = tsid; 2373960d01acSJohannes Berg __entry->user_prio = user_prio; 2374960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2375960d01acSJohannes Berg ), 2376960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2377960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2378960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2379960d01acSJohannes Berg ); 2380960d01acSJohannes Berg 2381960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2382960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2383960d01acSJohannes Berg u8 tsid, const u8 *peer), 2384960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2385960d01acSJohannes Berg TP_STRUCT__entry( 2386960d01acSJohannes Berg WIPHY_ENTRY 2387960d01acSJohannes Berg NETDEV_ENTRY 2388960d01acSJohannes Berg MAC_ENTRY(peer) 2389960d01acSJohannes Berg __field(u8, tsid) 2390960d01acSJohannes Berg ), 2391960d01acSJohannes Berg TP_fast_assign( 2392960d01acSJohannes Berg WIPHY_ASSIGN; 2393960d01acSJohannes Berg NETDEV_ASSIGN; 2394960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2395960d01acSJohannes Berg __entry->tsid = tsid; 2396960d01acSJohannes Berg ), 2397960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2398960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2399960d01acSJohannes Berg ); 2400960d01acSJohannes Berg 24011057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 24021057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24031057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 24041057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 24051057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 24061057d35eSArik Nemtsov TP_STRUCT__entry( 24071057d35eSArik Nemtsov WIPHY_ENTRY 24081057d35eSArik Nemtsov NETDEV_ENTRY 24091057d35eSArik Nemtsov MAC_ENTRY(addr) 24101057d35eSArik Nemtsov __field(u8, oper_class) 24111057d35eSArik Nemtsov CHAN_DEF_ENTRY 24121057d35eSArik Nemtsov ), 24131057d35eSArik Nemtsov TP_fast_assign( 24141057d35eSArik Nemtsov WIPHY_ASSIGN; 24151057d35eSArik Nemtsov NETDEV_ASSIGN; 24161057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24171057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 24181057d35eSArik Nemtsov ), 24191057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24201057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 24211057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 24221057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 24231057d35eSArik Nemtsov ); 24241057d35eSArik Nemtsov 24251057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 24261057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24271057d35eSArik Nemtsov const u8 *addr), 24281057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 24291057d35eSArik Nemtsov TP_STRUCT__entry( 24301057d35eSArik Nemtsov WIPHY_ENTRY 24311057d35eSArik Nemtsov NETDEV_ENTRY 24321057d35eSArik Nemtsov MAC_ENTRY(addr) 24331057d35eSArik Nemtsov ), 24341057d35eSArik Nemtsov TP_fast_assign( 24351057d35eSArik Nemtsov WIPHY_ASSIGN; 24361057d35eSArik Nemtsov NETDEV_ASSIGN; 24371057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24381057d35eSArik Nemtsov ), 24391057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 24401057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24411057d35eSArik Nemtsov ); 24421057d35eSArik Nemtsov 24433a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24443a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24453a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24463a00df57SAvraham Stern 24473a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24483a00df57SAvraham Stern 24493a00df57SAvraham Stern TP_STRUCT__entry( 24503a00df57SAvraham Stern WIPHY_ENTRY 24513a00df57SAvraham Stern NETDEV_ENTRY 24523a00df57SAvraham Stern MAC_ENTRY(aa) 24533a00df57SAvraham Stern __field(u8, pmk_len) 24543a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24553a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24563a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24573a00df57SAvraham Stern ), 24583a00df57SAvraham Stern 24593a00df57SAvraham Stern TP_fast_assign( 24603a00df57SAvraham Stern WIPHY_ASSIGN; 24613a00df57SAvraham Stern NETDEV_ASSIGN; 24623a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24633a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24643a00df57SAvraham Stern __entry->pmk_r0_name_len = 24653a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 24663a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 24673a00df57SAvraham Stern pmk_conf->pmk_len); 24683a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 24693a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 24703a00df57SAvraham Stern ), 24713a00df57SAvraham Stern 24723a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24733a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 24743a00df57SAvraham Stern NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len, 24753a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 24763a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 24773a00df57SAvraham Stern __entry->pmk_r0_name_len ? 24783a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 24793a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 24803a00df57SAvraham Stern ); 24813a00df57SAvraham Stern 24823a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 24833a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 24843a00df57SAvraham Stern 24853a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 24863a00df57SAvraham Stern 24873a00df57SAvraham Stern TP_STRUCT__entry( 24883a00df57SAvraham Stern WIPHY_ENTRY 24893a00df57SAvraham Stern NETDEV_ENTRY 24903a00df57SAvraham Stern MAC_ENTRY(aa) 24913a00df57SAvraham Stern ), 24923a00df57SAvraham Stern 24933a00df57SAvraham Stern TP_fast_assign( 24943a00df57SAvraham Stern WIPHY_ASSIGN; 24953a00df57SAvraham Stern NETDEV_ASSIGN; 24963a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 24973a00df57SAvraham Stern ), 24983a00df57SAvraham Stern 24993a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 25003a00df57SAvraham Stern WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa)) 25013a00df57SAvraham Stern ); 25023a00df57SAvraham Stern 250340cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 250440cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 250540cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 250640cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 250740cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 250840cbfa90SSrinivas Dasari NETDEV_ENTRY 250940cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 251040cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 251140cbfa90SSrinivas Dasari __field(u16, status) 251240cbfa90SSrinivas Dasari ), 251340cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 251440cbfa90SSrinivas Dasari NETDEV_ASSIGN; 251540cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 251640cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 251740cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 251840cbfa90SSrinivas Dasari params->ssid.ssid_len); 251940cbfa90SSrinivas Dasari __entry->status = params->status; 252040cbfa90SSrinivas Dasari ), 252140cbfa90SSrinivas Dasari TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 252240cbfa90SSrinivas Dasari ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 252340cbfa90SSrinivas Dasari __entry->bssid, __entry->ssid, __entry->status) 252440cbfa90SSrinivas Dasari ); 252540cbfa90SSrinivas Dasari 25265207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 25275207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25285207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 25295207ca55SJohannes Berg u32 cac_time_ms), 25305207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 25315207ca55SJohannes Berg TP_STRUCT__entry( 25325207ca55SJohannes Berg WIPHY_ENTRY 25335207ca55SJohannes Berg NETDEV_ENTRY 25345207ca55SJohannes Berg CHAN_DEF_ENTRY 25355207ca55SJohannes Berg __field(u32, cac_time_ms) 25365207ca55SJohannes Berg ), 25375207ca55SJohannes Berg TP_fast_assign( 25385207ca55SJohannes Berg WIPHY_ASSIGN; 25395207ca55SJohannes Berg NETDEV_ASSIGN; 25405207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25415207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25425207ca55SJohannes Berg ), 25435207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25445207ca55SJohannes Berg ", cac_time_ms=%u", 25455207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25465207ca55SJohannes Berg __entry->cac_time_ms) 25475207ca55SJohannes Berg ); 25485207ca55SJohannes Berg 25495207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25505207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25515207ca55SJohannes Berg int *mcast_rate), 25525207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25535207ca55SJohannes Berg TP_STRUCT__entry( 25545207ca55SJohannes Berg WIPHY_ENTRY 25555207ca55SJohannes Berg NETDEV_ENTRY 25565207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25575207ca55SJohannes Berg ), 25585207ca55SJohannes Berg TP_fast_assign( 25595207ca55SJohannes Berg WIPHY_ASSIGN; 25605207ca55SJohannes Berg NETDEV_ASSIGN; 25615207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 25625207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 25635207ca55SJohannes Berg ), 25645207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2565e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 25665207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25675207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 25685207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2569e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 25705207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 25715207ca55SJohannes Berg ); 25725207ca55SJohannes Berg 25735207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 25745207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 25755207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 25765207ca55SJohannes Berg TP_STRUCT__entry( 25775207ca55SJohannes Berg WIPHY_ENTRY 25785207ca55SJohannes Berg __field(int, n_rules) 25795207ca55SJohannes Berg ), 25805207ca55SJohannes Berg TP_fast_assign( 25815207ca55SJohannes Berg WIPHY_ASSIGN; 25825207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 25835207ca55SJohannes Berg ), 25845207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 25855207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 25865207ca55SJohannes Berg ); 25875207ca55SJohannes Berg 25885207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 25895207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 25905207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 25915207ca55SJohannes Berg ); 25925207ca55SJohannes Berg 25935207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 25945207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25955207ca55SJohannes Berg const bool enabled), 25965207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 25975207ca55SJohannes Berg TP_STRUCT__entry( 25985207ca55SJohannes Berg WIPHY_ENTRY 25995207ca55SJohannes Berg NETDEV_ENTRY 26005207ca55SJohannes Berg __field(bool, enabled) 26015207ca55SJohannes Berg ), 26025207ca55SJohannes Berg TP_fast_assign( 26035207ca55SJohannes Berg WIPHY_ASSIGN; 26045207ca55SJohannes Berg NETDEV_ASSIGN; 26055207ca55SJohannes Berg __entry->enabled = enabled; 26065207ca55SJohannes Berg ), 26075207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 26085207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26095207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 26105207ca55SJohannes Berg ); 26115207ca55SJohannes Berg 26125207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 26135207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26145207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26155207ca55SJohannes Berg ); 26165207ca55SJohannes Berg 26175207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 26185207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26195207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 26205207ca55SJohannes Berg 26215207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 26225207ca55SJohannes Berg 26235207ca55SJohannes Berg TP_STRUCT__entry( 26245207ca55SJohannes Berg WIPHY_ENTRY 26255207ca55SJohannes Berg NETDEV_ENTRY 26265207ca55SJohannes Berg __field(u64, timestamp) 26275207ca55SJohannes Berg __field(u32, success_num) 26285207ca55SJohannes Berg __field(u32, partial_num) 26295207ca55SJohannes Berg __field(u32, failed_num) 26305207ca55SJohannes Berg __field(u32, asap_num) 26315207ca55SJohannes Berg __field(u32, non_asap_num) 26325207ca55SJohannes Berg __field(u64, duration) 26335207ca55SJohannes Berg __field(u32, unknown_triggers) 26345207ca55SJohannes Berg __field(u32, reschedule) 26355207ca55SJohannes Berg __field(u32, out_of_window) 26365207ca55SJohannes Berg ), 26375207ca55SJohannes Berg 26385207ca55SJohannes Berg TP_fast_assign( 26395207ca55SJohannes Berg WIPHY_ASSIGN; 26405207ca55SJohannes Berg NETDEV_ASSIGN; 26415207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26425207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26435207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26445207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26455207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26465207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26475207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26485207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26495207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26505207ca55SJohannes Berg ), 26515207ca55SJohannes Berg 26525207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26535207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26545207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26555207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26565207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26575207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26585207ca55SJohannes Berg __entry->out_of_window) 26595207ca55SJohannes Berg ); 26605207ca55SJohannes Berg 26619bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 26629bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26639bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26649bb7e0f2SJohannes Berg ); 26659bb7e0f2SJohannes Berg 26669bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 26679bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26689bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26699bb7e0f2SJohannes Berg ); 26709bb7e0f2SJohannes Berg 2671e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2672e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2673e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2674e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2675e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2676e306784aSSubrat Mishra NETDEV_ENTRY 2677e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2678e306784aSSubrat Mishra __field(u8, kek_len) 2679e306784aSSubrat Mishra ), 2680e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2681e306784aSSubrat Mishra NETDEV_ASSIGN; 2682e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2683e306784aSSubrat Mishra ), 2684e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2685e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2686e306784aSSubrat Mishra __entry->kek_len) 2687e306784aSSubrat Mishra ); 2688e306784aSSubrat Mishra 26894ee3e063SBeni Lev /************************************************************* 26904ee3e063SBeni Lev * cfg80211 exported functions traces * 26914ee3e063SBeni Lev *************************************************************/ 26924ee3e063SBeni Lev 26934ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 26944ee3e063SBeni Lev TP_PROTO(bool ret), 26954ee3e063SBeni Lev TP_ARGS(ret), 26964ee3e063SBeni Lev TP_STRUCT__entry( 26974ee3e063SBeni Lev __field(bool, ret) 26984ee3e063SBeni Lev ), 26994ee3e063SBeni Lev TP_fast_assign( 27004ee3e063SBeni Lev __entry->ret = ret; 27014ee3e063SBeni Lev ), 27024ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 27034ee3e063SBeni Lev ); 27044ee3e063SBeni Lev 27054ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 27064ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 27074ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 27084ee3e063SBeni Lev TP_STRUCT__entry( 27094ee3e063SBeni Lev NETDEV_ENTRY 27104ee3e063SBeni Lev MAC_ENTRY(macaddr) 27114ee3e063SBeni Lev ), 27124ee3e063SBeni Lev TP_fast_assign( 27134ee3e063SBeni Lev NETDEV_ASSIGN; 27144ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 27154ee3e063SBeni Lev ), 27164ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 27174ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 27184ee3e063SBeni Lev ); 27194ee3e063SBeni Lev 27204ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 27214ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 27224ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 27234ee3e063SBeni Lev ); 27244ee3e063SBeni Lev 27254ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 27264ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 27274ee3e063SBeni Lev TP_ARGS(netdev), 27284ee3e063SBeni Lev TP_STRUCT__entry( 27294ee3e063SBeni Lev NETDEV_ENTRY 27304ee3e063SBeni Lev ), 27314ee3e063SBeni Lev TP_fast_assign( 27324ee3e063SBeni Lev NETDEV_ASSIGN; 27334ee3e063SBeni Lev ), 27344ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 27354ee3e063SBeni Lev ); 27364ee3e063SBeni Lev 27374ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 27384ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 27394ee3e063SBeni Lev TP_ARGS(netdev) 27404ee3e063SBeni Lev ); 27414ee3e063SBeni Lev 27424ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 27434ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss), 27444ee3e063SBeni Lev TP_ARGS(netdev, bss), 27454ee3e063SBeni Lev TP_STRUCT__entry( 27464ee3e063SBeni Lev NETDEV_ENTRY 27474ee3e063SBeni Lev MAC_ENTRY(bssid) 27484ee3e063SBeni Lev CHAN_ENTRY 27494ee3e063SBeni Lev ), 27504ee3e063SBeni Lev TP_fast_assign( 27514ee3e063SBeni Lev NETDEV_ASSIGN; 27524ee3e063SBeni Lev MAC_ASSIGN(bssid, bss->bssid); 27534ee3e063SBeni Lev CHAN_ASSIGN(bss->channel); 27544ee3e063SBeni Lev ), 2755ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT, 27564ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 27574ee3e063SBeni Lev ); 27584ee3e063SBeni Lev 27596ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 27606ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 27616ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 27626ff57cf8SJohannes Berg TP_STRUCT__entry( 27636ff57cf8SJohannes Berg NETDEV_ENTRY 27646ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 27656ff57cf8SJohannes Berg ), 27666ff57cf8SJohannes Berg TP_fast_assign( 27676ff57cf8SJohannes Berg NETDEV_ASSIGN; 27686ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 27696ff57cf8SJohannes Berg ), 27706ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 27716ff57cf8SJohannes Berg NETDEV_PR_ARG, 27726ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 27734ee3e063SBeni Lev ); 27744ee3e063SBeni Lev 27756ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 27766ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 27776ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 27784ee3e063SBeni Lev ); 27794ee3e063SBeni Lev 27806ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 27816ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 27826ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 27834ee3e063SBeni Lev ); 27844ee3e063SBeni Lev 27856ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 27863bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 27873bb02143SJohannes Berg bool reconnect), 27883bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 27896ff57cf8SJohannes Berg TP_STRUCT__entry( 27906ff57cf8SJohannes Berg NETDEV_ENTRY 27916ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 27923bb02143SJohannes Berg __field(int, reconnect) 27936ff57cf8SJohannes Berg ), 27946ff57cf8SJohannes Berg TP_fast_assign( 27956ff57cf8SJohannes Berg NETDEV_ASSIGN; 27966ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 27973bb02143SJohannes Berg __entry->reconnect = reconnect; 27986ff57cf8SJohannes Berg ), 27993bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 28006ff57cf8SJohannes Berg NETDEV_PR_ARG, 28013bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 28023bb02143SJohannes Berg __entry->reconnect) 28034ee3e063SBeni Lev ); 28044ee3e063SBeni Lev 28054ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 28064ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 28074ee3e063SBeni Lev TP_ARGS(netdev, mac), 28084ee3e063SBeni Lev TP_STRUCT__entry( 28094ee3e063SBeni Lev NETDEV_ENTRY 28104ee3e063SBeni Lev MAC_ENTRY(mac) 28114ee3e063SBeni Lev ), 28124ee3e063SBeni Lev TP_fast_assign( 28134ee3e063SBeni Lev NETDEV_ASSIGN; 28144ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 28154ee3e063SBeni Lev ), 28164ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 28174ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 28184ee3e063SBeni Lev ); 28194ee3e063SBeni Lev 28204ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 28214ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 28224ee3e063SBeni Lev TP_ARGS(netdev, mac) 28234ee3e063SBeni Lev ); 28244ee3e063SBeni Lev 28254ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout, 28264ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 28274ee3e063SBeni Lev TP_ARGS(netdev, mac) 28284ee3e063SBeni Lev ); 28294ee3e063SBeni Lev 28304ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 28314ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 28324ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 28334ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 28344ee3e063SBeni Lev TP_STRUCT__entry( 28354ee3e063SBeni Lev NETDEV_ENTRY 28364ee3e063SBeni Lev MAC_ENTRY(addr) 28374ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 28384ee3e063SBeni Lev __field(int, key_id) 28394ee3e063SBeni Lev __array(u8, tsc, 6) 28404ee3e063SBeni Lev ), 28414ee3e063SBeni Lev TP_fast_assign( 28424ee3e063SBeni Lev NETDEV_ASSIGN; 28434ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 28444ee3e063SBeni Lev __entry->key_type = key_type; 28454ee3e063SBeni Lev __entry->key_id = key_id; 28468c26d458SEliad Peller if (tsc) 28474ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 28484ee3e063SBeni Lev ), 2849ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 28504ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 28514ee3e063SBeni Lev __entry->key_id, __entry->tsc) 28524ee3e063SBeni Lev ); 28534ee3e063SBeni Lev 28544ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 28554ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 28564ee3e063SBeni Lev struct ieee80211_channel *chan, 285742d97a59SJohannes Berg unsigned int duration), 285842d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 28594ee3e063SBeni Lev TP_STRUCT__entry( 28604ee3e063SBeni Lev WDEV_ENTRY 28614ee3e063SBeni Lev __field(u64, cookie) 28624ee3e063SBeni Lev CHAN_ENTRY 28634ee3e063SBeni Lev __field(unsigned int, duration) 28644ee3e063SBeni Lev ), 28654ee3e063SBeni Lev TP_fast_assign( 28664ee3e063SBeni Lev WDEV_ASSIGN; 28674ee3e063SBeni Lev __entry->cookie = cookie; 28684ee3e063SBeni Lev CHAN_ASSIGN(chan); 28694ee3e063SBeni Lev __entry->duration = duration; 28704ee3e063SBeni Lev ), 287142d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 28724ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 287342d97a59SJohannes Berg __entry->duration) 28744ee3e063SBeni Lev ); 28754ee3e063SBeni Lev 28764ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 28774ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 287842d97a59SJohannes Berg struct ieee80211_channel *chan), 287942d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 28804ee3e063SBeni Lev TP_STRUCT__entry( 28814ee3e063SBeni Lev WDEV_ENTRY 28824ee3e063SBeni Lev __field(u64, cookie) 28834ee3e063SBeni Lev CHAN_ENTRY 28844ee3e063SBeni Lev ), 28854ee3e063SBeni Lev TP_fast_assign( 28864ee3e063SBeni Lev WDEV_ASSIGN; 28874ee3e063SBeni Lev __entry->cookie = cookie; 28884ee3e063SBeni Lev CHAN_ASSIGN(chan); 28894ee3e063SBeni Lev ), 289042d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 289142d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 28924ee3e063SBeni Lev ); 28934ee3e063SBeni Lev 28941c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 28951c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 28961c38c7f2SJames Prestwood struct ieee80211_channel *chan), 28971c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 28981c38c7f2SJames Prestwood TP_STRUCT__entry( 28991c38c7f2SJames Prestwood WDEV_ENTRY 29001c38c7f2SJames Prestwood __field(u64, cookie) 29011c38c7f2SJames Prestwood CHAN_ENTRY 29021c38c7f2SJames Prestwood ), 29031c38c7f2SJames Prestwood TP_fast_assign( 29041c38c7f2SJames Prestwood WDEV_ASSIGN; 29051c38c7f2SJames Prestwood __entry->cookie = cookie; 29061c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 29071c38c7f2SJames Prestwood ), 29081c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 29091c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 29101c38c7f2SJames Prestwood ); 29111c38c7f2SJames Prestwood 29124ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 29134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 29144ee3e063SBeni Lev struct station_info *sinfo), 29154ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 29164ee3e063SBeni Lev TP_STRUCT__entry( 29174ee3e063SBeni Lev NETDEV_ENTRY 29184ee3e063SBeni Lev MAC_ENTRY(mac_addr) 29194ee3e063SBeni Lev SINFO_ENTRY 29204ee3e063SBeni Lev ), 29214ee3e063SBeni Lev TP_fast_assign( 29224ee3e063SBeni Lev NETDEV_ASSIGN; 29234ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 29244ee3e063SBeni Lev SINFO_ASSIGN; 29254ee3e063SBeni Lev ), 2926ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 29274ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 29284ee3e063SBeni Lev ); 29294ee3e063SBeni Lev 29304ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 29314ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 29324ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 29334ee3e063SBeni Lev ); 29344ee3e063SBeni Lev 29354ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 29366c2fb1e6SSergey Matyukevich TP_PROTO(struct wireless_dev *wdev, int freq, int sig_dbm), 29376c2fb1e6SSergey Matyukevich TP_ARGS(wdev, freq, sig_dbm), 29384ee3e063SBeni Lev TP_STRUCT__entry( 29394ee3e063SBeni Lev WDEV_ENTRY 29404ee3e063SBeni Lev __field(int, freq) 29416c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 29424ee3e063SBeni Lev ), 29434ee3e063SBeni Lev TP_fast_assign( 29444ee3e063SBeni Lev WDEV_ASSIGN; 29454ee3e063SBeni Lev __entry->freq = freq; 29466c2fb1e6SSergey Matyukevich __entry->sig_dbm = sig_dbm; 29474ee3e063SBeni Lev ), 2948e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 2949e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 29504ee3e063SBeni Lev ); 29514ee3e063SBeni Lev 29524ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 29534ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 29544ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 29554ee3e063SBeni Lev TP_STRUCT__entry( 29564ee3e063SBeni Lev WDEV_ENTRY 29574ee3e063SBeni Lev __field(u64, cookie) 29584ee3e063SBeni Lev __field(bool, ack) 29594ee3e063SBeni Lev ), 29604ee3e063SBeni Lev TP_fast_assign( 29614ee3e063SBeni Lev WDEV_ASSIGN; 29624ee3e063SBeni Lev __entry->cookie = cookie; 29634ee3e063SBeni Lev __entry->ack = ack; 29644ee3e063SBeni Lev ), 29654ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 29664ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 29674ee3e063SBeni Lev ); 29684ee3e063SBeni Lev 2969dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 2970dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 2971dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 2972dca9ca2dSMarkus Theil TP_STRUCT__entry( 2973dca9ca2dSMarkus Theil WDEV_ENTRY 2974dca9ca2dSMarkus Theil __field(u64, cookie) 2975dca9ca2dSMarkus Theil __field(bool, ack) 2976dca9ca2dSMarkus Theil ), 2977dca9ca2dSMarkus Theil TP_fast_assign( 2978dca9ca2dSMarkus Theil WDEV_ASSIGN; 2979dca9ca2dSMarkus Theil __entry->cookie = cookie; 2980dca9ca2dSMarkus Theil __entry->ack = ack; 2981dca9ca2dSMarkus Theil ), 2982dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 2983dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 2984dca9ca2dSMarkus Theil ); 2985dca9ca2dSMarkus Theil 29866a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 2987a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 2988a948f713SDenis Kenzior bool unencrypted), 2989a948f713SDenis Kenzior TP_ARGS(netdev, skb, unencrypted), 29906a671a50SDenis Kenzior TP_STRUCT__entry( 29916a671a50SDenis Kenzior NETDEV_ENTRY 2992a948f713SDenis Kenzior __field(int, len) 2993a948f713SDenis Kenzior MAC_ENTRY(from) 29946a671a50SDenis Kenzior __field(u16, proto) 29956a671a50SDenis Kenzior __field(bool, unencrypted) 29966a671a50SDenis Kenzior ), 29976a671a50SDenis Kenzior TP_fast_assign( 29986a671a50SDenis Kenzior NETDEV_ASSIGN; 2999a948f713SDenis Kenzior __entry->len = skb->len; 3000a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 3001a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 30026a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 30036a671a50SDenis Kenzior ), 30048d74a623SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s", 30058d74a623SJohannes Berg NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from), 30066a671a50SDenis Kenzior __entry->proto, BOOL_TO_STR(__entry->unencrypted)) 30076a671a50SDenis Kenzior ); 30086a671a50SDenis Kenzior 30094ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 30104ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 3011bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 3012bee427b8SAndrzej Zaborowski s32 rssi_level), 3013bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 30144ee3e063SBeni Lev TP_STRUCT__entry( 30154ee3e063SBeni Lev NETDEV_ENTRY 30164ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 3017bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 30184ee3e063SBeni Lev ), 30194ee3e063SBeni Lev TP_fast_assign( 30204ee3e063SBeni Lev NETDEV_ASSIGN; 30214ee3e063SBeni Lev __entry->rssi_event = rssi_event; 3022bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 30234ee3e063SBeni Lev ), 3024bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 3025bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 30264ee3e063SBeni Lev ); 30274ee3e063SBeni Lev 3028683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 3029174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3030923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 3031923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 30324ee3e063SBeni Lev TP_STRUCT__entry( 30334ee3e063SBeni Lev WIPHY_ENTRY 3034683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3035174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 3036923b352fSArik Nemtsov __field(bool, check_no_ir) 30374ee3e063SBeni Lev ), 30384ee3e063SBeni Lev TP_fast_assign( 30394ee3e063SBeni Lev WIPHY_ASSIGN; 3040683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3041174e0cd2SIlan Peer __entry->iftype = iftype; 3042923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 30434ee3e063SBeni Lev ), 3044923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3045923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3046923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 30474ee3e063SBeni Lev ); 30484ee3e063SBeni Lev 304904f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 305004f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 305104f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 305204f39047SSimon Wunderlich TP_STRUCT__entry( 305304f39047SSimon Wunderlich WIPHY_ENTRY 305404f39047SSimon Wunderlich CHAN_DEF_ENTRY 305504f39047SSimon Wunderlich ), 305604f39047SSimon Wunderlich TP_fast_assign( 305704f39047SSimon Wunderlich WIPHY_ASSIGN; 305804f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 305904f39047SSimon Wunderlich ), 306004f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 306104f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 306204f39047SSimon Wunderlich ); 306304f39047SSimon Wunderlich 30644ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3065683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 3066*7b0a0e3cSJohannes Berg struct cfg80211_chan_def *chandef, 3067*7b0a0e3cSJohannes Berg unsigned int link_id), 3068*7b0a0e3cSJohannes Berg TP_ARGS(netdev, chandef, link_id), 30694ee3e063SBeni Lev TP_STRUCT__entry( 30704ee3e063SBeni Lev NETDEV_ENTRY 3071683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3072*7b0a0e3cSJohannes Berg __field(unsigned int, link_id) 30734ee3e063SBeni Lev ), 30744ee3e063SBeni Lev TP_fast_assign( 30754ee3e063SBeni Lev NETDEV_ASSIGN; 3076683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3077*7b0a0e3cSJohannes Berg __entry->link_id = link_id; 30784ee3e063SBeni Lev ), 3079*7b0a0e3cSJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 3080*7b0a0e3cSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 30814ee3e063SBeni Lev ); 30824ee3e063SBeni Lev 3083f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3084f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3085f8d7552eSLuciano Coelho struct cfg80211_chan_def *chandef), 3086f8d7552eSLuciano Coelho TP_ARGS(netdev, chandef), 3087f8d7552eSLuciano Coelho TP_STRUCT__entry( 3088f8d7552eSLuciano Coelho NETDEV_ENTRY 3089f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3090f8d7552eSLuciano Coelho ), 3091f8d7552eSLuciano Coelho TP_fast_assign( 3092f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3093f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3094f8d7552eSLuciano Coelho ), 3095f8d7552eSLuciano Coelho TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 3096f8d7552eSLuciano Coelho NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 3097f8d7552eSLuciano Coelho ); 3098f8d7552eSLuciano Coelho 309904f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3100c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3101c47240cbSLorenzo Bianconi bool offchan), 3102c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 310304f39047SSimon Wunderlich TP_STRUCT__entry( 310404f39047SSimon Wunderlich WIPHY_ENTRY 310504f39047SSimon Wunderlich CHAN_DEF_ENTRY 3106c47240cbSLorenzo Bianconi __field(bool, offchan) 310704f39047SSimon Wunderlich ), 310804f39047SSimon Wunderlich TP_fast_assign( 310904f39047SSimon Wunderlich WIPHY_ASSIGN; 311004f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3111c47240cbSLorenzo Bianconi __entry->offchan = offchan; 311204f39047SSimon Wunderlich ), 3113c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3114c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 311504f39047SSimon Wunderlich ); 311604f39047SSimon Wunderlich 311704f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 311804f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 311904f39047SSimon Wunderlich TP_ARGS(netdev, evt), 312004f39047SSimon Wunderlich TP_STRUCT__entry( 312104f39047SSimon Wunderlich NETDEV_ENTRY 312204f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 312304f39047SSimon Wunderlich ), 312404f39047SSimon Wunderlich TP_fast_assign( 312504f39047SSimon Wunderlich NETDEV_ASSIGN; 312604f39047SSimon Wunderlich __entry->evt = evt; 312704f39047SSimon Wunderlich ), 312804f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 312904f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 313004f39047SSimon Wunderlich ); 313104f39047SSimon Wunderlich 31324ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 31334ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 31344ee3e063SBeni Lev TP_ARGS(netdev, addr), 31354ee3e063SBeni Lev TP_STRUCT__entry( 31364ee3e063SBeni Lev NETDEV_ENTRY 31374ee3e063SBeni Lev MAC_ENTRY(addr) 31384ee3e063SBeni Lev ), 31394ee3e063SBeni Lev TP_fast_assign( 31404ee3e063SBeni Lev NETDEV_ASSIGN; 31414ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 31424ee3e063SBeni Lev ), 3143ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 31444ee3e063SBeni Lev ); 31454ee3e063SBeni Lev 31464ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 31474ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 31484ee3e063SBeni Lev TP_ARGS(netdev, addr) 31494ee3e063SBeni Lev ); 31504ee3e063SBeni Lev 31514ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 31524ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 31534ee3e063SBeni Lev TP_ARGS(netdev, addr) 31544ee3e063SBeni Lev ); 31554ee3e063SBeni Lev 3156fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3157fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3158fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3159fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3160fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3161fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3162fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3163fe94f3a4SAntonio Quartulli CHAN_ENTRY 3164fe94f3a4SAntonio Quartulli ), 3165fe94f3a4SAntonio Quartulli TP_fast_assign( 3166fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3167fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3168fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3169fe94f3a4SAntonio Quartulli ), 3170fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 3171fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 3172fe94f3a4SAntonio Quartulli ); 3173fe94f3a4SAntonio Quartulli 31744ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 31754ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 31764ee3e063SBeni Lev bool acked), 31774ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 31784ee3e063SBeni Lev TP_STRUCT__entry( 31794ee3e063SBeni Lev NETDEV_ENTRY 31804ee3e063SBeni Lev MAC_ENTRY(addr) 31814ee3e063SBeni Lev __field(u64, cookie) 31824ee3e063SBeni Lev __field(bool, acked) 31834ee3e063SBeni Lev ), 31844ee3e063SBeni Lev TP_fast_assign( 31854ee3e063SBeni Lev NETDEV_ASSIGN; 31864ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 31874ee3e063SBeni Lev __entry->cookie = cookie; 31884ee3e063SBeni Lev __entry->acked = acked; 31894ee3e063SBeni Lev ), 3190ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 31914ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 31924ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 31934ee3e063SBeni Lev ); 31944ee3e063SBeni Lev 31954ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 31964ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 31974ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 31984ee3e063SBeni Lev TP_STRUCT__entry( 31994ee3e063SBeni Lev NETDEV_ENTRY 32004ee3e063SBeni Lev MAC_ENTRY(peer) 32014ee3e063SBeni Lev __field(u32, num_packets) 32024ee3e063SBeni Lev ), 32034ee3e063SBeni Lev TP_fast_assign( 32044ee3e063SBeni Lev NETDEV_ASSIGN; 32054ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 32064ee3e063SBeni Lev __entry->num_packets = num_packets; 32074ee3e063SBeni Lev ), 32084ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 32094ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 32104ee3e063SBeni Lev ); 32114ee3e063SBeni Lev 32124ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 32134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 32144ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 32154ee3e063SBeni Lev ); 32164ee3e063SBeni Lev 32174ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 32184ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 32194ee3e063SBeni Lev bool preauth), 32204ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 32214ee3e063SBeni Lev TP_STRUCT__entry( 32224ee3e063SBeni Lev NETDEV_ENTRY 32234ee3e063SBeni Lev __field(int, index) 32244ee3e063SBeni Lev MAC_ENTRY(bssid) 32254ee3e063SBeni Lev __field(bool, preauth) 32264ee3e063SBeni Lev ), 32274ee3e063SBeni Lev TP_fast_assign( 32284ee3e063SBeni Lev NETDEV_ASSIGN; 32294ee3e063SBeni Lev __entry->index = index; 32304ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 32314ee3e063SBeni Lev __entry->preauth = preauth; 32324ee3e063SBeni Lev ), 32334ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 32344ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 32354ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 32364ee3e063SBeni Lev ); 32374ee3e063SBeni Lev 32384ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 32394ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 32404ee3e063SBeni Lev int freq, int sig_dbm), 32414ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 32424ee3e063SBeni Lev TP_STRUCT__entry( 32434ee3e063SBeni Lev WIPHY_ENTRY 32444ee3e063SBeni Lev __field(int, freq) 32454ee3e063SBeni Lev __field(int, sig_dbm) 32464ee3e063SBeni Lev ), 32474ee3e063SBeni Lev TP_fast_assign( 32484ee3e063SBeni Lev WIPHY_ASSIGN; 32494ee3e063SBeni Lev __entry->freq = freq; 32504ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 32514ee3e063SBeni Lev ), 3252e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3253e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 32544ee3e063SBeni Lev ); 32554ee3e063SBeni Lev 32563475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 32573475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 32583475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 32593475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 32603475b094SJouni Malinen TP_STRUCT__entry( 32613475b094SJouni Malinen WIPHY_ENTRY 32623475b094SJouni Malinen NETDEV_ENTRY 32633475b094SJouni Malinen MAC_ENTRY(peer) 32643475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 32653475b094SJouni Malinen __field(u16, reason_code) 32663475b094SJouni Malinen ), 32673475b094SJouni Malinen TP_fast_assign( 32683475b094SJouni Malinen WIPHY_ASSIGN; 32693475b094SJouni Malinen NETDEV_ASSIGN; 32703475b094SJouni Malinen MAC_ASSIGN(peer, peer); 32713475b094SJouni Malinen __entry->oper = oper; 32723475b094SJouni Malinen __entry->reason_code = reason_code; 32733475b094SJouni Malinen ), 32743475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 32753475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 32763475b094SJouni Malinen __entry->reason_code) 32773475b094SJouni Malinen ); 32783475b094SJouni Malinen 32794ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 32801d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 32811d76250bSAvraham Stern struct cfg80211_scan_info *info), 32821d76250bSAvraham Stern TP_ARGS(request, info), 32834ee3e063SBeni Lev TP_STRUCT__entry( 32844ee3e063SBeni Lev __field(u32, n_channels) 32854ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 328657fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 32874ee3e063SBeni Lev __field(u32, wdev_id) 32884ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 32894ee3e063SBeni Lev __field(bool, no_cck) 32904ee3e063SBeni Lev __field(bool, aborted) 32911d76250bSAvraham Stern __field(u64, scan_start_tsf) 32921d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 32934ee3e063SBeni Lev ), 32944ee3e063SBeni Lev TP_fast_assign( 32954ee3e063SBeni Lev if (request) { 32964ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 32974ee3e063SBeni Lev request->ie_len); 32984ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 329957fbcce3SJohannes Berg NUM_NL80211_BANDS); 33004ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 33014ee3e063SBeni Lev request->wdev->identifier : 0; 33024ee3e063SBeni Lev if (request->wiphy) 33034ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 33044ee3e063SBeni Lev request->wiphy->perm_addr); 33054ee3e063SBeni Lev __entry->no_cck = request->no_cck; 33064ee3e063SBeni Lev } 33071d76250bSAvraham Stern if (info) { 33081d76250bSAvraham Stern __entry->aborted = info->aborted; 33091d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 33101d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 33111d76250bSAvraham Stern } 33124ee3e063SBeni Lev ), 33131d76250bSAvraham Stern TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT, 33141d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 33151d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 33161d76250bSAvraham Stern MAC_PR_ARG(tsf_bssid)) 33174ee3e063SBeni Lev ); 33184ee3e063SBeni Lev 3319b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3320b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3321b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3322b34939b9SArend Van Spriel TP_STRUCT__entry( 3323b34939b9SArend Van Spriel WIPHY_ENTRY 3324b34939b9SArend Van Spriel __field(u64, id) 3325b34939b9SArend Van Spriel ), 3326b34939b9SArend Van Spriel TP_fast_assign( 3327b34939b9SArend Van Spriel WIPHY_ASSIGN; 3328b34939b9SArend Van Spriel __entry->id = id; 3329b34939b9SArend Van Spriel ), 3330b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 33314ee3e063SBeni Lev ); 33324ee3e063SBeni Lev 3333b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3334b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3335b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3336b34939b9SArend Van Spriel ); 3337b34939b9SArend Van Spriel 3338b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3339b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3340b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 33414ee3e063SBeni Lev ); 33424ee3e063SBeni Lev 33434ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 33444ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 33454ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 33466eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 33476eb18137SDedy Lansky enum ieee80211_privacy privacy), 33486eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 33494ee3e063SBeni Lev TP_STRUCT__entry( 33504ee3e063SBeni Lev WIPHY_ENTRY 33514ee3e063SBeni Lev CHAN_ENTRY 33524ee3e063SBeni Lev MAC_ENTRY(bssid) 33534ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 33546eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 33556eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 33564ee3e063SBeni Lev ), 33574ee3e063SBeni Lev TP_fast_assign( 33584ee3e063SBeni Lev WIPHY_ASSIGN; 33594ee3e063SBeni Lev CHAN_ASSIGN(channel); 33604ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 33614ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 33626eb18137SDedy Lansky __entry->bss_type = bss_type; 33636eb18137SDedy Lansky __entry->privacy = privacy; 33644ee3e063SBeni Lev ), 33656eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 33666eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 33676eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 33686eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 33696eb18137SDedy Lansky __entry->privacy) 33704ee3e063SBeni Lev ); 33714ee3e063SBeni Lev 33726e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 33736e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 33746e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 33756e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 33764ee3e063SBeni Lev TP_STRUCT__entry( 33774ee3e063SBeni Lev WIPHY_ENTRY 33784ee3e063SBeni Lev CHAN_ENTRY 3379dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 33804ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 33814ee3e063SBeni Lev __field(s32, signal) 33826e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 33831d76250bSAvraham Stern __field(u64, parent_tsf) 33841d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 33854ee3e063SBeni Lev ), 33864ee3e063SBeni Lev TP_fast_assign( 33874ee3e063SBeni Lev WIPHY_ASSIGN; 33886e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 33896e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 33904ee3e063SBeni Lev if (mgmt) 33914ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 33926e19bc4bSDmitry Shmidt __entry->signal = data->signal; 33936e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 33941d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 33951d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 33964ee3e063SBeni Lev ), 33971d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 33981d76250bSAvraham Stern "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: " 33991d76250bSAvraham Stern MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 34001d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 34011d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 34021d76250bSAvraham Stern MAC_PR_ARG(parent_bssid)) 34034ee3e063SBeni Lev ); 34044ee3e063SBeni Lev 34054ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 34064ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 34074ee3e063SBeni Lev TP_ARGS(pub), 34084ee3e063SBeni Lev TP_STRUCT__entry( 34094ee3e063SBeni Lev MAC_ENTRY(bssid) 34104ee3e063SBeni Lev CHAN_ENTRY 34114ee3e063SBeni Lev ), 34124ee3e063SBeni Lev TP_fast_assign( 34134ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 34144ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 34154ee3e063SBeni Lev ), 3416ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 34174ee3e063SBeni Lev ); 34184ee3e063SBeni Lev 34194ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 34204ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 34214ee3e063SBeni Lev TP_ARGS(pub) 34224ee3e063SBeni Lev ); 34234ee3e063SBeni Lev 34244ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 34254ee3e063SBeni Lev TP_PROTO(unsigned int ret), 34264ee3e063SBeni Lev TP_ARGS(ret), 34274ee3e063SBeni Lev TP_STRUCT__entry( 34284ee3e063SBeni Lev __field(unsigned int, ret) 34294ee3e063SBeni Lev ), 34304ee3e063SBeni Lev TP_fast_assign( 34314ee3e063SBeni Lev __entry->ret = ret; 34324ee3e063SBeni Lev ), 34334ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 34344ee3e063SBeni Lev ); 34354ee3e063SBeni Lev 34364ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 34374ee3e063SBeni Lev TP_PROTO(u32 ret), 34384ee3e063SBeni Lev TP_ARGS(ret), 34394ee3e063SBeni Lev TP_STRUCT__entry( 34404ee3e063SBeni Lev __field(u32, ret) 34414ee3e063SBeni Lev ), 34424ee3e063SBeni Lev TP_fast_assign( 34434ee3e063SBeni Lev __entry->ret = ret; 34444ee3e063SBeni Lev ), 34454ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 34464ee3e063SBeni Lev ); 34474ee3e063SBeni Lev 3448cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3449cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3450cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3451cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3452cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3453cd8f7cb4SJohannes Berg WIPHY_ENTRY 3454cd8f7cb4SJohannes Berg WDEV_ENTRY 3455a92eecbbSJohannes Berg __field(bool, non_wireless) 3456cd8f7cb4SJohannes Berg __field(bool, disconnect) 3457cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3458cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3459cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3460cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3461cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3462cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3463cd8f7cb4SJohannes Berg __field(u32, packet_len) 3464a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3465a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3466cd8f7cb4SJohannes Berg ), 3467cd8f7cb4SJohannes Berg TP_fast_assign( 3468cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3469cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3470a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3471a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3472a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3473a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3474a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3475a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3476a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3477a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3478a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3479a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3480cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3481cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3482cd8f7cb4SJohannes Berg ), 3483cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3484cd8f7cb4SJohannes Berg ); 3485cd8f7cb4SJohannes Berg 3486355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3487355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3488355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3489355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3490355199e0SJouni Malinen TP_STRUCT__entry( 3491355199e0SJouni Malinen WIPHY_ENTRY 3492355199e0SJouni Malinen NETDEV_ENTRY 3493355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3494355199e0SJouni Malinen MAC_ENTRY(target_ap) 3495355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3496355199e0SJouni Malinen ), 3497355199e0SJouni Malinen TP_fast_assign( 3498355199e0SJouni Malinen WIPHY_ASSIGN; 3499355199e0SJouni Malinen NETDEV_ASSIGN; 3500355199e0SJouni Malinen if (ft_event->ies) 3501355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3502355199e0SJouni Malinen ft_event->ies_len); 3503355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3504355199e0SJouni Malinen if (ft_event->ric_ies) 3505355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3506355199e0SJouni Malinen ft_event->ric_ies_len); 3507355199e0SJouni Malinen ), 3508355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 3509355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 3510355199e0SJouni Malinen ); 3511355199e0SJouni Malinen 3512f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3513f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3514f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3515f04c2203SMichal Kazior TP_STRUCT__entry( 3516f04c2203SMichal Kazior WIPHY_ENTRY 3517f04c2203SMichal Kazior WDEV_ENTRY 3518f04c2203SMichal Kazior ), 3519f04c2203SMichal Kazior TP_fast_assign( 3520f04c2203SMichal Kazior WIPHY_ASSIGN; 3521f04c2203SMichal Kazior WDEV_ASSIGN; 3522f04c2203SMichal Kazior ), 3523f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3524f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3525f04c2203SMichal Kazior ); 35269bb7e0f2SJohannes Berg 35279bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 35289bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 35299bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 35309bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 35319bb7e0f2SJohannes Berg TP_STRUCT__entry( 35329bb7e0f2SJohannes Berg WIPHY_ENTRY 35339bb7e0f2SJohannes Berg WDEV_ENTRY 35349bb7e0f2SJohannes Berg __field(u64, cookie) 35359bb7e0f2SJohannes Berg MAC_ENTRY(addr) 35369bb7e0f2SJohannes Berg ), 35379bb7e0f2SJohannes Berg TP_fast_assign( 35389bb7e0f2SJohannes Berg WIPHY_ASSIGN; 35399bb7e0f2SJohannes Berg WDEV_ASSIGN; 35409bb7e0f2SJohannes Berg __entry->cookie = cookie; 35419bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 35429bb7e0f2SJohannes Berg ), 35439bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT, 35449bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 35459bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 35469bb7e0f2SJohannes Berg MAC_PR_ARG(addr)) 35479bb7e0f2SJohannes Berg ); 35489bb7e0f2SJohannes Berg 35499bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 35509bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 35519bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 35529bb7e0f2SJohannes Berg TP_STRUCT__entry( 35539bb7e0f2SJohannes Berg WIPHY_ENTRY 35549bb7e0f2SJohannes Berg WDEV_ENTRY 35559bb7e0f2SJohannes Berg __field(u64, cookie) 35569bb7e0f2SJohannes Berg ), 35579bb7e0f2SJohannes Berg TP_fast_assign( 35589bb7e0f2SJohannes Berg WIPHY_ASSIGN; 35599bb7e0f2SJohannes Berg WDEV_ASSIGN; 35609bb7e0f2SJohannes Berg __entry->cookie = cookie; 35619bb7e0f2SJohannes Berg ), 35629bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 35639bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 35649bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 35659bb7e0f2SJohannes Berg ); 3566cb74e977SSunil Dutt 3567cb74e977SSunil Dutt TRACE_EVENT(rdev_update_owe_info, 3568cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3569cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3570cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3571cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3572cb74e977SSunil Dutt NETDEV_ENTRY 3573cb74e977SSunil Dutt MAC_ENTRY(peer) 3574cb74e977SSunil Dutt __field(u16, status) 3575cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3576cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3577cb74e977SSunil Dutt NETDEV_ASSIGN; 3578cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3579cb74e977SSunil Dutt __entry->status = owe_info->status; 3580cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), 3581cb74e977SSunil Dutt owe_info->ie, owe_info->ie_len);), 3582cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT 3583cb74e977SSunil Dutt " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 3584cb74e977SSunil Dutt __entry->status) 3585cb74e977SSunil Dutt ); 3586cb74e977SSunil Dutt 3587cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3588cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3589cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3590cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3591cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3592cb74e977SSunil Dutt NETDEV_ENTRY 3593cb74e977SSunil Dutt MAC_ENTRY(peer) 3594cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3595cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3596cb74e977SSunil Dutt NETDEV_ASSIGN; 3597cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3598cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 3599cb74e977SSunil Dutt owe_info->ie_len);), 3600cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 3601cb74e977SSunil Dutt WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 3602cb74e977SSunil Dutt ); 3603cb74e977SSunil Dutt 36045ab92e7fSRajkumar Manoharan TRACE_EVENT(rdev_probe_mesh_link, 36055ab92e7fSRajkumar Manoharan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 36065ab92e7fSRajkumar Manoharan const u8 *dest, const u8 *buf, size_t len), 36075ab92e7fSRajkumar Manoharan TP_ARGS(wiphy, netdev, dest, buf, len), 36085ab92e7fSRajkumar Manoharan TP_STRUCT__entry( 36095ab92e7fSRajkumar Manoharan WIPHY_ENTRY 36105ab92e7fSRajkumar Manoharan NETDEV_ENTRY 36115ab92e7fSRajkumar Manoharan MAC_ENTRY(dest) 36125ab92e7fSRajkumar Manoharan ), 36135ab92e7fSRajkumar Manoharan TP_fast_assign( 36145ab92e7fSRajkumar Manoharan WIPHY_ASSIGN; 36155ab92e7fSRajkumar Manoharan NETDEV_ASSIGN; 36165ab92e7fSRajkumar Manoharan MAC_ASSIGN(dest, dest); 36175ab92e7fSRajkumar Manoharan ), 36185ab92e7fSRajkumar Manoharan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 36195ab92e7fSRajkumar Manoharan WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest)) 36205ab92e7fSRajkumar Manoharan ); 36215ab92e7fSRajkumar Manoharan 362277f576deSTamizh chelvam TRACE_EVENT(rdev_set_tid_config, 362377f576deSTamizh chelvam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 36243710a8a6SJohannes Berg struct cfg80211_tid_config *tid_conf), 362577f576deSTamizh chelvam TP_ARGS(wiphy, netdev, tid_conf), 362677f576deSTamizh chelvam TP_STRUCT__entry( 362777f576deSTamizh chelvam WIPHY_ENTRY 362877f576deSTamizh chelvam NETDEV_ENTRY 362977f576deSTamizh chelvam MAC_ENTRY(peer) 363077f576deSTamizh chelvam ), 363177f576deSTamizh chelvam TP_fast_assign( 363277f576deSTamizh chelvam WIPHY_ASSIGN; 363377f576deSTamizh chelvam NETDEV_ASSIGN; 363477f576deSTamizh chelvam MAC_ASSIGN(peer, tid_conf->peer); 363577f576deSTamizh chelvam ), 363677f576deSTamizh chelvam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 363777f576deSTamizh chelvam WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 363877f576deSTamizh chelvam ); 363977f576deSTamizh chelvam 364077f576deSTamizh chelvam TRACE_EVENT(rdev_reset_tid_config, 364177f576deSTamizh chelvam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 36423710a8a6SJohannes Berg const u8 *peer, u8 tids), 36433710a8a6SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 364477f576deSTamizh chelvam TP_STRUCT__entry( 364577f576deSTamizh chelvam WIPHY_ENTRY 364677f576deSTamizh chelvam NETDEV_ENTRY 364777f576deSTamizh chelvam MAC_ENTRY(peer) 36483710a8a6SJohannes Berg __field(u8, tids) 364977f576deSTamizh chelvam ), 365077f576deSTamizh chelvam TP_fast_assign( 365177f576deSTamizh chelvam WIPHY_ASSIGN; 365277f576deSTamizh chelvam NETDEV_ASSIGN; 365377f576deSTamizh chelvam MAC_ASSIGN(peer, peer); 36543710a8a6SJohannes Berg __entry->tids = tids; 365577f576deSTamizh chelvam ), 36563710a8a6SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x", 36573710a8a6SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids) 365877f576deSTamizh chelvam ); 36596bdb68ceSCarl Huang 36606bdb68ceSCarl Huang TRACE_EVENT(rdev_set_sar_specs, 36616bdb68ceSCarl Huang TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 36626bdb68ceSCarl Huang TP_ARGS(wiphy, sar), 36636bdb68ceSCarl Huang TP_STRUCT__entry( 36646bdb68ceSCarl Huang WIPHY_ENTRY 36656bdb68ceSCarl Huang __field(u16, type) 36666bdb68ceSCarl Huang __field(u16, num) 36676bdb68ceSCarl Huang ), 36686bdb68ceSCarl Huang TP_fast_assign( 36696bdb68ceSCarl Huang WIPHY_ASSIGN; 36706bdb68ceSCarl Huang __entry->type = sar->type; 36716bdb68ceSCarl Huang __entry->num = sar->num_sub_specs; 36726bdb68ceSCarl Huang 36736bdb68ceSCarl Huang ), 36746bdb68ceSCarl Huang TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 36756bdb68ceSCarl Huang WIPHY_PR_ARG, __entry->type, __entry->num) 36766bdb68ceSCarl Huang ); 36776bdb68ceSCarl Huang 36780d2ab3aeSJohn Crispin TRACE_EVENT(rdev_color_change, 36790d2ab3aeSJohn Crispin TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 36800d2ab3aeSJohn Crispin struct cfg80211_color_change_settings *params), 36810d2ab3aeSJohn Crispin TP_ARGS(wiphy, netdev, params), 36820d2ab3aeSJohn Crispin TP_STRUCT__entry( 36830d2ab3aeSJohn Crispin WIPHY_ENTRY 36840d2ab3aeSJohn Crispin NETDEV_ENTRY 36850d2ab3aeSJohn Crispin __field(u8, count) 36860d2ab3aeSJohn Crispin __field(u16, bcn_ofs) 36870d2ab3aeSJohn Crispin __field(u16, pres_ofs) 36880d2ab3aeSJohn Crispin ), 36890d2ab3aeSJohn Crispin TP_fast_assign( 36900d2ab3aeSJohn Crispin WIPHY_ASSIGN; 36910d2ab3aeSJohn Crispin NETDEV_ASSIGN; 36920d2ab3aeSJohn Crispin __entry->count = params->count; 36930d2ab3aeSJohn Crispin __entry->bcn_ofs = params->counter_offset_beacon; 36940d2ab3aeSJohn Crispin __entry->pres_ofs = params->counter_offset_presp; 36950d2ab3aeSJohn Crispin ), 36960d2ab3aeSJohn Crispin TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 36970d2ab3aeSJohn Crispin ", count: %u", 36980d2ab3aeSJohn Crispin WIPHY_PR_ARG, NETDEV_PR_ARG, 36990d2ab3aeSJohn Crispin __entry->count) 37000d2ab3aeSJohn Crispin ); 37010d2ab3aeSJohn Crispin 37020d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 37030d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 37040d2ab3aeSJohn Crispin enum nl80211_commands cmd, 37050d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 37060d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 37070d2ab3aeSJohn Crispin TP_STRUCT__entry( 37080d2ab3aeSJohn Crispin NETDEV_ENTRY 3709c448f0fdSJohannes Berg __field(u32, cmd) 37100d2ab3aeSJohn Crispin __field(u8, count) 37110d2ab3aeSJohn Crispin __field(u64, color_bitmap) 37120d2ab3aeSJohn Crispin ), 37130d2ab3aeSJohn Crispin TP_fast_assign( 37140d2ab3aeSJohn Crispin NETDEV_ASSIGN; 37150d2ab3aeSJohn Crispin __entry->cmd = cmd; 37160d2ab3aeSJohn Crispin __entry->count = count; 37170d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 37180d2ab3aeSJohn Crispin ), 37190d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 37200d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 37210d2ab3aeSJohn Crispin __entry->color_bitmap) 37220d2ab3aeSJohn Crispin ); 37230d2ab3aeSJohn Crispin 3724a95bfb87SLorenzo Bianconi TRACE_EVENT(rdev_set_radar_background, 3725bc2dfc02SLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 3726bc2dfc02SLorenzo Bianconi 3727bc2dfc02SLorenzo Bianconi TP_ARGS(wiphy, chandef), 3728bc2dfc02SLorenzo Bianconi 3729bc2dfc02SLorenzo Bianconi TP_STRUCT__entry( 3730bc2dfc02SLorenzo Bianconi WIPHY_ENTRY 3731bc2dfc02SLorenzo Bianconi CHAN_DEF_ENTRY 3732bc2dfc02SLorenzo Bianconi ), 3733bc2dfc02SLorenzo Bianconi 3734bc2dfc02SLorenzo Bianconi TP_fast_assign( 3735bc2dfc02SLorenzo Bianconi WIPHY_ASSIGN; 3736bc2dfc02SLorenzo Bianconi CHAN_DEF_ASSIGN(chandef) 3737bc2dfc02SLorenzo Bianconi ), 3738bc2dfc02SLorenzo Bianconi 3739bc2dfc02SLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 3740bc2dfc02SLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 3741bc2dfc02SLorenzo Bianconi ); 3742bc2dfc02SLorenzo Bianconi 3743a083ee8aSIlan Peer TRACE_EVENT(cfg80211_assoc_comeback, 3744a083ee8aSIlan Peer TP_PROTO(struct wireless_dev *wdev, const u8 *bssid, u32 timeout), 3745a083ee8aSIlan Peer TP_ARGS(wdev, bssid, timeout), 3746a083ee8aSIlan Peer TP_STRUCT__entry( 3747a083ee8aSIlan Peer WDEV_ENTRY 3748a083ee8aSIlan Peer MAC_ENTRY(bssid) 3749a083ee8aSIlan Peer __field(u32, timeout) 3750a083ee8aSIlan Peer ), 3751a083ee8aSIlan Peer TP_fast_assign( 3752a083ee8aSIlan Peer WDEV_ASSIGN; 3753a083ee8aSIlan Peer MAC_ASSIGN(bssid, bssid); 3754a083ee8aSIlan Peer __entry->timeout = timeout; 3755a083ee8aSIlan Peer ), 3756a083ee8aSIlan Peer TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs", 3757a083ee8aSIlan Peer WDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->timeout) 3758a083ee8aSIlan Peer ); 3759a083ee8aSIlan Peer 376014e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 376114e8a3c4SBeni Lev 376214e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 376314e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 376414e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 376514e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 376614e8a3c4SBeni Lev #include <trace/define_trace.h> 3767