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, 12351d4c0f04SJohannes Berg struct cfg80211_assoc_request *req), 12361d4c0f04SJohannes 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; 1321*8f6e0dfcSJohannes Berg MAC_ASSIGN(bssid, req->ap_addr); 132214e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 132314e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 132414e8a3c4SBeni Lev ), 1325ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 132614e8a3c4SBeni Lev ", reason: %u, local state change: %s", 132714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 132814e8a3c4SBeni Lev __entry->reason_code, 132914e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 133014e8a3c4SBeni Lev ); 133114e8a3c4SBeni Lev 133214e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 133314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 133414e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 133514e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 133614e8a3c4SBeni Lev TP_STRUCT__entry( 133714e8a3c4SBeni Lev WIPHY_ENTRY 133814e8a3c4SBeni Lev WDEV_ENTRY 133914e8a3c4SBeni Lev __field(u64, cookie) 134014e8a3c4SBeni Lev ), 134114e8a3c4SBeni Lev TP_fast_assign( 134214e8a3c4SBeni Lev WIPHY_ASSIGN; 134314e8a3c4SBeni Lev WDEV_ASSIGN; 134414e8a3c4SBeni Lev __entry->cookie = cookie; 134514e8a3c4SBeni Lev ), 1346ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 134714e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 134814e8a3c4SBeni Lev ); 134914e8a3c4SBeni Lev 135014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 135114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 135214e8a3c4SBeni Lev bool enabled, int timeout), 135314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 135414e8a3c4SBeni Lev TP_STRUCT__entry( 135514e8a3c4SBeni Lev WIPHY_ENTRY 135614e8a3c4SBeni Lev NETDEV_ENTRY 135714e8a3c4SBeni Lev __field(bool, enabled) 135814e8a3c4SBeni Lev __field(int, timeout) 135914e8a3c4SBeni Lev ), 136014e8a3c4SBeni Lev TP_fast_assign( 136114e8a3c4SBeni Lev WIPHY_ASSIGN; 136214e8a3c4SBeni Lev NETDEV_ASSIGN; 136314e8a3c4SBeni Lev __entry->enabled = enabled; 136414e8a3c4SBeni Lev __entry->timeout = timeout; 136514e8a3c4SBeni Lev ), 1366ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 136714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 136814e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 136914e8a3c4SBeni Lev ); 137014e8a3c4SBeni Lev 137114e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 137214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 137314e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 137414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 137514e8a3c4SBeni Lev TP_STRUCT__entry( 137614e8a3c4SBeni Lev WIPHY_ENTRY 137714e8a3c4SBeni Lev NETDEV_ENTRY 137814e8a3c4SBeni Lev MAC_ENTRY(bssid) 137914e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 138014e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 138114e8a3c4SBeni Lev __field(bool, privacy) 138214e8a3c4SBeni Lev __field(u32, wpa_versions) 138314e8a3c4SBeni Lev __field(u32, flags) 1384ba6fbacfSJouni Malinen MAC_ENTRY(prev_bssid) 138514e8a3c4SBeni Lev ), 138614e8a3c4SBeni Lev TP_fast_assign( 138714e8a3c4SBeni Lev WIPHY_ASSIGN; 138814e8a3c4SBeni Lev NETDEV_ASSIGN; 138914e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 139014e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 139114e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 139214e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 139314e8a3c4SBeni Lev __entry->privacy = sme->privacy; 139414e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 139514e8a3c4SBeni Lev __entry->flags = sme->flags; 1396ba6fbacfSJouni Malinen MAC_ASSIGN(prev_bssid, sme->prev_bssid); 139714e8a3c4SBeni Lev ), 1398ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 139914e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 1400ba6fbacfSJouni Malinen "flags: %u, previous bssid: " MAC_PR_FMT, 140114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid, 140214e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 1403ba6fbacfSJouni Malinen __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid)) 140414e8a3c4SBeni Lev ); 140514e8a3c4SBeni Lev 1406088e8df8Svamsi krishna TRACE_EVENT(rdev_update_connect_params, 1407088e8df8Svamsi krishna TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1408088e8df8Svamsi krishna struct cfg80211_connect_params *sme, u32 changed), 1409088e8df8Svamsi krishna TP_ARGS(wiphy, netdev, sme, changed), 1410088e8df8Svamsi krishna TP_STRUCT__entry( 1411088e8df8Svamsi krishna WIPHY_ENTRY 1412088e8df8Svamsi krishna NETDEV_ENTRY 1413088e8df8Svamsi krishna __field(u32, changed) 1414088e8df8Svamsi krishna ), 1415088e8df8Svamsi krishna TP_fast_assign( 1416088e8df8Svamsi krishna WIPHY_ASSIGN; 1417088e8df8Svamsi krishna NETDEV_ASSIGN; 1418088e8df8Svamsi krishna __entry->changed = changed; 1419088e8df8Svamsi krishna ), 1420088e8df8Svamsi krishna TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u", 1421088e8df8Svamsi krishna WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed) 1422088e8df8Svamsi krishna ); 1423088e8df8Svamsi krishna 142414e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 142514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 142614e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 142714e8a3c4SBeni Lev u32 rssi_hyst), 142814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 142914e8a3c4SBeni Lev TP_STRUCT__entry( 143014e8a3c4SBeni Lev WIPHY_ENTRY 143114e8a3c4SBeni Lev NETDEV_ENTRY 143214e8a3c4SBeni Lev __field(s32, rssi_thold) 143314e8a3c4SBeni Lev __field(u32, rssi_hyst) 143414e8a3c4SBeni Lev ), 143514e8a3c4SBeni Lev TP_fast_assign( 143614e8a3c4SBeni Lev WIPHY_ASSIGN; 143714e8a3c4SBeni Lev NETDEV_ASSIGN; 143814e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 143914e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 144014e8a3c4SBeni Lev ), 1441ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 144214e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 144314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 144414e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 144514e8a3c4SBeni Lev ); 144614e8a3c4SBeni Lev 14474a4b8169SAndrew Zaborowski TRACE_EVENT(rdev_set_cqm_rssi_range_config, 14484a4b8169SAndrew Zaborowski TP_PROTO(struct wiphy *wiphy, 14494a4b8169SAndrew Zaborowski struct net_device *netdev, s32 low, s32 high), 14504a4b8169SAndrew Zaborowski TP_ARGS(wiphy, netdev, low, high), 14514a4b8169SAndrew Zaborowski TP_STRUCT__entry( 14524a4b8169SAndrew Zaborowski WIPHY_ENTRY 14534a4b8169SAndrew Zaborowski NETDEV_ENTRY 14544a4b8169SAndrew Zaborowski __field(s32, rssi_low) 14554a4b8169SAndrew Zaborowski __field(s32, rssi_high) 14564a4b8169SAndrew Zaborowski ), 14574a4b8169SAndrew Zaborowski TP_fast_assign( 14584a4b8169SAndrew Zaborowski WIPHY_ASSIGN; 14594a4b8169SAndrew Zaborowski NETDEV_ASSIGN; 14604a4b8169SAndrew Zaborowski __entry->rssi_low = low; 14614a4b8169SAndrew Zaborowski __entry->rssi_high = high; 14624a4b8169SAndrew Zaborowski ), 14634a4b8169SAndrew Zaborowski TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 14644a4b8169SAndrew Zaborowski ", range: %d - %d ", 14654a4b8169SAndrew Zaborowski WIPHY_PR_ARG, NETDEV_PR_ARG, 14664a4b8169SAndrew Zaborowski __entry->rssi_low, __entry->rssi_high) 14674a4b8169SAndrew Zaborowski ); 14684a4b8169SAndrew Zaborowski 146914e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 147014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 147114e8a3c4SBeni Lev u32 pkts, u32 intvl), 147214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 147314e8a3c4SBeni Lev TP_STRUCT__entry( 147414e8a3c4SBeni Lev WIPHY_ENTRY 147514e8a3c4SBeni Lev NETDEV_ENTRY 147614e8a3c4SBeni Lev __field(u32, rate) 147714e8a3c4SBeni Lev __field(u32, pkts) 147814e8a3c4SBeni Lev __field(u32, intvl) 147914e8a3c4SBeni Lev ), 148014e8a3c4SBeni Lev TP_fast_assign( 148114e8a3c4SBeni Lev WIPHY_ASSIGN; 148214e8a3c4SBeni Lev NETDEV_ASSIGN; 148314e8a3c4SBeni Lev __entry->rate = rate; 148414e8a3c4SBeni Lev __entry->pkts = pkts; 148514e8a3c4SBeni Lev __entry->intvl = intvl; 148614e8a3c4SBeni Lev ), 1487ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 148814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 148914e8a3c4SBeni Lev __entry->intvl) 149014e8a3c4SBeni Lev ); 149114e8a3c4SBeni Lev 149214e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 149314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 149414e8a3c4SBeni Lev u16 reason_code), 149514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 149614e8a3c4SBeni Lev TP_STRUCT__entry( 149714e8a3c4SBeni Lev WIPHY_ENTRY 149814e8a3c4SBeni Lev NETDEV_ENTRY 149914e8a3c4SBeni Lev __field(u16, reason_code) 150014e8a3c4SBeni Lev ), 150114e8a3c4SBeni Lev TP_fast_assign( 150214e8a3c4SBeni Lev WIPHY_ASSIGN; 150314e8a3c4SBeni Lev NETDEV_ASSIGN; 150414e8a3c4SBeni Lev __entry->reason_code = reason_code; 150514e8a3c4SBeni Lev ), 1506ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 150714e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 150814e8a3c4SBeni Lev ); 150914e8a3c4SBeni Lev 151014e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 151114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 151214e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 151314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 151414e8a3c4SBeni Lev TP_STRUCT__entry( 151514e8a3c4SBeni Lev WIPHY_ENTRY 151614e8a3c4SBeni Lev NETDEV_ENTRY 151714e8a3c4SBeni Lev MAC_ENTRY(bssid) 151814e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 151914e8a3c4SBeni Lev ), 152014e8a3c4SBeni Lev TP_fast_assign( 152114e8a3c4SBeni Lev WIPHY_ASSIGN; 152214e8a3c4SBeni Lev NETDEV_ASSIGN; 152314e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 152414e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 152514e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 152614e8a3c4SBeni Lev ), 1527ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s", 152814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid) 152914e8a3c4SBeni Lev ); 153014e8a3c4SBeni Lev 15316e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 15326e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 15336e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 15346e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 15356e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 15366e0bd6c3SRostislav Lisovy WIPHY_ENTRY 15376e0bd6c3SRostislav Lisovy NETDEV_ENTRY 15386e0bd6c3SRostislav Lisovy ), 15396e0bd6c3SRostislav Lisovy TP_fast_assign( 15406e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 15416e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 15426e0bd6c3SRostislav Lisovy ), 15436e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 15446e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 15456e0bd6c3SRostislav Lisovy ); 15466e0bd6c3SRostislav Lisovy 154714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 154814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 154914e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 155014e8a3c4SBeni Lev TP_STRUCT__entry( 155114e8a3c4SBeni Lev WIPHY_ENTRY 155214e8a3c4SBeni Lev __field(u32, changed) 155314e8a3c4SBeni Lev ), 155414e8a3c4SBeni Lev TP_fast_assign( 155514e8a3c4SBeni Lev WIPHY_ASSIGN; 155614e8a3c4SBeni Lev __entry->changed = changed; 155714e8a3c4SBeni Lev ), 155814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 155914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 156014e8a3c4SBeni Lev ); 156114e8a3c4SBeni Lev 1562c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1563c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1564c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1565c8442118SJohannes Berg ); 1566c8442118SJohannes Berg 156714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1568c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1569c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1570c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 157114e8a3c4SBeni Lev TP_STRUCT__entry( 157214e8a3c4SBeni Lev WIPHY_ENTRY 1573c8442118SJohannes Berg WDEV_ENTRY 157414e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 157514e8a3c4SBeni Lev __field(int, mbm) 157614e8a3c4SBeni Lev ), 157714e8a3c4SBeni Lev TP_fast_assign( 157814e8a3c4SBeni Lev WIPHY_ASSIGN; 1579c8442118SJohannes Berg WDEV_ASSIGN; 158014e8a3c4SBeni Lev __entry->type = type; 158114e8a3c4SBeni Lev __entry->mbm = mbm; 158214e8a3c4SBeni Lev ), 1583ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1584c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 158514e8a3c4SBeni Lev ); 158614e8a3c4SBeni Lev 158714e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 158814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 158914e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 159014e8a3c4SBeni Lev TP_STRUCT__entry( 159114e8a3c4SBeni Lev WIPHY_ENTRY 159214e8a3c4SBeni Lev __field(int, func_ret) 159314e8a3c4SBeni Lev __field(int, func_fill) 159414e8a3c4SBeni Lev ), 159514e8a3c4SBeni Lev TP_fast_assign( 159614e8a3c4SBeni Lev WIPHY_ASSIGN; 159714e8a3c4SBeni Lev __entry->func_ret = func_ret; 159814e8a3c4SBeni Lev __entry->func_fill = func_fill; 159914e8a3c4SBeni Lev ), 160014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 160114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 160214e8a3c4SBeni Lev ); 160314e8a3c4SBeni Lev 160414e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 160514e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1606fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1607fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 160814e8a3c4SBeni Lev TP_STRUCT__entry( 160914e8a3c4SBeni Lev WIPHY_ENTRY 1610fc73f11fSDavid Spinadel WDEV_ENTRY 161114e8a3c4SBeni Lev ), 161214e8a3c4SBeni Lev TP_fast_assign( 161314e8a3c4SBeni Lev WIPHY_ASSIGN; 1614fc73f11fSDavid Spinadel WDEV_ASSIGN; 161514e8a3c4SBeni Lev ), 1616fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 161714e8a3c4SBeni Lev ); 161814e8a3c4SBeni Lev 161914e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 162014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 162114e8a3c4SBeni Lev TP_ARGS(wiphy), 162214e8a3c4SBeni Lev TP_STRUCT__entry( 162314e8a3c4SBeni Lev WIPHY_ENTRY 162414e8a3c4SBeni Lev ), 162514e8a3c4SBeni Lev TP_fast_assign( 162614e8a3c4SBeni Lev WIPHY_ASSIGN; 162714e8a3c4SBeni Lev ), 162814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 162914e8a3c4SBeni Lev ); 163014e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 163114e8a3c4SBeni Lev 163214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 163314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 16347b0a0e3cSJohannes Berg unsigned int link_id, 163514e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 16367b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, peer, mask), 163714e8a3c4SBeni Lev TP_STRUCT__entry( 163814e8a3c4SBeni Lev WIPHY_ENTRY 163914e8a3c4SBeni Lev NETDEV_ENTRY 16407b0a0e3cSJohannes Berg __field(unsigned int, link_id) 164114e8a3c4SBeni Lev MAC_ENTRY(peer) 164214e8a3c4SBeni Lev ), 164314e8a3c4SBeni Lev TP_fast_assign( 164414e8a3c4SBeni Lev WIPHY_ASSIGN; 164514e8a3c4SBeni Lev NETDEV_ASSIGN; 16467b0a0e3cSJohannes Berg __entry->link_id = link_id; 164714e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 164814e8a3c4SBeni Lev ), 16497b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT, 16507b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 16517b0a0e3cSJohannes Berg MAC_PR_ARG(peer)) 165214e8a3c4SBeni Lev ); 165314e8a3c4SBeni Lev 16546cd536feSJohannes Berg TRACE_EVENT(rdev_update_mgmt_frame_registrations, 165514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 16566cd536feSJohannes Berg struct mgmt_frame_regs *upd), 16576cd536feSJohannes Berg TP_ARGS(wiphy, wdev, upd), 165814e8a3c4SBeni Lev TP_STRUCT__entry( 165914e8a3c4SBeni Lev WIPHY_ENTRY 166014e8a3c4SBeni Lev WDEV_ENTRY 16616cd536feSJohannes Berg __field(u16, global_stypes) 16626cd536feSJohannes Berg __field(u16, interface_stypes) 166314e8a3c4SBeni Lev ), 166414e8a3c4SBeni Lev TP_fast_assign( 166514e8a3c4SBeni Lev WIPHY_ASSIGN; 166614e8a3c4SBeni Lev WDEV_ASSIGN; 16676cd536feSJohannes Berg __entry->global_stypes = upd->global_stypes; 16686cd536feSJohannes Berg __entry->interface_stypes = upd->interface_stypes; 166914e8a3c4SBeni Lev ), 16706cd536feSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x", 16716cd536feSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 16726cd536feSJohannes Berg __entry->global_stypes, __entry->interface_stypes) 167314e8a3c4SBeni Lev ); 167414e8a3c4SBeni Lev 167514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 167614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 167714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 167814e8a3c4SBeni Lev TP_STRUCT__entry( 167914e8a3c4SBeni Lev WIPHY_ENTRY 168014e8a3c4SBeni Lev __field(int, ret) 168114e8a3c4SBeni Lev __field(u32, tx) 168214e8a3c4SBeni Lev __field(u32, rx) 168314e8a3c4SBeni Lev ), 168414e8a3c4SBeni Lev TP_fast_assign( 168514e8a3c4SBeni Lev WIPHY_ASSIGN; 168614e8a3c4SBeni Lev __entry->ret = ret; 168714e8a3c4SBeni Lev __entry->tx = tx; 168814e8a3c4SBeni Lev __entry->rx = rx; 168914e8a3c4SBeni Lev ), 169014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 169114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 169214e8a3c4SBeni Lev ); 169314e8a3c4SBeni Lev 169414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 169514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 169614e8a3c4SBeni Lev u32 rx, u32 rx_max), 169714e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 169814e8a3c4SBeni Lev TP_STRUCT__entry( 169914e8a3c4SBeni Lev WIPHY_ENTRY 170014e8a3c4SBeni Lev __field(u32, tx) 170114e8a3c4SBeni Lev __field(u32, tx_max) 170214e8a3c4SBeni Lev __field(u32, rx) 170314e8a3c4SBeni Lev __field(u32, rx_max) 170414e8a3c4SBeni Lev ), 170514e8a3c4SBeni Lev TP_fast_assign( 170614e8a3c4SBeni Lev WIPHY_ASSIGN; 170714e8a3c4SBeni Lev __entry->tx = tx; 170814e8a3c4SBeni Lev __entry->tx_max = tx_max; 170914e8a3c4SBeni Lev __entry->rx = rx; 171014e8a3c4SBeni Lev __entry->rx_max = rx_max; 171114e8a3c4SBeni Lev ), 171214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 171314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 171414e8a3c4SBeni Lev __entry->rx_max) 171514e8a3c4SBeni Lev ); 171614e8a3c4SBeni Lev 171714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 171814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 171914e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 172014e8a3c4SBeni Lev TP_STRUCT__entry( 172114e8a3c4SBeni Lev WIPHY_ENTRY 172214e8a3c4SBeni Lev __field(u32, tx) 172314e8a3c4SBeni Lev __field(u32, rx) 172414e8a3c4SBeni Lev ), 172514e8a3c4SBeni Lev TP_fast_assign( 172614e8a3c4SBeni Lev WIPHY_ASSIGN; 172714e8a3c4SBeni Lev __entry->tx = tx; 172814e8a3c4SBeni Lev __entry->rx = rx; 172914e8a3c4SBeni Lev ), 173014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 173114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 173214e8a3c4SBeni Lev ); 173314e8a3c4SBeni Lev 173414e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 173514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 173614e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 173714e8a3c4SBeni Lev ); 173814e8a3c4SBeni Lev 1739ca986ad9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_netdev_id_evt, 1740ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1741ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id), 174214e8a3c4SBeni Lev TP_STRUCT__entry( 174314e8a3c4SBeni Lev WIPHY_ENTRY 174414e8a3c4SBeni Lev NETDEV_ENTRY 1745ca986ad9SArend Van Spriel __field(u64, id) 174614e8a3c4SBeni Lev ), 174714e8a3c4SBeni Lev TP_fast_assign( 174814e8a3c4SBeni Lev WIPHY_ASSIGN; 174914e8a3c4SBeni Lev NETDEV_ASSIGN; 1750ca986ad9SArend Van Spriel __entry->id = id; 175114e8a3c4SBeni Lev ), 1752ca986ad9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu", 1753ca986ad9SArend Van Spriel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id) 1754ca986ad9SArend Van Spriel ); 1755ca986ad9SArend Van Spriel 1756ca986ad9SArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start, 1757ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1758ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id) 175914e8a3c4SBeni Lev ); 176014e8a3c4SBeni Lev 17613a3ecf1dSArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop, 17623a3ecf1dSArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 17633a3ecf1dSArend Van Spriel TP_ARGS(wiphy, netdev, id) 17643a3ecf1dSArend Van Spriel ); 17653a3ecf1dSArend Van Spriel 176614e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 176714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 176814e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1769df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 177031fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 177114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 177231fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 177314e8a3c4SBeni Lev TP_STRUCT__entry( 177414e8a3c4SBeni Lev WIPHY_ENTRY 177514e8a3c4SBeni Lev NETDEV_ENTRY 177614e8a3c4SBeni Lev MAC_ENTRY(peer) 177714e8a3c4SBeni Lev __field(u8, action_code) 177814e8a3c4SBeni Lev __field(u8, dialog_token) 177914e8a3c4SBeni Lev __field(u16, status_code) 1780df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 178131fa97c5SArik Nemtsov __field(bool, initiator) 178214e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 178314e8a3c4SBeni Lev ), 178414e8a3c4SBeni Lev TP_fast_assign( 178514e8a3c4SBeni Lev WIPHY_ASSIGN; 178614e8a3c4SBeni Lev NETDEV_ASSIGN; 178714e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 178814e8a3c4SBeni Lev __entry->action_code = action_code; 178914e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 179014e8a3c4SBeni Lev __entry->status_code = status_code; 1791df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 179231fa97c5SArik Nemtsov __entry->initiator = initiator; 179314e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 179414e8a3c4SBeni Lev ), 1795ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, " 179631fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 179731fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 179814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 179914e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1800df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 180131fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1802df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 180314e8a3c4SBeni Lev ); 180414e8a3c4SBeni Lev 180514e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 1806aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx), 1807aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx), 180814e8a3c4SBeni Lev TP_STRUCT__entry( 180914e8a3c4SBeni Lev WIPHY_ENTRY 181014e8a3c4SBeni Lev NETDEV_ENTRY 181114e8a3c4SBeni Lev __field(int, idx) 181214e8a3c4SBeni Lev ), 181314e8a3c4SBeni Lev TP_fast_assign( 181414e8a3c4SBeni Lev WIPHY_ASSIGN; 181514e8a3c4SBeni Lev NETDEV_ASSIGN; 1816aaaa10e0SJohannes Berg __entry->idx = _idx; 181714e8a3c4SBeni Lev ), 1818ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 181914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 182014e8a3c4SBeni Lev ); 182114e8a3c4SBeni Lev 182214e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 182314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 182414e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 182514e8a3c4SBeni Lev TP_STRUCT__entry( 182614e8a3c4SBeni Lev WIPHY_ENTRY 182714e8a3c4SBeni Lev CHAN_ENTRY 182814e8a3c4SBeni Lev __field(int, ret) 18294ed20bebSJohannes Berg __field(u64, time) 18304ed20bebSJohannes Berg __field(u64, time_busy) 18314ed20bebSJohannes Berg __field(u64, time_ext_busy) 18324ed20bebSJohannes Berg __field(u64, time_rx) 18334ed20bebSJohannes Berg __field(u64, time_tx) 1834052536abSJohannes Berg __field(u64, time_scan) 183514e8a3c4SBeni Lev __field(u32, filled) 183614e8a3c4SBeni Lev __field(s8, noise) 183714e8a3c4SBeni Lev ), 183814e8a3c4SBeni Lev TP_fast_assign( 183914e8a3c4SBeni Lev WIPHY_ASSIGN; 184014e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 184114e8a3c4SBeni Lev __entry->ret = ret; 18424ed20bebSJohannes Berg __entry->time = info->time; 18434ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 18444ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 18454ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 18464ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1847052536abSJohannes Berg __entry->time_scan = info->time_scan; 184814e8a3c4SBeni Lev __entry->filled = info->filled; 184914e8a3c4SBeni Lev __entry->noise = info->noise; 185014e8a3c4SBeni Lev ), 185114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 185214e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 185314e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1854052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 185514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 18564ed20bebSJohannes Berg __entry->time, __entry->time_busy, 18574ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1858052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1859052536abSJohannes Berg __entry->filled, __entry->noise) 186014e8a3c4SBeni Lev ); 186114e8a3c4SBeni Lev 186214e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 186314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 186414e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 186514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 186614e8a3c4SBeni Lev TP_STRUCT__entry( 186714e8a3c4SBeni Lev WIPHY_ENTRY 186814e8a3c4SBeni Lev NETDEV_ENTRY 186914e8a3c4SBeni Lev MAC_ENTRY(peer) 187014e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 187114e8a3c4SBeni Lev ), 187214e8a3c4SBeni Lev TP_fast_assign( 187314e8a3c4SBeni Lev WIPHY_ASSIGN; 187414e8a3c4SBeni Lev NETDEV_ASSIGN; 187514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 187614e8a3c4SBeni Lev __entry->oper = oper; 187714e8a3c4SBeni Lev ), 1878ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d", 187914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper) 188014e8a3c4SBeni Lev ); 188114e8a3c4SBeni Lev 188214e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 188314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 188414e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 188514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 188614e8a3c4SBeni Lev TP_STRUCT__entry( 188714e8a3c4SBeni Lev WIPHY_ENTRY 188814e8a3c4SBeni Lev NETDEV_ENTRY 188914e8a3c4SBeni Lev MAC_ENTRY(bssid) 189014e8a3c4SBeni Lev ), 189114e8a3c4SBeni Lev TP_fast_assign( 189214e8a3c4SBeni Lev WIPHY_ASSIGN; 189314e8a3c4SBeni Lev NETDEV_ASSIGN; 189414e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 189514e8a3c4SBeni Lev ), 1896ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT, 189714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid)) 189814e8a3c4SBeni Lev ); 189914e8a3c4SBeni Lev 190014e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 190114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 190214e8a3c4SBeni Lev const u8 *peer), 190314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 190414e8a3c4SBeni Lev TP_STRUCT__entry( 190514e8a3c4SBeni Lev WIPHY_ENTRY 190614e8a3c4SBeni Lev NETDEV_ENTRY 190714e8a3c4SBeni Lev MAC_ENTRY(peer) 190814e8a3c4SBeni Lev ), 190914e8a3c4SBeni Lev TP_fast_assign( 191014e8a3c4SBeni Lev WIPHY_ASSIGN; 191114e8a3c4SBeni Lev NETDEV_ASSIGN; 191214e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 191314e8a3c4SBeni Lev ), 1914ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 191514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 191614e8a3c4SBeni Lev ); 191714e8a3c4SBeni Lev 191814e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 191914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192014e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 192114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 192214e8a3c4SBeni Lev ); 192314e8a3c4SBeni Lev 192414e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 192514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192614e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 192714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 192814e8a3c4SBeni Lev ); 192914e8a3c4SBeni Lev 193014e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 193114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 193214e8a3c4SBeni Lev struct ieee80211_channel *chan, 193342d97a59SJohannes Berg unsigned int duration), 193442d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 193514e8a3c4SBeni Lev TP_STRUCT__entry( 193614e8a3c4SBeni Lev WIPHY_ENTRY 193714e8a3c4SBeni Lev WDEV_ENTRY 193814e8a3c4SBeni Lev CHAN_ENTRY 193914e8a3c4SBeni Lev __field(unsigned int, duration) 194014e8a3c4SBeni Lev ), 194114e8a3c4SBeni Lev TP_fast_assign( 194214e8a3c4SBeni Lev WIPHY_ASSIGN; 194314e8a3c4SBeni Lev WDEV_ASSIGN; 194414e8a3c4SBeni Lev CHAN_ASSIGN(chan); 194514e8a3c4SBeni Lev __entry->duration = duration; 194614e8a3c4SBeni Lev ), 1947ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 194842d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 194914e8a3c4SBeni Lev ); 195014e8a3c4SBeni Lev 195114e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 195214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 195314e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 195414e8a3c4SBeni Lev TP_STRUCT__entry( 195514e8a3c4SBeni Lev WIPHY_ENTRY 195614e8a3c4SBeni Lev __field(int, ret) 195714e8a3c4SBeni Lev __field(u64, cookie) 195814e8a3c4SBeni Lev ), 195914e8a3c4SBeni Lev TP_fast_assign( 196014e8a3c4SBeni Lev WIPHY_ASSIGN; 196114e8a3c4SBeni Lev __entry->ret = ret; 196214e8a3c4SBeni Lev __entry->cookie = cookie; 196314e8a3c4SBeni Lev ), 196414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 196514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 196614e8a3c4SBeni Lev ); 196714e8a3c4SBeni Lev 196814e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 196914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 197014e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 197114e8a3c4SBeni Lev TP_STRUCT__entry( 197214e8a3c4SBeni Lev WIPHY_ENTRY 197314e8a3c4SBeni Lev WDEV_ENTRY 197414e8a3c4SBeni Lev __field(u64, cookie) 197514e8a3c4SBeni Lev ), 197614e8a3c4SBeni Lev TP_fast_assign( 197714e8a3c4SBeni Lev WIPHY_ASSIGN; 197814e8a3c4SBeni Lev WDEV_ASSIGN; 197914e8a3c4SBeni Lev __entry->cookie = cookie; 198014e8a3c4SBeni Lev ), 1981ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 198214e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 198314e8a3c4SBeni Lev ); 198414e8a3c4SBeni Lev 198514e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 198614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1987b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 1988b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 198914e8a3c4SBeni Lev TP_STRUCT__entry( 199014e8a3c4SBeni Lev WIPHY_ENTRY 199114e8a3c4SBeni Lev WDEV_ENTRY 199214e8a3c4SBeni Lev CHAN_ENTRY 199314e8a3c4SBeni Lev __field(bool, offchan) 199414e8a3c4SBeni Lev __field(unsigned int, wait) 199514e8a3c4SBeni Lev __field(bool, no_cck) 199614e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 199714e8a3c4SBeni Lev ), 199814e8a3c4SBeni Lev TP_fast_assign( 199914e8a3c4SBeni Lev WIPHY_ASSIGN; 200014e8a3c4SBeni Lev WDEV_ASSIGN; 2001b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 2002b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 2003b176e629SAndrei Otcheretianski __entry->wait = params->wait; 2004b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 2005b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 200614e8a3c4SBeni Lev ), 2007ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 200842d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 200914e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 201042d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 201114e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 201214e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 201314e8a3c4SBeni Lev ); 201414e8a3c4SBeni Lev 20152576a9acSDenis Kenzior TRACE_EVENT(rdev_tx_control_port, 20162576a9acSDenis Kenzior TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20178d74a623SJohannes Berg const u8 *buf, size_t len, const u8 *dest, __be16 proto, 20182576a9acSDenis Kenzior bool unencrypted), 20198d74a623SJohannes Berg TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted), 20202576a9acSDenis Kenzior TP_STRUCT__entry( 20212576a9acSDenis Kenzior WIPHY_ENTRY 20222576a9acSDenis Kenzior NETDEV_ENTRY 20232576a9acSDenis Kenzior MAC_ENTRY(dest) 20248d74a623SJohannes Berg __field(__be16, proto) 20252576a9acSDenis Kenzior __field(bool, unencrypted) 20262576a9acSDenis Kenzior ), 20272576a9acSDenis Kenzior TP_fast_assign( 20282576a9acSDenis Kenzior WIPHY_ASSIGN; 20292576a9acSDenis Kenzior NETDEV_ASSIGN; 20302576a9acSDenis Kenzior MAC_ASSIGN(dest, dest); 20318d74a623SJohannes Berg __entry->proto = proto; 20322576a9acSDenis Kenzior __entry->unencrypted = unencrypted; 20332576a9acSDenis Kenzior ), 20348d74a623SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT "," 20358d74a623SJohannes Berg " proto: 0x%x, unencrypted: %s", 20368d74a623SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest), 20378d74a623SJohannes Berg be16_to_cpu(__entry->proto), 20382576a9acSDenis Kenzior BOOL_TO_STR(__entry->unencrypted)) 20392576a9acSDenis Kenzior ); 20402576a9acSDenis Kenzior 204114e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 204214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 204314e8a3c4SBeni Lev u16 noack_map), 204414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 204514e8a3c4SBeni Lev TP_STRUCT__entry( 204614e8a3c4SBeni Lev WIPHY_ENTRY 204714e8a3c4SBeni Lev NETDEV_ENTRY 204814e8a3c4SBeni Lev __field(u16, noack_map) 204914e8a3c4SBeni Lev ), 205014e8a3c4SBeni Lev TP_fast_assign( 205114e8a3c4SBeni Lev WIPHY_ASSIGN; 205214e8a3c4SBeni Lev NETDEV_ASSIGN; 205314e8a3c4SBeni Lev __entry->noack_map = noack_map; 205414e8a3c4SBeni Lev ), 2055ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 205614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 205714e8a3c4SBeni Lev ); 205814e8a3c4SBeni Lev 2059f2a0290bSJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_link_evt, 20607b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 20617b0a0e3cSJohannes Berg unsigned int link_id), 20627b0a0e3cSJohannes Berg TP_ARGS(wiphy, wdev, link_id), 20637b0a0e3cSJohannes Berg TP_STRUCT__entry( 20647b0a0e3cSJohannes Berg WIPHY_ENTRY 20657b0a0e3cSJohannes Berg WDEV_ENTRY 20667b0a0e3cSJohannes Berg __field(unsigned int, link_id) 20677b0a0e3cSJohannes Berg ), 20687b0a0e3cSJohannes Berg TP_fast_assign( 20697b0a0e3cSJohannes Berg WIPHY_ASSIGN; 20707b0a0e3cSJohannes Berg WDEV_ASSIGN; 20717b0a0e3cSJohannes Berg __entry->link_id = link_id; 20727b0a0e3cSJohannes Berg ), 20737b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", 20747b0a0e3cSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) 207514e8a3c4SBeni Lev ); 207614e8a3c4SBeni Lev 2077f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel, 2078f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2079f2a0290bSJohannes Berg unsigned int link_id), 2080f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2081f2a0290bSJohannes Berg ); 2082f2a0290bSJohannes Berg 2083683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2084683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2085683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2086683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 208714e8a3c4SBeni Lev TP_STRUCT__entry( 208814e8a3c4SBeni Lev WIPHY_ENTRY 2089683b6d3bSJohannes Berg __field(int, ret) 2090683b6d3bSJohannes Berg CHAN_DEF_ENTRY 209114e8a3c4SBeni Lev ), 209214e8a3c4SBeni Lev TP_fast_assign( 209314e8a3c4SBeni Lev WIPHY_ASSIGN; 2094683b6d3bSJohannes Berg if (ret == 0) 2095683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2096683b6d3bSJohannes Berg else 2097683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2098683b6d3bSJohannes Berg __entry->ret = ret; 209914e8a3c4SBeni Lev ), 2100ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2101683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 210214e8a3c4SBeni Lev ); 210314e8a3c4SBeni Lev 2104eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2105eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2106eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2107eeb126e9SJohannes Berg ); 2108eeb126e9SJohannes Berg 2109eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2110eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2111eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2112eeb126e9SJohannes Berg ); 2113eeb126e9SJohannes Berg 2114cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2115cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2116cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2117cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2118cb3b7d87SAyala Beker TP_STRUCT__entry( 2119cb3b7d87SAyala Beker WIPHY_ENTRY 2120cb3b7d87SAyala Beker WDEV_ENTRY 2121cb3b7d87SAyala Beker __field(u8, master_pref) 212204ae87a5SPeter Zijlstra __field(u8, bands) 2123cb3b7d87SAyala Beker ), 2124cb3b7d87SAyala Beker TP_fast_assign( 2125cb3b7d87SAyala Beker WIPHY_ASSIGN; 2126cb3b7d87SAyala Beker WDEV_ASSIGN; 2127cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 21288585989dSLuca Coelho __entry->bands = conf->bands; 2129cb3b7d87SAyala Beker ), 2130cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21318585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2132cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21338585989dSLuca Coelho __entry->bands) 2134cb3b7d87SAyala Beker ); 2135cb3b7d87SAyala Beker 2136a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2137a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2138a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2139a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2140a5a9dcf2SAyala Beker TP_STRUCT__entry( 2141a5a9dcf2SAyala Beker WIPHY_ENTRY 2142a5a9dcf2SAyala Beker WDEV_ENTRY 2143a5a9dcf2SAyala Beker __field(u8, master_pref) 214404ae87a5SPeter Zijlstra __field(u8, bands) 214504ae87a5SPeter Zijlstra __field(u32, changes) 2146a5a9dcf2SAyala Beker ), 2147a5a9dcf2SAyala Beker TP_fast_assign( 2148a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2149a5a9dcf2SAyala Beker WDEV_ASSIGN; 2150a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21518585989dSLuca Coelho __entry->bands = conf->bands; 2152a5a9dcf2SAyala Beker __entry->changes = changes; 2153a5a9dcf2SAyala Beker ), 2154a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21558585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2156a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21578585989dSLuca Coelho __entry->bands, __entry->changes) 2158a5a9dcf2SAyala Beker ); 2159a5a9dcf2SAyala Beker 2160cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2161cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2162cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2163cb3b7d87SAyala Beker ); 2164cb3b7d87SAyala Beker 2165a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2166a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2167a442b761SAyala Beker const struct cfg80211_nan_func *func), 2168a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2169a442b761SAyala Beker TP_STRUCT__entry( 2170a442b761SAyala Beker WIPHY_ENTRY 2171a442b761SAyala Beker WDEV_ENTRY 2172a442b761SAyala Beker __field(u8, func_type) 2173a442b761SAyala Beker __field(u64, cookie) 2174a442b761SAyala Beker ), 2175a442b761SAyala Beker TP_fast_assign( 2176a442b761SAyala Beker WIPHY_ASSIGN; 2177a442b761SAyala Beker WDEV_ASSIGN; 2178a442b761SAyala Beker __entry->func_type = func->type; 2179a442b761SAyala Beker __entry->cookie = func->cookie 2180a442b761SAyala Beker ), 2181a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2182a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2183a442b761SAyala Beker __entry->cookie) 2184a442b761SAyala Beker ); 2185a442b761SAyala Beker 2186a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2187a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2188a442b761SAyala Beker u64 cookie), 2189a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2190a442b761SAyala Beker TP_STRUCT__entry( 2191a442b761SAyala Beker WIPHY_ENTRY 2192a442b761SAyala Beker WDEV_ENTRY 2193a442b761SAyala Beker __field(u64, cookie) 2194a442b761SAyala Beker ), 2195a442b761SAyala Beker TP_fast_assign( 2196a442b761SAyala Beker WIPHY_ASSIGN; 2197a442b761SAyala Beker WDEV_ASSIGN; 2198a442b761SAyala Beker __entry->cookie = cookie; 2199a442b761SAyala Beker ), 2200a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2201a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2202a442b761SAyala Beker ); 2203a442b761SAyala Beker 220477765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 220577765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 220677765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 220777765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 220877765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 220977765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 221077765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 221177765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 221277765eafSVasanthakumar Thiagarajan ), 221377765eafSVasanthakumar Thiagarajan TP_fast_assign( 221477765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2215021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 221677765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 221777765eafSVasanthakumar Thiagarajan ), 221877765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 221977765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 222077765eafSVasanthakumar Thiagarajan ); 222177765eafSVasanthakumar Thiagarajan 2222355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2223355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2224355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2225355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2226355199e0SJouni Malinen TP_STRUCT__entry( 2227355199e0SJouni Malinen WIPHY_ENTRY 2228355199e0SJouni Malinen NETDEV_ENTRY 2229355199e0SJouni Malinen __field(u16, md) 2230355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2231355199e0SJouni Malinen ), 2232355199e0SJouni Malinen TP_fast_assign( 2233355199e0SJouni Malinen WIPHY_ASSIGN; 2234355199e0SJouni Malinen NETDEV_ASSIGN; 2235355199e0SJouni Malinen __entry->md = ftie->md; 2236355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2237355199e0SJouni Malinen ), 2238355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2239355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2240355199e0SJouni Malinen ); 2241355199e0SJouni Malinen 22425de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22435de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22445de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22455de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22465de17984SArend van Spriel TP_STRUCT__entry( 22475de17984SArend van Spriel WIPHY_ENTRY 22485de17984SArend van Spriel WDEV_ENTRY 22495de17984SArend van Spriel __field(u16, proto) 22505de17984SArend van Spriel __field(u16, duration) 22515de17984SArend van Spriel ), 22525de17984SArend van Spriel TP_fast_assign( 22535de17984SArend van Spriel WIPHY_ASSIGN; 22545de17984SArend van Spriel WDEV_ASSIGN; 22555de17984SArend van Spriel __entry->proto = protocol; 22565de17984SArend van Spriel __entry->duration = duration; 22575de17984SArend van Spriel ), 22585de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22595de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22605de17984SArend van Spriel ); 22615de17984SArend van Spriel 22625de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 22635de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 22645de17984SArend van Spriel TP_ARGS(wiphy, wdev), 22655de17984SArend van Spriel TP_STRUCT__entry( 22665de17984SArend van Spriel WIPHY_ENTRY 22675de17984SArend van Spriel WDEV_ENTRY 22685de17984SArend van Spriel ), 22695de17984SArend van Spriel TP_fast_assign( 22705de17984SArend van Spriel WIPHY_ASSIGN; 22715de17984SArend van Spriel WDEV_ASSIGN; 22725de17984SArend van Spriel ), 22735de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 22745de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 22755de17984SArend van Spriel ); 22765de17984SArend van Spriel 227716ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 227816ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 227916ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 228016ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 228116ef1fe2SSimon Wunderlich TP_STRUCT__entry( 228216ef1fe2SSimon Wunderlich WIPHY_ENTRY 228316ef1fe2SSimon Wunderlich NETDEV_ENTRY 228416ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 228516ef1fe2SSimon Wunderlich __field(bool, radar_required) 228616ef1fe2SSimon Wunderlich __field(bool, block_tx) 228716ef1fe2SSimon Wunderlich __field(u8, count) 22889a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 22899a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 229016ef1fe2SSimon Wunderlich ), 229116ef1fe2SSimon Wunderlich TP_fast_assign( 229216ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 229316ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 229416ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 229516ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 229616ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 229716ef1fe2SSimon Wunderlich __entry->count = params->count; 22989a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 22999a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 23009a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 23019a774c78SAndrei Otcheretianski 23029a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 23039a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 23049a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 23059a774c78SAndrei Otcheretianski params->counter_offsets_presp, 23069a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 230716ef1fe2SSimon Wunderlich ), 230816ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 23099a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 231016ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23119a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 231216ef1fe2SSimon Wunderlich ); 231316ef1fe2SSimon Wunderlich 2314fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2315fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2316fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2317fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2318fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2319fa9ffc74SKyeyoon Park WIPHY_ENTRY 2320fa9ffc74SKyeyoon Park NETDEV_ENTRY 2321fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2322fa9ffc74SKyeyoon Park ), 2323fa9ffc74SKyeyoon Park TP_fast_assign( 2324fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2325fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2326fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2327fa9ffc74SKyeyoon Park ), 2328fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2329fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2330fa9ffc74SKyeyoon Park ); 2331fa9ffc74SKyeyoon Park 2332e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2333e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23347b0a0e3cSJohannes Berg unsigned int link_id, 2335e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 23367b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, chandef), 2337e16821bcSJouni Malinen TP_STRUCT__entry( 2338e16821bcSJouni Malinen WIPHY_ENTRY 2339e16821bcSJouni Malinen NETDEV_ENTRY 2340e16821bcSJouni Malinen CHAN_DEF_ENTRY 23417b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2342e16821bcSJouni Malinen ), 2343e16821bcSJouni Malinen TP_fast_assign( 2344e16821bcSJouni Malinen WIPHY_ASSIGN; 2345e16821bcSJouni Malinen NETDEV_ASSIGN; 2346e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 23477b0a0e3cSJohannes Berg __entry->link_id = link_id; 2348e16821bcSJouni Malinen ), 23497b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 23507b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23517b0a0e3cSJohannes Berg __entry->link_id) 2352e16821bcSJouni Malinen ); 2353e16821bcSJouni Malinen 2354960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2355960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2356960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2357960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2358960d01acSJohannes Berg TP_STRUCT__entry( 2359960d01acSJohannes Berg WIPHY_ENTRY 2360960d01acSJohannes Berg NETDEV_ENTRY 2361960d01acSJohannes Berg MAC_ENTRY(peer) 2362960d01acSJohannes Berg __field(u8, tsid) 2363960d01acSJohannes Berg __field(u8, user_prio) 2364960d01acSJohannes Berg __field(u16, admitted_time) 2365960d01acSJohannes Berg ), 2366960d01acSJohannes Berg TP_fast_assign( 2367960d01acSJohannes Berg WIPHY_ASSIGN; 2368960d01acSJohannes Berg NETDEV_ASSIGN; 2369960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2370960d01acSJohannes Berg __entry->tsid = tsid; 2371960d01acSJohannes Berg __entry->user_prio = user_prio; 2372960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2373960d01acSJohannes Berg ), 2374960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2375960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2376960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2377960d01acSJohannes Berg ); 2378960d01acSJohannes Berg 2379960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2380960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2381960d01acSJohannes Berg u8 tsid, const u8 *peer), 2382960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2383960d01acSJohannes Berg TP_STRUCT__entry( 2384960d01acSJohannes Berg WIPHY_ENTRY 2385960d01acSJohannes Berg NETDEV_ENTRY 2386960d01acSJohannes Berg MAC_ENTRY(peer) 2387960d01acSJohannes Berg __field(u8, tsid) 2388960d01acSJohannes Berg ), 2389960d01acSJohannes Berg TP_fast_assign( 2390960d01acSJohannes Berg WIPHY_ASSIGN; 2391960d01acSJohannes Berg NETDEV_ASSIGN; 2392960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2393960d01acSJohannes Berg __entry->tsid = tsid; 2394960d01acSJohannes Berg ), 2395960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2396960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2397960d01acSJohannes Berg ); 2398960d01acSJohannes Berg 23991057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 24001057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24011057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 24021057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 24031057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 24041057d35eSArik Nemtsov TP_STRUCT__entry( 24051057d35eSArik Nemtsov WIPHY_ENTRY 24061057d35eSArik Nemtsov NETDEV_ENTRY 24071057d35eSArik Nemtsov MAC_ENTRY(addr) 24081057d35eSArik Nemtsov __field(u8, oper_class) 24091057d35eSArik Nemtsov CHAN_DEF_ENTRY 24101057d35eSArik Nemtsov ), 24111057d35eSArik Nemtsov TP_fast_assign( 24121057d35eSArik Nemtsov WIPHY_ASSIGN; 24131057d35eSArik Nemtsov NETDEV_ASSIGN; 24141057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24151057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 24161057d35eSArik Nemtsov ), 24171057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24181057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 24191057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 24201057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 24211057d35eSArik Nemtsov ); 24221057d35eSArik Nemtsov 24231057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 24241057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24251057d35eSArik Nemtsov const u8 *addr), 24261057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 24271057d35eSArik Nemtsov TP_STRUCT__entry( 24281057d35eSArik Nemtsov WIPHY_ENTRY 24291057d35eSArik Nemtsov NETDEV_ENTRY 24301057d35eSArik Nemtsov MAC_ENTRY(addr) 24311057d35eSArik Nemtsov ), 24321057d35eSArik Nemtsov TP_fast_assign( 24331057d35eSArik Nemtsov WIPHY_ASSIGN; 24341057d35eSArik Nemtsov NETDEV_ASSIGN; 24351057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24361057d35eSArik Nemtsov ), 24371057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 24381057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24391057d35eSArik Nemtsov ); 24401057d35eSArik Nemtsov 24413a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24423a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24433a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24443a00df57SAvraham Stern 24453a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24463a00df57SAvraham Stern 24473a00df57SAvraham Stern TP_STRUCT__entry( 24483a00df57SAvraham Stern WIPHY_ENTRY 24493a00df57SAvraham Stern NETDEV_ENTRY 24503a00df57SAvraham Stern MAC_ENTRY(aa) 24513a00df57SAvraham Stern __field(u8, pmk_len) 24523a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24533a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24543a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24553a00df57SAvraham Stern ), 24563a00df57SAvraham Stern 24573a00df57SAvraham Stern TP_fast_assign( 24583a00df57SAvraham Stern WIPHY_ASSIGN; 24593a00df57SAvraham Stern NETDEV_ASSIGN; 24603a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24613a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24623a00df57SAvraham Stern __entry->pmk_r0_name_len = 24633a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 24643a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 24653a00df57SAvraham Stern pmk_conf->pmk_len); 24663a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 24673a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 24683a00df57SAvraham Stern ), 24693a00df57SAvraham Stern 24703a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24713a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 24723a00df57SAvraham Stern NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len, 24733a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 24743a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 24753a00df57SAvraham Stern __entry->pmk_r0_name_len ? 24763a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 24773a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 24783a00df57SAvraham Stern ); 24793a00df57SAvraham Stern 24803a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 24813a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 24823a00df57SAvraham Stern 24833a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 24843a00df57SAvraham Stern 24853a00df57SAvraham Stern TP_STRUCT__entry( 24863a00df57SAvraham Stern WIPHY_ENTRY 24873a00df57SAvraham Stern NETDEV_ENTRY 24883a00df57SAvraham Stern MAC_ENTRY(aa) 24893a00df57SAvraham Stern ), 24903a00df57SAvraham Stern 24913a00df57SAvraham Stern TP_fast_assign( 24923a00df57SAvraham Stern WIPHY_ASSIGN; 24933a00df57SAvraham Stern NETDEV_ASSIGN; 24943a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 24953a00df57SAvraham Stern ), 24963a00df57SAvraham Stern 24973a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 24983a00df57SAvraham Stern WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa)) 24993a00df57SAvraham Stern ); 25003a00df57SAvraham Stern 250140cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 250240cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 250340cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 250440cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 250540cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 250640cbfa90SSrinivas Dasari NETDEV_ENTRY 250740cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 250840cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 250940cbfa90SSrinivas Dasari __field(u16, status) 251040cbfa90SSrinivas Dasari ), 251140cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 251240cbfa90SSrinivas Dasari NETDEV_ASSIGN; 251340cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 251440cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 251540cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 251640cbfa90SSrinivas Dasari params->ssid.ssid_len); 251740cbfa90SSrinivas Dasari __entry->status = params->status; 251840cbfa90SSrinivas Dasari ), 251940cbfa90SSrinivas Dasari TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 252040cbfa90SSrinivas Dasari ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 252140cbfa90SSrinivas Dasari __entry->bssid, __entry->ssid, __entry->status) 252240cbfa90SSrinivas Dasari ); 252340cbfa90SSrinivas Dasari 25245207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 25255207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25265207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 25275207ca55SJohannes Berg u32 cac_time_ms), 25285207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 25295207ca55SJohannes Berg TP_STRUCT__entry( 25305207ca55SJohannes Berg WIPHY_ENTRY 25315207ca55SJohannes Berg NETDEV_ENTRY 25325207ca55SJohannes Berg CHAN_DEF_ENTRY 25335207ca55SJohannes Berg __field(u32, cac_time_ms) 25345207ca55SJohannes Berg ), 25355207ca55SJohannes Berg TP_fast_assign( 25365207ca55SJohannes Berg WIPHY_ASSIGN; 25375207ca55SJohannes Berg NETDEV_ASSIGN; 25385207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25395207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25405207ca55SJohannes Berg ), 25415207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25425207ca55SJohannes Berg ", cac_time_ms=%u", 25435207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25445207ca55SJohannes Berg __entry->cac_time_ms) 25455207ca55SJohannes Berg ); 25465207ca55SJohannes Berg 25475207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25485207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25495207ca55SJohannes Berg int *mcast_rate), 25505207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25515207ca55SJohannes Berg TP_STRUCT__entry( 25525207ca55SJohannes Berg WIPHY_ENTRY 25535207ca55SJohannes Berg NETDEV_ENTRY 25545207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25555207ca55SJohannes Berg ), 25565207ca55SJohannes Berg TP_fast_assign( 25575207ca55SJohannes Berg WIPHY_ASSIGN; 25585207ca55SJohannes Berg NETDEV_ASSIGN; 25595207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 25605207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 25615207ca55SJohannes Berg ), 25625207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2563e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 25645207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25655207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 25665207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2567e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 25685207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 25695207ca55SJohannes Berg ); 25705207ca55SJohannes Berg 25715207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 25725207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 25735207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 25745207ca55SJohannes Berg TP_STRUCT__entry( 25755207ca55SJohannes Berg WIPHY_ENTRY 25765207ca55SJohannes Berg __field(int, n_rules) 25775207ca55SJohannes Berg ), 25785207ca55SJohannes Berg TP_fast_assign( 25795207ca55SJohannes Berg WIPHY_ASSIGN; 25805207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 25815207ca55SJohannes Berg ), 25825207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 25835207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 25845207ca55SJohannes Berg ); 25855207ca55SJohannes Berg 25865207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 25875207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 25885207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 25895207ca55SJohannes Berg ); 25905207ca55SJohannes Berg 25915207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 25925207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25935207ca55SJohannes Berg const bool enabled), 25945207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 25955207ca55SJohannes Berg TP_STRUCT__entry( 25965207ca55SJohannes Berg WIPHY_ENTRY 25975207ca55SJohannes Berg NETDEV_ENTRY 25985207ca55SJohannes Berg __field(bool, enabled) 25995207ca55SJohannes Berg ), 26005207ca55SJohannes Berg TP_fast_assign( 26015207ca55SJohannes Berg WIPHY_ASSIGN; 26025207ca55SJohannes Berg NETDEV_ASSIGN; 26035207ca55SJohannes Berg __entry->enabled = enabled; 26045207ca55SJohannes Berg ), 26055207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 26065207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26075207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 26085207ca55SJohannes Berg ); 26095207ca55SJohannes Berg 26105207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 26115207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26125207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26135207ca55SJohannes Berg ); 26145207ca55SJohannes Berg 26155207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 26165207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26175207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 26185207ca55SJohannes Berg 26195207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 26205207ca55SJohannes Berg 26215207ca55SJohannes Berg TP_STRUCT__entry( 26225207ca55SJohannes Berg WIPHY_ENTRY 26235207ca55SJohannes Berg NETDEV_ENTRY 26245207ca55SJohannes Berg __field(u64, timestamp) 26255207ca55SJohannes Berg __field(u32, success_num) 26265207ca55SJohannes Berg __field(u32, partial_num) 26275207ca55SJohannes Berg __field(u32, failed_num) 26285207ca55SJohannes Berg __field(u32, asap_num) 26295207ca55SJohannes Berg __field(u32, non_asap_num) 26305207ca55SJohannes Berg __field(u64, duration) 26315207ca55SJohannes Berg __field(u32, unknown_triggers) 26325207ca55SJohannes Berg __field(u32, reschedule) 26335207ca55SJohannes Berg __field(u32, out_of_window) 26345207ca55SJohannes Berg ), 26355207ca55SJohannes Berg 26365207ca55SJohannes Berg TP_fast_assign( 26375207ca55SJohannes Berg WIPHY_ASSIGN; 26385207ca55SJohannes Berg NETDEV_ASSIGN; 26395207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26405207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26415207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26425207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26435207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26445207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26455207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26465207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26475207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26485207ca55SJohannes Berg ), 26495207ca55SJohannes Berg 26505207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26515207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26525207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26535207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26545207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26555207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26565207ca55SJohannes Berg __entry->out_of_window) 26575207ca55SJohannes Berg ); 26585207ca55SJohannes Berg 26599bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 26609bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26619bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26629bb7e0f2SJohannes Berg ); 26639bb7e0f2SJohannes Berg 26649bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 26659bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26669bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26679bb7e0f2SJohannes Berg ); 26689bb7e0f2SJohannes Berg 2669e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2670e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2671e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2672e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2673e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2674e306784aSSubrat Mishra NETDEV_ENTRY 2675e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2676e306784aSSubrat Mishra __field(u8, kek_len) 2677e306784aSSubrat Mishra ), 2678e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2679e306784aSSubrat Mishra NETDEV_ASSIGN; 2680e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2681e306784aSSubrat Mishra ), 2682e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2683e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2684e306784aSSubrat Mishra __entry->kek_len) 2685e306784aSSubrat Mishra ); 2686e306784aSSubrat Mishra 2687c8a11ed5SJohannes Berg TRACE_EVENT(rdev_update_owe_info, 2688c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2689c8a11ed5SJohannes Berg struct cfg80211_update_owe_info *owe_info), 2690c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, owe_info), 2691c8a11ed5SJohannes Berg TP_STRUCT__entry(WIPHY_ENTRY 2692c8a11ed5SJohannes Berg NETDEV_ENTRY 2693c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2694c8a11ed5SJohannes Berg __field(u16, status) 2695c8a11ed5SJohannes Berg __dynamic_array(u8, ie, owe_info->ie_len)), 2696c8a11ed5SJohannes Berg TP_fast_assign(WIPHY_ASSIGN; 2697c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2698c8a11ed5SJohannes Berg MAC_ASSIGN(peer, owe_info->peer); 2699c8a11ed5SJohannes Berg __entry->status = owe_info->status; 2700c8a11ed5SJohannes Berg memcpy(__get_dynamic_array(ie), 2701c8a11ed5SJohannes Berg owe_info->ie, owe_info->ie_len);), 2702c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT 2703c8a11ed5SJohannes Berg " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2704c8a11ed5SJohannes Berg __entry->status) 2705c8a11ed5SJohannes Berg ); 2706c8a11ed5SJohannes Berg 2707c8a11ed5SJohannes Berg TRACE_EVENT(rdev_probe_mesh_link, 2708c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2709c8a11ed5SJohannes Berg const u8 *dest, const u8 *buf, size_t len), 2710c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, dest, buf, len), 2711c8a11ed5SJohannes Berg TP_STRUCT__entry( 2712c8a11ed5SJohannes Berg WIPHY_ENTRY 2713c8a11ed5SJohannes Berg NETDEV_ENTRY 2714c8a11ed5SJohannes Berg MAC_ENTRY(dest) 2715c8a11ed5SJohannes Berg ), 2716c8a11ed5SJohannes Berg TP_fast_assign( 2717c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2718c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2719c8a11ed5SJohannes Berg MAC_ASSIGN(dest, dest); 2720c8a11ed5SJohannes Berg ), 2721c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 2722c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest)) 2723c8a11ed5SJohannes Berg ); 2724c8a11ed5SJohannes Berg 2725c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_tid_config, 2726c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2727c8a11ed5SJohannes Berg struct cfg80211_tid_config *tid_conf), 2728c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, tid_conf), 2729c8a11ed5SJohannes Berg TP_STRUCT__entry( 2730c8a11ed5SJohannes Berg WIPHY_ENTRY 2731c8a11ed5SJohannes Berg NETDEV_ENTRY 2732c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2733c8a11ed5SJohannes Berg ), 2734c8a11ed5SJohannes Berg TP_fast_assign( 2735c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2736c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2737c8a11ed5SJohannes Berg MAC_ASSIGN(peer, tid_conf->peer); 2738c8a11ed5SJohannes Berg ), 2739c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 2740c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 2741c8a11ed5SJohannes Berg ); 2742c8a11ed5SJohannes Berg 2743c8a11ed5SJohannes Berg TRACE_EVENT(rdev_reset_tid_config, 2744c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2745c8a11ed5SJohannes Berg const u8 *peer, u8 tids), 2746c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 2747c8a11ed5SJohannes Berg TP_STRUCT__entry( 2748c8a11ed5SJohannes Berg WIPHY_ENTRY 2749c8a11ed5SJohannes Berg NETDEV_ENTRY 2750c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2751c8a11ed5SJohannes Berg __field(u8, tids) 2752c8a11ed5SJohannes Berg ), 2753c8a11ed5SJohannes Berg TP_fast_assign( 2754c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2755c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2756c8a11ed5SJohannes Berg MAC_ASSIGN(peer, peer); 2757c8a11ed5SJohannes Berg __entry->tids = tids; 2758c8a11ed5SJohannes Berg ), 2759c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x", 2760c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids) 2761c8a11ed5SJohannes Berg ); 2762c8a11ed5SJohannes Berg 2763c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_sar_specs, 2764c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 2765c8a11ed5SJohannes Berg TP_ARGS(wiphy, sar), 2766c8a11ed5SJohannes Berg TP_STRUCT__entry( 2767c8a11ed5SJohannes Berg WIPHY_ENTRY 2768c8a11ed5SJohannes Berg __field(u16, type) 2769c8a11ed5SJohannes Berg __field(u16, num) 2770c8a11ed5SJohannes Berg ), 2771c8a11ed5SJohannes Berg TP_fast_assign( 2772c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2773c8a11ed5SJohannes Berg __entry->type = sar->type; 2774c8a11ed5SJohannes Berg __entry->num = sar->num_sub_specs; 2775c8a11ed5SJohannes Berg 2776c8a11ed5SJohannes Berg ), 2777c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 2778c8a11ed5SJohannes Berg WIPHY_PR_ARG, __entry->type, __entry->num) 2779c8a11ed5SJohannes Berg ); 2780c8a11ed5SJohannes Berg 2781c8a11ed5SJohannes Berg TRACE_EVENT(rdev_color_change, 2782c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2783c8a11ed5SJohannes Berg struct cfg80211_color_change_settings *params), 2784c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, params), 2785c8a11ed5SJohannes Berg TP_STRUCT__entry( 2786c8a11ed5SJohannes Berg WIPHY_ENTRY 2787c8a11ed5SJohannes Berg NETDEV_ENTRY 2788c8a11ed5SJohannes Berg __field(u8, count) 2789c8a11ed5SJohannes Berg __field(u16, bcn_ofs) 2790c8a11ed5SJohannes Berg __field(u16, pres_ofs) 2791c8a11ed5SJohannes Berg ), 2792c8a11ed5SJohannes Berg TP_fast_assign( 2793c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2794c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2795c8a11ed5SJohannes Berg __entry->count = params->count; 2796c8a11ed5SJohannes Berg __entry->bcn_ofs = params->counter_offset_beacon; 2797c8a11ed5SJohannes Berg __entry->pres_ofs = params->counter_offset_presp; 2798c8a11ed5SJohannes Berg ), 2799c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 2800c8a11ed5SJohannes Berg ", count: %u", 2801c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 2802c8a11ed5SJohannes Berg __entry->count) 2803c8a11ed5SJohannes Berg ); 2804c8a11ed5SJohannes Berg 2805c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_radar_background, 2806c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 2807c8a11ed5SJohannes Berg 2808c8a11ed5SJohannes Berg TP_ARGS(wiphy, chandef), 2809c8a11ed5SJohannes Berg 2810c8a11ed5SJohannes Berg TP_STRUCT__entry( 2811c8a11ed5SJohannes Berg WIPHY_ENTRY 2812c8a11ed5SJohannes Berg CHAN_DEF_ENTRY 2813c8a11ed5SJohannes Berg ), 2814c8a11ed5SJohannes Berg 2815c8a11ed5SJohannes Berg TP_fast_assign( 2816c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2817c8a11ed5SJohannes Berg CHAN_DEF_ASSIGN(chandef) 2818c8a11ed5SJohannes Berg ), 2819c8a11ed5SJohannes Berg 2820c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 2821c8a11ed5SJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 2822c8a11ed5SJohannes Berg ); 2823c8a11ed5SJohannes Berg 2824f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link, 2825f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2826f2a0290bSJohannes Berg unsigned int link_id), 2827f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2828f2a0290bSJohannes Berg ); 2829f2a0290bSJohannes Berg 2830f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link, 2831f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2832f2a0290bSJohannes Berg unsigned int link_id), 2833f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2834f2a0290bSJohannes Berg ); 2835f2a0290bSJohannes Berg 28364ee3e063SBeni Lev /************************************************************* 28374ee3e063SBeni Lev * cfg80211 exported functions traces * 28384ee3e063SBeni Lev *************************************************************/ 28394ee3e063SBeni Lev 28404ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 28414ee3e063SBeni Lev TP_PROTO(bool ret), 28424ee3e063SBeni Lev TP_ARGS(ret), 28434ee3e063SBeni Lev TP_STRUCT__entry( 28444ee3e063SBeni Lev __field(bool, ret) 28454ee3e063SBeni Lev ), 28464ee3e063SBeni Lev TP_fast_assign( 28474ee3e063SBeni Lev __entry->ret = ret; 28484ee3e063SBeni Lev ), 28494ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 28504ee3e063SBeni Lev ); 28514ee3e063SBeni Lev 28524ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 28534ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28544ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 28554ee3e063SBeni Lev TP_STRUCT__entry( 28564ee3e063SBeni Lev NETDEV_ENTRY 28574ee3e063SBeni Lev MAC_ENTRY(macaddr) 28584ee3e063SBeni Lev ), 28594ee3e063SBeni Lev TP_fast_assign( 28604ee3e063SBeni Lev NETDEV_ASSIGN; 28614ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 28624ee3e063SBeni Lev ), 28634ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 28644ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 28654ee3e063SBeni Lev ); 28664ee3e063SBeni Lev 28674ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 28684ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28694ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 28704ee3e063SBeni Lev ); 28714ee3e063SBeni Lev 28724ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 28734ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28744ee3e063SBeni Lev TP_ARGS(netdev), 28754ee3e063SBeni Lev TP_STRUCT__entry( 28764ee3e063SBeni Lev NETDEV_ENTRY 28774ee3e063SBeni Lev ), 28784ee3e063SBeni Lev TP_fast_assign( 28794ee3e063SBeni Lev NETDEV_ASSIGN; 28804ee3e063SBeni Lev ), 28814ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 28824ee3e063SBeni Lev ); 28834ee3e063SBeni Lev 28844ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 28854ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28864ee3e063SBeni Lev TP_ARGS(netdev) 28874ee3e063SBeni Lev ); 28884ee3e063SBeni Lev 28894ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 28904ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss), 28914ee3e063SBeni Lev TP_ARGS(netdev, bss), 28924ee3e063SBeni Lev TP_STRUCT__entry( 28934ee3e063SBeni Lev NETDEV_ENTRY 28944ee3e063SBeni Lev MAC_ENTRY(bssid) 28954ee3e063SBeni Lev CHAN_ENTRY 28964ee3e063SBeni Lev ), 28974ee3e063SBeni Lev TP_fast_assign( 28984ee3e063SBeni Lev NETDEV_ASSIGN; 28994ee3e063SBeni Lev MAC_ASSIGN(bssid, bss->bssid); 29004ee3e063SBeni Lev CHAN_ASSIGN(bss->channel); 29014ee3e063SBeni Lev ), 2902ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT, 29034ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 29044ee3e063SBeni Lev ); 29054ee3e063SBeni Lev 29066ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 29076ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29086ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 29096ff57cf8SJohannes Berg TP_STRUCT__entry( 29106ff57cf8SJohannes Berg NETDEV_ENTRY 29116ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29126ff57cf8SJohannes Berg ), 29136ff57cf8SJohannes Berg TP_fast_assign( 29146ff57cf8SJohannes Berg NETDEV_ASSIGN; 29156ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29166ff57cf8SJohannes Berg ), 29176ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 29186ff57cf8SJohannes Berg NETDEV_PR_ARG, 29196ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 29204ee3e063SBeni Lev ); 29214ee3e063SBeni Lev 29226ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 29236ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29246ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29254ee3e063SBeni Lev ); 29264ee3e063SBeni Lev 29276ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 29286ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29296ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29304ee3e063SBeni Lev ); 29314ee3e063SBeni Lev 29326ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 29333bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 29343bb02143SJohannes Berg bool reconnect), 29353bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 29366ff57cf8SJohannes Berg TP_STRUCT__entry( 29376ff57cf8SJohannes Berg NETDEV_ENTRY 29386ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29393bb02143SJohannes Berg __field(int, reconnect) 29406ff57cf8SJohannes Berg ), 29416ff57cf8SJohannes Berg TP_fast_assign( 29426ff57cf8SJohannes Berg NETDEV_ASSIGN; 29436ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29443bb02143SJohannes Berg __entry->reconnect = reconnect; 29456ff57cf8SJohannes Berg ), 29463bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 29476ff57cf8SJohannes Berg NETDEV_PR_ARG, 29483bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 29493bb02143SJohannes Berg __entry->reconnect) 29504ee3e063SBeni Lev ); 29514ee3e063SBeni Lev 29524ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 29534ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29544ee3e063SBeni Lev TP_ARGS(netdev, mac), 29554ee3e063SBeni Lev TP_STRUCT__entry( 29564ee3e063SBeni Lev NETDEV_ENTRY 29574ee3e063SBeni Lev MAC_ENTRY(mac) 29584ee3e063SBeni Lev ), 29594ee3e063SBeni Lev TP_fast_assign( 29604ee3e063SBeni Lev NETDEV_ASSIGN; 29614ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 29624ee3e063SBeni Lev ), 29634ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 29644ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 29654ee3e063SBeni Lev ); 29664ee3e063SBeni Lev 29674ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 29684ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29694ee3e063SBeni Lev TP_ARGS(netdev, mac) 29704ee3e063SBeni Lev ); 29714ee3e063SBeni Lev 29724ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout, 29734ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29744ee3e063SBeni Lev TP_ARGS(netdev, mac) 29754ee3e063SBeni Lev ); 29764ee3e063SBeni Lev 29774ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 29784ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 29794ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 29804ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 29814ee3e063SBeni Lev TP_STRUCT__entry( 29824ee3e063SBeni Lev NETDEV_ENTRY 29834ee3e063SBeni Lev MAC_ENTRY(addr) 29844ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 29854ee3e063SBeni Lev __field(int, key_id) 29864ee3e063SBeni Lev __array(u8, tsc, 6) 29874ee3e063SBeni Lev ), 29884ee3e063SBeni Lev TP_fast_assign( 29894ee3e063SBeni Lev NETDEV_ASSIGN; 29904ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 29914ee3e063SBeni Lev __entry->key_type = key_type; 29924ee3e063SBeni Lev __entry->key_id = key_id; 29938c26d458SEliad Peller if (tsc) 29944ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 29954ee3e063SBeni Lev ), 2996ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 29974ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 29984ee3e063SBeni Lev __entry->key_id, __entry->tsc) 29994ee3e063SBeni Lev ); 30004ee3e063SBeni Lev 30014ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 30024ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30034ee3e063SBeni Lev struct ieee80211_channel *chan, 300442d97a59SJohannes Berg unsigned int duration), 300542d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 30064ee3e063SBeni Lev TP_STRUCT__entry( 30074ee3e063SBeni Lev WDEV_ENTRY 30084ee3e063SBeni Lev __field(u64, cookie) 30094ee3e063SBeni Lev CHAN_ENTRY 30104ee3e063SBeni Lev __field(unsigned int, duration) 30114ee3e063SBeni Lev ), 30124ee3e063SBeni Lev TP_fast_assign( 30134ee3e063SBeni Lev WDEV_ASSIGN; 30144ee3e063SBeni Lev __entry->cookie = cookie; 30154ee3e063SBeni Lev CHAN_ASSIGN(chan); 30164ee3e063SBeni Lev __entry->duration = duration; 30174ee3e063SBeni Lev ), 301842d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 30194ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 302042d97a59SJohannes Berg __entry->duration) 30214ee3e063SBeni Lev ); 30224ee3e063SBeni Lev 30234ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 30244ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 302542d97a59SJohannes Berg struct ieee80211_channel *chan), 302642d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 30274ee3e063SBeni Lev TP_STRUCT__entry( 30284ee3e063SBeni Lev WDEV_ENTRY 30294ee3e063SBeni Lev __field(u64, cookie) 30304ee3e063SBeni Lev CHAN_ENTRY 30314ee3e063SBeni Lev ), 30324ee3e063SBeni Lev TP_fast_assign( 30334ee3e063SBeni Lev WDEV_ASSIGN; 30344ee3e063SBeni Lev __entry->cookie = cookie; 30354ee3e063SBeni Lev CHAN_ASSIGN(chan); 30364ee3e063SBeni Lev ), 303742d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 303842d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30394ee3e063SBeni Lev ); 30404ee3e063SBeni Lev 30411c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 30421c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30431c38c7f2SJames Prestwood struct ieee80211_channel *chan), 30441c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 30451c38c7f2SJames Prestwood TP_STRUCT__entry( 30461c38c7f2SJames Prestwood WDEV_ENTRY 30471c38c7f2SJames Prestwood __field(u64, cookie) 30481c38c7f2SJames Prestwood CHAN_ENTRY 30491c38c7f2SJames Prestwood ), 30501c38c7f2SJames Prestwood TP_fast_assign( 30511c38c7f2SJames Prestwood WDEV_ASSIGN; 30521c38c7f2SJames Prestwood __entry->cookie = cookie; 30531c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 30541c38c7f2SJames Prestwood ), 30551c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 30561c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30571c38c7f2SJames Prestwood ); 30581c38c7f2SJames Prestwood 30594ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 30604ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 30614ee3e063SBeni Lev struct station_info *sinfo), 30624ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 30634ee3e063SBeni Lev TP_STRUCT__entry( 30644ee3e063SBeni Lev NETDEV_ENTRY 30654ee3e063SBeni Lev MAC_ENTRY(mac_addr) 30664ee3e063SBeni Lev SINFO_ENTRY 30674ee3e063SBeni Lev ), 30684ee3e063SBeni Lev TP_fast_assign( 30694ee3e063SBeni Lev NETDEV_ASSIGN; 30704ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 30714ee3e063SBeni Lev SINFO_ASSIGN; 30724ee3e063SBeni Lev ), 3073ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 30744ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 30754ee3e063SBeni Lev ); 30764ee3e063SBeni Lev 30774ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 30784ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 30794ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 30804ee3e063SBeni Lev ); 30814ee3e063SBeni Lev 30824ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 30836c2fb1e6SSergey Matyukevich TP_PROTO(struct wireless_dev *wdev, int freq, int sig_dbm), 30846c2fb1e6SSergey Matyukevich TP_ARGS(wdev, freq, sig_dbm), 30854ee3e063SBeni Lev TP_STRUCT__entry( 30864ee3e063SBeni Lev WDEV_ENTRY 30874ee3e063SBeni Lev __field(int, freq) 30886c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 30894ee3e063SBeni Lev ), 30904ee3e063SBeni Lev TP_fast_assign( 30914ee3e063SBeni Lev WDEV_ASSIGN; 30924ee3e063SBeni Lev __entry->freq = freq; 30936c2fb1e6SSergey Matyukevich __entry->sig_dbm = sig_dbm; 30944ee3e063SBeni Lev ), 3095e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 3096e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 30974ee3e063SBeni Lev ); 30984ee3e063SBeni Lev 30994ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 31004ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 31014ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 31024ee3e063SBeni Lev TP_STRUCT__entry( 31034ee3e063SBeni Lev WDEV_ENTRY 31044ee3e063SBeni Lev __field(u64, cookie) 31054ee3e063SBeni Lev __field(bool, ack) 31064ee3e063SBeni Lev ), 31074ee3e063SBeni Lev TP_fast_assign( 31084ee3e063SBeni Lev WDEV_ASSIGN; 31094ee3e063SBeni Lev __entry->cookie = cookie; 31104ee3e063SBeni Lev __entry->ack = ack; 31114ee3e063SBeni Lev ), 31124ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 31134ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 31144ee3e063SBeni Lev ); 31154ee3e063SBeni Lev 3116dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 3117dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 3118dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 3119dca9ca2dSMarkus Theil TP_STRUCT__entry( 3120dca9ca2dSMarkus Theil WDEV_ENTRY 3121dca9ca2dSMarkus Theil __field(u64, cookie) 3122dca9ca2dSMarkus Theil __field(bool, ack) 3123dca9ca2dSMarkus Theil ), 3124dca9ca2dSMarkus Theil TP_fast_assign( 3125dca9ca2dSMarkus Theil WDEV_ASSIGN; 3126dca9ca2dSMarkus Theil __entry->cookie = cookie; 3127dca9ca2dSMarkus Theil __entry->ack = ack; 3128dca9ca2dSMarkus Theil ), 3129dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 3130dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 3131dca9ca2dSMarkus Theil ); 3132dca9ca2dSMarkus Theil 31336a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 3134a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 3135a948f713SDenis Kenzior bool unencrypted), 3136a948f713SDenis Kenzior TP_ARGS(netdev, skb, unencrypted), 31376a671a50SDenis Kenzior TP_STRUCT__entry( 31386a671a50SDenis Kenzior NETDEV_ENTRY 3139a948f713SDenis Kenzior __field(int, len) 3140a948f713SDenis Kenzior MAC_ENTRY(from) 31416a671a50SDenis Kenzior __field(u16, proto) 31426a671a50SDenis Kenzior __field(bool, unencrypted) 31436a671a50SDenis Kenzior ), 31446a671a50SDenis Kenzior TP_fast_assign( 31456a671a50SDenis Kenzior NETDEV_ASSIGN; 3146a948f713SDenis Kenzior __entry->len = skb->len; 3147a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 3148a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 31496a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 31506a671a50SDenis Kenzior ), 31518d74a623SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s", 31528d74a623SJohannes Berg NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from), 31536a671a50SDenis Kenzior __entry->proto, BOOL_TO_STR(__entry->unencrypted)) 31546a671a50SDenis Kenzior ); 31556a671a50SDenis Kenzior 31564ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 31574ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 3158bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 3159bee427b8SAndrzej Zaborowski s32 rssi_level), 3160bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 31614ee3e063SBeni Lev TP_STRUCT__entry( 31624ee3e063SBeni Lev NETDEV_ENTRY 31634ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 3164bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 31654ee3e063SBeni Lev ), 31664ee3e063SBeni Lev TP_fast_assign( 31674ee3e063SBeni Lev NETDEV_ASSIGN; 31684ee3e063SBeni Lev __entry->rssi_event = rssi_event; 3169bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 31704ee3e063SBeni Lev ), 3171bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 3172bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 31734ee3e063SBeni Lev ); 31744ee3e063SBeni Lev 3175683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 3176174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3177923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 3178923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 31794ee3e063SBeni Lev TP_STRUCT__entry( 31804ee3e063SBeni Lev WIPHY_ENTRY 3181683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3182174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 3183923b352fSArik Nemtsov __field(bool, check_no_ir) 31844ee3e063SBeni Lev ), 31854ee3e063SBeni Lev TP_fast_assign( 31864ee3e063SBeni Lev WIPHY_ASSIGN; 3187683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3188174e0cd2SIlan Peer __entry->iftype = iftype; 3189923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 31904ee3e063SBeni Lev ), 3191923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3192923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3193923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 31944ee3e063SBeni Lev ); 31954ee3e063SBeni Lev 319604f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 319704f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 319804f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 319904f39047SSimon Wunderlich TP_STRUCT__entry( 320004f39047SSimon Wunderlich WIPHY_ENTRY 320104f39047SSimon Wunderlich CHAN_DEF_ENTRY 320204f39047SSimon Wunderlich ), 320304f39047SSimon Wunderlich TP_fast_assign( 320404f39047SSimon Wunderlich WIPHY_ASSIGN; 320504f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 320604f39047SSimon Wunderlich ), 320704f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 320804f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 320904f39047SSimon Wunderlich ); 321004f39047SSimon Wunderlich 32114ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3212683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 32137b0a0e3cSJohannes Berg struct cfg80211_chan_def *chandef, 32147b0a0e3cSJohannes Berg unsigned int link_id), 32157b0a0e3cSJohannes Berg TP_ARGS(netdev, chandef, link_id), 32164ee3e063SBeni Lev TP_STRUCT__entry( 32174ee3e063SBeni Lev NETDEV_ENTRY 3218683b6d3bSJohannes Berg CHAN_DEF_ENTRY 32197b0a0e3cSJohannes Berg __field(unsigned int, link_id) 32204ee3e063SBeni Lev ), 32214ee3e063SBeni Lev TP_fast_assign( 32224ee3e063SBeni Lev NETDEV_ASSIGN; 3223683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 32247b0a0e3cSJohannes Berg __entry->link_id = link_id; 32254ee3e063SBeni Lev ), 32267b0a0e3cSJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 32277b0a0e3cSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 32284ee3e063SBeni Lev ); 32294ee3e063SBeni Lev 3230f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3231f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3232f8d7552eSLuciano Coelho struct cfg80211_chan_def *chandef), 3233f8d7552eSLuciano Coelho TP_ARGS(netdev, chandef), 3234f8d7552eSLuciano Coelho TP_STRUCT__entry( 3235f8d7552eSLuciano Coelho NETDEV_ENTRY 3236f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3237f8d7552eSLuciano Coelho ), 3238f8d7552eSLuciano Coelho TP_fast_assign( 3239f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3240f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3241f8d7552eSLuciano Coelho ), 3242f8d7552eSLuciano Coelho TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 3243f8d7552eSLuciano Coelho NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 3244f8d7552eSLuciano Coelho ); 3245f8d7552eSLuciano Coelho 324604f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3247c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3248c47240cbSLorenzo Bianconi bool offchan), 3249c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 325004f39047SSimon Wunderlich TP_STRUCT__entry( 325104f39047SSimon Wunderlich WIPHY_ENTRY 325204f39047SSimon Wunderlich CHAN_DEF_ENTRY 3253c47240cbSLorenzo Bianconi __field(bool, offchan) 325404f39047SSimon Wunderlich ), 325504f39047SSimon Wunderlich TP_fast_assign( 325604f39047SSimon Wunderlich WIPHY_ASSIGN; 325704f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3258c47240cbSLorenzo Bianconi __entry->offchan = offchan; 325904f39047SSimon Wunderlich ), 3260c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3261c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 326204f39047SSimon Wunderlich ); 326304f39047SSimon Wunderlich 326404f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 326504f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 326604f39047SSimon Wunderlich TP_ARGS(netdev, evt), 326704f39047SSimon Wunderlich TP_STRUCT__entry( 326804f39047SSimon Wunderlich NETDEV_ENTRY 326904f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 327004f39047SSimon Wunderlich ), 327104f39047SSimon Wunderlich TP_fast_assign( 327204f39047SSimon Wunderlich NETDEV_ASSIGN; 327304f39047SSimon Wunderlich __entry->evt = evt; 327404f39047SSimon Wunderlich ), 327504f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 327604f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 327704f39047SSimon Wunderlich ); 327804f39047SSimon Wunderlich 32794ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 32804ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 32814ee3e063SBeni Lev TP_ARGS(netdev, addr), 32824ee3e063SBeni Lev TP_STRUCT__entry( 32834ee3e063SBeni Lev NETDEV_ENTRY 32844ee3e063SBeni Lev MAC_ENTRY(addr) 32854ee3e063SBeni Lev ), 32864ee3e063SBeni Lev TP_fast_assign( 32874ee3e063SBeni Lev NETDEV_ASSIGN; 32884ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 32894ee3e063SBeni Lev ), 3290ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 32914ee3e063SBeni Lev ); 32924ee3e063SBeni Lev 32934ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 32944ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 32954ee3e063SBeni Lev TP_ARGS(netdev, addr) 32964ee3e063SBeni Lev ); 32974ee3e063SBeni Lev 32984ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 32994ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33004ee3e063SBeni Lev TP_ARGS(netdev, addr) 33014ee3e063SBeni Lev ); 33024ee3e063SBeni Lev 3303fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3304fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3305fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3306fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3307fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3308fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3309fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3310fe94f3a4SAntonio Quartulli CHAN_ENTRY 3311fe94f3a4SAntonio Quartulli ), 3312fe94f3a4SAntonio Quartulli TP_fast_assign( 3313fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3314fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3315fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3316fe94f3a4SAntonio Quartulli ), 3317fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 3318fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 3319fe94f3a4SAntonio Quartulli ); 3320fe94f3a4SAntonio Quartulli 33214ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 33224ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 33234ee3e063SBeni Lev bool acked), 33244ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 33254ee3e063SBeni Lev TP_STRUCT__entry( 33264ee3e063SBeni Lev NETDEV_ENTRY 33274ee3e063SBeni Lev MAC_ENTRY(addr) 33284ee3e063SBeni Lev __field(u64, cookie) 33294ee3e063SBeni Lev __field(bool, acked) 33304ee3e063SBeni Lev ), 33314ee3e063SBeni Lev TP_fast_assign( 33324ee3e063SBeni Lev NETDEV_ASSIGN; 33334ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33344ee3e063SBeni Lev __entry->cookie = cookie; 33354ee3e063SBeni Lev __entry->acked = acked; 33364ee3e063SBeni Lev ), 3337ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 33384ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 33394ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 33404ee3e063SBeni Lev ); 33414ee3e063SBeni Lev 33424ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 33434ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 33444ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 33454ee3e063SBeni Lev TP_STRUCT__entry( 33464ee3e063SBeni Lev NETDEV_ENTRY 33474ee3e063SBeni Lev MAC_ENTRY(peer) 33484ee3e063SBeni Lev __field(u32, num_packets) 33494ee3e063SBeni Lev ), 33504ee3e063SBeni Lev TP_fast_assign( 33514ee3e063SBeni Lev NETDEV_ASSIGN; 33524ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 33534ee3e063SBeni Lev __entry->num_packets = num_packets; 33544ee3e063SBeni Lev ), 33554ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 33564ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 33574ee3e063SBeni Lev ); 33584ee3e063SBeni Lev 33594ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 33604ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 33614ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 33624ee3e063SBeni Lev ); 33634ee3e063SBeni Lev 33644ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 33654ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 33664ee3e063SBeni Lev bool preauth), 33674ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 33684ee3e063SBeni Lev TP_STRUCT__entry( 33694ee3e063SBeni Lev NETDEV_ENTRY 33704ee3e063SBeni Lev __field(int, index) 33714ee3e063SBeni Lev MAC_ENTRY(bssid) 33724ee3e063SBeni Lev __field(bool, preauth) 33734ee3e063SBeni Lev ), 33744ee3e063SBeni Lev TP_fast_assign( 33754ee3e063SBeni Lev NETDEV_ASSIGN; 33764ee3e063SBeni Lev __entry->index = index; 33774ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 33784ee3e063SBeni Lev __entry->preauth = preauth; 33794ee3e063SBeni Lev ), 33804ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 33814ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 33824ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 33834ee3e063SBeni Lev ); 33844ee3e063SBeni Lev 33854ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 33864ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 33874ee3e063SBeni Lev int freq, int sig_dbm), 33884ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 33894ee3e063SBeni Lev TP_STRUCT__entry( 33904ee3e063SBeni Lev WIPHY_ENTRY 33914ee3e063SBeni Lev __field(int, freq) 33924ee3e063SBeni Lev __field(int, sig_dbm) 33934ee3e063SBeni Lev ), 33944ee3e063SBeni Lev TP_fast_assign( 33954ee3e063SBeni Lev WIPHY_ASSIGN; 33964ee3e063SBeni Lev __entry->freq = freq; 33974ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 33984ee3e063SBeni Lev ), 3399e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3400e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 34014ee3e063SBeni Lev ); 34024ee3e063SBeni Lev 34033475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 34043475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 34053475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 34063475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 34073475b094SJouni Malinen TP_STRUCT__entry( 34083475b094SJouni Malinen WIPHY_ENTRY 34093475b094SJouni Malinen NETDEV_ENTRY 34103475b094SJouni Malinen MAC_ENTRY(peer) 34113475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 34123475b094SJouni Malinen __field(u16, reason_code) 34133475b094SJouni Malinen ), 34143475b094SJouni Malinen TP_fast_assign( 34153475b094SJouni Malinen WIPHY_ASSIGN; 34163475b094SJouni Malinen NETDEV_ASSIGN; 34173475b094SJouni Malinen MAC_ASSIGN(peer, peer); 34183475b094SJouni Malinen __entry->oper = oper; 34193475b094SJouni Malinen __entry->reason_code = reason_code; 34203475b094SJouni Malinen ), 34213475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 34223475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 34233475b094SJouni Malinen __entry->reason_code) 34243475b094SJouni Malinen ); 34253475b094SJouni Malinen 34264ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 34271d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 34281d76250bSAvraham Stern struct cfg80211_scan_info *info), 34291d76250bSAvraham Stern TP_ARGS(request, info), 34304ee3e063SBeni Lev TP_STRUCT__entry( 34314ee3e063SBeni Lev __field(u32, n_channels) 34324ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 343357fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 34344ee3e063SBeni Lev __field(u32, wdev_id) 34354ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 34364ee3e063SBeni Lev __field(bool, no_cck) 34374ee3e063SBeni Lev __field(bool, aborted) 34381d76250bSAvraham Stern __field(u64, scan_start_tsf) 34391d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 34404ee3e063SBeni Lev ), 34414ee3e063SBeni Lev TP_fast_assign( 34424ee3e063SBeni Lev if (request) { 34434ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 34444ee3e063SBeni Lev request->ie_len); 34454ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 344657fbcce3SJohannes Berg NUM_NL80211_BANDS); 34474ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 34484ee3e063SBeni Lev request->wdev->identifier : 0; 34494ee3e063SBeni Lev if (request->wiphy) 34504ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 34514ee3e063SBeni Lev request->wiphy->perm_addr); 34524ee3e063SBeni Lev __entry->no_cck = request->no_cck; 34534ee3e063SBeni Lev } 34541d76250bSAvraham Stern if (info) { 34551d76250bSAvraham Stern __entry->aborted = info->aborted; 34561d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 34571d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 34581d76250bSAvraham Stern } 34594ee3e063SBeni Lev ), 34601d76250bSAvraham Stern TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT, 34611d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 34621d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 34631d76250bSAvraham Stern MAC_PR_ARG(tsf_bssid)) 34644ee3e063SBeni Lev ); 34654ee3e063SBeni Lev 3466b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3467b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3468b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3469b34939b9SArend Van Spriel TP_STRUCT__entry( 3470b34939b9SArend Van Spriel WIPHY_ENTRY 3471b34939b9SArend Van Spriel __field(u64, id) 3472b34939b9SArend Van Spriel ), 3473b34939b9SArend Van Spriel TP_fast_assign( 3474b34939b9SArend Van Spriel WIPHY_ASSIGN; 3475b34939b9SArend Van Spriel __entry->id = id; 3476b34939b9SArend Van Spriel ), 3477b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 34784ee3e063SBeni Lev ); 34794ee3e063SBeni Lev 3480b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3481b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3482b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3483b34939b9SArend Van Spriel ); 3484b34939b9SArend Van Spriel 3485b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3486b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3487b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 34884ee3e063SBeni Lev ); 34894ee3e063SBeni Lev 34904ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 34914ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 34924ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 34936eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 34946eb18137SDedy Lansky enum ieee80211_privacy privacy), 34956eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 34964ee3e063SBeni Lev TP_STRUCT__entry( 34974ee3e063SBeni Lev WIPHY_ENTRY 34984ee3e063SBeni Lev CHAN_ENTRY 34994ee3e063SBeni Lev MAC_ENTRY(bssid) 35004ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 35016eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 35026eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 35034ee3e063SBeni Lev ), 35044ee3e063SBeni Lev TP_fast_assign( 35054ee3e063SBeni Lev WIPHY_ASSIGN; 35064ee3e063SBeni Lev CHAN_ASSIGN(channel); 35074ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 35084ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 35096eb18137SDedy Lansky __entry->bss_type = bss_type; 35106eb18137SDedy Lansky __entry->privacy = privacy; 35114ee3e063SBeni Lev ), 35126eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 35136eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 35146eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 35156eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 35166eb18137SDedy Lansky __entry->privacy) 35174ee3e063SBeni Lev ); 35184ee3e063SBeni Lev 35196e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 35206e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 35216e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 35226e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 35234ee3e063SBeni Lev TP_STRUCT__entry( 35244ee3e063SBeni Lev WIPHY_ENTRY 35254ee3e063SBeni Lev CHAN_ENTRY 3526dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 35274ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 35284ee3e063SBeni Lev __field(s32, signal) 35296e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 35301d76250bSAvraham Stern __field(u64, parent_tsf) 35311d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 35324ee3e063SBeni Lev ), 35334ee3e063SBeni Lev TP_fast_assign( 35344ee3e063SBeni Lev WIPHY_ASSIGN; 35356e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 35366e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 35374ee3e063SBeni Lev if (mgmt) 35384ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 35396e19bc4bSDmitry Shmidt __entry->signal = data->signal; 35406e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 35411d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 35421d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 35434ee3e063SBeni Lev ), 35441d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 35451d76250bSAvraham Stern "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: " 35461d76250bSAvraham Stern MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 35471d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 35481d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 35491d76250bSAvraham Stern MAC_PR_ARG(parent_bssid)) 35504ee3e063SBeni Lev ); 35514ee3e063SBeni Lev 35524ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 35534ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35544ee3e063SBeni Lev TP_ARGS(pub), 35554ee3e063SBeni Lev TP_STRUCT__entry( 35564ee3e063SBeni Lev MAC_ENTRY(bssid) 35574ee3e063SBeni Lev CHAN_ENTRY 35584ee3e063SBeni Lev ), 35594ee3e063SBeni Lev TP_fast_assign( 35604ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 35614ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 35624ee3e063SBeni Lev ), 3563ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 35644ee3e063SBeni Lev ); 35654ee3e063SBeni Lev 35664ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 35674ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35684ee3e063SBeni Lev TP_ARGS(pub) 35694ee3e063SBeni Lev ); 35704ee3e063SBeni Lev 35714ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 35724ee3e063SBeni Lev TP_PROTO(unsigned int ret), 35734ee3e063SBeni Lev TP_ARGS(ret), 35744ee3e063SBeni Lev TP_STRUCT__entry( 35754ee3e063SBeni Lev __field(unsigned int, ret) 35764ee3e063SBeni Lev ), 35774ee3e063SBeni Lev TP_fast_assign( 35784ee3e063SBeni Lev __entry->ret = ret; 35794ee3e063SBeni Lev ), 35804ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 35814ee3e063SBeni Lev ); 35824ee3e063SBeni Lev 35834ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 35844ee3e063SBeni Lev TP_PROTO(u32 ret), 35854ee3e063SBeni Lev TP_ARGS(ret), 35864ee3e063SBeni Lev TP_STRUCT__entry( 35874ee3e063SBeni Lev __field(u32, ret) 35884ee3e063SBeni Lev ), 35894ee3e063SBeni Lev TP_fast_assign( 35904ee3e063SBeni Lev __entry->ret = ret; 35914ee3e063SBeni Lev ), 35924ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 35934ee3e063SBeni Lev ); 35944ee3e063SBeni Lev 3595cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3596cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3597cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3598cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3599cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3600cd8f7cb4SJohannes Berg WIPHY_ENTRY 3601cd8f7cb4SJohannes Berg WDEV_ENTRY 3602a92eecbbSJohannes Berg __field(bool, non_wireless) 3603cd8f7cb4SJohannes Berg __field(bool, disconnect) 3604cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3605cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3606cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3607cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3608cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3609cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3610cd8f7cb4SJohannes Berg __field(u32, packet_len) 3611a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3612a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3613cd8f7cb4SJohannes Berg ), 3614cd8f7cb4SJohannes Berg TP_fast_assign( 3615cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3616cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3617a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3618a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3619a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3620a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3621a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3622a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3623a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3624a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3625a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3626a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3627cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3628cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3629cd8f7cb4SJohannes Berg ), 3630cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3631cd8f7cb4SJohannes Berg ); 3632cd8f7cb4SJohannes Berg 3633355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3634355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3635355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3636355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3637355199e0SJouni Malinen TP_STRUCT__entry( 3638355199e0SJouni Malinen WIPHY_ENTRY 3639355199e0SJouni Malinen NETDEV_ENTRY 3640355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3641355199e0SJouni Malinen MAC_ENTRY(target_ap) 3642355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3643355199e0SJouni Malinen ), 3644355199e0SJouni Malinen TP_fast_assign( 3645355199e0SJouni Malinen WIPHY_ASSIGN; 3646355199e0SJouni Malinen NETDEV_ASSIGN; 3647355199e0SJouni Malinen if (ft_event->ies) 3648355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3649355199e0SJouni Malinen ft_event->ies_len); 3650355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3651355199e0SJouni Malinen if (ft_event->ric_ies) 3652355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3653355199e0SJouni Malinen ft_event->ric_ies_len); 3654355199e0SJouni Malinen ), 3655355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 3656355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 3657355199e0SJouni Malinen ); 3658355199e0SJouni Malinen 3659f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3660f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3661f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3662f04c2203SMichal Kazior TP_STRUCT__entry( 3663f04c2203SMichal Kazior WIPHY_ENTRY 3664f04c2203SMichal Kazior WDEV_ENTRY 3665f04c2203SMichal Kazior ), 3666f04c2203SMichal Kazior TP_fast_assign( 3667f04c2203SMichal Kazior WIPHY_ASSIGN; 3668f04c2203SMichal Kazior WDEV_ASSIGN; 3669f04c2203SMichal Kazior ), 3670f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3671f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3672f04c2203SMichal Kazior ); 36739bb7e0f2SJohannes Berg 36749bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 36759bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 36769bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 36779bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 36789bb7e0f2SJohannes Berg TP_STRUCT__entry( 36799bb7e0f2SJohannes Berg WIPHY_ENTRY 36809bb7e0f2SJohannes Berg WDEV_ENTRY 36819bb7e0f2SJohannes Berg __field(u64, cookie) 36829bb7e0f2SJohannes Berg MAC_ENTRY(addr) 36839bb7e0f2SJohannes Berg ), 36849bb7e0f2SJohannes Berg TP_fast_assign( 36859bb7e0f2SJohannes Berg WIPHY_ASSIGN; 36869bb7e0f2SJohannes Berg WDEV_ASSIGN; 36879bb7e0f2SJohannes Berg __entry->cookie = cookie; 36889bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 36899bb7e0f2SJohannes Berg ), 36909bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT, 36919bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 36929bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 36939bb7e0f2SJohannes Berg MAC_PR_ARG(addr)) 36949bb7e0f2SJohannes Berg ); 36959bb7e0f2SJohannes Berg 36969bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 36979bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 36989bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 36999bb7e0f2SJohannes Berg TP_STRUCT__entry( 37009bb7e0f2SJohannes Berg WIPHY_ENTRY 37019bb7e0f2SJohannes Berg WDEV_ENTRY 37029bb7e0f2SJohannes Berg __field(u64, cookie) 37039bb7e0f2SJohannes Berg ), 37049bb7e0f2SJohannes Berg TP_fast_assign( 37059bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37069bb7e0f2SJohannes Berg WDEV_ASSIGN; 37079bb7e0f2SJohannes Berg __entry->cookie = cookie; 37089bb7e0f2SJohannes Berg ), 37099bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 37109bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37119bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 37129bb7e0f2SJohannes Berg ); 3713cb74e977SSunil Dutt 3714cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3715cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3716cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3717cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3718cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3719cb74e977SSunil Dutt NETDEV_ENTRY 3720cb74e977SSunil Dutt MAC_ENTRY(peer) 3721cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3722cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3723cb74e977SSunil Dutt NETDEV_ASSIGN; 3724cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3725cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 3726cb74e977SSunil Dutt owe_info->ie_len);), 3727cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 3728cb74e977SSunil Dutt WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 3729cb74e977SSunil Dutt ); 3730cb74e977SSunil Dutt 37310d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 37320d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 37330d2ab3aeSJohn Crispin enum nl80211_commands cmd, 37340d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 37350d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 37360d2ab3aeSJohn Crispin TP_STRUCT__entry( 37370d2ab3aeSJohn Crispin NETDEV_ENTRY 3738c448f0fdSJohannes Berg __field(u32, cmd) 37390d2ab3aeSJohn Crispin __field(u8, count) 37400d2ab3aeSJohn Crispin __field(u64, color_bitmap) 37410d2ab3aeSJohn Crispin ), 37420d2ab3aeSJohn Crispin TP_fast_assign( 37430d2ab3aeSJohn Crispin NETDEV_ASSIGN; 37440d2ab3aeSJohn Crispin __entry->cmd = cmd; 37450d2ab3aeSJohn Crispin __entry->count = count; 37460d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 37470d2ab3aeSJohn Crispin ), 37480d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 37490d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 37500d2ab3aeSJohn Crispin __entry->color_bitmap) 37510d2ab3aeSJohn Crispin ); 37520d2ab3aeSJohn Crispin 3753a083ee8aSIlan Peer TRACE_EVENT(cfg80211_assoc_comeback, 3754a083ee8aSIlan Peer TP_PROTO(struct wireless_dev *wdev, const u8 *bssid, u32 timeout), 3755a083ee8aSIlan Peer TP_ARGS(wdev, bssid, timeout), 3756a083ee8aSIlan Peer TP_STRUCT__entry( 3757a083ee8aSIlan Peer WDEV_ENTRY 3758a083ee8aSIlan Peer MAC_ENTRY(bssid) 3759a083ee8aSIlan Peer __field(u32, timeout) 3760a083ee8aSIlan Peer ), 3761a083ee8aSIlan Peer TP_fast_assign( 3762a083ee8aSIlan Peer WDEV_ASSIGN; 3763a083ee8aSIlan Peer MAC_ASSIGN(bssid, bssid); 3764a083ee8aSIlan Peer __entry->timeout = timeout; 3765a083ee8aSIlan Peer ), 3766a083ee8aSIlan Peer TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs", 3767a083ee8aSIlan Peer WDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->timeout) 3768a083ee8aSIlan Peer ); 3769a083ee8aSIlan Peer 3770577e5b8cSShaul Triebitz DECLARE_EVENT_CLASS(link_station_add_mod, 3771577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3772577e5b8cSShaul Triebitz struct link_station_parameters *params), 3773577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3774577e5b8cSShaul Triebitz TP_STRUCT__entry( 3775577e5b8cSShaul Triebitz WIPHY_ENTRY 3776577e5b8cSShaul Triebitz NETDEV_ENTRY 3777577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3778577e5b8cSShaul Triebitz __array(u8, link_mac, 6) 3779577e5b8cSShaul Triebitz __field(u32, link_id) 3780577e5b8cSShaul Triebitz __dynamic_array(u8, supported_rates, 3781577e5b8cSShaul Triebitz params->supported_rates_len) 3782577e5b8cSShaul Triebitz __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 3783577e5b8cSShaul Triebitz __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 3784577e5b8cSShaul Triebitz __field(u8, opmode_notif) 3785577e5b8cSShaul Triebitz __field(bool, opmode_notif_used) 3786577e5b8cSShaul Triebitz __dynamic_array(u8, he_capa, params->he_capa_len) 3787577e5b8cSShaul Triebitz __array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa)) 3788577e5b8cSShaul Triebitz __dynamic_array(u8, eht_capa, params->eht_capa_len) 3789577e5b8cSShaul Triebitz ), 3790577e5b8cSShaul Triebitz TP_fast_assign( 3791577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3792577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3793577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3794577e5b8cSShaul Triebitz memset(__entry->link_mac, 0, 6); 3795577e5b8cSShaul Triebitz if (params->mld_mac) 3796577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3797577e5b8cSShaul Triebitz if (params->link_mac) 3798577e5b8cSShaul Triebitz memcpy(__entry->link_mac, params->link_mac, 6); 3799577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3800577e5b8cSShaul Triebitz if (params->supported_rates && params->supported_rates_len) 3801577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(supported_rates), 3802577e5b8cSShaul Triebitz params->supported_rates, 3803577e5b8cSShaul Triebitz params->supported_rates_len); 3804577e5b8cSShaul Triebitz memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 3805577e5b8cSShaul Triebitz if (params->ht_capa) 3806577e5b8cSShaul Triebitz memcpy(__entry->ht_capa, params->ht_capa, 3807577e5b8cSShaul Triebitz sizeof(struct ieee80211_ht_cap)); 3808577e5b8cSShaul Triebitz memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 3809577e5b8cSShaul Triebitz if (params->vht_capa) 3810577e5b8cSShaul Triebitz memcpy(__entry->vht_capa, params->vht_capa, 3811577e5b8cSShaul Triebitz sizeof(struct ieee80211_vht_cap)); 3812577e5b8cSShaul Triebitz __entry->opmode_notif = params->opmode_notif; 3813577e5b8cSShaul Triebitz __entry->opmode_notif_used = params->opmode_notif_used; 3814577e5b8cSShaul Triebitz if (params->he_capa && params->he_capa_len) 3815577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(he_capa), params->he_capa, 3816577e5b8cSShaul Triebitz params->he_capa_len); 3817577e5b8cSShaul Triebitz memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa)); 3818577e5b8cSShaul Triebitz if (params->he_6ghz_capa) 3819577e5b8cSShaul Triebitz memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa, 3820577e5b8cSShaul Triebitz sizeof(struct ieee80211_he_6ghz_capa)); 3821577e5b8cSShaul Triebitz if (params->eht_capa && params->eht_capa_len) 3822577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(eht_capa), params->eht_capa, 3823577e5b8cSShaul Triebitz params->eht_capa_len); 3824577e5b8cSShaul Triebitz ), 3825577e5b8cSShaul Triebitz TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 3826577e5b8cSShaul Triebitz ", link mac: " MAC_PR_FMT ", link id: %u", 3827577e5b8cSShaul Triebitz WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac), 3828577e5b8cSShaul Triebitz MAC_PR_ARG(link_mac), __entry->link_id) 3829577e5b8cSShaul Triebitz ); 3830577e5b8cSShaul Triebitz 3831577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_add_link_station, 3832577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3833577e5b8cSShaul Triebitz struct link_station_parameters *params), 3834577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3835577e5b8cSShaul Triebitz ); 3836577e5b8cSShaul Triebitz 3837577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_mod_link_station, 3838577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3839577e5b8cSShaul Triebitz struct link_station_parameters *params), 3840577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3841577e5b8cSShaul Triebitz ); 3842577e5b8cSShaul Triebitz 3843577e5b8cSShaul Triebitz TRACE_EVENT(rdev_del_link_station, 3844577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3845577e5b8cSShaul Triebitz struct link_station_del_parameters *params), 3846577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3847577e5b8cSShaul Triebitz TP_STRUCT__entry( 3848577e5b8cSShaul Triebitz WIPHY_ENTRY 3849577e5b8cSShaul Triebitz NETDEV_ENTRY 3850577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3851577e5b8cSShaul Triebitz __field(u32, link_id) 3852577e5b8cSShaul Triebitz ), 3853577e5b8cSShaul Triebitz TP_fast_assign( 3854577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3855577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3856577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3857577e5b8cSShaul Triebitz if (params->mld_mac) 3858577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3859577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3860577e5b8cSShaul Triebitz ), 3861577e5b8cSShaul Triebitz TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 3862577e5b8cSShaul Triebitz ", link id: %u", 3863577e5b8cSShaul Triebitz WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac), 3864577e5b8cSShaul Triebitz __entry->link_id) 3865577e5b8cSShaul Triebitz ); 3866577e5b8cSShaul Triebitz 386714e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 386814e8a3c4SBeni Lev 386914e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 387014e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 387114e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 387214e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 387314e8a3c4SBeni Lev #include <trace/define_trace.h> 3874