1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 214e8a3c4SBeni Lev #undef TRACE_SYSTEM 314e8a3c4SBeni Lev #define TRACE_SYSTEM cfg80211 414e8a3c4SBeni Lev 514e8a3c4SBeni Lev #if !defined(__RDEV_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ) 614e8a3c4SBeni Lev #define __RDEV_OPS_TRACE 714e8a3c4SBeni Lev 814e8a3c4SBeni Lev #include <linux/tracepoint.h> 914e8a3c4SBeni Lev 1014e8a3c4SBeni Lev #include <linux/rtnetlink.h> 11d2beae10SJoe Perches #include <linux/etherdevice.h> 1214e8a3c4SBeni Lev #include <net/cfg80211.h> 1314e8a3c4SBeni Lev #include "core.h" 1414e8a3c4SBeni Lev 1514e8a3c4SBeni Lev #define MAC_ENTRY(entry_mac) __array(u8, entry_mac, ETH_ALEN) 1614e8a3c4SBeni Lev #define MAC_ASSIGN(entry_mac, given_mac) do { \ 1714e8a3c4SBeni Lev if (given_mac) \ 1814e8a3c4SBeni Lev memcpy(__entry->entry_mac, given_mac, ETH_ALEN); \ 1914e8a3c4SBeni Lev else \ 20d2beae10SJoe Perches eth_zero_addr(__entry->entry_mac); \ 2114e8a3c4SBeni Lev } while (0) 2214e8a3c4SBeni Lev #define MAC_PR_FMT "%pM" 2314e8a3c4SBeni Lev #define MAC_PR_ARG(entry_mac) (__entry->entry_mac) 2414e8a3c4SBeni Lev 25ec816087SJohannes Berg #define MAXNAME 32 26ec816087SJohannes Berg #define WIPHY_ENTRY __array(char, wiphy_name, 32) 27ec816087SJohannes Berg #define WIPHY_ASSIGN strlcpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME) 28ec816087SJohannes Berg #define WIPHY_PR_FMT "%s" 29ec816087SJohannes Berg #define WIPHY_PR_ARG __entry->wiphy_name 3014e8a3c4SBeni Lev 3114e8a3c4SBeni Lev #define WDEV_ENTRY __field(u32, id) 32ce1eaddaSJohannes Berg #define WDEV_ASSIGN (__entry->id) = (!IS_ERR_OR_NULL(wdev) \ 33ce1eaddaSJohannes Berg ? wdev->identifier : 0) 34ec816087SJohannes Berg #define WDEV_PR_FMT "wdev(%u)" 3514e8a3c4SBeni Lev #define WDEV_PR_ARG (__entry->id) 3614e8a3c4SBeni Lev 3714e8a3c4SBeni Lev #define NETDEV_ENTRY __array(char, name, IFNAMSIZ) \ 3814e8a3c4SBeni Lev __field(int, ifindex) 3914e8a3c4SBeni Lev #define NETDEV_ASSIGN \ 4014e8a3c4SBeni Lev do { \ 4114e8a3c4SBeni Lev memcpy(__entry->name, netdev->name, IFNAMSIZ); \ 4214e8a3c4SBeni Lev (__entry->ifindex) = (netdev->ifindex); \ 4314e8a3c4SBeni Lev } while (0) 44ec816087SJohannes Berg #define NETDEV_PR_FMT "netdev:%s(%d)" 45ec816087SJohannes Berg #define NETDEV_PR_ARG __entry->name, __entry->ifindex 4614e8a3c4SBeni Lev 4714e8a3c4SBeni Lev #define MESH_CFG_ENTRY __field(u16, dot11MeshRetryTimeout) \ 4814e8a3c4SBeni Lev __field(u16, dot11MeshConfirmTimeout) \ 4914e8a3c4SBeni Lev __field(u16, dot11MeshHoldingTimeout) \ 5014e8a3c4SBeni Lev __field(u16, dot11MeshMaxPeerLinks) \ 5114e8a3c4SBeni Lev __field(u8, dot11MeshMaxRetries) \ 5214e8a3c4SBeni Lev __field(u8, dot11MeshTTL) \ 5314e8a3c4SBeni Lev __field(u8, element_ttl) \ 5414e8a3c4SBeni Lev __field(bool, auto_open_plinks) \ 5514e8a3c4SBeni Lev __field(u32, dot11MeshNbrOffsetMaxNeighbor) \ 5614e8a3c4SBeni Lev __field(u8, dot11MeshHWMPmaxPREQretries) \ 5714e8a3c4SBeni Lev __field(u32, path_refresh_time) \ 5814e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathTimeout) \ 5914e8a3c4SBeni Lev __field(u16, min_discovery_timeout) \ 6014e8a3c4SBeni Lev __field(u16, dot11MeshHWMPpreqMinInterval) \ 6114e8a3c4SBeni Lev __field(u16, dot11MeshHWMPperrMinInterval) \ 6214e8a3c4SBeni Lev __field(u16, dot11MeshHWMPnetDiameterTraversalTime) \ 6314e8a3c4SBeni Lev __field(u8, dot11MeshHWMPRootMode) \ 6414e8a3c4SBeni Lev __field(u16, dot11MeshHWMPRannInterval) \ 6514e8a3c4SBeni Lev __field(bool, dot11MeshGateAnnouncementProtocol) \ 6614e8a3c4SBeni Lev __field(bool, dot11MeshForwarding) \ 6714e8a3c4SBeni Lev __field(s32, rssi_threshold) \ 6814e8a3c4SBeni Lev __field(u16, ht_opmode) \ 6914e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathToRootTimeout) \ 7014e8a3c4SBeni Lev __field(u16, dot11MeshHWMProotInterval) \ 71e3718a61SLinus Lüssing __field(u16, dot11MeshHWMPconfirmationInterval) \ 72e3718a61SLinus Lüssing __field(bool, dot11MeshNolearn) 7314e8a3c4SBeni Lev #define MESH_CFG_ASSIGN \ 7414e8a3c4SBeni Lev do { \ 7514e8a3c4SBeni Lev __entry->dot11MeshRetryTimeout = conf->dot11MeshRetryTimeout; \ 7614e8a3c4SBeni Lev __entry->dot11MeshConfirmTimeout = \ 7714e8a3c4SBeni Lev conf->dot11MeshConfirmTimeout; \ 7814e8a3c4SBeni Lev __entry->dot11MeshHoldingTimeout = \ 7914e8a3c4SBeni Lev conf->dot11MeshHoldingTimeout; \ 8014e8a3c4SBeni Lev __entry->dot11MeshMaxPeerLinks = conf->dot11MeshMaxPeerLinks; \ 8114e8a3c4SBeni Lev __entry->dot11MeshMaxRetries = conf->dot11MeshMaxRetries; \ 8214e8a3c4SBeni Lev __entry->dot11MeshTTL = conf->dot11MeshTTL; \ 8314e8a3c4SBeni Lev __entry->element_ttl = conf->element_ttl; \ 8414e8a3c4SBeni Lev __entry->auto_open_plinks = conf->auto_open_plinks; \ 8514e8a3c4SBeni Lev __entry->dot11MeshNbrOffsetMaxNeighbor = \ 8614e8a3c4SBeni Lev conf->dot11MeshNbrOffsetMaxNeighbor; \ 8714e8a3c4SBeni Lev __entry->dot11MeshHWMPmaxPREQretries = \ 8814e8a3c4SBeni Lev conf->dot11MeshHWMPmaxPREQretries; \ 8914e8a3c4SBeni Lev __entry->path_refresh_time = conf->path_refresh_time; \ 9014e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathTimeout = \ 9114e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathTimeout; \ 9214e8a3c4SBeni Lev __entry->min_discovery_timeout = conf->min_discovery_timeout; \ 9314e8a3c4SBeni Lev __entry->dot11MeshHWMPpreqMinInterval = \ 9414e8a3c4SBeni Lev conf->dot11MeshHWMPpreqMinInterval; \ 9514e8a3c4SBeni Lev __entry->dot11MeshHWMPperrMinInterval = \ 9614e8a3c4SBeni Lev conf->dot11MeshHWMPperrMinInterval; \ 9714e8a3c4SBeni Lev __entry->dot11MeshHWMPnetDiameterTraversalTime = \ 9814e8a3c4SBeni Lev conf->dot11MeshHWMPnetDiameterTraversalTime; \ 9914e8a3c4SBeni Lev __entry->dot11MeshHWMPRootMode = conf->dot11MeshHWMPRootMode; \ 10014e8a3c4SBeni Lev __entry->dot11MeshHWMPRannInterval = \ 10114e8a3c4SBeni Lev conf->dot11MeshHWMPRannInterval; \ 10214e8a3c4SBeni Lev __entry->dot11MeshGateAnnouncementProtocol = \ 10314e8a3c4SBeni Lev conf->dot11MeshGateAnnouncementProtocol; \ 10414e8a3c4SBeni Lev __entry->dot11MeshForwarding = conf->dot11MeshForwarding; \ 10514e8a3c4SBeni Lev __entry->rssi_threshold = conf->rssi_threshold; \ 10614e8a3c4SBeni Lev __entry->ht_opmode = conf->ht_opmode; \ 10714e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathToRootTimeout = \ 10814e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathToRootTimeout; \ 10914e8a3c4SBeni Lev __entry->dot11MeshHWMProotInterval = \ 11014e8a3c4SBeni Lev conf->dot11MeshHWMProotInterval; \ 11114e8a3c4SBeni Lev __entry->dot11MeshHWMPconfirmationInterval = \ 11214e8a3c4SBeni Lev conf->dot11MeshHWMPconfirmationInterval; \ 113e3718a61SLinus Lüssing __entry->dot11MeshNolearn = conf->dot11MeshNolearn; \ 11414e8a3c4SBeni Lev } while (0) 11514e8a3c4SBeni Lev 11657fbcce3SJohannes Berg #define CHAN_ENTRY __field(enum nl80211_band, band) \ 117934f4c7dSThomas Pedersen __field(u32, center_freq) \ 118934f4c7dSThomas Pedersen __field(u16, freq_offset) 11914e8a3c4SBeni Lev #define CHAN_ASSIGN(chan) \ 12014e8a3c4SBeni Lev do { \ 12114e8a3c4SBeni Lev if (chan) { \ 12214e8a3c4SBeni Lev __entry->band = chan->band; \ 12314e8a3c4SBeni Lev __entry->center_freq = chan->center_freq; \ 124934f4c7dSThomas Pedersen __entry->freq_offset = chan->freq_offset; \ 12514e8a3c4SBeni Lev } else { \ 12614e8a3c4SBeni Lev __entry->band = 0; \ 12714e8a3c4SBeni Lev __entry->center_freq = 0; \ 128934f4c7dSThomas Pedersen __entry->freq_offset = 0; \ 12914e8a3c4SBeni Lev } \ 13014e8a3c4SBeni Lev } while (0) 131934f4c7dSThomas Pedersen #define CHAN_PR_FMT "band: %d, freq: %u.%03u" 132934f4c7dSThomas Pedersen #define CHAN_PR_ARG __entry->band, __entry->center_freq, __entry->freq_offset 13314e8a3c4SBeni Lev 13457fbcce3SJohannes Berg #define CHAN_DEF_ENTRY __field(enum nl80211_band, band) \ 1353d9d1d66SJohannes Berg __field(u32, control_freq) \ 136934f4c7dSThomas Pedersen __field(u32, freq_offset) \ 1373d9d1d66SJohannes Berg __field(u32, width) \ 1383d9d1d66SJohannes Berg __field(u32, center_freq1) \ 139934f4c7dSThomas Pedersen __field(u32, freq1_offset) \ 1403d9d1d66SJohannes Berg __field(u32, center_freq2) 141683b6d3bSJohannes Berg #define CHAN_DEF_ASSIGN(chandef) \ 142683b6d3bSJohannes Berg do { \ 143683b6d3bSJohannes Berg if ((chandef) && (chandef)->chan) { \ 144683b6d3bSJohannes Berg __entry->band = (chandef)->chan->band; \ 1453d9d1d66SJohannes Berg __entry->control_freq = \ 146683b6d3bSJohannes Berg (chandef)->chan->center_freq; \ 147934f4c7dSThomas Pedersen __entry->freq_offset = \ 148934f4c7dSThomas Pedersen (chandef)->chan->freq_offset; \ 1493d9d1d66SJohannes Berg __entry->width = (chandef)->width; \ 1503d9d1d66SJohannes Berg __entry->center_freq1 = (chandef)->center_freq1;\ 151934f4c7dSThomas Pedersen __entry->freq1_offset = (chandef)->freq1_offset;\ 1523d9d1d66SJohannes Berg __entry->center_freq2 = (chandef)->center_freq2;\ 153683b6d3bSJohannes Berg } else { \ 154683b6d3bSJohannes Berg __entry->band = 0; \ 1553d9d1d66SJohannes Berg __entry->control_freq = 0; \ 156934f4c7dSThomas Pedersen __entry->freq_offset = 0; \ 1573d9d1d66SJohannes Berg __entry->width = 0; \ 1583d9d1d66SJohannes Berg __entry->center_freq1 = 0; \ 159934f4c7dSThomas Pedersen __entry->freq1_offset = 0; \ 1603d9d1d66SJohannes Berg __entry->center_freq2 = 0; \ 161683b6d3bSJohannes Berg } \ 162683b6d3bSJohannes Berg } while (0) 1633d9d1d66SJohannes Berg #define CHAN_DEF_PR_FMT \ 164934f4c7dSThomas Pedersen "band: %d, control freq: %u.%03u, width: %d, cf1: %u.%03u, cf2: %u" 1653d9d1d66SJohannes Berg #define CHAN_DEF_PR_ARG __entry->band, __entry->control_freq, \ 166934f4c7dSThomas Pedersen __entry->freq_offset, __entry->width, \ 167934f4c7dSThomas Pedersen __entry->center_freq1, __entry->freq1_offset, \ 1683d9d1d66SJohannes Berg __entry->center_freq2 169683b6d3bSJohannes Berg 170e306784aSSubrat Mishra #define FILS_AAD_ASSIGN(fa) \ 171e306784aSSubrat Mishra do { \ 172e306784aSSubrat Mishra if (fa) { \ 173e306784aSSubrat Mishra ether_addr_copy(__entry->macaddr, fa->macaddr); \ 174e306784aSSubrat Mishra __entry->kek_len = fa->kek_len; \ 175e306784aSSubrat Mishra } else { \ 176e306784aSSubrat Mishra eth_zero_addr(__entry->macaddr); \ 177e306784aSSubrat Mishra __entry->kek_len = 0; \ 178e306784aSSubrat Mishra } \ 179e306784aSSubrat Mishra } while (0) 180e306784aSSubrat Mishra #define FILS_AAD_PR_FMT \ 181e306784aSSubrat Mishra "macaddr: %pM, kek_len: %d" 182e306784aSSubrat Mishra 18314e8a3c4SBeni Lev #define SINFO_ENTRY __field(int, generation) \ 18414e8a3c4SBeni Lev __field(u32, connected_time) \ 18514e8a3c4SBeni Lev __field(u32, inactive_time) \ 18614e8a3c4SBeni Lev __field(u32, rx_bytes) \ 18714e8a3c4SBeni Lev __field(u32, tx_bytes) \ 18814e8a3c4SBeni Lev __field(u32, rx_packets) \ 18914e8a3c4SBeni Lev __field(u32, tx_packets) \ 19014e8a3c4SBeni Lev __field(u32, tx_retries) \ 19114e8a3c4SBeni Lev __field(u32, tx_failed) \ 19214e8a3c4SBeni Lev __field(u32, rx_dropped_misc) \ 19314e8a3c4SBeni Lev __field(u32, beacon_loss_count) \ 19414e8a3c4SBeni Lev __field(u16, llid) \ 19514e8a3c4SBeni Lev __field(u16, plid) \ 19614e8a3c4SBeni Lev __field(u8, plink_state) 19714e8a3c4SBeni Lev #define SINFO_ASSIGN \ 19814e8a3c4SBeni Lev do { \ 19914e8a3c4SBeni Lev __entry->generation = sinfo->generation; \ 20014e8a3c4SBeni Lev __entry->connected_time = sinfo->connected_time; \ 20114e8a3c4SBeni Lev __entry->inactive_time = sinfo->inactive_time; \ 20214e8a3c4SBeni Lev __entry->rx_bytes = sinfo->rx_bytes; \ 20314e8a3c4SBeni Lev __entry->tx_bytes = sinfo->tx_bytes; \ 20414e8a3c4SBeni Lev __entry->rx_packets = sinfo->rx_packets; \ 20514e8a3c4SBeni Lev __entry->tx_packets = sinfo->tx_packets; \ 20614e8a3c4SBeni Lev __entry->tx_retries = sinfo->tx_retries; \ 20714e8a3c4SBeni Lev __entry->tx_failed = sinfo->tx_failed; \ 20814e8a3c4SBeni Lev __entry->rx_dropped_misc = sinfo->rx_dropped_misc; \ 20914e8a3c4SBeni Lev __entry->beacon_loss_count = sinfo->beacon_loss_count; \ 21014e8a3c4SBeni Lev __entry->llid = sinfo->llid; \ 21114e8a3c4SBeni Lev __entry->plid = sinfo->plid; \ 21214e8a3c4SBeni Lev __entry->plink_state = sinfo->plink_state; \ 21314e8a3c4SBeni Lev } while (0) 21414e8a3c4SBeni Lev 21514e8a3c4SBeni Lev #define BOOL_TO_STR(bo) (bo) ? "true" : "false" 21614e8a3c4SBeni Lev 217fa9ffc74SKyeyoon Park #define QOS_MAP_ENTRY __field(u8, num_des) \ 218fa9ffc74SKyeyoon Park __array(u8, dscp_exception, \ 219fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX) \ 220fa9ffc74SKyeyoon Park __array(u8, up, IEEE80211_QOS_MAP_LEN_MIN) 221fa9ffc74SKyeyoon Park #define QOS_MAP_ASSIGN(qos_map) \ 222fa9ffc74SKyeyoon Park do { \ 223fa9ffc74SKyeyoon Park if ((qos_map)) { \ 224fa9ffc74SKyeyoon Park __entry->num_des = (qos_map)->num_des; \ 225fa9ffc74SKyeyoon Park memcpy(__entry->dscp_exception, \ 226fa9ffc74SKyeyoon Park &(qos_map)->dscp_exception, \ 227fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 228fa9ffc74SKyeyoon Park memcpy(__entry->up, &(qos_map)->up, \ 229fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 230fa9ffc74SKyeyoon Park } else { \ 231fa9ffc74SKyeyoon Park __entry->num_des = 0; \ 232fa9ffc74SKyeyoon Park memset(__entry->dscp_exception, 0, \ 233fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 234fa9ffc74SKyeyoon Park memset(__entry->up, 0, \ 235fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 236fa9ffc74SKyeyoon Park } \ 237fa9ffc74SKyeyoon Park } while (0) 238fa9ffc74SKyeyoon Park 23914e8a3c4SBeni Lev /************************************************************* 24014e8a3c4SBeni Lev * rdev->ops traces * 24114e8a3c4SBeni Lev *************************************************************/ 24214e8a3c4SBeni Lev 24314e8a3c4SBeni Lev TRACE_EVENT(rdev_suspend, 24414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_wowlan *wow), 24514e8a3c4SBeni Lev TP_ARGS(wiphy, wow), 24614e8a3c4SBeni Lev TP_STRUCT__entry( 24714e8a3c4SBeni Lev WIPHY_ENTRY 24814e8a3c4SBeni Lev __field(bool, any) 24914e8a3c4SBeni Lev __field(bool, disconnect) 25014e8a3c4SBeni Lev __field(bool, magic_pkt) 25114e8a3c4SBeni Lev __field(bool, gtk_rekey_failure) 25214e8a3c4SBeni Lev __field(bool, eap_identity_req) 25314e8a3c4SBeni Lev __field(bool, four_way_handshake) 25414e8a3c4SBeni Lev __field(bool, rfkill_release) 25514e8a3c4SBeni Lev __field(bool, valid_wow) 25614e8a3c4SBeni Lev ), 25714e8a3c4SBeni Lev TP_fast_assign( 25814e8a3c4SBeni Lev WIPHY_ASSIGN; 25914e8a3c4SBeni Lev if (wow) { 26014e8a3c4SBeni Lev __entry->any = wow->any; 26114e8a3c4SBeni Lev __entry->disconnect = wow->disconnect; 26214e8a3c4SBeni Lev __entry->magic_pkt = wow->magic_pkt; 26314e8a3c4SBeni Lev __entry->gtk_rekey_failure = wow->gtk_rekey_failure; 26414e8a3c4SBeni Lev __entry->eap_identity_req = wow->eap_identity_req; 26514e8a3c4SBeni Lev __entry->four_way_handshake = wow->four_way_handshake; 26614e8a3c4SBeni Lev __entry->rfkill_release = wow->rfkill_release; 26714e8a3c4SBeni Lev __entry->valid_wow = true; 26814e8a3c4SBeni Lev } else { 26914e8a3c4SBeni Lev __entry->valid_wow = false; 27014e8a3c4SBeni Lev } 27114e8a3c4SBeni Lev ), 27214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", wow%s - any: %d, disconnect: %d, " 27314e8a3c4SBeni Lev "magic pkt: %d, gtk rekey failure: %d, eap identify req: %d, " 27414e8a3c4SBeni Lev "four way handshake: %d, rfkill release: %d.", 27514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->valid_wow ? "" : "(Not configured!)", 27614e8a3c4SBeni Lev __entry->any, __entry->disconnect, __entry->magic_pkt, 27714e8a3c4SBeni Lev __entry->gtk_rekey_failure, __entry->eap_identity_req, 27814e8a3c4SBeni Lev __entry->four_way_handshake, __entry->rfkill_release) 27914e8a3c4SBeni Lev ); 28014e8a3c4SBeni Lev 28114e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int, 28214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret), 28314e8a3c4SBeni Lev TP_ARGS(wiphy, ret), 28414e8a3c4SBeni Lev TP_STRUCT__entry( 28514e8a3c4SBeni Lev WIPHY_ENTRY 28614e8a3c4SBeni Lev __field(int, ret) 28714e8a3c4SBeni Lev ), 28814e8a3c4SBeni Lev TP_fast_assign( 28914e8a3c4SBeni Lev WIPHY_ASSIGN; 29014e8a3c4SBeni Lev __entry->ret = ret; 29114e8a3c4SBeni Lev ), 29214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", WIPHY_PR_ARG, __entry->ret) 29314e8a3c4SBeni Lev ); 29414e8a3c4SBeni Lev 29514e8a3c4SBeni Lev TRACE_EVENT(rdev_scan, 29614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_scan_request *request), 29714e8a3c4SBeni Lev TP_ARGS(wiphy, request), 29814e8a3c4SBeni Lev TP_STRUCT__entry( 29914e8a3c4SBeni Lev WIPHY_ENTRY 30014e8a3c4SBeni Lev ), 30114e8a3c4SBeni Lev TP_fast_assign( 30214e8a3c4SBeni Lev WIPHY_ASSIGN; 30314e8a3c4SBeni Lev ), 30414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 30514e8a3c4SBeni Lev ); 30614e8a3c4SBeni Lev 30714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_only_evt, 30814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 30914e8a3c4SBeni Lev TP_ARGS(wiphy), 31014e8a3c4SBeni Lev TP_STRUCT__entry( 31114e8a3c4SBeni Lev WIPHY_ENTRY 31214e8a3c4SBeni Lev ), 31314e8a3c4SBeni Lev TP_fast_assign( 31414e8a3c4SBeni Lev WIPHY_ASSIGN; 31514e8a3c4SBeni Lev ), 31614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 31714e8a3c4SBeni Lev ); 31814e8a3c4SBeni Lev 31914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_resume, 32014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 32114e8a3c4SBeni Lev TP_ARGS(wiphy) 32214e8a3c4SBeni Lev ); 32314e8a3c4SBeni Lev 32414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_return_void, 32514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 32614e8a3c4SBeni Lev TP_ARGS(wiphy) 32714e8a3c4SBeni Lev ); 32814e8a3c4SBeni Lev 32914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_get_antenna, 33014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 33114e8a3c4SBeni Lev TP_ARGS(wiphy) 33214e8a3c4SBeni Lev ); 33314e8a3c4SBeni Lev 33414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_rfkill_poll, 33514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 33614e8a3c4SBeni Lev TP_ARGS(wiphy) 33714e8a3c4SBeni Lev ); 33814e8a3c4SBeni Lev 33914e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_enabled_evt, 34014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 34114e8a3c4SBeni Lev TP_ARGS(wiphy, enabled), 34214e8a3c4SBeni Lev TP_STRUCT__entry( 34314e8a3c4SBeni Lev WIPHY_ENTRY 34414e8a3c4SBeni Lev __field(bool, enabled) 34514e8a3c4SBeni Lev ), 34614e8a3c4SBeni Lev TP_fast_assign( 34714e8a3c4SBeni Lev WIPHY_ASSIGN; 34814e8a3c4SBeni Lev __entry->enabled = enabled; 34914e8a3c4SBeni Lev ), 35014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", %senabled ", 35114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->enabled ? "" : "not ") 35214e8a3c4SBeni Lev ); 35314e8a3c4SBeni Lev 35414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_enabled_evt, rdev_set_wakeup, 35514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 35614e8a3c4SBeni Lev TP_ARGS(wiphy, enabled) 35714e8a3c4SBeni Lev ); 35814e8a3c4SBeni Lev 35914e8a3c4SBeni Lev TRACE_EVENT(rdev_add_virtual_intf, 36014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, char *name, enum nl80211_iftype type), 36114e8a3c4SBeni Lev TP_ARGS(wiphy, name, type), 36214e8a3c4SBeni Lev TP_STRUCT__entry( 36314e8a3c4SBeni Lev WIPHY_ENTRY 36414e8a3c4SBeni Lev __string(vir_intf_name, name ? name : "<noname>") 36514e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 36614e8a3c4SBeni Lev ), 36714e8a3c4SBeni Lev TP_fast_assign( 36814e8a3c4SBeni Lev WIPHY_ASSIGN; 36914e8a3c4SBeni Lev __assign_str(vir_intf_name, name ? name : "<noname>"); 37014e8a3c4SBeni Lev __entry->type = type; 37114e8a3c4SBeni Lev ), 37214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d", 37314e8a3c4SBeni Lev WIPHY_PR_ARG, __get_str(vir_intf_name), __entry->type) 37414e8a3c4SBeni Lev ); 37514e8a3c4SBeni Lev 37614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_wdev_evt, 37714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 37814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev), 37914e8a3c4SBeni Lev TP_STRUCT__entry( 38014e8a3c4SBeni Lev WIPHY_ENTRY 38114e8a3c4SBeni Lev WDEV_ENTRY 38214e8a3c4SBeni Lev ), 38314e8a3c4SBeni Lev TP_fast_assign( 38414e8a3c4SBeni Lev WIPHY_ASSIGN; 38514e8a3c4SBeni Lev WDEV_ASSIGN; 38614e8a3c4SBeni Lev ), 387ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 38814e8a3c4SBeni Lev ); 38914e8a3c4SBeni Lev 3909bb7e0f2SJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_cookie_evt, 3919bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 3929bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 3939bb7e0f2SJohannes Berg TP_STRUCT__entry( 3949bb7e0f2SJohannes Berg WIPHY_ENTRY 3959bb7e0f2SJohannes Berg WDEV_ENTRY 3969bb7e0f2SJohannes Berg __field(u64, cookie) 3979bb7e0f2SJohannes Berg ), 3989bb7e0f2SJohannes Berg TP_fast_assign( 3999bb7e0f2SJohannes Berg WIPHY_ASSIGN; 4009bb7e0f2SJohannes Berg WDEV_ASSIGN; 4019bb7e0f2SJohannes Berg __entry->cookie = cookie; 4029bb7e0f2SJohannes Berg ), 4039bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %lld", 4049bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 4059bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 4069bb7e0f2SJohannes Berg ); 4079bb7e0f2SJohannes Berg 40814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_return_wdev, 40914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 41014e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 41114e8a3c4SBeni Lev ); 41214e8a3c4SBeni Lev 41314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_del_virtual_intf, 41414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 41514e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 41614e8a3c4SBeni Lev ); 41714e8a3c4SBeni Lev 41814e8a3c4SBeni Lev TRACE_EVENT(rdev_change_virtual_intf, 41914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 42014e8a3c4SBeni Lev enum nl80211_iftype type), 42114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, type), 42214e8a3c4SBeni Lev TP_STRUCT__entry( 42314e8a3c4SBeni Lev WIPHY_ENTRY 42414e8a3c4SBeni Lev NETDEV_ENTRY 42514e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 42614e8a3c4SBeni Lev ), 42714e8a3c4SBeni Lev TP_fast_assign( 42814e8a3c4SBeni Lev WIPHY_ASSIGN; 42914e8a3c4SBeni Lev NETDEV_ASSIGN; 43014e8a3c4SBeni Lev __entry->type = type; 43114e8a3c4SBeni Lev ), 432ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", type: %d", 43314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->type) 43414e8a3c4SBeni Lev ); 43514e8a3c4SBeni Lev 43614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(key_handle, 43714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 43814e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 43914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr), 44014e8a3c4SBeni Lev TP_STRUCT__entry( 44114e8a3c4SBeni Lev WIPHY_ENTRY 44214e8a3c4SBeni Lev NETDEV_ENTRY 44314e8a3c4SBeni Lev MAC_ENTRY(mac_addr) 44414e8a3c4SBeni Lev __field(u8, key_index) 44514e8a3c4SBeni Lev __field(bool, pairwise) 44614e8a3c4SBeni Lev ), 44714e8a3c4SBeni Lev TP_fast_assign( 44814e8a3c4SBeni Lev WIPHY_ASSIGN; 44914e8a3c4SBeni Lev NETDEV_ASSIGN; 45014e8a3c4SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 45114e8a3c4SBeni Lev __entry->key_index = key_index; 45214e8a3c4SBeni Lev __entry->pairwise = pairwise; 45314e8a3c4SBeni Lev ), 454ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT, 45514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 45614e8a3c4SBeni Lev BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr)) 45714e8a3c4SBeni Lev ); 45814e8a3c4SBeni Lev 45914e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_get_key, 46014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 46114e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 46214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 46314e8a3c4SBeni Lev ); 46414e8a3c4SBeni Lev 46514e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_del_key, 46614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 46714e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 46814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 46914e8a3c4SBeni Lev ); 47014e8a3c4SBeni Lev 4716cdd3979SAlexander Wetzel TRACE_EVENT(rdev_add_key, 4726cdd3979SAlexander Wetzel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 4736cdd3979SAlexander Wetzel bool pairwise, const u8 *mac_addr, u8 mode), 4746cdd3979SAlexander Wetzel TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr, mode), 4756cdd3979SAlexander Wetzel TP_STRUCT__entry( 4766cdd3979SAlexander Wetzel WIPHY_ENTRY 4776cdd3979SAlexander Wetzel NETDEV_ENTRY 4786cdd3979SAlexander Wetzel MAC_ENTRY(mac_addr) 4796cdd3979SAlexander Wetzel __field(u8, key_index) 4806cdd3979SAlexander Wetzel __field(bool, pairwise) 4816cdd3979SAlexander Wetzel __field(u8, mode) 4826cdd3979SAlexander Wetzel ), 4836cdd3979SAlexander Wetzel TP_fast_assign( 4846cdd3979SAlexander Wetzel WIPHY_ASSIGN; 4856cdd3979SAlexander Wetzel NETDEV_ASSIGN; 4866cdd3979SAlexander Wetzel MAC_ASSIGN(mac_addr, mac_addr); 4876cdd3979SAlexander Wetzel __entry->key_index = key_index; 4886cdd3979SAlexander Wetzel __entry->pairwise = pairwise; 4896cdd3979SAlexander Wetzel __entry->mode = mode; 4906cdd3979SAlexander Wetzel ), 4916cdd3979SAlexander Wetzel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, " 4926cdd3979SAlexander Wetzel "mode: %u, pairwise: %s, mac addr: " MAC_PR_FMT, 4936cdd3979SAlexander Wetzel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 4946cdd3979SAlexander Wetzel __entry->mode, BOOL_TO_STR(__entry->pairwise), 4956cdd3979SAlexander Wetzel MAC_PR_ARG(mac_addr)) 4966cdd3979SAlexander Wetzel ); 4976cdd3979SAlexander Wetzel 49814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_key, 49914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 50014e8a3c4SBeni Lev bool unicast, bool multicast), 50114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, unicast, multicast), 50214e8a3c4SBeni Lev TP_STRUCT__entry( 50314e8a3c4SBeni Lev WIPHY_ENTRY 50414e8a3c4SBeni Lev NETDEV_ENTRY 50514e8a3c4SBeni Lev __field(u8, key_index) 50614e8a3c4SBeni Lev __field(bool, unicast) 50714e8a3c4SBeni Lev __field(bool, multicast) 50814e8a3c4SBeni Lev ), 50914e8a3c4SBeni Lev TP_fast_assign( 51014e8a3c4SBeni Lev WIPHY_ASSIGN; 51114e8a3c4SBeni Lev NETDEV_ASSIGN; 51214e8a3c4SBeni Lev __entry->key_index = key_index; 51314e8a3c4SBeni Lev __entry->unicast = unicast; 51414e8a3c4SBeni Lev __entry->multicast = multicast; 51514e8a3c4SBeni Lev ), 516ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u, unicast: %s, multicast: %s", 51714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 51814e8a3c4SBeni Lev BOOL_TO_STR(__entry->unicast), 51914e8a3c4SBeni Lev BOOL_TO_STR(__entry->multicast)) 52014e8a3c4SBeni Lev ); 52114e8a3c4SBeni Lev 52214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_mgmt_key, 52314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index), 52414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index), 52514e8a3c4SBeni Lev TP_STRUCT__entry( 52614e8a3c4SBeni Lev WIPHY_ENTRY 52714e8a3c4SBeni Lev NETDEV_ENTRY 52814e8a3c4SBeni Lev __field(u8, key_index) 52914e8a3c4SBeni Lev ), 53014e8a3c4SBeni Lev TP_fast_assign( 53114e8a3c4SBeni Lev WIPHY_ASSIGN; 53214e8a3c4SBeni Lev NETDEV_ASSIGN; 53314e8a3c4SBeni Lev __entry->key_index = key_index; 53414e8a3c4SBeni Lev ), 535ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u", 53614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index) 53714e8a3c4SBeni Lev ); 53814e8a3c4SBeni Lev 53956be393fSJouni Malinen TRACE_EVENT(rdev_set_default_beacon_key, 54056be393fSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index), 54156be393fSJouni Malinen TP_ARGS(wiphy, netdev, key_index), 54256be393fSJouni Malinen TP_STRUCT__entry( 54356be393fSJouni Malinen WIPHY_ENTRY 54456be393fSJouni Malinen NETDEV_ENTRY 54556be393fSJouni Malinen __field(u8, key_index) 54656be393fSJouni Malinen ), 54756be393fSJouni Malinen TP_fast_assign( 54856be393fSJouni Malinen WIPHY_ASSIGN; 54956be393fSJouni Malinen NETDEV_ASSIGN; 55056be393fSJouni Malinen __entry->key_index = key_index; 55156be393fSJouni Malinen ), 55256be393fSJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u", 55356be393fSJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index) 55456be393fSJouni Malinen ); 55556be393fSJouni Malinen 55614e8a3c4SBeni Lev TRACE_EVENT(rdev_start_ap, 55714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 55814e8a3c4SBeni Lev struct cfg80211_ap_settings *settings), 55914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, settings), 56014e8a3c4SBeni Lev TP_STRUCT__entry( 56114e8a3c4SBeni Lev WIPHY_ENTRY 56214e8a3c4SBeni Lev NETDEV_ENTRY 563683b6d3bSJohannes Berg CHAN_DEF_ENTRY 56414e8a3c4SBeni Lev __field(int, beacon_interval) 56514e8a3c4SBeni Lev __field(int, dtim_period) 56614e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 56714e8a3c4SBeni Lev __field(enum nl80211_hidden_ssid, hidden_ssid) 56814e8a3c4SBeni Lev __field(u32, wpa_ver) 56914e8a3c4SBeni Lev __field(bool, privacy) 57014e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 57114e8a3c4SBeni Lev __field(int, inactivity_timeout) 5727b0a0e3cSJohannes Berg __field(unsigned int, link_id) 57314e8a3c4SBeni Lev ), 57414e8a3c4SBeni Lev TP_fast_assign( 57514e8a3c4SBeni Lev WIPHY_ASSIGN; 57614e8a3c4SBeni Lev NETDEV_ASSIGN; 577683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(&settings->chandef); 57814e8a3c4SBeni Lev __entry->beacon_interval = settings->beacon_interval; 57914e8a3c4SBeni Lev __entry->dtim_period = settings->dtim_period; 58014e8a3c4SBeni Lev __entry->hidden_ssid = settings->hidden_ssid; 58114e8a3c4SBeni Lev __entry->wpa_ver = settings->crypto.wpa_versions; 58214e8a3c4SBeni Lev __entry->privacy = settings->privacy; 58314e8a3c4SBeni Lev __entry->auth_type = settings->auth_type; 58414e8a3c4SBeni Lev __entry->inactivity_timeout = settings->inactivity_timeout; 58514e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 58614e8a3c4SBeni Lev memcpy(__entry->ssid, settings->ssid, settings->ssid_len); 5877b0a0e3cSJohannes Berg __entry->link_id = settings->beacon.link_id; 58814e8a3c4SBeni Lev ), 589ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " 590683b6d3bSJohannes Berg CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " 59114e8a3c4SBeni Lev "hidden ssid: %d, wpa versions: %u, privacy: %s, " 5927b0a0e3cSJohannes Berg "auth type: %d, inactivity timeout: %d, link_id: %d", 593683b6d3bSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, 59414e8a3c4SBeni Lev __entry->beacon_interval, __entry->dtim_period, 59514e8a3c4SBeni Lev __entry->hidden_ssid, __entry->wpa_ver, 59614e8a3c4SBeni Lev BOOL_TO_STR(__entry->privacy), __entry->auth_type, 5977b0a0e3cSJohannes Berg __entry->inactivity_timeout, __entry->link_id) 59814e8a3c4SBeni Lev ); 59914e8a3c4SBeni Lev 60014e8a3c4SBeni Lev TRACE_EVENT(rdev_change_beacon, 60114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 60214e8a3c4SBeni Lev struct cfg80211_beacon_data *info), 60314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, info), 60414e8a3c4SBeni Lev TP_STRUCT__entry( 60514e8a3c4SBeni Lev WIPHY_ENTRY 60614e8a3c4SBeni Lev NETDEV_ENTRY 6077b0a0e3cSJohannes Berg __field(int, link_id) 60814e8a3c4SBeni Lev __dynamic_array(u8, head, info ? info->head_len : 0) 60914e8a3c4SBeni Lev __dynamic_array(u8, tail, info ? info->tail_len : 0) 61014e8a3c4SBeni Lev __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) 61114e8a3c4SBeni Lev __dynamic_array(u8, proberesp_ies, 61214e8a3c4SBeni Lev info ? info->proberesp_ies_len : 0) 61314e8a3c4SBeni Lev __dynamic_array(u8, assocresp_ies, 61414e8a3c4SBeni Lev info ? info->assocresp_ies_len : 0) 61514e8a3c4SBeni Lev __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) 61614e8a3c4SBeni Lev ), 61714e8a3c4SBeni Lev TP_fast_assign( 61814e8a3c4SBeni Lev WIPHY_ASSIGN; 61914e8a3c4SBeni Lev NETDEV_ASSIGN; 62014e8a3c4SBeni Lev if (info) { 6217b0a0e3cSJohannes Berg __entry->link_id = info->link_id; 62214e8a3c4SBeni Lev if (info->head) 62314e8a3c4SBeni Lev memcpy(__get_dynamic_array(head), info->head, 62414e8a3c4SBeni Lev info->head_len); 62514e8a3c4SBeni Lev if (info->tail) 62614e8a3c4SBeni Lev memcpy(__get_dynamic_array(tail), info->tail, 62714e8a3c4SBeni Lev info->tail_len); 62814e8a3c4SBeni Lev if (info->beacon_ies) 62914e8a3c4SBeni Lev memcpy(__get_dynamic_array(beacon_ies), 63014e8a3c4SBeni Lev info->beacon_ies, info->beacon_ies_len); 63114e8a3c4SBeni Lev if (info->proberesp_ies) 63214e8a3c4SBeni Lev memcpy(__get_dynamic_array(proberesp_ies), 63314e8a3c4SBeni Lev info->proberesp_ies, 63414e8a3c4SBeni Lev info->proberesp_ies_len); 63514e8a3c4SBeni Lev if (info->assocresp_ies) 63614e8a3c4SBeni Lev memcpy(__get_dynamic_array(assocresp_ies), 63714e8a3c4SBeni Lev info->assocresp_ies, 63814e8a3c4SBeni Lev info->assocresp_ies_len); 63914e8a3c4SBeni Lev if (info->probe_resp) 64014e8a3c4SBeni Lev memcpy(__get_dynamic_array(probe_resp), 64114e8a3c4SBeni Lev info->probe_resp, info->probe_resp_len); 6427b0a0e3cSJohannes Berg } else { 6437b0a0e3cSJohannes Berg __entry->link_id = -1; 64414e8a3c4SBeni Lev } 64514e8a3c4SBeni Lev ), 6467b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d", 6477b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 6487b0a0e3cSJohannes Berg ); 6497b0a0e3cSJohannes Berg 6507b0a0e3cSJohannes Berg TRACE_EVENT(rdev_stop_ap, 6517b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 6527b0a0e3cSJohannes Berg unsigned int link_id), 6537b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id), 6547b0a0e3cSJohannes Berg TP_STRUCT__entry( 6557b0a0e3cSJohannes Berg WIPHY_ENTRY 6567b0a0e3cSJohannes Berg NETDEV_ENTRY 6577b0a0e3cSJohannes Berg __field(unsigned int, link_id) 6587b0a0e3cSJohannes Berg ), 6597b0a0e3cSJohannes Berg TP_fast_assign( 6607b0a0e3cSJohannes Berg WIPHY_ASSIGN; 6617b0a0e3cSJohannes Berg NETDEV_ASSIGN; 6627b0a0e3cSJohannes Berg __entry->link_id = link_id; 6637b0a0e3cSJohannes Berg ), 6647b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d", 6657b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 66614e8a3c4SBeni Lev ); 66714e8a3c4SBeni Lev 66814e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_evt, 66914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 67014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev), 67114e8a3c4SBeni Lev TP_STRUCT__entry( 67214e8a3c4SBeni Lev WIPHY_ENTRY 67314e8a3c4SBeni Lev NETDEV_ENTRY 67414e8a3c4SBeni Lev ), 67514e8a3c4SBeni Lev TP_fast_assign( 67614e8a3c4SBeni Lev WIPHY_ASSIGN; 67714e8a3c4SBeni Lev NETDEV_ASSIGN; 67814e8a3c4SBeni Lev ), 679ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 68014e8a3c4SBeni Lev ); 68114e8a3c4SBeni Lev 68214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, 68314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 68414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 68514e8a3c4SBeni Lev ); 68614e8a3c4SBeni Lev 68714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config, 68814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 68914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 69014e8a3c4SBeni Lev ); 69114e8a3c4SBeni Lev 69214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh, 69314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 69414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 69514e8a3c4SBeni Lev ); 69614e8a3c4SBeni Lev 69714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss, 69814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 69914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 70014e8a3c4SBeni Lev ); 70114e8a3c4SBeni Lev 7026e0bd6c3SRostislav Lisovy DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb, 7036e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 7046e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev) 7056e0bd6c3SRostislav Lisovy ); 7066e0bd6c3SRostislav Lisovy 70714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa, 70814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 70914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 71014e8a3c4SBeni Lev ); 71114e8a3c4SBeni Lev 71226ec17a1SOrr Mazor DEFINE_EVENT(wiphy_netdev_evt, rdev_end_cac, 71326ec17a1SOrr Mazor TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 71426ec17a1SOrr Mazor TP_ARGS(wiphy, netdev) 71526ec17a1SOrr Mazor ); 71626ec17a1SOrr Mazor 71714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(station_add_change, 71814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 71914e8a3c4SBeni Lev struct station_parameters *params), 72014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params), 72114e8a3c4SBeni Lev TP_STRUCT__entry( 72214e8a3c4SBeni Lev WIPHY_ENTRY 72314e8a3c4SBeni Lev NETDEV_ENTRY 72414e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 72514e8a3c4SBeni Lev __field(u32, sta_flags_mask) 72614e8a3c4SBeni Lev __field(u32, sta_flags_set) 72714e8a3c4SBeni Lev __field(u32, sta_modify_mask) 72814e8a3c4SBeni Lev __field(int, listen_interval) 7296e045905SJohannes Berg __field(u16, capability) 73014e8a3c4SBeni Lev __field(u16, aid) 73114e8a3c4SBeni Lev __field(u8, plink_action) 73214e8a3c4SBeni Lev __field(u8, plink_state) 73314e8a3c4SBeni Lev __field(u8, uapsd_queues) 7346e045905SJohannes Berg __field(u8, max_sp) 7356e045905SJohannes Berg __field(u8, opmode_notif) 7366e045905SJohannes Berg __field(bool, opmode_notif_used) 73714e8a3c4SBeni Lev __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 7386e045905SJohannes Berg __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 7395d8325ecSJohannes Berg __array(char, vlan, IFNAMSIZ) 7406e045905SJohannes Berg __dynamic_array(u8, supported_rates, 741b95eb7f0SShaul Triebitz params->link_sta_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)); 761b95eb7f0SShaul Triebitz if (params->link_sta_params.ht_capa) 762b95eb7f0SShaul Triebitz memcpy(__entry->ht_capa, 763b95eb7f0SShaul Triebitz params->link_sta_params.ht_capa, 76414e8a3c4SBeni Lev sizeof(struct ieee80211_ht_cap)); 7656e045905SJohannes Berg memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 766b95eb7f0SShaul Triebitz if (params->link_sta_params.vht_capa) 767b95eb7f0SShaul Triebitz memcpy(__entry->vht_capa, 768b95eb7f0SShaul Triebitz params->link_sta_params.vht_capa, 7696e045905SJohannes Berg sizeof(struct ieee80211_vht_cap)); 7705d8325ecSJohannes Berg memset(__entry->vlan, 0, sizeof(__entry->vlan)); 7715d8325ecSJohannes Berg if (params->vlan) 7725d8325ecSJohannes Berg memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ); 773b95eb7f0SShaul Triebitz if (params->link_sta_params.supported_rates && 774b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len) 7756e045905SJohannes Berg memcpy(__get_dynamic_array(supported_rates), 776b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates, 777b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len); 7786e045905SJohannes Berg if (params->ext_capab && params->ext_capab_len) 7796e045905SJohannes Berg memcpy(__get_dynamic_array(ext_capab), 7806e045905SJohannes Berg params->ext_capab, 7816e045905SJohannes Berg params->ext_capab_len); 7826e045905SJohannes Berg if (params->supported_channels && 7836e045905SJohannes Berg params->supported_channels_len) 7846e045905SJohannes Berg memcpy(__get_dynamic_array(supported_channels), 7856e045905SJohannes Berg params->supported_channels, 7866e045905SJohannes Berg params->supported_channels_len); 7876e045905SJohannes Berg if (params->supported_oper_classes && 7886e045905SJohannes Berg params->supported_oper_classes_len) 7896e045905SJohannes Berg memcpy(__get_dynamic_array(supported_oper_classes), 7906e045905SJohannes Berg params->supported_oper_classes, 7916e045905SJohannes Berg params->supported_oper_classes_len); 7926e045905SJohannes Berg __entry->max_sp = params->max_sp; 7936e045905SJohannes Berg __entry->capability = params->capability; 794b95eb7f0SShaul Triebitz __entry->opmode_notif = params->link_sta_params.opmode_notif; 795b95eb7f0SShaul Triebitz __entry->opmode_notif_used = 796b95eb7f0SShaul Triebitz params->link_sta_params.opmode_notif_used; 79714e8a3c4SBeni Lev ), 798ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 79914e8a3c4SBeni Lev ", station flags mask: %u, station flags set: %u, " 80014e8a3c4SBeni Lev "station modify mask: %u, listen interval: %d, aid: %u, " 8015d8325ecSJohannes Berg "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s", 80214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 80314e8a3c4SBeni Lev __entry->sta_flags_mask, __entry->sta_flags_set, 80414e8a3c4SBeni Lev __entry->sta_modify_mask, __entry->listen_interval, 80514e8a3c4SBeni Lev __entry->aid, __entry->plink_action, __entry->plink_state, 8065d8325ecSJohannes Berg __entry->uapsd_queues, __entry->vlan) 80714e8a3c4SBeni Lev ); 80814e8a3c4SBeni Lev 80914e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_add_station, 81014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 81114e8a3c4SBeni Lev struct station_parameters *params), 81214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 81314e8a3c4SBeni Lev ); 81414e8a3c4SBeni Lev 81514e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_change_station, 81614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 81714e8a3c4SBeni Lev struct station_parameters *params), 81814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 81914e8a3c4SBeni Lev ); 82014e8a3c4SBeni Lev 82114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt, 82214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 82314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac), 82414e8a3c4SBeni Lev TP_STRUCT__entry( 82514e8a3c4SBeni Lev WIPHY_ENTRY 82614e8a3c4SBeni Lev NETDEV_ENTRY 82714e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 82814e8a3c4SBeni Lev ), 82914e8a3c4SBeni Lev TP_fast_assign( 83014e8a3c4SBeni Lev WIPHY_ASSIGN; 83114e8a3c4SBeni Lev NETDEV_ASSIGN; 83214e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 83314e8a3c4SBeni Lev ), 834ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 83514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac)) 83614e8a3c4SBeni Lev ); 83714e8a3c4SBeni Lev 83889c771e5SJouni Malinen DECLARE_EVENT_CLASS(station_del, 83989c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 84089c771e5SJouni Malinen struct station_del_parameters *params), 84189c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params), 84289c771e5SJouni Malinen TP_STRUCT__entry( 84389c771e5SJouni Malinen WIPHY_ENTRY 84489c771e5SJouni Malinen NETDEV_ENTRY 84589c771e5SJouni Malinen MAC_ENTRY(sta_mac) 84698856866SJouni Malinen __field(u8, subtype) 84798856866SJouni Malinen __field(u16, reason_code) 84889c771e5SJouni Malinen ), 84989c771e5SJouni Malinen TP_fast_assign( 85089c771e5SJouni Malinen WIPHY_ASSIGN; 85189c771e5SJouni Malinen NETDEV_ASSIGN; 85289c771e5SJouni Malinen MAC_ASSIGN(sta_mac, params->mac); 85398856866SJouni Malinen __entry->subtype = params->subtype; 85498856866SJouni Malinen __entry->reason_code = params->reason_code; 85589c771e5SJouni Malinen ), 85698856866SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 85798856866SJouni Malinen ", subtype: %u, reason_code: %u", 85898856866SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 85998856866SJouni Malinen __entry->subtype, __entry->reason_code) 86089c771e5SJouni Malinen ); 86189c771e5SJouni Malinen 86289c771e5SJouni Malinen DEFINE_EVENT(station_del, rdev_del_station, 86389c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 86489c771e5SJouni Malinen struct station_del_parameters *params), 86589c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params) 86614e8a3c4SBeni Lev ); 86714e8a3c4SBeni Lev 86814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station, 86914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 87014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 87114e8a3c4SBeni Lev ); 87214e8a3c4SBeni Lev 87314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath, 87414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 87514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 87614e8a3c4SBeni Lev ); 87714e8a3c4SBeni Lev 87814e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_station, 879aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 88014e8a3c4SBeni Lev u8 *mac), 881aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mac), 88214e8a3c4SBeni Lev TP_STRUCT__entry( 88314e8a3c4SBeni Lev WIPHY_ENTRY 88414e8a3c4SBeni Lev NETDEV_ENTRY 88514e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 88614e8a3c4SBeni Lev __field(int, idx) 88714e8a3c4SBeni Lev ), 88814e8a3c4SBeni Lev TP_fast_assign( 88914e8a3c4SBeni Lev WIPHY_ASSIGN; 89014e8a3c4SBeni Lev NETDEV_ASSIGN; 89114e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 892aaaa10e0SJohannes Berg __entry->idx = _idx; 89314e8a3c4SBeni Lev ), 894ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d", 89514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 89614e8a3c4SBeni Lev __entry->idx) 89714e8a3c4SBeni Lev ); 89814e8a3c4SBeni Lev 89914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_station_info, 90014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo), 90114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, sinfo), 90214e8a3c4SBeni Lev TP_STRUCT__entry( 90314e8a3c4SBeni Lev WIPHY_ENTRY 90414e8a3c4SBeni Lev __field(int, ret) 90514e8a3c4SBeni Lev SINFO_ENTRY 90614e8a3c4SBeni Lev ), 90714e8a3c4SBeni Lev TP_fast_assign( 90814e8a3c4SBeni Lev WIPHY_ASSIGN; 90914e8a3c4SBeni Lev __entry->ret = ret; 91014e8a3c4SBeni Lev SINFO_ASSIGN; 91114e8a3c4SBeni Lev ), 91214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d" , 91314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 91414e8a3c4SBeni Lev ); 91514e8a3c4SBeni Lev 91614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(mpath_evt, 91714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 91814e8a3c4SBeni Lev u8 *next_hop), 91914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop), 92014e8a3c4SBeni Lev TP_STRUCT__entry( 92114e8a3c4SBeni Lev WIPHY_ENTRY 92214e8a3c4SBeni Lev NETDEV_ENTRY 92314e8a3c4SBeni Lev MAC_ENTRY(dst) 92414e8a3c4SBeni Lev MAC_ENTRY(next_hop) 92514e8a3c4SBeni Lev ), 92614e8a3c4SBeni Lev TP_fast_assign( 92714e8a3c4SBeni Lev WIPHY_ASSIGN; 92814e8a3c4SBeni Lev NETDEV_ASSIGN; 92914e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 93014e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 93114e8a3c4SBeni Lev ), 932ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT, 93314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst), 93414e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 93514e8a3c4SBeni Lev ); 93614e8a3c4SBeni Lev 93714e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_add_mpath, 93814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 93914e8a3c4SBeni Lev u8 *next_hop), 94014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 94114e8a3c4SBeni Lev ); 94214e8a3c4SBeni Lev 94314e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_change_mpath, 94414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 94514e8a3c4SBeni Lev u8 *next_hop), 94614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 94714e8a3c4SBeni Lev ); 94814e8a3c4SBeni Lev 94914e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_get_mpath, 95014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 95114e8a3c4SBeni Lev u8 *next_hop), 95214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 95314e8a3c4SBeni Lev ); 95414e8a3c4SBeni Lev 95514e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_mpath, 956aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 95714e8a3c4SBeni Lev u8 *dst, u8 *next_hop), 958aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, dst, next_hop), 95914e8a3c4SBeni Lev TP_STRUCT__entry( 96014e8a3c4SBeni Lev WIPHY_ENTRY 96114e8a3c4SBeni Lev NETDEV_ENTRY 96214e8a3c4SBeni Lev MAC_ENTRY(dst) 96314e8a3c4SBeni Lev MAC_ENTRY(next_hop) 96414e8a3c4SBeni Lev __field(int, idx) 96514e8a3c4SBeni Lev ), 96614e8a3c4SBeni Lev TP_fast_assign( 96714e8a3c4SBeni Lev WIPHY_ASSIGN; 96814e8a3c4SBeni Lev NETDEV_ASSIGN; 96914e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 97014e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 971aaaa10e0SJohannes Berg __entry->idx = _idx; 97214e8a3c4SBeni Lev ), 973ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 97414e8a3c4SBeni Lev MAC_PR_FMT ", next hop: " MAC_PR_FMT, 97514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 97614e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 97714e8a3c4SBeni Lev ); 97814e8a3c4SBeni Lev 97966be7d2bSHenning Rogge TRACE_EVENT(rdev_get_mpp, 98066be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 98166be7d2bSHenning Rogge u8 *dst, u8 *mpp), 98266be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, dst, mpp), 98366be7d2bSHenning Rogge TP_STRUCT__entry( 98466be7d2bSHenning Rogge WIPHY_ENTRY 98566be7d2bSHenning Rogge NETDEV_ENTRY 98666be7d2bSHenning Rogge MAC_ENTRY(dst) 98766be7d2bSHenning Rogge MAC_ENTRY(mpp) 98866be7d2bSHenning Rogge ), 98966be7d2bSHenning Rogge TP_fast_assign( 99066be7d2bSHenning Rogge WIPHY_ASSIGN; 99166be7d2bSHenning Rogge NETDEV_ASSIGN; 99266be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 99366be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 99466be7d2bSHenning Rogge ), 99566be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT 99666be7d2bSHenning Rogge ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG, 99766be7d2bSHenning Rogge MAC_PR_ARG(dst), MAC_PR_ARG(mpp)) 99866be7d2bSHenning Rogge ); 99966be7d2bSHenning Rogge 100066be7d2bSHenning Rogge TRACE_EVENT(rdev_dump_mpp, 1001aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 100266be7d2bSHenning Rogge u8 *dst, u8 *mpp), 1003aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mpp, dst), 100466be7d2bSHenning Rogge TP_STRUCT__entry( 100566be7d2bSHenning Rogge WIPHY_ENTRY 100666be7d2bSHenning Rogge NETDEV_ENTRY 100766be7d2bSHenning Rogge MAC_ENTRY(dst) 100866be7d2bSHenning Rogge MAC_ENTRY(mpp) 100966be7d2bSHenning Rogge __field(int, idx) 101066be7d2bSHenning Rogge ), 101166be7d2bSHenning Rogge TP_fast_assign( 101266be7d2bSHenning Rogge WIPHY_ASSIGN; 101366be7d2bSHenning Rogge NETDEV_ASSIGN; 101466be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 101566be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 1016aaaa10e0SJohannes Berg __entry->idx = _idx; 101766be7d2bSHenning Rogge ), 101866be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 101966be7d2bSHenning Rogge MAC_PR_FMT ", mpp: " MAC_PR_FMT, 102066be7d2bSHenning Rogge WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 102166be7d2bSHenning Rogge MAC_PR_ARG(mpp)) 102266be7d2bSHenning Rogge ); 102366be7d2bSHenning Rogge 102414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mpath_info, 102514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo), 102614e8a3c4SBeni Lev TP_ARGS(wiphy, ret, pinfo), 102714e8a3c4SBeni Lev TP_STRUCT__entry( 102814e8a3c4SBeni Lev WIPHY_ENTRY 102914e8a3c4SBeni Lev __field(int, ret) 103014e8a3c4SBeni Lev __field(int, generation) 103114e8a3c4SBeni Lev __field(u32, filled) 103214e8a3c4SBeni Lev __field(u32, frame_qlen) 103314e8a3c4SBeni Lev __field(u32, sn) 103414e8a3c4SBeni Lev __field(u32, metric) 103514e8a3c4SBeni Lev __field(u32, exptime) 103614e8a3c4SBeni Lev __field(u32, discovery_timeout) 103714e8a3c4SBeni Lev __field(u8, discovery_retries) 103814e8a3c4SBeni Lev __field(u8, flags) 103914e8a3c4SBeni Lev ), 104014e8a3c4SBeni Lev TP_fast_assign( 104114e8a3c4SBeni Lev WIPHY_ASSIGN; 104214e8a3c4SBeni Lev __entry->ret = ret; 104314e8a3c4SBeni Lev __entry->generation = pinfo->generation; 104414e8a3c4SBeni Lev __entry->filled = pinfo->filled; 104514e8a3c4SBeni Lev __entry->frame_qlen = pinfo->frame_qlen; 104614e8a3c4SBeni Lev __entry->sn = pinfo->sn; 104714e8a3c4SBeni Lev __entry->metric = pinfo->metric; 104814e8a3c4SBeni Lev __entry->exptime = pinfo->exptime; 104914e8a3c4SBeni Lev __entry->discovery_timeout = pinfo->discovery_timeout; 105014e8a3c4SBeni Lev __entry->discovery_retries = pinfo->discovery_retries; 105114e8a3c4SBeni Lev __entry->flags = pinfo->flags; 105214e8a3c4SBeni Lev ), 105314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, " 105414e8a3c4SBeni Lev "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u," 105514e8a3c4SBeni Lev " discovery timeout: %u, discovery retries: %u, flags: %u", 105614e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->generation, 105714e8a3c4SBeni Lev __entry->filled, __entry->frame_qlen, __entry->sn, 105814e8a3c4SBeni Lev __entry->metric, __entry->exptime, __entry->discovery_timeout, 105914e8a3c4SBeni Lev __entry->discovery_retries, __entry->flags) 106014e8a3c4SBeni Lev ); 106114e8a3c4SBeni Lev 106214e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mesh_config, 106314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf), 106414e8a3c4SBeni Lev TP_ARGS(wiphy, ret, conf), 106514e8a3c4SBeni Lev TP_STRUCT__entry( 106614e8a3c4SBeni Lev WIPHY_ENTRY 106714e8a3c4SBeni Lev MESH_CFG_ENTRY 106814e8a3c4SBeni Lev __field(int, ret) 106914e8a3c4SBeni Lev ), 107014e8a3c4SBeni Lev TP_fast_assign( 107114e8a3c4SBeni Lev WIPHY_ASSIGN; 107214e8a3c4SBeni Lev MESH_CFG_ASSIGN; 107314e8a3c4SBeni Lev __entry->ret = ret; 107414e8a3c4SBeni Lev ), 107514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", 107614e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 107714e8a3c4SBeni Lev ); 107814e8a3c4SBeni Lev 107914e8a3c4SBeni Lev TRACE_EVENT(rdev_update_mesh_config, 108014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask, 108114e8a3c4SBeni Lev const struct mesh_config *conf), 108214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mask, conf), 108314e8a3c4SBeni Lev TP_STRUCT__entry( 108414e8a3c4SBeni Lev WIPHY_ENTRY 108514e8a3c4SBeni Lev NETDEV_ENTRY 108614e8a3c4SBeni Lev MESH_CFG_ENTRY 108714e8a3c4SBeni Lev __field(u32, mask) 108814e8a3c4SBeni Lev ), 108914e8a3c4SBeni Lev TP_fast_assign( 109014e8a3c4SBeni Lev WIPHY_ASSIGN; 109114e8a3c4SBeni Lev NETDEV_ASSIGN; 109214e8a3c4SBeni Lev MESH_CFG_ASSIGN; 109314e8a3c4SBeni Lev __entry->mask = mask; 109414e8a3c4SBeni Lev ), 1095ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u", 109614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask) 109714e8a3c4SBeni Lev ); 109814e8a3c4SBeni Lev 109914e8a3c4SBeni Lev TRACE_EVENT(rdev_join_mesh, 110014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 110114e8a3c4SBeni Lev const struct mesh_config *conf, 110214e8a3c4SBeni Lev const struct mesh_setup *setup), 110314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, conf, setup), 110414e8a3c4SBeni Lev TP_STRUCT__entry( 110514e8a3c4SBeni Lev WIPHY_ENTRY 110614e8a3c4SBeni Lev NETDEV_ENTRY 110714e8a3c4SBeni Lev MESH_CFG_ENTRY 110814e8a3c4SBeni Lev ), 110914e8a3c4SBeni Lev TP_fast_assign( 111014e8a3c4SBeni Lev WIPHY_ASSIGN; 111114e8a3c4SBeni Lev NETDEV_ASSIGN; 111214e8a3c4SBeni Lev MESH_CFG_ASSIGN; 111314e8a3c4SBeni Lev ), 1114ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 111514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 111614e8a3c4SBeni Lev ); 111714e8a3c4SBeni Lev 111814e8a3c4SBeni Lev TRACE_EVENT(rdev_change_bss, 111914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 112014e8a3c4SBeni Lev struct bss_parameters *params), 112114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 112214e8a3c4SBeni Lev TP_STRUCT__entry( 112314e8a3c4SBeni Lev WIPHY_ENTRY 112414e8a3c4SBeni Lev NETDEV_ENTRY 112514e8a3c4SBeni Lev __field(int, use_cts_prot) 112614e8a3c4SBeni Lev __field(int, use_short_preamble) 112714e8a3c4SBeni Lev __field(int, use_short_slot_time) 112814e8a3c4SBeni Lev __field(int, ap_isolate) 112914e8a3c4SBeni Lev __field(int, ht_opmode) 113014e8a3c4SBeni Lev ), 113114e8a3c4SBeni Lev TP_fast_assign( 113214e8a3c4SBeni Lev WIPHY_ASSIGN; 113314e8a3c4SBeni Lev NETDEV_ASSIGN; 113414e8a3c4SBeni Lev __entry->use_cts_prot = params->use_cts_prot; 113514e8a3c4SBeni Lev __entry->use_short_preamble = params->use_short_preamble; 113614e8a3c4SBeni Lev __entry->use_short_slot_time = params->use_short_slot_time; 113714e8a3c4SBeni Lev __entry->ap_isolate = params->ap_isolate; 113814e8a3c4SBeni Lev __entry->ht_opmode = params->ht_opmode; 113914e8a3c4SBeni Lev ), 1140ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, " 114114e8a3c4SBeni Lev "use short preamble: %d, use short slot time: %d, " 114214e8a3c4SBeni Lev "ap isolate: %d, ht opmode: %d", 114314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot, 114414e8a3c4SBeni Lev __entry->use_short_preamble, __entry->use_short_slot_time, 114514e8a3c4SBeni Lev __entry->ap_isolate, __entry->ht_opmode) 114614e8a3c4SBeni Lev ); 114714e8a3c4SBeni Lev 114814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 114914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 115014e8a3c4SBeni Lev struct ieee80211_txq_params *params), 115114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 115214e8a3c4SBeni Lev TP_STRUCT__entry( 115314e8a3c4SBeni Lev WIPHY_ENTRY 115414e8a3c4SBeni Lev NETDEV_ENTRY 115514e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 115614e8a3c4SBeni Lev __field(u16, txop) 115714e8a3c4SBeni Lev __field(u16, cwmin) 115814e8a3c4SBeni Lev __field(u16, cwmax) 115914e8a3c4SBeni Lev __field(u8, aifs) 116014e8a3c4SBeni Lev ), 116114e8a3c4SBeni Lev TP_fast_assign( 116214e8a3c4SBeni Lev WIPHY_ASSIGN; 116314e8a3c4SBeni Lev NETDEV_ASSIGN; 116414e8a3c4SBeni Lev __entry->ac = params->ac; 116514e8a3c4SBeni Lev __entry->txop = params->txop; 116614e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 116714e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 116814e8a3c4SBeni Lev __entry->aifs = params->aifs; 116914e8a3c4SBeni Lev ), 1170ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 117114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 117214e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 117314e8a3c4SBeni Lev ); 117414e8a3c4SBeni Lev 117514e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 117614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 117714e8a3c4SBeni Lev struct ieee80211_channel *chan), 117814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 117914e8a3c4SBeni Lev TP_STRUCT__entry( 118014e8a3c4SBeni Lev WIPHY_ENTRY 118114e8a3c4SBeni Lev NETDEV_ENTRY 118214e8a3c4SBeni Lev CHAN_ENTRY 118314e8a3c4SBeni Lev ), 118414e8a3c4SBeni Lev TP_fast_assign( 118514e8a3c4SBeni Lev WIPHY_ASSIGN; 118614e8a3c4SBeni Lev NETDEV_ASSIGN; 118714e8a3c4SBeni Lev CHAN_ASSIGN(chan); 118814e8a3c4SBeni Lev ), 1189ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 119014e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 119114e8a3c4SBeni Lev ); 119214e8a3c4SBeni Lev 119314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1194683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1195683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1196683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 119714e8a3c4SBeni Lev TP_STRUCT__entry( 119814e8a3c4SBeni Lev WIPHY_ENTRY 1199683b6d3bSJohannes Berg CHAN_DEF_ENTRY 120014e8a3c4SBeni Lev ), 120114e8a3c4SBeni Lev TP_fast_assign( 120214e8a3c4SBeni Lev WIPHY_ASSIGN; 1203683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 120414e8a3c4SBeni Lev ), 1205ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1206683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 120714e8a3c4SBeni Lev ); 120814e8a3c4SBeni Lev 120914e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 121014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 121114e8a3c4SBeni Lev struct cfg80211_auth_request *req), 121214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 121314e8a3c4SBeni Lev TP_STRUCT__entry( 121414e8a3c4SBeni Lev WIPHY_ENTRY 121514e8a3c4SBeni Lev NETDEV_ENTRY 121614e8a3c4SBeni Lev MAC_ENTRY(bssid) 121714e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 121814e8a3c4SBeni Lev ), 121914e8a3c4SBeni Lev TP_fast_assign( 122014e8a3c4SBeni Lev WIPHY_ASSIGN; 122114e8a3c4SBeni Lev NETDEV_ASSIGN; 122214e8a3c4SBeni Lev if (req->bss) 122314e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 122414e8a3c4SBeni Lev else 1225d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 122614e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 122714e8a3c4SBeni Lev ), 1228ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT, 122914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 123014e8a3c4SBeni Lev MAC_PR_ARG(bssid)) 123114e8a3c4SBeni Lev ); 123214e8a3c4SBeni Lev 123314e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 123414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1235*1d4c0f04SJohannes Berg struct cfg80211_assoc_request *req), 1236*1d4c0f04SJohannes Berg TP_ARGS(wiphy, netdev, req), 123714e8a3c4SBeni Lev TP_STRUCT__entry( 123814e8a3c4SBeni Lev WIPHY_ENTRY 123914e8a3c4SBeni Lev NETDEV_ENTRY 124014e8a3c4SBeni Lev MAC_ENTRY(bssid) 124114e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 124214e8a3c4SBeni Lev __field(bool, use_mfp) 124314e8a3c4SBeni Lev __field(u32, flags) 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 (req->ie) 126464a87472SJohannes Berg memcpy(__get_dynamic_array(elements), 126564a87472SJohannes Berg req->ie, req->ie_len); 126664a87472SJohannes Berg memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa)); 126764a87472SJohannes Berg memcpy(__entry->ht_capa_mask, &req->ht_capa_mask, 126864a87472SJohannes Berg sizeof(req->ht_capa_mask)); 126964a87472SJohannes Berg memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa)); 127064a87472SJohannes Berg memcpy(__entry->vht_capa_mask, &req->vht_capa_mask, 127164a87472SJohannes Berg sizeof(req->vht_capa_mask)); 127264a87472SJohannes Berg if (req->fils_kek) 127364a87472SJohannes Berg memcpy(__get_dynamic_array(fils_kek), 127464a87472SJohannes Berg req->fils_kek, req->fils_kek_len); 127564a87472SJohannes Berg if (req->fils_nonces) 127664a87472SJohannes Berg memcpy(__get_dynamic_array(fils_nonces), 127764a87472SJohannes Berg req->fils_nonces, 2 * FILS_NONCE_LEN); 127814e8a3c4SBeni Lev ), 1279ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 128014e8a3c4SBeni Lev ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u", 128114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 128214e8a3c4SBeni Lev MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp), 128314e8a3c4SBeni Lev __entry->flags) 128414e8a3c4SBeni Lev ); 128514e8a3c4SBeni Lev 128614e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 128714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 128814e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 128914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 129014e8a3c4SBeni Lev TP_STRUCT__entry( 129114e8a3c4SBeni Lev WIPHY_ENTRY 129214e8a3c4SBeni Lev NETDEV_ENTRY 129314e8a3c4SBeni Lev MAC_ENTRY(bssid) 129414e8a3c4SBeni Lev __field(u16, reason_code) 129514e8a3c4SBeni Lev ), 129614e8a3c4SBeni Lev TP_fast_assign( 129714e8a3c4SBeni Lev WIPHY_ASSIGN; 129814e8a3c4SBeni Lev NETDEV_ASSIGN; 129914e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 130014e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 130114e8a3c4SBeni Lev ), 1302ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u", 130314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 130414e8a3c4SBeni Lev __entry->reason_code) 130514e8a3c4SBeni Lev ); 130614e8a3c4SBeni Lev 130714e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 130814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 130914e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 131014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 131114e8a3c4SBeni Lev TP_STRUCT__entry( 131214e8a3c4SBeni Lev WIPHY_ENTRY 131314e8a3c4SBeni Lev NETDEV_ENTRY 131414e8a3c4SBeni Lev MAC_ENTRY(bssid) 131514e8a3c4SBeni Lev __field(u16, reason_code) 131614e8a3c4SBeni Lev __field(bool, local_state_change) 131714e8a3c4SBeni Lev ), 131814e8a3c4SBeni Lev TP_fast_assign( 131914e8a3c4SBeni Lev WIPHY_ASSIGN; 132014e8a3c4SBeni Lev NETDEV_ASSIGN; 132114e8a3c4SBeni Lev if (req->bss) 132214e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 132314e8a3c4SBeni Lev else 1324d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 132514e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 132614e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 132714e8a3c4SBeni Lev ), 1328ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 132914e8a3c4SBeni Lev ", reason: %u, local state change: %s", 133014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 133114e8a3c4SBeni Lev __entry->reason_code, 133214e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 133314e8a3c4SBeni Lev ); 133414e8a3c4SBeni Lev 133514e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 133614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 133714e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 133814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 133914e8a3c4SBeni Lev TP_STRUCT__entry( 134014e8a3c4SBeni Lev WIPHY_ENTRY 134114e8a3c4SBeni Lev WDEV_ENTRY 134214e8a3c4SBeni Lev __field(u64, cookie) 134314e8a3c4SBeni Lev ), 134414e8a3c4SBeni Lev TP_fast_assign( 134514e8a3c4SBeni Lev WIPHY_ASSIGN; 134614e8a3c4SBeni Lev WDEV_ASSIGN; 134714e8a3c4SBeni Lev __entry->cookie = cookie; 134814e8a3c4SBeni Lev ), 1349ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 135014e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 135114e8a3c4SBeni Lev ); 135214e8a3c4SBeni Lev 135314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 135414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 135514e8a3c4SBeni Lev bool enabled, int timeout), 135614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 135714e8a3c4SBeni Lev TP_STRUCT__entry( 135814e8a3c4SBeni Lev WIPHY_ENTRY 135914e8a3c4SBeni Lev NETDEV_ENTRY 136014e8a3c4SBeni Lev __field(bool, enabled) 136114e8a3c4SBeni Lev __field(int, timeout) 136214e8a3c4SBeni Lev ), 136314e8a3c4SBeni Lev TP_fast_assign( 136414e8a3c4SBeni Lev WIPHY_ASSIGN; 136514e8a3c4SBeni Lev NETDEV_ASSIGN; 136614e8a3c4SBeni Lev __entry->enabled = enabled; 136714e8a3c4SBeni Lev __entry->timeout = timeout; 136814e8a3c4SBeni Lev ), 1369ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 137014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 137114e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 137214e8a3c4SBeni Lev ); 137314e8a3c4SBeni Lev 137414e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 137514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 137614e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 137714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 137814e8a3c4SBeni Lev TP_STRUCT__entry( 137914e8a3c4SBeni Lev WIPHY_ENTRY 138014e8a3c4SBeni Lev NETDEV_ENTRY 138114e8a3c4SBeni Lev MAC_ENTRY(bssid) 138214e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 138314e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 138414e8a3c4SBeni Lev __field(bool, privacy) 138514e8a3c4SBeni Lev __field(u32, wpa_versions) 138614e8a3c4SBeni Lev __field(u32, flags) 1387ba6fbacfSJouni Malinen MAC_ENTRY(prev_bssid) 138814e8a3c4SBeni Lev ), 138914e8a3c4SBeni Lev TP_fast_assign( 139014e8a3c4SBeni Lev WIPHY_ASSIGN; 139114e8a3c4SBeni Lev NETDEV_ASSIGN; 139214e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 139314e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 139414e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 139514e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 139614e8a3c4SBeni Lev __entry->privacy = sme->privacy; 139714e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 139814e8a3c4SBeni Lev __entry->flags = sme->flags; 1399ba6fbacfSJouni Malinen MAC_ASSIGN(prev_bssid, sme->prev_bssid); 140014e8a3c4SBeni Lev ), 1401ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 140214e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 1403ba6fbacfSJouni Malinen "flags: %u, previous bssid: " MAC_PR_FMT, 140414e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid, 140514e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 1406ba6fbacfSJouni Malinen __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid)) 140714e8a3c4SBeni Lev ); 140814e8a3c4SBeni Lev 1409088e8df8Svamsi krishna TRACE_EVENT(rdev_update_connect_params, 1410088e8df8Svamsi krishna TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1411088e8df8Svamsi krishna struct cfg80211_connect_params *sme, u32 changed), 1412088e8df8Svamsi krishna TP_ARGS(wiphy, netdev, sme, changed), 1413088e8df8Svamsi krishna TP_STRUCT__entry( 1414088e8df8Svamsi krishna WIPHY_ENTRY 1415088e8df8Svamsi krishna NETDEV_ENTRY 1416088e8df8Svamsi krishna __field(u32, changed) 1417088e8df8Svamsi krishna ), 1418088e8df8Svamsi krishna TP_fast_assign( 1419088e8df8Svamsi krishna WIPHY_ASSIGN; 1420088e8df8Svamsi krishna NETDEV_ASSIGN; 1421088e8df8Svamsi krishna __entry->changed = changed; 1422088e8df8Svamsi krishna ), 1423088e8df8Svamsi krishna TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u", 1424088e8df8Svamsi krishna WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed) 1425088e8df8Svamsi krishna ); 1426088e8df8Svamsi krishna 142714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 142814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 142914e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 143014e8a3c4SBeni Lev u32 rssi_hyst), 143114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 143214e8a3c4SBeni Lev TP_STRUCT__entry( 143314e8a3c4SBeni Lev WIPHY_ENTRY 143414e8a3c4SBeni Lev NETDEV_ENTRY 143514e8a3c4SBeni Lev __field(s32, rssi_thold) 143614e8a3c4SBeni Lev __field(u32, rssi_hyst) 143714e8a3c4SBeni Lev ), 143814e8a3c4SBeni Lev TP_fast_assign( 143914e8a3c4SBeni Lev WIPHY_ASSIGN; 144014e8a3c4SBeni Lev NETDEV_ASSIGN; 144114e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 144214e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 144314e8a3c4SBeni Lev ), 1444ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 144514e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 144614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 144714e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 144814e8a3c4SBeni Lev ); 144914e8a3c4SBeni Lev 14504a4b8169SAndrew Zaborowski TRACE_EVENT(rdev_set_cqm_rssi_range_config, 14514a4b8169SAndrew Zaborowski TP_PROTO(struct wiphy *wiphy, 14524a4b8169SAndrew Zaborowski struct net_device *netdev, s32 low, s32 high), 14534a4b8169SAndrew Zaborowski TP_ARGS(wiphy, netdev, low, high), 14544a4b8169SAndrew Zaborowski TP_STRUCT__entry( 14554a4b8169SAndrew Zaborowski WIPHY_ENTRY 14564a4b8169SAndrew Zaborowski NETDEV_ENTRY 14574a4b8169SAndrew Zaborowski __field(s32, rssi_low) 14584a4b8169SAndrew Zaborowski __field(s32, rssi_high) 14594a4b8169SAndrew Zaborowski ), 14604a4b8169SAndrew Zaborowski TP_fast_assign( 14614a4b8169SAndrew Zaborowski WIPHY_ASSIGN; 14624a4b8169SAndrew Zaborowski NETDEV_ASSIGN; 14634a4b8169SAndrew Zaborowski __entry->rssi_low = low; 14644a4b8169SAndrew Zaborowski __entry->rssi_high = high; 14654a4b8169SAndrew Zaborowski ), 14664a4b8169SAndrew Zaborowski TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 14674a4b8169SAndrew Zaborowski ", range: %d - %d ", 14684a4b8169SAndrew Zaborowski WIPHY_PR_ARG, NETDEV_PR_ARG, 14694a4b8169SAndrew Zaborowski __entry->rssi_low, __entry->rssi_high) 14704a4b8169SAndrew Zaborowski ); 14714a4b8169SAndrew Zaborowski 147214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 147314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 147414e8a3c4SBeni Lev u32 pkts, u32 intvl), 147514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 147614e8a3c4SBeni Lev TP_STRUCT__entry( 147714e8a3c4SBeni Lev WIPHY_ENTRY 147814e8a3c4SBeni Lev NETDEV_ENTRY 147914e8a3c4SBeni Lev __field(u32, rate) 148014e8a3c4SBeni Lev __field(u32, pkts) 148114e8a3c4SBeni Lev __field(u32, intvl) 148214e8a3c4SBeni Lev ), 148314e8a3c4SBeni Lev TP_fast_assign( 148414e8a3c4SBeni Lev WIPHY_ASSIGN; 148514e8a3c4SBeni Lev NETDEV_ASSIGN; 148614e8a3c4SBeni Lev __entry->rate = rate; 148714e8a3c4SBeni Lev __entry->pkts = pkts; 148814e8a3c4SBeni Lev __entry->intvl = intvl; 148914e8a3c4SBeni Lev ), 1490ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 149114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 149214e8a3c4SBeni Lev __entry->intvl) 149314e8a3c4SBeni Lev ); 149414e8a3c4SBeni Lev 149514e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 149614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 149714e8a3c4SBeni Lev u16 reason_code), 149814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 149914e8a3c4SBeni Lev TP_STRUCT__entry( 150014e8a3c4SBeni Lev WIPHY_ENTRY 150114e8a3c4SBeni Lev NETDEV_ENTRY 150214e8a3c4SBeni Lev __field(u16, reason_code) 150314e8a3c4SBeni Lev ), 150414e8a3c4SBeni Lev TP_fast_assign( 150514e8a3c4SBeni Lev WIPHY_ASSIGN; 150614e8a3c4SBeni Lev NETDEV_ASSIGN; 150714e8a3c4SBeni Lev __entry->reason_code = reason_code; 150814e8a3c4SBeni Lev ), 1509ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 151014e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 151114e8a3c4SBeni Lev ); 151214e8a3c4SBeni Lev 151314e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 151414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 151514e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 151614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 151714e8a3c4SBeni Lev TP_STRUCT__entry( 151814e8a3c4SBeni Lev WIPHY_ENTRY 151914e8a3c4SBeni Lev NETDEV_ENTRY 152014e8a3c4SBeni Lev MAC_ENTRY(bssid) 152114e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 152214e8a3c4SBeni Lev ), 152314e8a3c4SBeni Lev TP_fast_assign( 152414e8a3c4SBeni Lev WIPHY_ASSIGN; 152514e8a3c4SBeni Lev NETDEV_ASSIGN; 152614e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 152714e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 152814e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 152914e8a3c4SBeni Lev ), 1530ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s", 153114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid) 153214e8a3c4SBeni Lev ); 153314e8a3c4SBeni Lev 15346e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 15356e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 15366e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 15376e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 15386e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 15396e0bd6c3SRostislav Lisovy WIPHY_ENTRY 15406e0bd6c3SRostislav Lisovy NETDEV_ENTRY 15416e0bd6c3SRostislav Lisovy ), 15426e0bd6c3SRostislav Lisovy TP_fast_assign( 15436e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 15446e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 15456e0bd6c3SRostislav Lisovy ), 15466e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 15476e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 15486e0bd6c3SRostislav Lisovy ); 15496e0bd6c3SRostislav Lisovy 155014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 155114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 155214e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 155314e8a3c4SBeni Lev TP_STRUCT__entry( 155414e8a3c4SBeni Lev WIPHY_ENTRY 155514e8a3c4SBeni Lev __field(u32, changed) 155614e8a3c4SBeni Lev ), 155714e8a3c4SBeni Lev TP_fast_assign( 155814e8a3c4SBeni Lev WIPHY_ASSIGN; 155914e8a3c4SBeni Lev __entry->changed = changed; 156014e8a3c4SBeni Lev ), 156114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 156214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 156314e8a3c4SBeni Lev ); 156414e8a3c4SBeni Lev 1565c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1566c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1567c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1568c8442118SJohannes Berg ); 1569c8442118SJohannes Berg 157014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1571c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1572c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1573c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 157414e8a3c4SBeni Lev TP_STRUCT__entry( 157514e8a3c4SBeni Lev WIPHY_ENTRY 1576c8442118SJohannes Berg WDEV_ENTRY 157714e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 157814e8a3c4SBeni Lev __field(int, mbm) 157914e8a3c4SBeni Lev ), 158014e8a3c4SBeni Lev TP_fast_assign( 158114e8a3c4SBeni Lev WIPHY_ASSIGN; 1582c8442118SJohannes Berg WDEV_ASSIGN; 158314e8a3c4SBeni Lev __entry->type = type; 158414e8a3c4SBeni Lev __entry->mbm = mbm; 158514e8a3c4SBeni Lev ), 1586ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1587c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 158814e8a3c4SBeni Lev ); 158914e8a3c4SBeni Lev 159014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 159114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 159214e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 159314e8a3c4SBeni Lev TP_STRUCT__entry( 159414e8a3c4SBeni Lev WIPHY_ENTRY 159514e8a3c4SBeni Lev __field(int, func_ret) 159614e8a3c4SBeni Lev __field(int, func_fill) 159714e8a3c4SBeni Lev ), 159814e8a3c4SBeni Lev TP_fast_assign( 159914e8a3c4SBeni Lev WIPHY_ASSIGN; 160014e8a3c4SBeni Lev __entry->func_ret = func_ret; 160114e8a3c4SBeni Lev __entry->func_fill = func_fill; 160214e8a3c4SBeni Lev ), 160314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 160414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 160514e8a3c4SBeni Lev ); 160614e8a3c4SBeni Lev 160714e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 160814e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1609fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1610fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 161114e8a3c4SBeni Lev TP_STRUCT__entry( 161214e8a3c4SBeni Lev WIPHY_ENTRY 1613fc73f11fSDavid Spinadel WDEV_ENTRY 161414e8a3c4SBeni Lev ), 161514e8a3c4SBeni Lev TP_fast_assign( 161614e8a3c4SBeni Lev WIPHY_ASSIGN; 1617fc73f11fSDavid Spinadel WDEV_ASSIGN; 161814e8a3c4SBeni Lev ), 1619fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 162014e8a3c4SBeni Lev ); 162114e8a3c4SBeni Lev 162214e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 162314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 162414e8a3c4SBeni Lev TP_ARGS(wiphy), 162514e8a3c4SBeni Lev TP_STRUCT__entry( 162614e8a3c4SBeni Lev WIPHY_ENTRY 162714e8a3c4SBeni Lev ), 162814e8a3c4SBeni Lev TP_fast_assign( 162914e8a3c4SBeni Lev WIPHY_ASSIGN; 163014e8a3c4SBeni Lev ), 163114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 163214e8a3c4SBeni Lev ); 163314e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 163414e8a3c4SBeni Lev 163514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 163614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 16377b0a0e3cSJohannes Berg unsigned int link_id, 163814e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 16397b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, peer, mask), 164014e8a3c4SBeni Lev TP_STRUCT__entry( 164114e8a3c4SBeni Lev WIPHY_ENTRY 164214e8a3c4SBeni Lev NETDEV_ENTRY 16437b0a0e3cSJohannes Berg __field(unsigned int, link_id) 164414e8a3c4SBeni Lev MAC_ENTRY(peer) 164514e8a3c4SBeni Lev ), 164614e8a3c4SBeni Lev TP_fast_assign( 164714e8a3c4SBeni Lev WIPHY_ASSIGN; 164814e8a3c4SBeni Lev NETDEV_ASSIGN; 16497b0a0e3cSJohannes Berg __entry->link_id = link_id; 165014e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 165114e8a3c4SBeni Lev ), 16527b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT, 16537b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 16547b0a0e3cSJohannes Berg MAC_PR_ARG(peer)) 165514e8a3c4SBeni Lev ); 165614e8a3c4SBeni Lev 16576cd536feSJohannes Berg TRACE_EVENT(rdev_update_mgmt_frame_registrations, 165814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 16596cd536feSJohannes Berg struct mgmt_frame_regs *upd), 16606cd536feSJohannes Berg TP_ARGS(wiphy, wdev, upd), 166114e8a3c4SBeni Lev TP_STRUCT__entry( 166214e8a3c4SBeni Lev WIPHY_ENTRY 166314e8a3c4SBeni Lev WDEV_ENTRY 16646cd536feSJohannes Berg __field(u16, global_stypes) 16656cd536feSJohannes Berg __field(u16, interface_stypes) 166614e8a3c4SBeni Lev ), 166714e8a3c4SBeni Lev TP_fast_assign( 166814e8a3c4SBeni Lev WIPHY_ASSIGN; 166914e8a3c4SBeni Lev WDEV_ASSIGN; 16706cd536feSJohannes Berg __entry->global_stypes = upd->global_stypes; 16716cd536feSJohannes Berg __entry->interface_stypes = upd->interface_stypes; 167214e8a3c4SBeni Lev ), 16736cd536feSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x", 16746cd536feSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 16756cd536feSJohannes Berg __entry->global_stypes, __entry->interface_stypes) 167614e8a3c4SBeni Lev ); 167714e8a3c4SBeni Lev 167814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 167914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 168014e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 168114e8a3c4SBeni Lev TP_STRUCT__entry( 168214e8a3c4SBeni Lev WIPHY_ENTRY 168314e8a3c4SBeni Lev __field(int, ret) 168414e8a3c4SBeni Lev __field(u32, tx) 168514e8a3c4SBeni Lev __field(u32, rx) 168614e8a3c4SBeni Lev ), 168714e8a3c4SBeni Lev TP_fast_assign( 168814e8a3c4SBeni Lev WIPHY_ASSIGN; 168914e8a3c4SBeni Lev __entry->ret = ret; 169014e8a3c4SBeni Lev __entry->tx = tx; 169114e8a3c4SBeni Lev __entry->rx = rx; 169214e8a3c4SBeni Lev ), 169314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 169414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 169514e8a3c4SBeni Lev ); 169614e8a3c4SBeni Lev 169714e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 169814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 169914e8a3c4SBeni Lev u32 rx, u32 rx_max), 170014e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 170114e8a3c4SBeni Lev TP_STRUCT__entry( 170214e8a3c4SBeni Lev WIPHY_ENTRY 170314e8a3c4SBeni Lev __field(u32, tx) 170414e8a3c4SBeni Lev __field(u32, tx_max) 170514e8a3c4SBeni Lev __field(u32, rx) 170614e8a3c4SBeni Lev __field(u32, rx_max) 170714e8a3c4SBeni Lev ), 170814e8a3c4SBeni Lev TP_fast_assign( 170914e8a3c4SBeni Lev WIPHY_ASSIGN; 171014e8a3c4SBeni Lev __entry->tx = tx; 171114e8a3c4SBeni Lev __entry->tx_max = tx_max; 171214e8a3c4SBeni Lev __entry->rx = rx; 171314e8a3c4SBeni Lev __entry->rx_max = rx_max; 171414e8a3c4SBeni Lev ), 171514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 171614e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 171714e8a3c4SBeni Lev __entry->rx_max) 171814e8a3c4SBeni Lev ); 171914e8a3c4SBeni Lev 172014e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 172114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 172214e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 172314e8a3c4SBeni Lev TP_STRUCT__entry( 172414e8a3c4SBeni Lev WIPHY_ENTRY 172514e8a3c4SBeni Lev __field(u32, tx) 172614e8a3c4SBeni Lev __field(u32, rx) 172714e8a3c4SBeni Lev ), 172814e8a3c4SBeni Lev TP_fast_assign( 172914e8a3c4SBeni Lev WIPHY_ASSIGN; 173014e8a3c4SBeni Lev __entry->tx = tx; 173114e8a3c4SBeni Lev __entry->rx = rx; 173214e8a3c4SBeni Lev ), 173314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 173414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 173514e8a3c4SBeni Lev ); 173614e8a3c4SBeni Lev 173714e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 173814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 173914e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 174014e8a3c4SBeni Lev ); 174114e8a3c4SBeni Lev 1742ca986ad9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_netdev_id_evt, 1743ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1744ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id), 174514e8a3c4SBeni Lev TP_STRUCT__entry( 174614e8a3c4SBeni Lev WIPHY_ENTRY 174714e8a3c4SBeni Lev NETDEV_ENTRY 1748ca986ad9SArend Van Spriel __field(u64, id) 174914e8a3c4SBeni Lev ), 175014e8a3c4SBeni Lev TP_fast_assign( 175114e8a3c4SBeni Lev WIPHY_ASSIGN; 175214e8a3c4SBeni Lev NETDEV_ASSIGN; 1753ca986ad9SArend Van Spriel __entry->id = id; 175414e8a3c4SBeni Lev ), 1755ca986ad9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu", 1756ca986ad9SArend Van Spriel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id) 1757ca986ad9SArend Van Spriel ); 1758ca986ad9SArend Van Spriel 1759ca986ad9SArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start, 1760ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1761ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id) 176214e8a3c4SBeni Lev ); 176314e8a3c4SBeni Lev 17643a3ecf1dSArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop, 17653a3ecf1dSArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 17663a3ecf1dSArend Van Spriel TP_ARGS(wiphy, netdev, id) 17673a3ecf1dSArend Van Spriel ); 17683a3ecf1dSArend Van Spriel 176914e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 177014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 177114e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1772df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 177331fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 177414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 177531fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 177614e8a3c4SBeni Lev TP_STRUCT__entry( 177714e8a3c4SBeni Lev WIPHY_ENTRY 177814e8a3c4SBeni Lev NETDEV_ENTRY 177914e8a3c4SBeni Lev MAC_ENTRY(peer) 178014e8a3c4SBeni Lev __field(u8, action_code) 178114e8a3c4SBeni Lev __field(u8, dialog_token) 178214e8a3c4SBeni Lev __field(u16, status_code) 1783df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 178431fa97c5SArik Nemtsov __field(bool, initiator) 178514e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 178614e8a3c4SBeni Lev ), 178714e8a3c4SBeni Lev TP_fast_assign( 178814e8a3c4SBeni Lev WIPHY_ASSIGN; 178914e8a3c4SBeni Lev NETDEV_ASSIGN; 179014e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 179114e8a3c4SBeni Lev __entry->action_code = action_code; 179214e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 179314e8a3c4SBeni Lev __entry->status_code = status_code; 1794df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 179531fa97c5SArik Nemtsov __entry->initiator = initiator; 179614e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 179714e8a3c4SBeni Lev ), 1798ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, " 179931fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 180031fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 180114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 180214e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1803df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 180431fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1805df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 180614e8a3c4SBeni Lev ); 180714e8a3c4SBeni Lev 180814e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 1809aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx), 1810aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx), 181114e8a3c4SBeni Lev TP_STRUCT__entry( 181214e8a3c4SBeni Lev WIPHY_ENTRY 181314e8a3c4SBeni Lev NETDEV_ENTRY 181414e8a3c4SBeni Lev __field(int, idx) 181514e8a3c4SBeni Lev ), 181614e8a3c4SBeni Lev TP_fast_assign( 181714e8a3c4SBeni Lev WIPHY_ASSIGN; 181814e8a3c4SBeni Lev NETDEV_ASSIGN; 1819aaaa10e0SJohannes Berg __entry->idx = _idx; 182014e8a3c4SBeni Lev ), 1821ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 182214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 182314e8a3c4SBeni Lev ); 182414e8a3c4SBeni Lev 182514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 182614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 182714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 182814e8a3c4SBeni Lev TP_STRUCT__entry( 182914e8a3c4SBeni Lev WIPHY_ENTRY 183014e8a3c4SBeni Lev CHAN_ENTRY 183114e8a3c4SBeni Lev __field(int, ret) 18324ed20bebSJohannes Berg __field(u64, time) 18334ed20bebSJohannes Berg __field(u64, time_busy) 18344ed20bebSJohannes Berg __field(u64, time_ext_busy) 18354ed20bebSJohannes Berg __field(u64, time_rx) 18364ed20bebSJohannes Berg __field(u64, time_tx) 1837052536abSJohannes Berg __field(u64, time_scan) 183814e8a3c4SBeni Lev __field(u32, filled) 183914e8a3c4SBeni Lev __field(s8, noise) 184014e8a3c4SBeni Lev ), 184114e8a3c4SBeni Lev TP_fast_assign( 184214e8a3c4SBeni Lev WIPHY_ASSIGN; 184314e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 184414e8a3c4SBeni Lev __entry->ret = ret; 18454ed20bebSJohannes Berg __entry->time = info->time; 18464ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 18474ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 18484ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 18494ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1850052536abSJohannes Berg __entry->time_scan = info->time_scan; 185114e8a3c4SBeni Lev __entry->filled = info->filled; 185214e8a3c4SBeni Lev __entry->noise = info->noise; 185314e8a3c4SBeni Lev ), 185414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 185514e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 185614e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1857052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 185814e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 18594ed20bebSJohannes Berg __entry->time, __entry->time_busy, 18604ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1861052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1862052536abSJohannes Berg __entry->filled, __entry->noise) 186314e8a3c4SBeni Lev ); 186414e8a3c4SBeni Lev 186514e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 186614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 186714e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 186814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 186914e8a3c4SBeni Lev TP_STRUCT__entry( 187014e8a3c4SBeni Lev WIPHY_ENTRY 187114e8a3c4SBeni Lev NETDEV_ENTRY 187214e8a3c4SBeni Lev MAC_ENTRY(peer) 187314e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 187414e8a3c4SBeni Lev ), 187514e8a3c4SBeni Lev TP_fast_assign( 187614e8a3c4SBeni Lev WIPHY_ASSIGN; 187714e8a3c4SBeni Lev NETDEV_ASSIGN; 187814e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 187914e8a3c4SBeni Lev __entry->oper = oper; 188014e8a3c4SBeni Lev ), 1881ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d", 188214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper) 188314e8a3c4SBeni Lev ); 188414e8a3c4SBeni Lev 188514e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 188614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 188714e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 188814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 188914e8a3c4SBeni Lev TP_STRUCT__entry( 189014e8a3c4SBeni Lev WIPHY_ENTRY 189114e8a3c4SBeni Lev NETDEV_ENTRY 189214e8a3c4SBeni Lev MAC_ENTRY(bssid) 189314e8a3c4SBeni Lev ), 189414e8a3c4SBeni Lev TP_fast_assign( 189514e8a3c4SBeni Lev WIPHY_ASSIGN; 189614e8a3c4SBeni Lev NETDEV_ASSIGN; 189714e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 189814e8a3c4SBeni Lev ), 1899ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT, 190014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid)) 190114e8a3c4SBeni Lev ); 190214e8a3c4SBeni Lev 190314e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 190414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 190514e8a3c4SBeni Lev const u8 *peer), 190614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 190714e8a3c4SBeni Lev TP_STRUCT__entry( 190814e8a3c4SBeni Lev WIPHY_ENTRY 190914e8a3c4SBeni Lev NETDEV_ENTRY 191014e8a3c4SBeni Lev MAC_ENTRY(peer) 191114e8a3c4SBeni Lev ), 191214e8a3c4SBeni Lev TP_fast_assign( 191314e8a3c4SBeni Lev WIPHY_ASSIGN; 191414e8a3c4SBeni Lev NETDEV_ASSIGN; 191514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 191614e8a3c4SBeni Lev ), 1917ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 191814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 191914e8a3c4SBeni Lev ); 192014e8a3c4SBeni Lev 192114e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 192214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192314e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 192414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 192514e8a3c4SBeni Lev ); 192614e8a3c4SBeni Lev 192714e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 192814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192914e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 193014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 193114e8a3c4SBeni Lev ); 193214e8a3c4SBeni Lev 193314e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 193414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 193514e8a3c4SBeni Lev struct ieee80211_channel *chan, 193642d97a59SJohannes Berg unsigned int duration), 193742d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 193814e8a3c4SBeni Lev TP_STRUCT__entry( 193914e8a3c4SBeni Lev WIPHY_ENTRY 194014e8a3c4SBeni Lev WDEV_ENTRY 194114e8a3c4SBeni Lev CHAN_ENTRY 194214e8a3c4SBeni Lev __field(unsigned int, duration) 194314e8a3c4SBeni Lev ), 194414e8a3c4SBeni Lev TP_fast_assign( 194514e8a3c4SBeni Lev WIPHY_ASSIGN; 194614e8a3c4SBeni Lev WDEV_ASSIGN; 194714e8a3c4SBeni Lev CHAN_ASSIGN(chan); 194814e8a3c4SBeni Lev __entry->duration = duration; 194914e8a3c4SBeni Lev ), 1950ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 195142d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 195214e8a3c4SBeni Lev ); 195314e8a3c4SBeni Lev 195414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 195514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 195614e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 195714e8a3c4SBeni Lev TP_STRUCT__entry( 195814e8a3c4SBeni Lev WIPHY_ENTRY 195914e8a3c4SBeni Lev __field(int, ret) 196014e8a3c4SBeni Lev __field(u64, cookie) 196114e8a3c4SBeni Lev ), 196214e8a3c4SBeni Lev TP_fast_assign( 196314e8a3c4SBeni Lev WIPHY_ASSIGN; 196414e8a3c4SBeni Lev __entry->ret = ret; 196514e8a3c4SBeni Lev __entry->cookie = cookie; 196614e8a3c4SBeni Lev ), 196714e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 196814e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 196914e8a3c4SBeni Lev ); 197014e8a3c4SBeni Lev 197114e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 197214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 197314e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 197414e8a3c4SBeni Lev TP_STRUCT__entry( 197514e8a3c4SBeni Lev WIPHY_ENTRY 197614e8a3c4SBeni Lev WDEV_ENTRY 197714e8a3c4SBeni Lev __field(u64, cookie) 197814e8a3c4SBeni Lev ), 197914e8a3c4SBeni Lev TP_fast_assign( 198014e8a3c4SBeni Lev WIPHY_ASSIGN; 198114e8a3c4SBeni Lev WDEV_ASSIGN; 198214e8a3c4SBeni Lev __entry->cookie = cookie; 198314e8a3c4SBeni Lev ), 1984ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 198514e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 198614e8a3c4SBeni Lev ); 198714e8a3c4SBeni Lev 198814e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 198914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1990b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 1991b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 199214e8a3c4SBeni Lev TP_STRUCT__entry( 199314e8a3c4SBeni Lev WIPHY_ENTRY 199414e8a3c4SBeni Lev WDEV_ENTRY 199514e8a3c4SBeni Lev CHAN_ENTRY 199614e8a3c4SBeni Lev __field(bool, offchan) 199714e8a3c4SBeni Lev __field(unsigned int, wait) 199814e8a3c4SBeni Lev __field(bool, no_cck) 199914e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 200014e8a3c4SBeni Lev ), 200114e8a3c4SBeni Lev TP_fast_assign( 200214e8a3c4SBeni Lev WIPHY_ASSIGN; 200314e8a3c4SBeni Lev WDEV_ASSIGN; 2004b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 2005b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 2006b176e629SAndrei Otcheretianski __entry->wait = params->wait; 2007b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 2008b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 200914e8a3c4SBeni Lev ), 2010ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 201142d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 201214e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 201342d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 201414e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 201514e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 201614e8a3c4SBeni Lev ); 201714e8a3c4SBeni Lev 20182576a9acSDenis Kenzior TRACE_EVENT(rdev_tx_control_port, 20192576a9acSDenis Kenzior TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20208d74a623SJohannes Berg const u8 *buf, size_t len, const u8 *dest, __be16 proto, 20212576a9acSDenis Kenzior bool unencrypted), 20228d74a623SJohannes Berg TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted), 20232576a9acSDenis Kenzior TP_STRUCT__entry( 20242576a9acSDenis Kenzior WIPHY_ENTRY 20252576a9acSDenis Kenzior NETDEV_ENTRY 20262576a9acSDenis Kenzior MAC_ENTRY(dest) 20278d74a623SJohannes Berg __field(__be16, proto) 20282576a9acSDenis Kenzior __field(bool, unencrypted) 20292576a9acSDenis Kenzior ), 20302576a9acSDenis Kenzior TP_fast_assign( 20312576a9acSDenis Kenzior WIPHY_ASSIGN; 20322576a9acSDenis Kenzior NETDEV_ASSIGN; 20332576a9acSDenis Kenzior MAC_ASSIGN(dest, dest); 20348d74a623SJohannes Berg __entry->proto = proto; 20352576a9acSDenis Kenzior __entry->unencrypted = unencrypted; 20362576a9acSDenis Kenzior ), 20378d74a623SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT "," 20388d74a623SJohannes Berg " proto: 0x%x, unencrypted: %s", 20398d74a623SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest), 20408d74a623SJohannes Berg be16_to_cpu(__entry->proto), 20412576a9acSDenis Kenzior BOOL_TO_STR(__entry->unencrypted)) 20422576a9acSDenis Kenzior ); 20432576a9acSDenis Kenzior 204414e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 204514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 204614e8a3c4SBeni Lev u16 noack_map), 204714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 204814e8a3c4SBeni Lev TP_STRUCT__entry( 204914e8a3c4SBeni Lev WIPHY_ENTRY 205014e8a3c4SBeni Lev NETDEV_ENTRY 205114e8a3c4SBeni Lev __field(u16, noack_map) 205214e8a3c4SBeni Lev ), 205314e8a3c4SBeni Lev TP_fast_assign( 205414e8a3c4SBeni Lev WIPHY_ASSIGN; 205514e8a3c4SBeni Lev NETDEV_ASSIGN; 205614e8a3c4SBeni Lev __entry->noack_map = noack_map; 205714e8a3c4SBeni Lev ), 2058ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 205914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 206014e8a3c4SBeni Lev ); 206114e8a3c4SBeni Lev 2062f2a0290bSJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_link_evt, 20637b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 20647b0a0e3cSJohannes Berg unsigned int link_id), 20657b0a0e3cSJohannes Berg TP_ARGS(wiphy, wdev, link_id), 20667b0a0e3cSJohannes Berg TP_STRUCT__entry( 20677b0a0e3cSJohannes Berg WIPHY_ENTRY 20687b0a0e3cSJohannes Berg WDEV_ENTRY 20697b0a0e3cSJohannes Berg __field(unsigned int, link_id) 20707b0a0e3cSJohannes Berg ), 20717b0a0e3cSJohannes Berg TP_fast_assign( 20727b0a0e3cSJohannes Berg WIPHY_ASSIGN; 20737b0a0e3cSJohannes Berg WDEV_ASSIGN; 20747b0a0e3cSJohannes Berg __entry->link_id = link_id; 20757b0a0e3cSJohannes Berg ), 20767b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", 20777b0a0e3cSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) 207814e8a3c4SBeni Lev ); 207914e8a3c4SBeni Lev 2080f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel, 2081f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2082f2a0290bSJohannes Berg unsigned int link_id), 2083f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2084f2a0290bSJohannes Berg ); 2085f2a0290bSJohannes Berg 2086683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2087683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2088683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2089683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 209014e8a3c4SBeni Lev TP_STRUCT__entry( 209114e8a3c4SBeni Lev WIPHY_ENTRY 2092683b6d3bSJohannes Berg __field(int, ret) 2093683b6d3bSJohannes Berg CHAN_DEF_ENTRY 209414e8a3c4SBeni Lev ), 209514e8a3c4SBeni Lev TP_fast_assign( 209614e8a3c4SBeni Lev WIPHY_ASSIGN; 2097683b6d3bSJohannes Berg if (ret == 0) 2098683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2099683b6d3bSJohannes Berg else 2100683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2101683b6d3bSJohannes Berg __entry->ret = ret; 210214e8a3c4SBeni Lev ), 2103ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2104683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 210514e8a3c4SBeni Lev ); 210614e8a3c4SBeni Lev 2107eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2108eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2109eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2110eeb126e9SJohannes Berg ); 2111eeb126e9SJohannes Berg 2112eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2113eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2114eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2115eeb126e9SJohannes Berg ); 2116eeb126e9SJohannes Berg 2117cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2118cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2119cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2120cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2121cb3b7d87SAyala Beker TP_STRUCT__entry( 2122cb3b7d87SAyala Beker WIPHY_ENTRY 2123cb3b7d87SAyala Beker WDEV_ENTRY 2124cb3b7d87SAyala Beker __field(u8, master_pref) 212504ae87a5SPeter Zijlstra __field(u8, bands) 2126cb3b7d87SAyala Beker ), 2127cb3b7d87SAyala Beker TP_fast_assign( 2128cb3b7d87SAyala Beker WIPHY_ASSIGN; 2129cb3b7d87SAyala Beker WDEV_ASSIGN; 2130cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 21318585989dSLuca Coelho __entry->bands = conf->bands; 2132cb3b7d87SAyala Beker ), 2133cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21348585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2135cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21368585989dSLuca Coelho __entry->bands) 2137cb3b7d87SAyala Beker ); 2138cb3b7d87SAyala Beker 2139a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2140a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2141a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2142a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2143a5a9dcf2SAyala Beker TP_STRUCT__entry( 2144a5a9dcf2SAyala Beker WIPHY_ENTRY 2145a5a9dcf2SAyala Beker WDEV_ENTRY 2146a5a9dcf2SAyala Beker __field(u8, master_pref) 214704ae87a5SPeter Zijlstra __field(u8, bands) 214804ae87a5SPeter Zijlstra __field(u32, changes) 2149a5a9dcf2SAyala Beker ), 2150a5a9dcf2SAyala Beker TP_fast_assign( 2151a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2152a5a9dcf2SAyala Beker WDEV_ASSIGN; 2153a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21548585989dSLuca Coelho __entry->bands = conf->bands; 2155a5a9dcf2SAyala Beker __entry->changes = changes; 2156a5a9dcf2SAyala Beker ), 2157a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21588585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2159a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21608585989dSLuca Coelho __entry->bands, __entry->changes) 2161a5a9dcf2SAyala Beker ); 2162a5a9dcf2SAyala Beker 2163cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2164cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2165cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2166cb3b7d87SAyala Beker ); 2167cb3b7d87SAyala Beker 2168a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2169a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2170a442b761SAyala Beker const struct cfg80211_nan_func *func), 2171a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2172a442b761SAyala Beker TP_STRUCT__entry( 2173a442b761SAyala Beker WIPHY_ENTRY 2174a442b761SAyala Beker WDEV_ENTRY 2175a442b761SAyala Beker __field(u8, func_type) 2176a442b761SAyala Beker __field(u64, cookie) 2177a442b761SAyala Beker ), 2178a442b761SAyala Beker TP_fast_assign( 2179a442b761SAyala Beker WIPHY_ASSIGN; 2180a442b761SAyala Beker WDEV_ASSIGN; 2181a442b761SAyala Beker __entry->func_type = func->type; 2182a442b761SAyala Beker __entry->cookie = func->cookie 2183a442b761SAyala Beker ), 2184a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2185a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2186a442b761SAyala Beker __entry->cookie) 2187a442b761SAyala Beker ); 2188a442b761SAyala Beker 2189a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2190a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2191a442b761SAyala Beker u64 cookie), 2192a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2193a442b761SAyala Beker TP_STRUCT__entry( 2194a442b761SAyala Beker WIPHY_ENTRY 2195a442b761SAyala Beker WDEV_ENTRY 2196a442b761SAyala Beker __field(u64, cookie) 2197a442b761SAyala Beker ), 2198a442b761SAyala Beker TP_fast_assign( 2199a442b761SAyala Beker WIPHY_ASSIGN; 2200a442b761SAyala Beker WDEV_ASSIGN; 2201a442b761SAyala Beker __entry->cookie = cookie; 2202a442b761SAyala Beker ), 2203a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2204a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2205a442b761SAyala Beker ); 2206a442b761SAyala Beker 220777765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 220877765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 220977765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 221077765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 221177765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 221277765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 221377765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 221477765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 221577765eafSVasanthakumar Thiagarajan ), 221677765eafSVasanthakumar Thiagarajan TP_fast_assign( 221777765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2218021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 221977765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 222077765eafSVasanthakumar Thiagarajan ), 222177765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 222277765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 222377765eafSVasanthakumar Thiagarajan ); 222477765eafSVasanthakumar Thiagarajan 2225355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2226355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2227355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2228355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2229355199e0SJouni Malinen TP_STRUCT__entry( 2230355199e0SJouni Malinen WIPHY_ENTRY 2231355199e0SJouni Malinen NETDEV_ENTRY 2232355199e0SJouni Malinen __field(u16, md) 2233355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2234355199e0SJouni Malinen ), 2235355199e0SJouni Malinen TP_fast_assign( 2236355199e0SJouni Malinen WIPHY_ASSIGN; 2237355199e0SJouni Malinen NETDEV_ASSIGN; 2238355199e0SJouni Malinen __entry->md = ftie->md; 2239355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2240355199e0SJouni Malinen ), 2241355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2242355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2243355199e0SJouni Malinen ); 2244355199e0SJouni Malinen 22455de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22465de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22475de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22485de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22495de17984SArend van Spriel TP_STRUCT__entry( 22505de17984SArend van Spriel WIPHY_ENTRY 22515de17984SArend van Spriel WDEV_ENTRY 22525de17984SArend van Spriel __field(u16, proto) 22535de17984SArend van Spriel __field(u16, duration) 22545de17984SArend van Spriel ), 22555de17984SArend van Spriel TP_fast_assign( 22565de17984SArend van Spriel WIPHY_ASSIGN; 22575de17984SArend van Spriel WDEV_ASSIGN; 22585de17984SArend van Spriel __entry->proto = protocol; 22595de17984SArend van Spriel __entry->duration = duration; 22605de17984SArend van Spriel ), 22615de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22625de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22635de17984SArend van Spriel ); 22645de17984SArend van Spriel 22655de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 22665de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 22675de17984SArend van Spriel TP_ARGS(wiphy, wdev), 22685de17984SArend van Spriel TP_STRUCT__entry( 22695de17984SArend van Spriel WIPHY_ENTRY 22705de17984SArend van Spriel WDEV_ENTRY 22715de17984SArend van Spriel ), 22725de17984SArend van Spriel TP_fast_assign( 22735de17984SArend van Spriel WIPHY_ASSIGN; 22745de17984SArend van Spriel WDEV_ASSIGN; 22755de17984SArend van Spriel ), 22765de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 22775de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 22785de17984SArend van Spriel ); 22795de17984SArend van Spriel 228016ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 228116ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 228216ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 228316ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 228416ef1fe2SSimon Wunderlich TP_STRUCT__entry( 228516ef1fe2SSimon Wunderlich WIPHY_ENTRY 228616ef1fe2SSimon Wunderlich NETDEV_ENTRY 228716ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 228816ef1fe2SSimon Wunderlich __field(bool, radar_required) 228916ef1fe2SSimon Wunderlich __field(bool, block_tx) 229016ef1fe2SSimon Wunderlich __field(u8, count) 22919a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 22929a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 229316ef1fe2SSimon Wunderlich ), 229416ef1fe2SSimon Wunderlich TP_fast_assign( 229516ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 229616ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 229716ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 229816ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 229916ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 230016ef1fe2SSimon Wunderlich __entry->count = params->count; 23019a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 23029a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 23039a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 23049a774c78SAndrei Otcheretianski 23059a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 23069a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 23079a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 23089a774c78SAndrei Otcheretianski params->counter_offsets_presp, 23099a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 231016ef1fe2SSimon Wunderlich ), 231116ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 23129a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 231316ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23149a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 231516ef1fe2SSimon Wunderlich ); 231616ef1fe2SSimon Wunderlich 2317fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2318fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2319fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2320fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2321fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2322fa9ffc74SKyeyoon Park WIPHY_ENTRY 2323fa9ffc74SKyeyoon Park NETDEV_ENTRY 2324fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2325fa9ffc74SKyeyoon Park ), 2326fa9ffc74SKyeyoon Park TP_fast_assign( 2327fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2328fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2329fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2330fa9ffc74SKyeyoon Park ), 2331fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2332fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2333fa9ffc74SKyeyoon Park ); 2334fa9ffc74SKyeyoon Park 2335e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2336e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23377b0a0e3cSJohannes Berg unsigned int link_id, 2338e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 23397b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, chandef), 2340e16821bcSJouni Malinen TP_STRUCT__entry( 2341e16821bcSJouni Malinen WIPHY_ENTRY 2342e16821bcSJouni Malinen NETDEV_ENTRY 2343e16821bcSJouni Malinen CHAN_DEF_ENTRY 23447b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2345e16821bcSJouni Malinen ), 2346e16821bcSJouni Malinen TP_fast_assign( 2347e16821bcSJouni Malinen WIPHY_ASSIGN; 2348e16821bcSJouni Malinen NETDEV_ASSIGN; 2349e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 23507b0a0e3cSJohannes Berg __entry->link_id = link_id; 2351e16821bcSJouni Malinen ), 23527b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 23537b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23547b0a0e3cSJohannes Berg __entry->link_id) 2355e16821bcSJouni Malinen ); 2356e16821bcSJouni Malinen 2357960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2358960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2359960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2360960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2361960d01acSJohannes Berg TP_STRUCT__entry( 2362960d01acSJohannes Berg WIPHY_ENTRY 2363960d01acSJohannes Berg NETDEV_ENTRY 2364960d01acSJohannes Berg MAC_ENTRY(peer) 2365960d01acSJohannes Berg __field(u8, tsid) 2366960d01acSJohannes Berg __field(u8, user_prio) 2367960d01acSJohannes Berg __field(u16, admitted_time) 2368960d01acSJohannes Berg ), 2369960d01acSJohannes Berg TP_fast_assign( 2370960d01acSJohannes Berg WIPHY_ASSIGN; 2371960d01acSJohannes Berg NETDEV_ASSIGN; 2372960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2373960d01acSJohannes Berg __entry->tsid = tsid; 2374960d01acSJohannes Berg __entry->user_prio = user_prio; 2375960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2376960d01acSJohannes Berg ), 2377960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2378960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2379960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2380960d01acSJohannes Berg ); 2381960d01acSJohannes Berg 2382960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2383960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2384960d01acSJohannes Berg u8 tsid, const u8 *peer), 2385960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2386960d01acSJohannes Berg TP_STRUCT__entry( 2387960d01acSJohannes Berg WIPHY_ENTRY 2388960d01acSJohannes Berg NETDEV_ENTRY 2389960d01acSJohannes Berg MAC_ENTRY(peer) 2390960d01acSJohannes Berg __field(u8, tsid) 2391960d01acSJohannes Berg ), 2392960d01acSJohannes Berg TP_fast_assign( 2393960d01acSJohannes Berg WIPHY_ASSIGN; 2394960d01acSJohannes Berg NETDEV_ASSIGN; 2395960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2396960d01acSJohannes Berg __entry->tsid = tsid; 2397960d01acSJohannes Berg ), 2398960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2399960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2400960d01acSJohannes Berg ); 2401960d01acSJohannes Berg 24021057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 24031057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24041057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 24051057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 24061057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 24071057d35eSArik Nemtsov TP_STRUCT__entry( 24081057d35eSArik Nemtsov WIPHY_ENTRY 24091057d35eSArik Nemtsov NETDEV_ENTRY 24101057d35eSArik Nemtsov MAC_ENTRY(addr) 24111057d35eSArik Nemtsov __field(u8, oper_class) 24121057d35eSArik Nemtsov CHAN_DEF_ENTRY 24131057d35eSArik Nemtsov ), 24141057d35eSArik Nemtsov TP_fast_assign( 24151057d35eSArik Nemtsov WIPHY_ASSIGN; 24161057d35eSArik Nemtsov NETDEV_ASSIGN; 24171057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24181057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 24191057d35eSArik Nemtsov ), 24201057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24211057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 24221057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 24231057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 24241057d35eSArik Nemtsov ); 24251057d35eSArik Nemtsov 24261057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 24271057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24281057d35eSArik Nemtsov const u8 *addr), 24291057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 24301057d35eSArik Nemtsov TP_STRUCT__entry( 24311057d35eSArik Nemtsov WIPHY_ENTRY 24321057d35eSArik Nemtsov NETDEV_ENTRY 24331057d35eSArik Nemtsov MAC_ENTRY(addr) 24341057d35eSArik Nemtsov ), 24351057d35eSArik Nemtsov TP_fast_assign( 24361057d35eSArik Nemtsov WIPHY_ASSIGN; 24371057d35eSArik Nemtsov NETDEV_ASSIGN; 24381057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24391057d35eSArik Nemtsov ), 24401057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 24411057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24421057d35eSArik Nemtsov ); 24431057d35eSArik Nemtsov 24443a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24453a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24463a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24473a00df57SAvraham Stern 24483a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24493a00df57SAvraham Stern 24503a00df57SAvraham Stern TP_STRUCT__entry( 24513a00df57SAvraham Stern WIPHY_ENTRY 24523a00df57SAvraham Stern NETDEV_ENTRY 24533a00df57SAvraham Stern MAC_ENTRY(aa) 24543a00df57SAvraham Stern __field(u8, pmk_len) 24553a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24563a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24573a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24583a00df57SAvraham Stern ), 24593a00df57SAvraham Stern 24603a00df57SAvraham Stern TP_fast_assign( 24613a00df57SAvraham Stern WIPHY_ASSIGN; 24623a00df57SAvraham Stern NETDEV_ASSIGN; 24633a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24643a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24653a00df57SAvraham Stern __entry->pmk_r0_name_len = 24663a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 24673a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 24683a00df57SAvraham Stern pmk_conf->pmk_len); 24693a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 24703a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 24713a00df57SAvraham Stern ), 24723a00df57SAvraham Stern 24733a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24743a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 24753a00df57SAvraham Stern NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len, 24763a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 24773a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 24783a00df57SAvraham Stern __entry->pmk_r0_name_len ? 24793a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 24803a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 24813a00df57SAvraham Stern ); 24823a00df57SAvraham Stern 24833a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 24843a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 24853a00df57SAvraham Stern 24863a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 24873a00df57SAvraham Stern 24883a00df57SAvraham Stern TP_STRUCT__entry( 24893a00df57SAvraham Stern WIPHY_ENTRY 24903a00df57SAvraham Stern NETDEV_ENTRY 24913a00df57SAvraham Stern MAC_ENTRY(aa) 24923a00df57SAvraham Stern ), 24933a00df57SAvraham Stern 24943a00df57SAvraham Stern TP_fast_assign( 24953a00df57SAvraham Stern WIPHY_ASSIGN; 24963a00df57SAvraham Stern NETDEV_ASSIGN; 24973a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 24983a00df57SAvraham Stern ), 24993a00df57SAvraham Stern 25003a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 25013a00df57SAvraham Stern WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa)) 25023a00df57SAvraham Stern ); 25033a00df57SAvraham Stern 250440cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 250540cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 250640cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 250740cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 250840cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 250940cbfa90SSrinivas Dasari NETDEV_ENTRY 251040cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 251140cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 251240cbfa90SSrinivas Dasari __field(u16, status) 251340cbfa90SSrinivas Dasari ), 251440cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 251540cbfa90SSrinivas Dasari NETDEV_ASSIGN; 251640cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 251740cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 251840cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 251940cbfa90SSrinivas Dasari params->ssid.ssid_len); 252040cbfa90SSrinivas Dasari __entry->status = params->status; 252140cbfa90SSrinivas Dasari ), 252240cbfa90SSrinivas Dasari TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 252340cbfa90SSrinivas Dasari ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 252440cbfa90SSrinivas Dasari __entry->bssid, __entry->ssid, __entry->status) 252540cbfa90SSrinivas Dasari ); 252640cbfa90SSrinivas Dasari 25275207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 25285207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25295207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 25305207ca55SJohannes Berg u32 cac_time_ms), 25315207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 25325207ca55SJohannes Berg TP_STRUCT__entry( 25335207ca55SJohannes Berg WIPHY_ENTRY 25345207ca55SJohannes Berg NETDEV_ENTRY 25355207ca55SJohannes Berg CHAN_DEF_ENTRY 25365207ca55SJohannes Berg __field(u32, cac_time_ms) 25375207ca55SJohannes Berg ), 25385207ca55SJohannes Berg TP_fast_assign( 25395207ca55SJohannes Berg WIPHY_ASSIGN; 25405207ca55SJohannes Berg NETDEV_ASSIGN; 25415207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25425207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25435207ca55SJohannes Berg ), 25445207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25455207ca55SJohannes Berg ", cac_time_ms=%u", 25465207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25475207ca55SJohannes Berg __entry->cac_time_ms) 25485207ca55SJohannes Berg ); 25495207ca55SJohannes Berg 25505207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25515207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25525207ca55SJohannes Berg int *mcast_rate), 25535207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25545207ca55SJohannes Berg TP_STRUCT__entry( 25555207ca55SJohannes Berg WIPHY_ENTRY 25565207ca55SJohannes Berg NETDEV_ENTRY 25575207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25585207ca55SJohannes Berg ), 25595207ca55SJohannes Berg TP_fast_assign( 25605207ca55SJohannes Berg WIPHY_ASSIGN; 25615207ca55SJohannes Berg NETDEV_ASSIGN; 25625207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 25635207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 25645207ca55SJohannes Berg ), 25655207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2566e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 25675207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25685207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 25695207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2570e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 25715207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 25725207ca55SJohannes Berg ); 25735207ca55SJohannes Berg 25745207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 25755207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 25765207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 25775207ca55SJohannes Berg TP_STRUCT__entry( 25785207ca55SJohannes Berg WIPHY_ENTRY 25795207ca55SJohannes Berg __field(int, n_rules) 25805207ca55SJohannes Berg ), 25815207ca55SJohannes Berg TP_fast_assign( 25825207ca55SJohannes Berg WIPHY_ASSIGN; 25835207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 25845207ca55SJohannes Berg ), 25855207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 25865207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 25875207ca55SJohannes Berg ); 25885207ca55SJohannes Berg 25895207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 25905207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 25915207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 25925207ca55SJohannes Berg ); 25935207ca55SJohannes Berg 25945207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 25955207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25965207ca55SJohannes Berg const bool enabled), 25975207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 25985207ca55SJohannes Berg TP_STRUCT__entry( 25995207ca55SJohannes Berg WIPHY_ENTRY 26005207ca55SJohannes Berg NETDEV_ENTRY 26015207ca55SJohannes Berg __field(bool, enabled) 26025207ca55SJohannes Berg ), 26035207ca55SJohannes Berg TP_fast_assign( 26045207ca55SJohannes Berg WIPHY_ASSIGN; 26055207ca55SJohannes Berg NETDEV_ASSIGN; 26065207ca55SJohannes Berg __entry->enabled = enabled; 26075207ca55SJohannes Berg ), 26085207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 26095207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26105207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 26115207ca55SJohannes Berg ); 26125207ca55SJohannes Berg 26135207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 26145207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26155207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26165207ca55SJohannes Berg ); 26175207ca55SJohannes Berg 26185207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 26195207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26205207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 26215207ca55SJohannes Berg 26225207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 26235207ca55SJohannes Berg 26245207ca55SJohannes Berg TP_STRUCT__entry( 26255207ca55SJohannes Berg WIPHY_ENTRY 26265207ca55SJohannes Berg NETDEV_ENTRY 26275207ca55SJohannes Berg __field(u64, timestamp) 26285207ca55SJohannes Berg __field(u32, success_num) 26295207ca55SJohannes Berg __field(u32, partial_num) 26305207ca55SJohannes Berg __field(u32, failed_num) 26315207ca55SJohannes Berg __field(u32, asap_num) 26325207ca55SJohannes Berg __field(u32, non_asap_num) 26335207ca55SJohannes Berg __field(u64, duration) 26345207ca55SJohannes Berg __field(u32, unknown_triggers) 26355207ca55SJohannes Berg __field(u32, reschedule) 26365207ca55SJohannes Berg __field(u32, out_of_window) 26375207ca55SJohannes Berg ), 26385207ca55SJohannes Berg 26395207ca55SJohannes Berg TP_fast_assign( 26405207ca55SJohannes Berg WIPHY_ASSIGN; 26415207ca55SJohannes Berg NETDEV_ASSIGN; 26425207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26435207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26445207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26455207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26465207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26475207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26485207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26495207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26505207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26515207ca55SJohannes Berg ), 26525207ca55SJohannes Berg 26535207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26545207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26555207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26565207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26575207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26585207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26595207ca55SJohannes Berg __entry->out_of_window) 26605207ca55SJohannes Berg ); 26615207ca55SJohannes Berg 26629bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 26639bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26649bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26659bb7e0f2SJohannes Berg ); 26669bb7e0f2SJohannes Berg 26679bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 26689bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26699bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26709bb7e0f2SJohannes Berg ); 26719bb7e0f2SJohannes Berg 2672e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2673e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2674e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2675e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2676e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2677e306784aSSubrat Mishra NETDEV_ENTRY 2678e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2679e306784aSSubrat Mishra __field(u8, kek_len) 2680e306784aSSubrat Mishra ), 2681e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2682e306784aSSubrat Mishra NETDEV_ASSIGN; 2683e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2684e306784aSSubrat Mishra ), 2685e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2686e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2687e306784aSSubrat Mishra __entry->kek_len) 2688e306784aSSubrat Mishra ); 2689e306784aSSubrat Mishra 2690c8a11ed5SJohannes Berg TRACE_EVENT(rdev_update_owe_info, 2691c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2692c8a11ed5SJohannes Berg struct cfg80211_update_owe_info *owe_info), 2693c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, owe_info), 2694c8a11ed5SJohannes Berg TP_STRUCT__entry(WIPHY_ENTRY 2695c8a11ed5SJohannes Berg NETDEV_ENTRY 2696c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2697c8a11ed5SJohannes Berg __field(u16, status) 2698c8a11ed5SJohannes Berg __dynamic_array(u8, ie, owe_info->ie_len)), 2699c8a11ed5SJohannes Berg TP_fast_assign(WIPHY_ASSIGN; 2700c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2701c8a11ed5SJohannes Berg MAC_ASSIGN(peer, owe_info->peer); 2702c8a11ed5SJohannes Berg __entry->status = owe_info->status; 2703c8a11ed5SJohannes Berg memcpy(__get_dynamic_array(ie), 2704c8a11ed5SJohannes Berg owe_info->ie, owe_info->ie_len);), 2705c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT 2706c8a11ed5SJohannes Berg " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2707c8a11ed5SJohannes Berg __entry->status) 2708c8a11ed5SJohannes Berg ); 2709c8a11ed5SJohannes Berg 2710c8a11ed5SJohannes Berg TRACE_EVENT(rdev_probe_mesh_link, 2711c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2712c8a11ed5SJohannes Berg const u8 *dest, const u8 *buf, size_t len), 2713c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, dest, buf, len), 2714c8a11ed5SJohannes Berg TP_STRUCT__entry( 2715c8a11ed5SJohannes Berg WIPHY_ENTRY 2716c8a11ed5SJohannes Berg NETDEV_ENTRY 2717c8a11ed5SJohannes Berg MAC_ENTRY(dest) 2718c8a11ed5SJohannes Berg ), 2719c8a11ed5SJohannes Berg TP_fast_assign( 2720c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2721c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2722c8a11ed5SJohannes Berg MAC_ASSIGN(dest, dest); 2723c8a11ed5SJohannes Berg ), 2724c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 2725c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest)) 2726c8a11ed5SJohannes Berg ); 2727c8a11ed5SJohannes Berg 2728c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_tid_config, 2729c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2730c8a11ed5SJohannes Berg struct cfg80211_tid_config *tid_conf), 2731c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, tid_conf), 2732c8a11ed5SJohannes Berg TP_STRUCT__entry( 2733c8a11ed5SJohannes Berg WIPHY_ENTRY 2734c8a11ed5SJohannes Berg NETDEV_ENTRY 2735c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2736c8a11ed5SJohannes Berg ), 2737c8a11ed5SJohannes Berg TP_fast_assign( 2738c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2739c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2740c8a11ed5SJohannes Berg MAC_ASSIGN(peer, tid_conf->peer); 2741c8a11ed5SJohannes Berg ), 2742c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 2743c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 2744c8a11ed5SJohannes Berg ); 2745c8a11ed5SJohannes Berg 2746c8a11ed5SJohannes Berg TRACE_EVENT(rdev_reset_tid_config, 2747c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2748c8a11ed5SJohannes Berg const u8 *peer, u8 tids), 2749c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 2750c8a11ed5SJohannes Berg TP_STRUCT__entry( 2751c8a11ed5SJohannes Berg WIPHY_ENTRY 2752c8a11ed5SJohannes Berg NETDEV_ENTRY 2753c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2754c8a11ed5SJohannes Berg __field(u8, tids) 2755c8a11ed5SJohannes Berg ), 2756c8a11ed5SJohannes Berg TP_fast_assign( 2757c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2758c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2759c8a11ed5SJohannes Berg MAC_ASSIGN(peer, peer); 2760c8a11ed5SJohannes Berg __entry->tids = tids; 2761c8a11ed5SJohannes Berg ), 2762c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x", 2763c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids) 2764c8a11ed5SJohannes Berg ); 2765c8a11ed5SJohannes Berg 2766c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_sar_specs, 2767c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 2768c8a11ed5SJohannes Berg TP_ARGS(wiphy, sar), 2769c8a11ed5SJohannes Berg TP_STRUCT__entry( 2770c8a11ed5SJohannes Berg WIPHY_ENTRY 2771c8a11ed5SJohannes Berg __field(u16, type) 2772c8a11ed5SJohannes Berg __field(u16, num) 2773c8a11ed5SJohannes Berg ), 2774c8a11ed5SJohannes Berg TP_fast_assign( 2775c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2776c8a11ed5SJohannes Berg __entry->type = sar->type; 2777c8a11ed5SJohannes Berg __entry->num = sar->num_sub_specs; 2778c8a11ed5SJohannes Berg 2779c8a11ed5SJohannes Berg ), 2780c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 2781c8a11ed5SJohannes Berg WIPHY_PR_ARG, __entry->type, __entry->num) 2782c8a11ed5SJohannes Berg ); 2783c8a11ed5SJohannes Berg 2784c8a11ed5SJohannes Berg TRACE_EVENT(rdev_color_change, 2785c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2786c8a11ed5SJohannes Berg struct cfg80211_color_change_settings *params), 2787c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, params), 2788c8a11ed5SJohannes Berg TP_STRUCT__entry( 2789c8a11ed5SJohannes Berg WIPHY_ENTRY 2790c8a11ed5SJohannes Berg NETDEV_ENTRY 2791c8a11ed5SJohannes Berg __field(u8, count) 2792c8a11ed5SJohannes Berg __field(u16, bcn_ofs) 2793c8a11ed5SJohannes Berg __field(u16, pres_ofs) 2794c8a11ed5SJohannes Berg ), 2795c8a11ed5SJohannes Berg TP_fast_assign( 2796c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2797c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2798c8a11ed5SJohannes Berg __entry->count = params->count; 2799c8a11ed5SJohannes Berg __entry->bcn_ofs = params->counter_offset_beacon; 2800c8a11ed5SJohannes Berg __entry->pres_ofs = params->counter_offset_presp; 2801c8a11ed5SJohannes Berg ), 2802c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 2803c8a11ed5SJohannes Berg ", count: %u", 2804c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 2805c8a11ed5SJohannes Berg __entry->count) 2806c8a11ed5SJohannes Berg ); 2807c8a11ed5SJohannes Berg 2808c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_radar_background, 2809c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 2810c8a11ed5SJohannes Berg 2811c8a11ed5SJohannes Berg TP_ARGS(wiphy, chandef), 2812c8a11ed5SJohannes Berg 2813c8a11ed5SJohannes Berg TP_STRUCT__entry( 2814c8a11ed5SJohannes Berg WIPHY_ENTRY 2815c8a11ed5SJohannes Berg CHAN_DEF_ENTRY 2816c8a11ed5SJohannes Berg ), 2817c8a11ed5SJohannes Berg 2818c8a11ed5SJohannes Berg TP_fast_assign( 2819c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2820c8a11ed5SJohannes Berg CHAN_DEF_ASSIGN(chandef) 2821c8a11ed5SJohannes Berg ), 2822c8a11ed5SJohannes Berg 2823c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 2824c8a11ed5SJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 2825c8a11ed5SJohannes Berg ); 2826c8a11ed5SJohannes Berg 2827f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link, 2828f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2829f2a0290bSJohannes Berg unsigned int link_id), 2830f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2831f2a0290bSJohannes Berg ); 2832f2a0290bSJohannes Berg 2833f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link, 2834f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2835f2a0290bSJohannes Berg unsigned int link_id), 2836f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2837f2a0290bSJohannes Berg ); 2838f2a0290bSJohannes Berg 28394ee3e063SBeni Lev /************************************************************* 28404ee3e063SBeni Lev * cfg80211 exported functions traces * 28414ee3e063SBeni Lev *************************************************************/ 28424ee3e063SBeni Lev 28434ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 28444ee3e063SBeni Lev TP_PROTO(bool ret), 28454ee3e063SBeni Lev TP_ARGS(ret), 28464ee3e063SBeni Lev TP_STRUCT__entry( 28474ee3e063SBeni Lev __field(bool, ret) 28484ee3e063SBeni Lev ), 28494ee3e063SBeni Lev TP_fast_assign( 28504ee3e063SBeni Lev __entry->ret = ret; 28514ee3e063SBeni Lev ), 28524ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 28534ee3e063SBeni Lev ); 28544ee3e063SBeni Lev 28554ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 28564ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28574ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 28584ee3e063SBeni Lev TP_STRUCT__entry( 28594ee3e063SBeni Lev NETDEV_ENTRY 28604ee3e063SBeni Lev MAC_ENTRY(macaddr) 28614ee3e063SBeni Lev ), 28624ee3e063SBeni Lev TP_fast_assign( 28634ee3e063SBeni Lev NETDEV_ASSIGN; 28644ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 28654ee3e063SBeni Lev ), 28664ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 28674ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 28684ee3e063SBeni Lev ); 28694ee3e063SBeni Lev 28704ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 28714ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28724ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 28734ee3e063SBeni Lev ); 28744ee3e063SBeni Lev 28754ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 28764ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28774ee3e063SBeni Lev TP_ARGS(netdev), 28784ee3e063SBeni Lev TP_STRUCT__entry( 28794ee3e063SBeni Lev NETDEV_ENTRY 28804ee3e063SBeni Lev ), 28814ee3e063SBeni Lev TP_fast_assign( 28824ee3e063SBeni Lev NETDEV_ASSIGN; 28834ee3e063SBeni Lev ), 28844ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 28854ee3e063SBeni Lev ); 28864ee3e063SBeni Lev 28874ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 28884ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28894ee3e063SBeni Lev TP_ARGS(netdev) 28904ee3e063SBeni Lev ); 28914ee3e063SBeni Lev 28924ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 28934ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss), 28944ee3e063SBeni Lev TP_ARGS(netdev, bss), 28954ee3e063SBeni Lev TP_STRUCT__entry( 28964ee3e063SBeni Lev NETDEV_ENTRY 28974ee3e063SBeni Lev MAC_ENTRY(bssid) 28984ee3e063SBeni Lev CHAN_ENTRY 28994ee3e063SBeni Lev ), 29004ee3e063SBeni Lev TP_fast_assign( 29014ee3e063SBeni Lev NETDEV_ASSIGN; 29024ee3e063SBeni Lev MAC_ASSIGN(bssid, bss->bssid); 29034ee3e063SBeni Lev CHAN_ASSIGN(bss->channel); 29044ee3e063SBeni Lev ), 2905ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT, 29064ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 29074ee3e063SBeni Lev ); 29084ee3e063SBeni Lev 29096ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 29106ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29116ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 29126ff57cf8SJohannes Berg TP_STRUCT__entry( 29136ff57cf8SJohannes Berg NETDEV_ENTRY 29146ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29156ff57cf8SJohannes Berg ), 29166ff57cf8SJohannes Berg TP_fast_assign( 29176ff57cf8SJohannes Berg NETDEV_ASSIGN; 29186ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29196ff57cf8SJohannes Berg ), 29206ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 29216ff57cf8SJohannes Berg NETDEV_PR_ARG, 29226ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 29234ee3e063SBeni Lev ); 29244ee3e063SBeni Lev 29256ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 29266ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29276ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29284ee3e063SBeni Lev ); 29294ee3e063SBeni Lev 29306ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 29316ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29326ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29334ee3e063SBeni Lev ); 29344ee3e063SBeni Lev 29356ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 29363bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 29373bb02143SJohannes Berg bool reconnect), 29383bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 29396ff57cf8SJohannes Berg TP_STRUCT__entry( 29406ff57cf8SJohannes Berg NETDEV_ENTRY 29416ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29423bb02143SJohannes Berg __field(int, reconnect) 29436ff57cf8SJohannes Berg ), 29446ff57cf8SJohannes Berg TP_fast_assign( 29456ff57cf8SJohannes Berg NETDEV_ASSIGN; 29466ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29473bb02143SJohannes Berg __entry->reconnect = reconnect; 29486ff57cf8SJohannes Berg ), 29493bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 29506ff57cf8SJohannes Berg NETDEV_PR_ARG, 29513bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 29523bb02143SJohannes Berg __entry->reconnect) 29534ee3e063SBeni Lev ); 29544ee3e063SBeni Lev 29554ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 29564ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29574ee3e063SBeni Lev TP_ARGS(netdev, mac), 29584ee3e063SBeni Lev TP_STRUCT__entry( 29594ee3e063SBeni Lev NETDEV_ENTRY 29604ee3e063SBeni Lev MAC_ENTRY(mac) 29614ee3e063SBeni Lev ), 29624ee3e063SBeni Lev TP_fast_assign( 29634ee3e063SBeni Lev NETDEV_ASSIGN; 29644ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 29654ee3e063SBeni Lev ), 29664ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 29674ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 29684ee3e063SBeni Lev ); 29694ee3e063SBeni Lev 29704ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 29714ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29724ee3e063SBeni Lev TP_ARGS(netdev, mac) 29734ee3e063SBeni Lev ); 29744ee3e063SBeni Lev 29754ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout, 29764ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29774ee3e063SBeni Lev TP_ARGS(netdev, mac) 29784ee3e063SBeni Lev ); 29794ee3e063SBeni Lev 29804ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 29814ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 29824ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 29834ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 29844ee3e063SBeni Lev TP_STRUCT__entry( 29854ee3e063SBeni Lev NETDEV_ENTRY 29864ee3e063SBeni Lev MAC_ENTRY(addr) 29874ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 29884ee3e063SBeni Lev __field(int, key_id) 29894ee3e063SBeni Lev __array(u8, tsc, 6) 29904ee3e063SBeni Lev ), 29914ee3e063SBeni Lev TP_fast_assign( 29924ee3e063SBeni Lev NETDEV_ASSIGN; 29934ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 29944ee3e063SBeni Lev __entry->key_type = key_type; 29954ee3e063SBeni Lev __entry->key_id = key_id; 29968c26d458SEliad Peller if (tsc) 29974ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 29984ee3e063SBeni Lev ), 2999ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 30004ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 30014ee3e063SBeni Lev __entry->key_id, __entry->tsc) 30024ee3e063SBeni Lev ); 30034ee3e063SBeni Lev 30044ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 30054ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30064ee3e063SBeni Lev struct ieee80211_channel *chan, 300742d97a59SJohannes Berg unsigned int duration), 300842d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 30094ee3e063SBeni Lev TP_STRUCT__entry( 30104ee3e063SBeni Lev WDEV_ENTRY 30114ee3e063SBeni Lev __field(u64, cookie) 30124ee3e063SBeni Lev CHAN_ENTRY 30134ee3e063SBeni Lev __field(unsigned int, duration) 30144ee3e063SBeni Lev ), 30154ee3e063SBeni Lev TP_fast_assign( 30164ee3e063SBeni Lev WDEV_ASSIGN; 30174ee3e063SBeni Lev __entry->cookie = cookie; 30184ee3e063SBeni Lev CHAN_ASSIGN(chan); 30194ee3e063SBeni Lev __entry->duration = duration; 30204ee3e063SBeni Lev ), 302142d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 30224ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 302342d97a59SJohannes Berg __entry->duration) 30244ee3e063SBeni Lev ); 30254ee3e063SBeni Lev 30264ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 30274ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 302842d97a59SJohannes Berg struct ieee80211_channel *chan), 302942d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 30304ee3e063SBeni Lev TP_STRUCT__entry( 30314ee3e063SBeni Lev WDEV_ENTRY 30324ee3e063SBeni Lev __field(u64, cookie) 30334ee3e063SBeni Lev CHAN_ENTRY 30344ee3e063SBeni Lev ), 30354ee3e063SBeni Lev TP_fast_assign( 30364ee3e063SBeni Lev WDEV_ASSIGN; 30374ee3e063SBeni Lev __entry->cookie = cookie; 30384ee3e063SBeni Lev CHAN_ASSIGN(chan); 30394ee3e063SBeni Lev ), 304042d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 304142d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30424ee3e063SBeni Lev ); 30434ee3e063SBeni Lev 30441c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 30451c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30461c38c7f2SJames Prestwood struct ieee80211_channel *chan), 30471c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 30481c38c7f2SJames Prestwood TP_STRUCT__entry( 30491c38c7f2SJames Prestwood WDEV_ENTRY 30501c38c7f2SJames Prestwood __field(u64, cookie) 30511c38c7f2SJames Prestwood CHAN_ENTRY 30521c38c7f2SJames Prestwood ), 30531c38c7f2SJames Prestwood TP_fast_assign( 30541c38c7f2SJames Prestwood WDEV_ASSIGN; 30551c38c7f2SJames Prestwood __entry->cookie = cookie; 30561c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 30571c38c7f2SJames Prestwood ), 30581c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 30591c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30601c38c7f2SJames Prestwood ); 30611c38c7f2SJames Prestwood 30624ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 30634ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 30644ee3e063SBeni Lev struct station_info *sinfo), 30654ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 30664ee3e063SBeni Lev TP_STRUCT__entry( 30674ee3e063SBeni Lev NETDEV_ENTRY 30684ee3e063SBeni Lev MAC_ENTRY(mac_addr) 30694ee3e063SBeni Lev SINFO_ENTRY 30704ee3e063SBeni Lev ), 30714ee3e063SBeni Lev TP_fast_assign( 30724ee3e063SBeni Lev NETDEV_ASSIGN; 30734ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 30744ee3e063SBeni Lev SINFO_ASSIGN; 30754ee3e063SBeni Lev ), 3076ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 30774ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 30784ee3e063SBeni Lev ); 30794ee3e063SBeni Lev 30804ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 30814ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 30824ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 30834ee3e063SBeni Lev ); 30844ee3e063SBeni Lev 30854ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 30866c2fb1e6SSergey Matyukevich TP_PROTO(struct wireless_dev *wdev, int freq, int sig_dbm), 30876c2fb1e6SSergey Matyukevich TP_ARGS(wdev, freq, sig_dbm), 30884ee3e063SBeni Lev TP_STRUCT__entry( 30894ee3e063SBeni Lev WDEV_ENTRY 30904ee3e063SBeni Lev __field(int, freq) 30916c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 30924ee3e063SBeni Lev ), 30934ee3e063SBeni Lev TP_fast_assign( 30944ee3e063SBeni Lev WDEV_ASSIGN; 30954ee3e063SBeni Lev __entry->freq = freq; 30966c2fb1e6SSergey Matyukevich __entry->sig_dbm = sig_dbm; 30974ee3e063SBeni Lev ), 3098e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 3099e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 31004ee3e063SBeni Lev ); 31014ee3e063SBeni Lev 31024ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 31034ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 31044ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 31054ee3e063SBeni Lev TP_STRUCT__entry( 31064ee3e063SBeni Lev WDEV_ENTRY 31074ee3e063SBeni Lev __field(u64, cookie) 31084ee3e063SBeni Lev __field(bool, ack) 31094ee3e063SBeni Lev ), 31104ee3e063SBeni Lev TP_fast_assign( 31114ee3e063SBeni Lev WDEV_ASSIGN; 31124ee3e063SBeni Lev __entry->cookie = cookie; 31134ee3e063SBeni Lev __entry->ack = ack; 31144ee3e063SBeni Lev ), 31154ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 31164ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 31174ee3e063SBeni Lev ); 31184ee3e063SBeni Lev 3119dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 3120dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 3121dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 3122dca9ca2dSMarkus Theil TP_STRUCT__entry( 3123dca9ca2dSMarkus Theil WDEV_ENTRY 3124dca9ca2dSMarkus Theil __field(u64, cookie) 3125dca9ca2dSMarkus Theil __field(bool, ack) 3126dca9ca2dSMarkus Theil ), 3127dca9ca2dSMarkus Theil TP_fast_assign( 3128dca9ca2dSMarkus Theil WDEV_ASSIGN; 3129dca9ca2dSMarkus Theil __entry->cookie = cookie; 3130dca9ca2dSMarkus Theil __entry->ack = ack; 3131dca9ca2dSMarkus Theil ), 3132dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 3133dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 3134dca9ca2dSMarkus Theil ); 3135dca9ca2dSMarkus Theil 31366a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 3137a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 3138a948f713SDenis Kenzior bool unencrypted), 3139a948f713SDenis Kenzior TP_ARGS(netdev, skb, unencrypted), 31406a671a50SDenis Kenzior TP_STRUCT__entry( 31416a671a50SDenis Kenzior NETDEV_ENTRY 3142a948f713SDenis Kenzior __field(int, len) 3143a948f713SDenis Kenzior MAC_ENTRY(from) 31446a671a50SDenis Kenzior __field(u16, proto) 31456a671a50SDenis Kenzior __field(bool, unencrypted) 31466a671a50SDenis Kenzior ), 31476a671a50SDenis Kenzior TP_fast_assign( 31486a671a50SDenis Kenzior NETDEV_ASSIGN; 3149a948f713SDenis Kenzior __entry->len = skb->len; 3150a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 3151a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 31526a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 31536a671a50SDenis Kenzior ), 31548d74a623SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s", 31558d74a623SJohannes Berg NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from), 31566a671a50SDenis Kenzior __entry->proto, BOOL_TO_STR(__entry->unencrypted)) 31576a671a50SDenis Kenzior ); 31586a671a50SDenis Kenzior 31594ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 31604ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 3161bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 3162bee427b8SAndrzej Zaborowski s32 rssi_level), 3163bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 31644ee3e063SBeni Lev TP_STRUCT__entry( 31654ee3e063SBeni Lev NETDEV_ENTRY 31664ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 3167bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 31684ee3e063SBeni Lev ), 31694ee3e063SBeni Lev TP_fast_assign( 31704ee3e063SBeni Lev NETDEV_ASSIGN; 31714ee3e063SBeni Lev __entry->rssi_event = rssi_event; 3172bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 31734ee3e063SBeni Lev ), 3174bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 3175bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 31764ee3e063SBeni Lev ); 31774ee3e063SBeni Lev 3178683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 3179174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3180923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 3181923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 31824ee3e063SBeni Lev TP_STRUCT__entry( 31834ee3e063SBeni Lev WIPHY_ENTRY 3184683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3185174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 3186923b352fSArik Nemtsov __field(bool, check_no_ir) 31874ee3e063SBeni Lev ), 31884ee3e063SBeni Lev TP_fast_assign( 31894ee3e063SBeni Lev WIPHY_ASSIGN; 3190683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3191174e0cd2SIlan Peer __entry->iftype = iftype; 3192923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 31934ee3e063SBeni Lev ), 3194923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3195923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3196923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 31974ee3e063SBeni Lev ); 31984ee3e063SBeni Lev 319904f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 320004f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 320104f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 320204f39047SSimon Wunderlich TP_STRUCT__entry( 320304f39047SSimon Wunderlich WIPHY_ENTRY 320404f39047SSimon Wunderlich CHAN_DEF_ENTRY 320504f39047SSimon Wunderlich ), 320604f39047SSimon Wunderlich TP_fast_assign( 320704f39047SSimon Wunderlich WIPHY_ASSIGN; 320804f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 320904f39047SSimon Wunderlich ), 321004f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 321104f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 321204f39047SSimon Wunderlich ); 321304f39047SSimon Wunderlich 32144ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3215683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 32167b0a0e3cSJohannes Berg struct cfg80211_chan_def *chandef, 32177b0a0e3cSJohannes Berg unsigned int link_id), 32187b0a0e3cSJohannes Berg TP_ARGS(netdev, chandef, link_id), 32194ee3e063SBeni Lev TP_STRUCT__entry( 32204ee3e063SBeni Lev NETDEV_ENTRY 3221683b6d3bSJohannes Berg CHAN_DEF_ENTRY 32227b0a0e3cSJohannes Berg __field(unsigned int, link_id) 32234ee3e063SBeni Lev ), 32244ee3e063SBeni Lev TP_fast_assign( 32254ee3e063SBeni Lev NETDEV_ASSIGN; 3226683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 32277b0a0e3cSJohannes Berg __entry->link_id = link_id; 32284ee3e063SBeni Lev ), 32297b0a0e3cSJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 32307b0a0e3cSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 32314ee3e063SBeni Lev ); 32324ee3e063SBeni Lev 3233f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3234f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3235f8d7552eSLuciano Coelho struct cfg80211_chan_def *chandef), 3236f8d7552eSLuciano Coelho TP_ARGS(netdev, chandef), 3237f8d7552eSLuciano Coelho TP_STRUCT__entry( 3238f8d7552eSLuciano Coelho NETDEV_ENTRY 3239f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3240f8d7552eSLuciano Coelho ), 3241f8d7552eSLuciano Coelho TP_fast_assign( 3242f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3243f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3244f8d7552eSLuciano Coelho ), 3245f8d7552eSLuciano Coelho TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 3246f8d7552eSLuciano Coelho NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 3247f8d7552eSLuciano Coelho ); 3248f8d7552eSLuciano Coelho 324904f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3250c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3251c47240cbSLorenzo Bianconi bool offchan), 3252c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 325304f39047SSimon Wunderlich TP_STRUCT__entry( 325404f39047SSimon Wunderlich WIPHY_ENTRY 325504f39047SSimon Wunderlich CHAN_DEF_ENTRY 3256c47240cbSLorenzo Bianconi __field(bool, offchan) 325704f39047SSimon Wunderlich ), 325804f39047SSimon Wunderlich TP_fast_assign( 325904f39047SSimon Wunderlich WIPHY_ASSIGN; 326004f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3261c47240cbSLorenzo Bianconi __entry->offchan = offchan; 326204f39047SSimon Wunderlich ), 3263c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3264c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 326504f39047SSimon Wunderlich ); 326604f39047SSimon Wunderlich 326704f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 326804f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 326904f39047SSimon Wunderlich TP_ARGS(netdev, evt), 327004f39047SSimon Wunderlich TP_STRUCT__entry( 327104f39047SSimon Wunderlich NETDEV_ENTRY 327204f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 327304f39047SSimon Wunderlich ), 327404f39047SSimon Wunderlich TP_fast_assign( 327504f39047SSimon Wunderlich NETDEV_ASSIGN; 327604f39047SSimon Wunderlich __entry->evt = evt; 327704f39047SSimon Wunderlich ), 327804f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 327904f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 328004f39047SSimon Wunderlich ); 328104f39047SSimon Wunderlich 32824ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 32834ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 32844ee3e063SBeni Lev TP_ARGS(netdev, addr), 32854ee3e063SBeni Lev TP_STRUCT__entry( 32864ee3e063SBeni Lev NETDEV_ENTRY 32874ee3e063SBeni Lev MAC_ENTRY(addr) 32884ee3e063SBeni Lev ), 32894ee3e063SBeni Lev TP_fast_assign( 32904ee3e063SBeni Lev NETDEV_ASSIGN; 32914ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 32924ee3e063SBeni Lev ), 3293ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 32944ee3e063SBeni Lev ); 32954ee3e063SBeni Lev 32964ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 32974ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 32984ee3e063SBeni Lev TP_ARGS(netdev, addr) 32994ee3e063SBeni Lev ); 33004ee3e063SBeni Lev 33014ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 33024ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33034ee3e063SBeni Lev TP_ARGS(netdev, addr) 33044ee3e063SBeni Lev ); 33054ee3e063SBeni Lev 3306fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3307fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3308fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3309fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3310fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3311fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3312fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3313fe94f3a4SAntonio Quartulli CHAN_ENTRY 3314fe94f3a4SAntonio Quartulli ), 3315fe94f3a4SAntonio Quartulli TP_fast_assign( 3316fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3317fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3318fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3319fe94f3a4SAntonio Quartulli ), 3320fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 3321fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 3322fe94f3a4SAntonio Quartulli ); 3323fe94f3a4SAntonio Quartulli 33244ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 33254ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 33264ee3e063SBeni Lev bool acked), 33274ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 33284ee3e063SBeni Lev TP_STRUCT__entry( 33294ee3e063SBeni Lev NETDEV_ENTRY 33304ee3e063SBeni Lev MAC_ENTRY(addr) 33314ee3e063SBeni Lev __field(u64, cookie) 33324ee3e063SBeni Lev __field(bool, acked) 33334ee3e063SBeni Lev ), 33344ee3e063SBeni Lev TP_fast_assign( 33354ee3e063SBeni Lev NETDEV_ASSIGN; 33364ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33374ee3e063SBeni Lev __entry->cookie = cookie; 33384ee3e063SBeni Lev __entry->acked = acked; 33394ee3e063SBeni Lev ), 3340ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 33414ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 33424ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 33434ee3e063SBeni Lev ); 33444ee3e063SBeni Lev 33454ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 33464ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 33474ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 33484ee3e063SBeni Lev TP_STRUCT__entry( 33494ee3e063SBeni Lev NETDEV_ENTRY 33504ee3e063SBeni Lev MAC_ENTRY(peer) 33514ee3e063SBeni Lev __field(u32, num_packets) 33524ee3e063SBeni Lev ), 33534ee3e063SBeni Lev TP_fast_assign( 33544ee3e063SBeni Lev NETDEV_ASSIGN; 33554ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 33564ee3e063SBeni Lev __entry->num_packets = num_packets; 33574ee3e063SBeni Lev ), 33584ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 33594ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 33604ee3e063SBeni Lev ); 33614ee3e063SBeni Lev 33624ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 33634ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 33644ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 33654ee3e063SBeni Lev ); 33664ee3e063SBeni Lev 33674ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 33684ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 33694ee3e063SBeni Lev bool preauth), 33704ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 33714ee3e063SBeni Lev TP_STRUCT__entry( 33724ee3e063SBeni Lev NETDEV_ENTRY 33734ee3e063SBeni Lev __field(int, index) 33744ee3e063SBeni Lev MAC_ENTRY(bssid) 33754ee3e063SBeni Lev __field(bool, preauth) 33764ee3e063SBeni Lev ), 33774ee3e063SBeni Lev TP_fast_assign( 33784ee3e063SBeni Lev NETDEV_ASSIGN; 33794ee3e063SBeni Lev __entry->index = index; 33804ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 33814ee3e063SBeni Lev __entry->preauth = preauth; 33824ee3e063SBeni Lev ), 33834ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 33844ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 33854ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 33864ee3e063SBeni Lev ); 33874ee3e063SBeni Lev 33884ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 33894ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 33904ee3e063SBeni Lev int freq, int sig_dbm), 33914ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 33924ee3e063SBeni Lev TP_STRUCT__entry( 33934ee3e063SBeni Lev WIPHY_ENTRY 33944ee3e063SBeni Lev __field(int, freq) 33954ee3e063SBeni Lev __field(int, sig_dbm) 33964ee3e063SBeni Lev ), 33974ee3e063SBeni Lev TP_fast_assign( 33984ee3e063SBeni Lev WIPHY_ASSIGN; 33994ee3e063SBeni Lev __entry->freq = freq; 34004ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 34014ee3e063SBeni Lev ), 3402e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3403e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 34044ee3e063SBeni Lev ); 34054ee3e063SBeni Lev 34063475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 34073475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 34083475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 34093475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 34103475b094SJouni Malinen TP_STRUCT__entry( 34113475b094SJouni Malinen WIPHY_ENTRY 34123475b094SJouni Malinen NETDEV_ENTRY 34133475b094SJouni Malinen MAC_ENTRY(peer) 34143475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 34153475b094SJouni Malinen __field(u16, reason_code) 34163475b094SJouni Malinen ), 34173475b094SJouni Malinen TP_fast_assign( 34183475b094SJouni Malinen WIPHY_ASSIGN; 34193475b094SJouni Malinen NETDEV_ASSIGN; 34203475b094SJouni Malinen MAC_ASSIGN(peer, peer); 34213475b094SJouni Malinen __entry->oper = oper; 34223475b094SJouni Malinen __entry->reason_code = reason_code; 34233475b094SJouni Malinen ), 34243475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 34253475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 34263475b094SJouni Malinen __entry->reason_code) 34273475b094SJouni Malinen ); 34283475b094SJouni Malinen 34294ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 34301d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 34311d76250bSAvraham Stern struct cfg80211_scan_info *info), 34321d76250bSAvraham Stern TP_ARGS(request, info), 34334ee3e063SBeni Lev TP_STRUCT__entry( 34344ee3e063SBeni Lev __field(u32, n_channels) 34354ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 343657fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 34374ee3e063SBeni Lev __field(u32, wdev_id) 34384ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 34394ee3e063SBeni Lev __field(bool, no_cck) 34404ee3e063SBeni Lev __field(bool, aborted) 34411d76250bSAvraham Stern __field(u64, scan_start_tsf) 34421d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 34434ee3e063SBeni Lev ), 34444ee3e063SBeni Lev TP_fast_assign( 34454ee3e063SBeni Lev if (request) { 34464ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 34474ee3e063SBeni Lev request->ie_len); 34484ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 344957fbcce3SJohannes Berg NUM_NL80211_BANDS); 34504ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 34514ee3e063SBeni Lev request->wdev->identifier : 0; 34524ee3e063SBeni Lev if (request->wiphy) 34534ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 34544ee3e063SBeni Lev request->wiphy->perm_addr); 34554ee3e063SBeni Lev __entry->no_cck = request->no_cck; 34564ee3e063SBeni Lev } 34571d76250bSAvraham Stern if (info) { 34581d76250bSAvraham Stern __entry->aborted = info->aborted; 34591d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 34601d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 34611d76250bSAvraham Stern } 34624ee3e063SBeni Lev ), 34631d76250bSAvraham Stern TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT, 34641d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 34651d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 34661d76250bSAvraham Stern MAC_PR_ARG(tsf_bssid)) 34674ee3e063SBeni Lev ); 34684ee3e063SBeni Lev 3469b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3470b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3471b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3472b34939b9SArend Van Spriel TP_STRUCT__entry( 3473b34939b9SArend Van Spriel WIPHY_ENTRY 3474b34939b9SArend Van Spriel __field(u64, id) 3475b34939b9SArend Van Spriel ), 3476b34939b9SArend Van Spriel TP_fast_assign( 3477b34939b9SArend Van Spriel WIPHY_ASSIGN; 3478b34939b9SArend Van Spriel __entry->id = id; 3479b34939b9SArend Van Spriel ), 3480b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 34814ee3e063SBeni Lev ); 34824ee3e063SBeni Lev 3483b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3484b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3485b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3486b34939b9SArend Van Spriel ); 3487b34939b9SArend Van Spriel 3488b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3489b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3490b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 34914ee3e063SBeni Lev ); 34924ee3e063SBeni Lev 34934ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 34944ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 34954ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 34966eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 34976eb18137SDedy Lansky enum ieee80211_privacy privacy), 34986eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 34994ee3e063SBeni Lev TP_STRUCT__entry( 35004ee3e063SBeni Lev WIPHY_ENTRY 35014ee3e063SBeni Lev CHAN_ENTRY 35024ee3e063SBeni Lev MAC_ENTRY(bssid) 35034ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 35046eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 35056eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 35064ee3e063SBeni Lev ), 35074ee3e063SBeni Lev TP_fast_assign( 35084ee3e063SBeni Lev WIPHY_ASSIGN; 35094ee3e063SBeni Lev CHAN_ASSIGN(channel); 35104ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 35114ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 35126eb18137SDedy Lansky __entry->bss_type = bss_type; 35136eb18137SDedy Lansky __entry->privacy = privacy; 35144ee3e063SBeni Lev ), 35156eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 35166eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 35176eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 35186eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 35196eb18137SDedy Lansky __entry->privacy) 35204ee3e063SBeni Lev ); 35214ee3e063SBeni Lev 35226e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 35236e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 35246e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 35256e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 35264ee3e063SBeni Lev TP_STRUCT__entry( 35274ee3e063SBeni Lev WIPHY_ENTRY 35284ee3e063SBeni Lev CHAN_ENTRY 3529dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 35304ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 35314ee3e063SBeni Lev __field(s32, signal) 35326e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 35331d76250bSAvraham Stern __field(u64, parent_tsf) 35341d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 35354ee3e063SBeni Lev ), 35364ee3e063SBeni Lev TP_fast_assign( 35374ee3e063SBeni Lev WIPHY_ASSIGN; 35386e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 35396e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 35404ee3e063SBeni Lev if (mgmt) 35414ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 35426e19bc4bSDmitry Shmidt __entry->signal = data->signal; 35436e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 35441d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 35451d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 35464ee3e063SBeni Lev ), 35471d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 35481d76250bSAvraham Stern "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: " 35491d76250bSAvraham Stern MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 35501d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 35511d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 35521d76250bSAvraham Stern MAC_PR_ARG(parent_bssid)) 35534ee3e063SBeni Lev ); 35544ee3e063SBeni Lev 35554ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 35564ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35574ee3e063SBeni Lev TP_ARGS(pub), 35584ee3e063SBeni Lev TP_STRUCT__entry( 35594ee3e063SBeni Lev MAC_ENTRY(bssid) 35604ee3e063SBeni Lev CHAN_ENTRY 35614ee3e063SBeni Lev ), 35624ee3e063SBeni Lev TP_fast_assign( 35634ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 35644ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 35654ee3e063SBeni Lev ), 3566ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 35674ee3e063SBeni Lev ); 35684ee3e063SBeni Lev 35694ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 35704ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35714ee3e063SBeni Lev TP_ARGS(pub) 35724ee3e063SBeni Lev ); 35734ee3e063SBeni Lev 35744ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 35754ee3e063SBeni Lev TP_PROTO(unsigned int ret), 35764ee3e063SBeni Lev TP_ARGS(ret), 35774ee3e063SBeni Lev TP_STRUCT__entry( 35784ee3e063SBeni Lev __field(unsigned int, ret) 35794ee3e063SBeni Lev ), 35804ee3e063SBeni Lev TP_fast_assign( 35814ee3e063SBeni Lev __entry->ret = ret; 35824ee3e063SBeni Lev ), 35834ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 35844ee3e063SBeni Lev ); 35854ee3e063SBeni Lev 35864ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 35874ee3e063SBeni Lev TP_PROTO(u32 ret), 35884ee3e063SBeni Lev TP_ARGS(ret), 35894ee3e063SBeni Lev TP_STRUCT__entry( 35904ee3e063SBeni Lev __field(u32, ret) 35914ee3e063SBeni Lev ), 35924ee3e063SBeni Lev TP_fast_assign( 35934ee3e063SBeni Lev __entry->ret = ret; 35944ee3e063SBeni Lev ), 35954ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 35964ee3e063SBeni Lev ); 35974ee3e063SBeni Lev 3598cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3599cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3600cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3601cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3602cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3603cd8f7cb4SJohannes Berg WIPHY_ENTRY 3604cd8f7cb4SJohannes Berg WDEV_ENTRY 3605a92eecbbSJohannes Berg __field(bool, non_wireless) 3606cd8f7cb4SJohannes Berg __field(bool, disconnect) 3607cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3608cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3609cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3610cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3611cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3612cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3613cd8f7cb4SJohannes Berg __field(u32, packet_len) 3614a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3615a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3616cd8f7cb4SJohannes Berg ), 3617cd8f7cb4SJohannes Berg TP_fast_assign( 3618cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3619cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3620a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3621a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3622a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3623a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3624a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3625a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3626a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3627a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3628a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3629a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3630cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3631cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3632cd8f7cb4SJohannes Berg ), 3633cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3634cd8f7cb4SJohannes Berg ); 3635cd8f7cb4SJohannes Berg 3636355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3637355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3638355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3639355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3640355199e0SJouni Malinen TP_STRUCT__entry( 3641355199e0SJouni Malinen WIPHY_ENTRY 3642355199e0SJouni Malinen NETDEV_ENTRY 3643355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3644355199e0SJouni Malinen MAC_ENTRY(target_ap) 3645355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3646355199e0SJouni Malinen ), 3647355199e0SJouni Malinen TP_fast_assign( 3648355199e0SJouni Malinen WIPHY_ASSIGN; 3649355199e0SJouni Malinen NETDEV_ASSIGN; 3650355199e0SJouni Malinen if (ft_event->ies) 3651355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3652355199e0SJouni Malinen ft_event->ies_len); 3653355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3654355199e0SJouni Malinen if (ft_event->ric_ies) 3655355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3656355199e0SJouni Malinen ft_event->ric_ies_len); 3657355199e0SJouni Malinen ), 3658355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 3659355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 3660355199e0SJouni Malinen ); 3661355199e0SJouni Malinen 3662f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3663f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3664f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3665f04c2203SMichal Kazior TP_STRUCT__entry( 3666f04c2203SMichal Kazior WIPHY_ENTRY 3667f04c2203SMichal Kazior WDEV_ENTRY 3668f04c2203SMichal Kazior ), 3669f04c2203SMichal Kazior TP_fast_assign( 3670f04c2203SMichal Kazior WIPHY_ASSIGN; 3671f04c2203SMichal Kazior WDEV_ASSIGN; 3672f04c2203SMichal Kazior ), 3673f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3674f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3675f04c2203SMichal Kazior ); 36769bb7e0f2SJohannes Berg 36779bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 36789bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 36799bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 36809bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 36819bb7e0f2SJohannes Berg TP_STRUCT__entry( 36829bb7e0f2SJohannes Berg WIPHY_ENTRY 36839bb7e0f2SJohannes Berg WDEV_ENTRY 36849bb7e0f2SJohannes Berg __field(u64, cookie) 36859bb7e0f2SJohannes Berg MAC_ENTRY(addr) 36869bb7e0f2SJohannes Berg ), 36879bb7e0f2SJohannes Berg TP_fast_assign( 36889bb7e0f2SJohannes Berg WIPHY_ASSIGN; 36899bb7e0f2SJohannes Berg WDEV_ASSIGN; 36909bb7e0f2SJohannes Berg __entry->cookie = cookie; 36919bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 36929bb7e0f2SJohannes Berg ), 36939bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT, 36949bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 36959bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 36969bb7e0f2SJohannes Berg MAC_PR_ARG(addr)) 36979bb7e0f2SJohannes Berg ); 36989bb7e0f2SJohannes Berg 36999bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 37009bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 37019bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 37029bb7e0f2SJohannes Berg TP_STRUCT__entry( 37039bb7e0f2SJohannes Berg WIPHY_ENTRY 37049bb7e0f2SJohannes Berg WDEV_ENTRY 37059bb7e0f2SJohannes Berg __field(u64, cookie) 37069bb7e0f2SJohannes Berg ), 37079bb7e0f2SJohannes Berg TP_fast_assign( 37089bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37099bb7e0f2SJohannes Berg WDEV_ASSIGN; 37109bb7e0f2SJohannes Berg __entry->cookie = cookie; 37119bb7e0f2SJohannes Berg ), 37129bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 37139bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37149bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 37159bb7e0f2SJohannes Berg ); 3716cb74e977SSunil Dutt 3717cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3718cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3719cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3720cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3721cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3722cb74e977SSunil Dutt NETDEV_ENTRY 3723cb74e977SSunil Dutt MAC_ENTRY(peer) 3724cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3725cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3726cb74e977SSunil Dutt NETDEV_ASSIGN; 3727cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3728cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 3729cb74e977SSunil Dutt owe_info->ie_len);), 3730cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 3731cb74e977SSunil Dutt WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 3732cb74e977SSunil Dutt ); 3733cb74e977SSunil Dutt 37340d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 37350d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 37360d2ab3aeSJohn Crispin enum nl80211_commands cmd, 37370d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 37380d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 37390d2ab3aeSJohn Crispin TP_STRUCT__entry( 37400d2ab3aeSJohn Crispin NETDEV_ENTRY 3741c448f0fdSJohannes Berg __field(u32, cmd) 37420d2ab3aeSJohn Crispin __field(u8, count) 37430d2ab3aeSJohn Crispin __field(u64, color_bitmap) 37440d2ab3aeSJohn Crispin ), 37450d2ab3aeSJohn Crispin TP_fast_assign( 37460d2ab3aeSJohn Crispin NETDEV_ASSIGN; 37470d2ab3aeSJohn Crispin __entry->cmd = cmd; 37480d2ab3aeSJohn Crispin __entry->count = count; 37490d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 37500d2ab3aeSJohn Crispin ), 37510d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 37520d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 37530d2ab3aeSJohn Crispin __entry->color_bitmap) 37540d2ab3aeSJohn Crispin ); 37550d2ab3aeSJohn Crispin 3756a083ee8aSIlan Peer TRACE_EVENT(cfg80211_assoc_comeback, 3757a083ee8aSIlan Peer TP_PROTO(struct wireless_dev *wdev, const u8 *bssid, u32 timeout), 3758a083ee8aSIlan Peer TP_ARGS(wdev, bssid, timeout), 3759a083ee8aSIlan Peer TP_STRUCT__entry( 3760a083ee8aSIlan Peer WDEV_ENTRY 3761a083ee8aSIlan Peer MAC_ENTRY(bssid) 3762a083ee8aSIlan Peer __field(u32, timeout) 3763a083ee8aSIlan Peer ), 3764a083ee8aSIlan Peer TP_fast_assign( 3765a083ee8aSIlan Peer WDEV_ASSIGN; 3766a083ee8aSIlan Peer MAC_ASSIGN(bssid, bssid); 3767a083ee8aSIlan Peer __entry->timeout = timeout; 3768a083ee8aSIlan Peer ), 3769a083ee8aSIlan Peer TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs", 3770a083ee8aSIlan Peer WDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->timeout) 3771a083ee8aSIlan Peer ); 3772a083ee8aSIlan Peer 3773577e5b8cSShaul Triebitz DECLARE_EVENT_CLASS(link_station_add_mod, 3774577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3775577e5b8cSShaul Triebitz struct link_station_parameters *params), 3776577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3777577e5b8cSShaul Triebitz TP_STRUCT__entry( 3778577e5b8cSShaul Triebitz WIPHY_ENTRY 3779577e5b8cSShaul Triebitz NETDEV_ENTRY 3780577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3781577e5b8cSShaul Triebitz __array(u8, link_mac, 6) 3782577e5b8cSShaul Triebitz __field(u32, link_id) 3783577e5b8cSShaul Triebitz __dynamic_array(u8, supported_rates, 3784577e5b8cSShaul Triebitz params->supported_rates_len) 3785577e5b8cSShaul Triebitz __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 3786577e5b8cSShaul Triebitz __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 3787577e5b8cSShaul Triebitz __field(u8, opmode_notif) 3788577e5b8cSShaul Triebitz __field(bool, opmode_notif_used) 3789577e5b8cSShaul Triebitz __dynamic_array(u8, he_capa, params->he_capa_len) 3790577e5b8cSShaul Triebitz __array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa)) 3791577e5b8cSShaul Triebitz __dynamic_array(u8, eht_capa, params->eht_capa_len) 3792577e5b8cSShaul Triebitz ), 3793577e5b8cSShaul Triebitz TP_fast_assign( 3794577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3795577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3796577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3797577e5b8cSShaul Triebitz memset(__entry->link_mac, 0, 6); 3798577e5b8cSShaul Triebitz if (params->mld_mac) 3799577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3800577e5b8cSShaul Triebitz if (params->link_mac) 3801577e5b8cSShaul Triebitz memcpy(__entry->link_mac, params->link_mac, 6); 3802577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3803577e5b8cSShaul Triebitz if (params->supported_rates && params->supported_rates_len) 3804577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(supported_rates), 3805577e5b8cSShaul Triebitz params->supported_rates, 3806577e5b8cSShaul Triebitz params->supported_rates_len); 3807577e5b8cSShaul Triebitz memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 3808577e5b8cSShaul Triebitz if (params->ht_capa) 3809577e5b8cSShaul Triebitz memcpy(__entry->ht_capa, params->ht_capa, 3810577e5b8cSShaul Triebitz sizeof(struct ieee80211_ht_cap)); 3811577e5b8cSShaul Triebitz memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 3812577e5b8cSShaul Triebitz if (params->vht_capa) 3813577e5b8cSShaul Triebitz memcpy(__entry->vht_capa, params->vht_capa, 3814577e5b8cSShaul Triebitz sizeof(struct ieee80211_vht_cap)); 3815577e5b8cSShaul Triebitz __entry->opmode_notif = params->opmode_notif; 3816577e5b8cSShaul Triebitz __entry->opmode_notif_used = params->opmode_notif_used; 3817577e5b8cSShaul Triebitz if (params->he_capa && params->he_capa_len) 3818577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(he_capa), params->he_capa, 3819577e5b8cSShaul Triebitz params->he_capa_len); 3820577e5b8cSShaul Triebitz memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa)); 3821577e5b8cSShaul Triebitz if (params->he_6ghz_capa) 3822577e5b8cSShaul Triebitz memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa, 3823577e5b8cSShaul Triebitz sizeof(struct ieee80211_he_6ghz_capa)); 3824577e5b8cSShaul Triebitz if (params->eht_capa && params->eht_capa_len) 3825577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(eht_capa), params->eht_capa, 3826577e5b8cSShaul Triebitz params->eht_capa_len); 3827577e5b8cSShaul Triebitz ), 3828577e5b8cSShaul Triebitz TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 3829577e5b8cSShaul Triebitz ", link mac: " MAC_PR_FMT ", link id: %u", 3830577e5b8cSShaul Triebitz WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac), 3831577e5b8cSShaul Triebitz MAC_PR_ARG(link_mac), __entry->link_id) 3832577e5b8cSShaul Triebitz ); 3833577e5b8cSShaul Triebitz 3834577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_add_link_station, 3835577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3836577e5b8cSShaul Triebitz struct link_station_parameters *params), 3837577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3838577e5b8cSShaul Triebitz ); 3839577e5b8cSShaul Triebitz 3840577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_mod_link_station, 3841577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3842577e5b8cSShaul Triebitz struct link_station_parameters *params), 3843577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3844577e5b8cSShaul Triebitz ); 3845577e5b8cSShaul Triebitz 3846577e5b8cSShaul Triebitz TRACE_EVENT(rdev_del_link_station, 3847577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3848577e5b8cSShaul Triebitz struct link_station_del_parameters *params), 3849577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3850577e5b8cSShaul Triebitz TP_STRUCT__entry( 3851577e5b8cSShaul Triebitz WIPHY_ENTRY 3852577e5b8cSShaul Triebitz NETDEV_ENTRY 3853577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3854577e5b8cSShaul Triebitz __field(u32, link_id) 3855577e5b8cSShaul Triebitz ), 3856577e5b8cSShaul Triebitz TP_fast_assign( 3857577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3858577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3859577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3860577e5b8cSShaul Triebitz if (params->mld_mac) 3861577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3862577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3863577e5b8cSShaul Triebitz ), 3864577e5b8cSShaul Triebitz TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 3865577e5b8cSShaul Triebitz ", link id: %u", 3866577e5b8cSShaul Triebitz WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac), 3867577e5b8cSShaul Triebitz __entry->link_id) 3868577e5b8cSShaul Triebitz ); 3869577e5b8cSShaul Triebitz 387014e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 387114e8a3c4SBeni Lev 387214e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 387314e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 387414e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 387514e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 387614e8a3c4SBeni Lev #include <trace/define_trace.h> 3877