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, 437e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 438e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr), 439e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr), 44014e8a3c4SBeni Lev TP_STRUCT__entry( 44114e8a3c4SBeni Lev WIPHY_ENTRY 44214e8a3c4SBeni Lev NETDEV_ENTRY 44314e8a3c4SBeni Lev MAC_ENTRY(mac_addr) 444e7a7b84eSVeerendranath Jakkam __field(int, link_id) 44514e8a3c4SBeni Lev __field(u8, key_index) 44614e8a3c4SBeni Lev __field(bool, pairwise) 44714e8a3c4SBeni Lev ), 44814e8a3c4SBeni Lev TP_fast_assign( 44914e8a3c4SBeni Lev WIPHY_ASSIGN; 45014e8a3c4SBeni Lev NETDEV_ASSIGN; 45114e8a3c4SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 452e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 45314e8a3c4SBeni Lev __entry->key_index = key_index; 45414e8a3c4SBeni Lev __entry->pairwise = pairwise; 45514e8a3c4SBeni Lev ), 456e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 457e7a7b84eSVeerendranath Jakkam "key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT, 458e7a7b84eSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 459e7a7b84eSVeerendranath Jakkam __entry->key_index, BOOL_TO_STR(__entry->pairwise), 460e7a7b84eSVeerendranath Jakkam MAC_PR_ARG(mac_addr)) 46114e8a3c4SBeni Lev ); 46214e8a3c4SBeni Lev 46314e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_get_key, 464e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 465e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr), 466e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr) 46714e8a3c4SBeni Lev ); 46814e8a3c4SBeni Lev 46914e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_del_key, 470e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 471e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr), 472e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr) 47314e8a3c4SBeni Lev ); 47414e8a3c4SBeni Lev 4756cdd3979SAlexander Wetzel TRACE_EVENT(rdev_add_key, 476e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 477e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr, u8 mode), 478e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr, mode), 4796cdd3979SAlexander Wetzel TP_STRUCT__entry( 4806cdd3979SAlexander Wetzel WIPHY_ENTRY 4816cdd3979SAlexander Wetzel NETDEV_ENTRY 4826cdd3979SAlexander Wetzel MAC_ENTRY(mac_addr) 483e7a7b84eSVeerendranath Jakkam __field(int, link_id) 4846cdd3979SAlexander Wetzel __field(u8, key_index) 4856cdd3979SAlexander Wetzel __field(bool, pairwise) 4866cdd3979SAlexander Wetzel __field(u8, mode) 4876cdd3979SAlexander Wetzel ), 4886cdd3979SAlexander Wetzel TP_fast_assign( 4896cdd3979SAlexander Wetzel WIPHY_ASSIGN; 4906cdd3979SAlexander Wetzel NETDEV_ASSIGN; 4916cdd3979SAlexander Wetzel MAC_ASSIGN(mac_addr, mac_addr); 492e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 4936cdd3979SAlexander Wetzel __entry->key_index = key_index; 4946cdd3979SAlexander Wetzel __entry->pairwise = pairwise; 4956cdd3979SAlexander Wetzel __entry->mode = mode; 4966cdd3979SAlexander Wetzel ), 497e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 498e7a7b84eSVeerendranath Jakkam "key_index: %u, mode: %u, pairwise: %s, " 499e7a7b84eSVeerendranath Jakkam "mac addr: " MAC_PR_FMT, 500e7a7b84eSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 501e7a7b84eSVeerendranath Jakkam __entry->key_index, __entry->mode, 502e7a7b84eSVeerendranath Jakkam BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr)) 5036cdd3979SAlexander Wetzel ); 5046cdd3979SAlexander Wetzel 50514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_key, 506e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 507e7a7b84eSVeerendranath Jakkam u8 key_index, bool unicast, bool multicast), 508e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, unicast, multicast), 50914e8a3c4SBeni Lev TP_STRUCT__entry( 51014e8a3c4SBeni Lev WIPHY_ENTRY 51114e8a3c4SBeni Lev NETDEV_ENTRY 512e7a7b84eSVeerendranath Jakkam __field(int, link_id) 51314e8a3c4SBeni Lev __field(u8, key_index) 51414e8a3c4SBeni Lev __field(bool, unicast) 51514e8a3c4SBeni Lev __field(bool, multicast) 51614e8a3c4SBeni Lev ), 51714e8a3c4SBeni Lev TP_fast_assign( 51814e8a3c4SBeni Lev WIPHY_ASSIGN; 51914e8a3c4SBeni Lev NETDEV_ASSIGN; 520e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 52114e8a3c4SBeni Lev __entry->key_index = key_index; 52214e8a3c4SBeni Lev __entry->unicast = unicast; 52314e8a3c4SBeni Lev __entry->multicast = multicast; 52414e8a3c4SBeni Lev ), 525e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 526e7a7b84eSVeerendranath Jakkam "key index: %u, unicast: %s, multicast: %s", 527e7a7b84eSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 528e7a7b84eSVeerendranath Jakkam __entry->key_index, BOOL_TO_STR(__entry->unicast), 52914e8a3c4SBeni Lev BOOL_TO_STR(__entry->multicast)) 53014e8a3c4SBeni Lev ); 53114e8a3c4SBeni Lev 53214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_mgmt_key, 533e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 534e7a7b84eSVeerendranath Jakkam u8 key_index), 535e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index), 53614e8a3c4SBeni Lev TP_STRUCT__entry( 53714e8a3c4SBeni Lev WIPHY_ENTRY 53814e8a3c4SBeni Lev NETDEV_ENTRY 539e7a7b84eSVeerendranath Jakkam __field(int, link_id) 54014e8a3c4SBeni Lev __field(u8, key_index) 54114e8a3c4SBeni Lev ), 54214e8a3c4SBeni Lev TP_fast_assign( 54314e8a3c4SBeni Lev WIPHY_ASSIGN; 54414e8a3c4SBeni Lev NETDEV_ASSIGN; 545e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 54614e8a3c4SBeni Lev __entry->key_index = key_index; 54714e8a3c4SBeni Lev ), 548e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 549e7a7b84eSVeerendranath Jakkam "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 550e7a7b84eSVeerendranath Jakkam __entry->link_id, __entry->key_index) 55114e8a3c4SBeni Lev ); 55214e8a3c4SBeni Lev 55356be393fSJouni Malinen TRACE_EVENT(rdev_set_default_beacon_key, 554e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 555e7a7b84eSVeerendranath Jakkam u8 key_index), 556e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index), 55756be393fSJouni Malinen TP_STRUCT__entry( 55856be393fSJouni Malinen WIPHY_ENTRY 55956be393fSJouni Malinen NETDEV_ENTRY 560e7a7b84eSVeerendranath Jakkam __field(int, link_id) 56156be393fSJouni Malinen __field(u8, key_index) 56256be393fSJouni Malinen ), 56356be393fSJouni Malinen TP_fast_assign( 56456be393fSJouni Malinen WIPHY_ASSIGN; 56556be393fSJouni Malinen NETDEV_ASSIGN; 566e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 56756be393fSJouni Malinen __entry->key_index = key_index; 56856be393fSJouni Malinen ), 569e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 570e7a7b84eSVeerendranath Jakkam "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 571e7a7b84eSVeerendranath Jakkam __entry->link_id, __entry->key_index) 57256be393fSJouni Malinen ); 57356be393fSJouni Malinen 57414e8a3c4SBeni Lev TRACE_EVENT(rdev_start_ap, 57514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 57614e8a3c4SBeni Lev struct cfg80211_ap_settings *settings), 57714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, settings), 57814e8a3c4SBeni Lev TP_STRUCT__entry( 57914e8a3c4SBeni Lev WIPHY_ENTRY 58014e8a3c4SBeni Lev NETDEV_ENTRY 581683b6d3bSJohannes Berg CHAN_DEF_ENTRY 58214e8a3c4SBeni Lev __field(int, beacon_interval) 58314e8a3c4SBeni Lev __field(int, dtim_period) 58414e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 58514e8a3c4SBeni Lev __field(enum nl80211_hidden_ssid, hidden_ssid) 58614e8a3c4SBeni Lev __field(u32, wpa_ver) 58714e8a3c4SBeni Lev __field(bool, privacy) 58814e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 58914e8a3c4SBeni Lev __field(int, inactivity_timeout) 5907b0a0e3cSJohannes Berg __field(unsigned int, link_id) 59114e8a3c4SBeni Lev ), 59214e8a3c4SBeni Lev TP_fast_assign( 59314e8a3c4SBeni Lev WIPHY_ASSIGN; 59414e8a3c4SBeni Lev NETDEV_ASSIGN; 595683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(&settings->chandef); 59614e8a3c4SBeni Lev __entry->beacon_interval = settings->beacon_interval; 59714e8a3c4SBeni Lev __entry->dtim_period = settings->dtim_period; 59814e8a3c4SBeni Lev __entry->hidden_ssid = settings->hidden_ssid; 59914e8a3c4SBeni Lev __entry->wpa_ver = settings->crypto.wpa_versions; 60014e8a3c4SBeni Lev __entry->privacy = settings->privacy; 60114e8a3c4SBeni Lev __entry->auth_type = settings->auth_type; 60214e8a3c4SBeni Lev __entry->inactivity_timeout = settings->inactivity_timeout; 60314e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 60414e8a3c4SBeni Lev memcpy(__entry->ssid, settings->ssid, settings->ssid_len); 6057b0a0e3cSJohannes Berg __entry->link_id = settings->beacon.link_id; 60614e8a3c4SBeni Lev ), 607ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " 608683b6d3bSJohannes Berg CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " 60914e8a3c4SBeni Lev "hidden ssid: %d, wpa versions: %u, privacy: %s, " 6107b0a0e3cSJohannes Berg "auth type: %d, inactivity timeout: %d, link_id: %d", 611683b6d3bSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, 61214e8a3c4SBeni Lev __entry->beacon_interval, __entry->dtim_period, 61314e8a3c4SBeni Lev __entry->hidden_ssid, __entry->wpa_ver, 61414e8a3c4SBeni Lev BOOL_TO_STR(__entry->privacy), __entry->auth_type, 6157b0a0e3cSJohannes Berg __entry->inactivity_timeout, __entry->link_id) 61614e8a3c4SBeni Lev ); 61714e8a3c4SBeni Lev 61814e8a3c4SBeni Lev TRACE_EVENT(rdev_change_beacon, 61914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 62014e8a3c4SBeni Lev struct cfg80211_beacon_data *info), 62114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, info), 62214e8a3c4SBeni Lev TP_STRUCT__entry( 62314e8a3c4SBeni Lev WIPHY_ENTRY 62414e8a3c4SBeni Lev NETDEV_ENTRY 6257b0a0e3cSJohannes Berg __field(int, link_id) 62614e8a3c4SBeni Lev __dynamic_array(u8, head, info ? info->head_len : 0) 62714e8a3c4SBeni Lev __dynamic_array(u8, tail, info ? info->tail_len : 0) 62814e8a3c4SBeni Lev __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) 62914e8a3c4SBeni Lev __dynamic_array(u8, proberesp_ies, 63014e8a3c4SBeni Lev info ? info->proberesp_ies_len : 0) 63114e8a3c4SBeni Lev __dynamic_array(u8, assocresp_ies, 63214e8a3c4SBeni Lev info ? info->assocresp_ies_len : 0) 63314e8a3c4SBeni Lev __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) 63414e8a3c4SBeni Lev ), 63514e8a3c4SBeni Lev TP_fast_assign( 63614e8a3c4SBeni Lev WIPHY_ASSIGN; 63714e8a3c4SBeni Lev NETDEV_ASSIGN; 63814e8a3c4SBeni Lev if (info) { 6397b0a0e3cSJohannes Berg __entry->link_id = info->link_id; 64014e8a3c4SBeni Lev if (info->head) 64114e8a3c4SBeni Lev memcpy(__get_dynamic_array(head), info->head, 64214e8a3c4SBeni Lev info->head_len); 64314e8a3c4SBeni Lev if (info->tail) 64414e8a3c4SBeni Lev memcpy(__get_dynamic_array(tail), info->tail, 64514e8a3c4SBeni Lev info->tail_len); 64614e8a3c4SBeni Lev if (info->beacon_ies) 64714e8a3c4SBeni Lev memcpy(__get_dynamic_array(beacon_ies), 64814e8a3c4SBeni Lev info->beacon_ies, info->beacon_ies_len); 64914e8a3c4SBeni Lev if (info->proberesp_ies) 65014e8a3c4SBeni Lev memcpy(__get_dynamic_array(proberesp_ies), 65114e8a3c4SBeni Lev info->proberesp_ies, 65214e8a3c4SBeni Lev info->proberesp_ies_len); 65314e8a3c4SBeni Lev if (info->assocresp_ies) 65414e8a3c4SBeni Lev memcpy(__get_dynamic_array(assocresp_ies), 65514e8a3c4SBeni Lev info->assocresp_ies, 65614e8a3c4SBeni Lev info->assocresp_ies_len); 65714e8a3c4SBeni Lev if (info->probe_resp) 65814e8a3c4SBeni Lev memcpy(__get_dynamic_array(probe_resp), 65914e8a3c4SBeni Lev info->probe_resp, info->probe_resp_len); 6607b0a0e3cSJohannes Berg } else { 6617b0a0e3cSJohannes Berg __entry->link_id = -1; 66214e8a3c4SBeni Lev } 66314e8a3c4SBeni Lev ), 6647b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d", 6657b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 6667b0a0e3cSJohannes Berg ); 6677b0a0e3cSJohannes Berg 6687b0a0e3cSJohannes Berg TRACE_EVENT(rdev_stop_ap, 6697b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 6707b0a0e3cSJohannes Berg unsigned int link_id), 6717b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id), 6727b0a0e3cSJohannes Berg TP_STRUCT__entry( 6737b0a0e3cSJohannes Berg WIPHY_ENTRY 6747b0a0e3cSJohannes Berg NETDEV_ENTRY 6757b0a0e3cSJohannes Berg __field(unsigned int, link_id) 6767b0a0e3cSJohannes Berg ), 6777b0a0e3cSJohannes Berg TP_fast_assign( 6787b0a0e3cSJohannes Berg WIPHY_ASSIGN; 6797b0a0e3cSJohannes Berg NETDEV_ASSIGN; 6807b0a0e3cSJohannes Berg __entry->link_id = link_id; 6817b0a0e3cSJohannes Berg ), 6827b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d", 6837b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 68414e8a3c4SBeni Lev ); 68514e8a3c4SBeni Lev 68614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_evt, 68714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 68814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev), 68914e8a3c4SBeni Lev TP_STRUCT__entry( 69014e8a3c4SBeni Lev WIPHY_ENTRY 69114e8a3c4SBeni Lev NETDEV_ENTRY 69214e8a3c4SBeni Lev ), 69314e8a3c4SBeni Lev TP_fast_assign( 69414e8a3c4SBeni Lev WIPHY_ASSIGN; 69514e8a3c4SBeni Lev NETDEV_ASSIGN; 69614e8a3c4SBeni Lev ), 697ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 69814e8a3c4SBeni Lev ); 69914e8a3c4SBeni Lev 70014e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, 70114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 70214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 70314e8a3c4SBeni Lev ); 70414e8a3c4SBeni Lev 70514e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config, 70614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 70714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 70814e8a3c4SBeni Lev ); 70914e8a3c4SBeni Lev 71014e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh, 71114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 71214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 71314e8a3c4SBeni Lev ); 71414e8a3c4SBeni Lev 71514e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss, 71614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 71714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 71814e8a3c4SBeni Lev ); 71914e8a3c4SBeni Lev 7206e0bd6c3SRostislav Lisovy DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb, 7216e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 7226e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev) 7236e0bd6c3SRostislav Lisovy ); 7246e0bd6c3SRostislav Lisovy 72514e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa, 72614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 72714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 72814e8a3c4SBeni Lev ); 72914e8a3c4SBeni Lev 73026ec17a1SOrr Mazor DEFINE_EVENT(wiphy_netdev_evt, rdev_end_cac, 73126ec17a1SOrr Mazor TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 73226ec17a1SOrr Mazor TP_ARGS(wiphy, netdev) 73326ec17a1SOrr Mazor ); 73426ec17a1SOrr Mazor 73514e8a3c4SBeni Lev DECLARE_EVENT_CLASS(station_add_change, 73614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 73714e8a3c4SBeni Lev struct station_parameters *params), 73814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params), 73914e8a3c4SBeni Lev TP_STRUCT__entry( 74014e8a3c4SBeni Lev WIPHY_ENTRY 74114e8a3c4SBeni Lev NETDEV_ENTRY 74214e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 74314e8a3c4SBeni Lev __field(u32, sta_flags_mask) 74414e8a3c4SBeni Lev __field(u32, sta_flags_set) 74514e8a3c4SBeni Lev __field(u32, sta_modify_mask) 74614e8a3c4SBeni Lev __field(int, listen_interval) 7476e045905SJohannes Berg __field(u16, capability) 74814e8a3c4SBeni Lev __field(u16, aid) 74914e8a3c4SBeni Lev __field(u8, plink_action) 75014e8a3c4SBeni Lev __field(u8, plink_state) 75114e8a3c4SBeni Lev __field(u8, uapsd_queues) 7526e045905SJohannes Berg __field(u8, max_sp) 7536e045905SJohannes Berg __field(u8, opmode_notif) 7546e045905SJohannes Berg __field(bool, opmode_notif_used) 75514e8a3c4SBeni Lev __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 7566e045905SJohannes Berg __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 7575d8325ecSJohannes Berg __array(char, vlan, IFNAMSIZ) 7586e045905SJohannes Berg __dynamic_array(u8, supported_rates, 759b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len) 7606e045905SJohannes Berg __dynamic_array(u8, ext_capab, params->ext_capab_len) 7616e045905SJohannes Berg __dynamic_array(u8, supported_channels, 7626e045905SJohannes Berg params->supported_channels_len) 7636e045905SJohannes Berg __dynamic_array(u8, supported_oper_classes, 7646e045905SJohannes Berg params->supported_oper_classes_len) 76514e8a3c4SBeni Lev ), 76614e8a3c4SBeni Lev TP_fast_assign( 76714e8a3c4SBeni Lev WIPHY_ASSIGN; 76814e8a3c4SBeni Lev NETDEV_ASSIGN; 76914e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 77014e8a3c4SBeni Lev __entry->sta_flags_mask = params->sta_flags_mask; 77114e8a3c4SBeni Lev __entry->sta_flags_set = params->sta_flags_set; 77214e8a3c4SBeni Lev __entry->sta_modify_mask = params->sta_modify_mask; 77314e8a3c4SBeni Lev __entry->listen_interval = params->listen_interval; 77414e8a3c4SBeni Lev __entry->aid = params->aid; 77514e8a3c4SBeni Lev __entry->plink_action = params->plink_action; 77614e8a3c4SBeni Lev __entry->plink_state = params->plink_state; 77714e8a3c4SBeni Lev __entry->uapsd_queues = params->uapsd_queues; 77814e8a3c4SBeni Lev memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 779b95eb7f0SShaul Triebitz if (params->link_sta_params.ht_capa) 780b95eb7f0SShaul Triebitz memcpy(__entry->ht_capa, 781b95eb7f0SShaul Triebitz params->link_sta_params.ht_capa, 78214e8a3c4SBeni Lev sizeof(struct ieee80211_ht_cap)); 7836e045905SJohannes Berg memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 784b95eb7f0SShaul Triebitz if (params->link_sta_params.vht_capa) 785b95eb7f0SShaul Triebitz memcpy(__entry->vht_capa, 786b95eb7f0SShaul Triebitz params->link_sta_params.vht_capa, 7876e045905SJohannes Berg sizeof(struct ieee80211_vht_cap)); 7885d8325ecSJohannes Berg memset(__entry->vlan, 0, sizeof(__entry->vlan)); 7895d8325ecSJohannes Berg if (params->vlan) 7905d8325ecSJohannes Berg memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ); 791b95eb7f0SShaul Triebitz if (params->link_sta_params.supported_rates && 792b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len) 7936e045905SJohannes Berg memcpy(__get_dynamic_array(supported_rates), 794b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates, 795b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len); 7966e045905SJohannes Berg if (params->ext_capab && params->ext_capab_len) 7976e045905SJohannes Berg memcpy(__get_dynamic_array(ext_capab), 7986e045905SJohannes Berg params->ext_capab, 7996e045905SJohannes Berg params->ext_capab_len); 8006e045905SJohannes Berg if (params->supported_channels && 8016e045905SJohannes Berg params->supported_channels_len) 8026e045905SJohannes Berg memcpy(__get_dynamic_array(supported_channels), 8036e045905SJohannes Berg params->supported_channels, 8046e045905SJohannes Berg params->supported_channels_len); 8056e045905SJohannes Berg if (params->supported_oper_classes && 8066e045905SJohannes Berg params->supported_oper_classes_len) 8076e045905SJohannes Berg memcpy(__get_dynamic_array(supported_oper_classes), 8086e045905SJohannes Berg params->supported_oper_classes, 8096e045905SJohannes Berg params->supported_oper_classes_len); 8106e045905SJohannes Berg __entry->max_sp = params->max_sp; 8116e045905SJohannes Berg __entry->capability = params->capability; 812b95eb7f0SShaul Triebitz __entry->opmode_notif = params->link_sta_params.opmode_notif; 813b95eb7f0SShaul Triebitz __entry->opmode_notif_used = 814b95eb7f0SShaul Triebitz params->link_sta_params.opmode_notif_used; 81514e8a3c4SBeni Lev ), 816ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 81714e8a3c4SBeni Lev ", station flags mask: %u, station flags set: %u, " 81814e8a3c4SBeni Lev "station modify mask: %u, listen interval: %d, aid: %u, " 8195d8325ecSJohannes Berg "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s", 82014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 82114e8a3c4SBeni Lev __entry->sta_flags_mask, __entry->sta_flags_set, 82214e8a3c4SBeni Lev __entry->sta_modify_mask, __entry->listen_interval, 82314e8a3c4SBeni Lev __entry->aid, __entry->plink_action, __entry->plink_state, 8245d8325ecSJohannes Berg __entry->uapsd_queues, __entry->vlan) 82514e8a3c4SBeni Lev ); 82614e8a3c4SBeni Lev 82714e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_add_station, 82814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 82914e8a3c4SBeni Lev struct station_parameters *params), 83014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 83114e8a3c4SBeni Lev ); 83214e8a3c4SBeni Lev 83314e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_change_station, 83414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 83514e8a3c4SBeni Lev struct station_parameters *params), 83614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 83714e8a3c4SBeni Lev ); 83814e8a3c4SBeni Lev 83914e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt, 84014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 84114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac), 84214e8a3c4SBeni Lev TP_STRUCT__entry( 84314e8a3c4SBeni Lev WIPHY_ENTRY 84414e8a3c4SBeni Lev NETDEV_ENTRY 84514e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 84614e8a3c4SBeni Lev ), 84714e8a3c4SBeni Lev TP_fast_assign( 84814e8a3c4SBeni Lev WIPHY_ASSIGN; 84914e8a3c4SBeni Lev NETDEV_ASSIGN; 85014e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 85114e8a3c4SBeni Lev ), 852ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 85314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac)) 85414e8a3c4SBeni Lev ); 85514e8a3c4SBeni Lev 85689c771e5SJouni Malinen DECLARE_EVENT_CLASS(station_del, 85789c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 85889c771e5SJouni Malinen struct station_del_parameters *params), 85989c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params), 86089c771e5SJouni Malinen TP_STRUCT__entry( 86189c771e5SJouni Malinen WIPHY_ENTRY 86289c771e5SJouni Malinen NETDEV_ENTRY 86389c771e5SJouni Malinen MAC_ENTRY(sta_mac) 86498856866SJouni Malinen __field(u8, subtype) 86598856866SJouni Malinen __field(u16, reason_code) 86689c771e5SJouni Malinen ), 86789c771e5SJouni Malinen TP_fast_assign( 86889c771e5SJouni Malinen WIPHY_ASSIGN; 86989c771e5SJouni Malinen NETDEV_ASSIGN; 87089c771e5SJouni Malinen MAC_ASSIGN(sta_mac, params->mac); 87198856866SJouni Malinen __entry->subtype = params->subtype; 87298856866SJouni Malinen __entry->reason_code = params->reason_code; 87389c771e5SJouni Malinen ), 87498856866SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 87598856866SJouni Malinen ", subtype: %u, reason_code: %u", 87698856866SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 87798856866SJouni Malinen __entry->subtype, __entry->reason_code) 87889c771e5SJouni Malinen ); 87989c771e5SJouni Malinen 88089c771e5SJouni Malinen DEFINE_EVENT(station_del, rdev_del_station, 88189c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 88289c771e5SJouni Malinen struct station_del_parameters *params), 88389c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params) 88414e8a3c4SBeni Lev ); 88514e8a3c4SBeni Lev 88614e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station, 88714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 88814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 88914e8a3c4SBeni Lev ); 89014e8a3c4SBeni Lev 89114e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath, 89214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 89314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 89414e8a3c4SBeni Lev ); 89514e8a3c4SBeni Lev 89614e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_station, 897aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 89814e8a3c4SBeni Lev u8 *mac), 899aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mac), 90014e8a3c4SBeni Lev TP_STRUCT__entry( 90114e8a3c4SBeni Lev WIPHY_ENTRY 90214e8a3c4SBeni Lev NETDEV_ENTRY 90314e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 90414e8a3c4SBeni Lev __field(int, idx) 90514e8a3c4SBeni Lev ), 90614e8a3c4SBeni Lev TP_fast_assign( 90714e8a3c4SBeni Lev WIPHY_ASSIGN; 90814e8a3c4SBeni Lev NETDEV_ASSIGN; 90914e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 910aaaa10e0SJohannes Berg __entry->idx = _idx; 91114e8a3c4SBeni Lev ), 912ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d", 91314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 91414e8a3c4SBeni Lev __entry->idx) 91514e8a3c4SBeni Lev ); 91614e8a3c4SBeni Lev 91714e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_station_info, 91814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo), 91914e8a3c4SBeni Lev TP_ARGS(wiphy, ret, sinfo), 92014e8a3c4SBeni Lev TP_STRUCT__entry( 92114e8a3c4SBeni Lev WIPHY_ENTRY 92214e8a3c4SBeni Lev __field(int, ret) 92314e8a3c4SBeni Lev SINFO_ENTRY 92414e8a3c4SBeni Lev ), 92514e8a3c4SBeni Lev TP_fast_assign( 92614e8a3c4SBeni Lev WIPHY_ASSIGN; 92714e8a3c4SBeni Lev __entry->ret = ret; 92814e8a3c4SBeni Lev SINFO_ASSIGN; 92914e8a3c4SBeni Lev ), 93014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d" , 93114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 93214e8a3c4SBeni Lev ); 93314e8a3c4SBeni Lev 93414e8a3c4SBeni Lev DECLARE_EVENT_CLASS(mpath_evt, 93514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 93614e8a3c4SBeni Lev u8 *next_hop), 93714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop), 93814e8a3c4SBeni Lev TP_STRUCT__entry( 93914e8a3c4SBeni Lev WIPHY_ENTRY 94014e8a3c4SBeni Lev NETDEV_ENTRY 94114e8a3c4SBeni Lev MAC_ENTRY(dst) 94214e8a3c4SBeni Lev MAC_ENTRY(next_hop) 94314e8a3c4SBeni Lev ), 94414e8a3c4SBeni Lev TP_fast_assign( 94514e8a3c4SBeni Lev WIPHY_ASSIGN; 94614e8a3c4SBeni Lev NETDEV_ASSIGN; 94714e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 94814e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 94914e8a3c4SBeni Lev ), 950ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT, 95114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst), 95214e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 95314e8a3c4SBeni Lev ); 95414e8a3c4SBeni Lev 95514e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_add_mpath, 95614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 95714e8a3c4SBeni Lev u8 *next_hop), 95814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 95914e8a3c4SBeni Lev ); 96014e8a3c4SBeni Lev 96114e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_change_mpath, 96214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 96314e8a3c4SBeni Lev u8 *next_hop), 96414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 96514e8a3c4SBeni Lev ); 96614e8a3c4SBeni Lev 96714e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_get_mpath, 96814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 96914e8a3c4SBeni Lev u8 *next_hop), 97014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 97114e8a3c4SBeni Lev ); 97214e8a3c4SBeni Lev 97314e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_mpath, 974aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 97514e8a3c4SBeni Lev u8 *dst, u8 *next_hop), 976aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, dst, next_hop), 97714e8a3c4SBeni Lev TP_STRUCT__entry( 97814e8a3c4SBeni Lev WIPHY_ENTRY 97914e8a3c4SBeni Lev NETDEV_ENTRY 98014e8a3c4SBeni Lev MAC_ENTRY(dst) 98114e8a3c4SBeni Lev MAC_ENTRY(next_hop) 98214e8a3c4SBeni Lev __field(int, idx) 98314e8a3c4SBeni Lev ), 98414e8a3c4SBeni Lev TP_fast_assign( 98514e8a3c4SBeni Lev WIPHY_ASSIGN; 98614e8a3c4SBeni Lev NETDEV_ASSIGN; 98714e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 98814e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 989aaaa10e0SJohannes Berg __entry->idx = _idx; 99014e8a3c4SBeni Lev ), 991ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 99214e8a3c4SBeni Lev MAC_PR_FMT ", next hop: " MAC_PR_FMT, 99314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 99414e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 99514e8a3c4SBeni Lev ); 99614e8a3c4SBeni Lev 99766be7d2bSHenning Rogge TRACE_EVENT(rdev_get_mpp, 99866be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 99966be7d2bSHenning Rogge u8 *dst, u8 *mpp), 100066be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, dst, mpp), 100166be7d2bSHenning Rogge TP_STRUCT__entry( 100266be7d2bSHenning Rogge WIPHY_ENTRY 100366be7d2bSHenning Rogge NETDEV_ENTRY 100466be7d2bSHenning Rogge MAC_ENTRY(dst) 100566be7d2bSHenning Rogge MAC_ENTRY(mpp) 100666be7d2bSHenning Rogge ), 100766be7d2bSHenning Rogge TP_fast_assign( 100866be7d2bSHenning Rogge WIPHY_ASSIGN; 100966be7d2bSHenning Rogge NETDEV_ASSIGN; 101066be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 101166be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 101266be7d2bSHenning Rogge ), 101366be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT 101466be7d2bSHenning Rogge ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG, 101566be7d2bSHenning Rogge MAC_PR_ARG(dst), MAC_PR_ARG(mpp)) 101666be7d2bSHenning Rogge ); 101766be7d2bSHenning Rogge 101866be7d2bSHenning Rogge TRACE_EVENT(rdev_dump_mpp, 1019aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 102066be7d2bSHenning Rogge u8 *dst, u8 *mpp), 1021aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mpp, dst), 102266be7d2bSHenning Rogge TP_STRUCT__entry( 102366be7d2bSHenning Rogge WIPHY_ENTRY 102466be7d2bSHenning Rogge NETDEV_ENTRY 102566be7d2bSHenning Rogge MAC_ENTRY(dst) 102666be7d2bSHenning Rogge MAC_ENTRY(mpp) 102766be7d2bSHenning Rogge __field(int, idx) 102866be7d2bSHenning Rogge ), 102966be7d2bSHenning Rogge TP_fast_assign( 103066be7d2bSHenning Rogge WIPHY_ASSIGN; 103166be7d2bSHenning Rogge NETDEV_ASSIGN; 103266be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 103366be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 1034aaaa10e0SJohannes Berg __entry->idx = _idx; 103566be7d2bSHenning Rogge ), 103666be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 103766be7d2bSHenning Rogge MAC_PR_FMT ", mpp: " MAC_PR_FMT, 103866be7d2bSHenning Rogge WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 103966be7d2bSHenning Rogge MAC_PR_ARG(mpp)) 104066be7d2bSHenning Rogge ); 104166be7d2bSHenning Rogge 104214e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mpath_info, 104314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo), 104414e8a3c4SBeni Lev TP_ARGS(wiphy, ret, pinfo), 104514e8a3c4SBeni Lev TP_STRUCT__entry( 104614e8a3c4SBeni Lev WIPHY_ENTRY 104714e8a3c4SBeni Lev __field(int, ret) 104814e8a3c4SBeni Lev __field(int, generation) 104914e8a3c4SBeni Lev __field(u32, filled) 105014e8a3c4SBeni Lev __field(u32, frame_qlen) 105114e8a3c4SBeni Lev __field(u32, sn) 105214e8a3c4SBeni Lev __field(u32, metric) 105314e8a3c4SBeni Lev __field(u32, exptime) 105414e8a3c4SBeni Lev __field(u32, discovery_timeout) 105514e8a3c4SBeni Lev __field(u8, discovery_retries) 105614e8a3c4SBeni Lev __field(u8, flags) 105714e8a3c4SBeni Lev ), 105814e8a3c4SBeni Lev TP_fast_assign( 105914e8a3c4SBeni Lev WIPHY_ASSIGN; 106014e8a3c4SBeni Lev __entry->ret = ret; 106114e8a3c4SBeni Lev __entry->generation = pinfo->generation; 106214e8a3c4SBeni Lev __entry->filled = pinfo->filled; 106314e8a3c4SBeni Lev __entry->frame_qlen = pinfo->frame_qlen; 106414e8a3c4SBeni Lev __entry->sn = pinfo->sn; 106514e8a3c4SBeni Lev __entry->metric = pinfo->metric; 106614e8a3c4SBeni Lev __entry->exptime = pinfo->exptime; 106714e8a3c4SBeni Lev __entry->discovery_timeout = pinfo->discovery_timeout; 106814e8a3c4SBeni Lev __entry->discovery_retries = pinfo->discovery_retries; 106914e8a3c4SBeni Lev __entry->flags = pinfo->flags; 107014e8a3c4SBeni Lev ), 107114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, " 107214e8a3c4SBeni Lev "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u," 107314e8a3c4SBeni Lev " discovery timeout: %u, discovery retries: %u, flags: %u", 107414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->generation, 107514e8a3c4SBeni Lev __entry->filled, __entry->frame_qlen, __entry->sn, 107614e8a3c4SBeni Lev __entry->metric, __entry->exptime, __entry->discovery_timeout, 107714e8a3c4SBeni Lev __entry->discovery_retries, __entry->flags) 107814e8a3c4SBeni Lev ); 107914e8a3c4SBeni Lev 108014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mesh_config, 108114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf), 108214e8a3c4SBeni Lev TP_ARGS(wiphy, ret, conf), 108314e8a3c4SBeni Lev TP_STRUCT__entry( 108414e8a3c4SBeni Lev WIPHY_ENTRY 108514e8a3c4SBeni Lev MESH_CFG_ENTRY 108614e8a3c4SBeni Lev __field(int, ret) 108714e8a3c4SBeni Lev ), 108814e8a3c4SBeni Lev TP_fast_assign( 108914e8a3c4SBeni Lev WIPHY_ASSIGN; 109014e8a3c4SBeni Lev MESH_CFG_ASSIGN; 109114e8a3c4SBeni Lev __entry->ret = ret; 109214e8a3c4SBeni Lev ), 109314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", 109414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 109514e8a3c4SBeni Lev ); 109614e8a3c4SBeni Lev 109714e8a3c4SBeni Lev TRACE_EVENT(rdev_update_mesh_config, 109814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask, 109914e8a3c4SBeni Lev const struct mesh_config *conf), 110014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mask, conf), 110114e8a3c4SBeni Lev TP_STRUCT__entry( 110214e8a3c4SBeni Lev WIPHY_ENTRY 110314e8a3c4SBeni Lev NETDEV_ENTRY 110414e8a3c4SBeni Lev MESH_CFG_ENTRY 110514e8a3c4SBeni Lev __field(u32, mask) 110614e8a3c4SBeni Lev ), 110714e8a3c4SBeni Lev TP_fast_assign( 110814e8a3c4SBeni Lev WIPHY_ASSIGN; 110914e8a3c4SBeni Lev NETDEV_ASSIGN; 111014e8a3c4SBeni Lev MESH_CFG_ASSIGN; 111114e8a3c4SBeni Lev __entry->mask = mask; 111214e8a3c4SBeni Lev ), 1113ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u", 111414e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask) 111514e8a3c4SBeni Lev ); 111614e8a3c4SBeni Lev 111714e8a3c4SBeni Lev TRACE_EVENT(rdev_join_mesh, 111814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 111914e8a3c4SBeni Lev const struct mesh_config *conf, 112014e8a3c4SBeni Lev const struct mesh_setup *setup), 112114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, conf, setup), 112214e8a3c4SBeni Lev TP_STRUCT__entry( 112314e8a3c4SBeni Lev WIPHY_ENTRY 112414e8a3c4SBeni Lev NETDEV_ENTRY 112514e8a3c4SBeni Lev MESH_CFG_ENTRY 112614e8a3c4SBeni Lev ), 112714e8a3c4SBeni Lev TP_fast_assign( 112814e8a3c4SBeni Lev WIPHY_ASSIGN; 112914e8a3c4SBeni Lev NETDEV_ASSIGN; 113014e8a3c4SBeni Lev MESH_CFG_ASSIGN; 113114e8a3c4SBeni Lev ), 1132ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 113314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 113414e8a3c4SBeni Lev ); 113514e8a3c4SBeni Lev 113614e8a3c4SBeni Lev TRACE_EVENT(rdev_change_bss, 113714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 113814e8a3c4SBeni Lev struct bss_parameters *params), 113914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 114014e8a3c4SBeni Lev TP_STRUCT__entry( 114114e8a3c4SBeni Lev WIPHY_ENTRY 114214e8a3c4SBeni Lev NETDEV_ENTRY 114314e8a3c4SBeni Lev __field(int, use_cts_prot) 114414e8a3c4SBeni Lev __field(int, use_short_preamble) 114514e8a3c4SBeni Lev __field(int, use_short_slot_time) 114614e8a3c4SBeni Lev __field(int, ap_isolate) 114714e8a3c4SBeni Lev __field(int, ht_opmode) 114814e8a3c4SBeni Lev ), 114914e8a3c4SBeni Lev TP_fast_assign( 115014e8a3c4SBeni Lev WIPHY_ASSIGN; 115114e8a3c4SBeni Lev NETDEV_ASSIGN; 115214e8a3c4SBeni Lev __entry->use_cts_prot = params->use_cts_prot; 115314e8a3c4SBeni Lev __entry->use_short_preamble = params->use_short_preamble; 115414e8a3c4SBeni Lev __entry->use_short_slot_time = params->use_short_slot_time; 115514e8a3c4SBeni Lev __entry->ap_isolate = params->ap_isolate; 115614e8a3c4SBeni Lev __entry->ht_opmode = params->ht_opmode; 115714e8a3c4SBeni Lev ), 1158ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, " 115914e8a3c4SBeni Lev "use short preamble: %d, use short slot time: %d, " 116014e8a3c4SBeni Lev "ap isolate: %d, ht opmode: %d", 116114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot, 116214e8a3c4SBeni Lev __entry->use_short_preamble, __entry->use_short_slot_time, 116314e8a3c4SBeni Lev __entry->ap_isolate, __entry->ht_opmode) 116414e8a3c4SBeni Lev ); 116514e8a3c4SBeni Lev 116614e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 116714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 116814e8a3c4SBeni Lev struct ieee80211_txq_params *params), 116914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 117014e8a3c4SBeni Lev TP_STRUCT__entry( 117114e8a3c4SBeni Lev WIPHY_ENTRY 117214e8a3c4SBeni Lev NETDEV_ENTRY 117314e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 117414e8a3c4SBeni Lev __field(u16, txop) 117514e8a3c4SBeni Lev __field(u16, cwmin) 117614e8a3c4SBeni Lev __field(u16, cwmax) 117714e8a3c4SBeni Lev __field(u8, aifs) 117814e8a3c4SBeni Lev ), 117914e8a3c4SBeni Lev TP_fast_assign( 118014e8a3c4SBeni Lev WIPHY_ASSIGN; 118114e8a3c4SBeni Lev NETDEV_ASSIGN; 118214e8a3c4SBeni Lev __entry->ac = params->ac; 118314e8a3c4SBeni Lev __entry->txop = params->txop; 118414e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 118514e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 118614e8a3c4SBeni Lev __entry->aifs = params->aifs; 118714e8a3c4SBeni Lev ), 1188ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 118914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 119014e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 119114e8a3c4SBeni Lev ); 119214e8a3c4SBeni Lev 119314e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 119414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 119514e8a3c4SBeni Lev struct ieee80211_channel *chan), 119614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 119714e8a3c4SBeni Lev TP_STRUCT__entry( 119814e8a3c4SBeni Lev WIPHY_ENTRY 119914e8a3c4SBeni Lev NETDEV_ENTRY 120014e8a3c4SBeni Lev CHAN_ENTRY 120114e8a3c4SBeni Lev ), 120214e8a3c4SBeni Lev TP_fast_assign( 120314e8a3c4SBeni Lev WIPHY_ASSIGN; 120414e8a3c4SBeni Lev NETDEV_ASSIGN; 120514e8a3c4SBeni Lev CHAN_ASSIGN(chan); 120614e8a3c4SBeni Lev ), 1207ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 120814e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 120914e8a3c4SBeni Lev ); 121014e8a3c4SBeni Lev 121114e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1212683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1213683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1214683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 121514e8a3c4SBeni Lev TP_STRUCT__entry( 121614e8a3c4SBeni Lev WIPHY_ENTRY 1217683b6d3bSJohannes Berg CHAN_DEF_ENTRY 121814e8a3c4SBeni Lev ), 121914e8a3c4SBeni Lev TP_fast_assign( 122014e8a3c4SBeni Lev WIPHY_ASSIGN; 1221683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 122214e8a3c4SBeni Lev ), 1223ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1224683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 122514e8a3c4SBeni Lev ); 122614e8a3c4SBeni Lev 122714e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 122814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 122914e8a3c4SBeni Lev struct cfg80211_auth_request *req), 123014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 123114e8a3c4SBeni Lev TP_STRUCT__entry( 123214e8a3c4SBeni Lev WIPHY_ENTRY 123314e8a3c4SBeni Lev NETDEV_ENTRY 123414e8a3c4SBeni Lev MAC_ENTRY(bssid) 123514e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 123614e8a3c4SBeni Lev ), 123714e8a3c4SBeni Lev TP_fast_assign( 123814e8a3c4SBeni Lev WIPHY_ASSIGN; 123914e8a3c4SBeni Lev NETDEV_ASSIGN; 124014e8a3c4SBeni Lev if (req->bss) 124114e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 124214e8a3c4SBeni Lev else 1243d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 124414e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 124514e8a3c4SBeni Lev ), 1246ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT, 124714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 124814e8a3c4SBeni Lev MAC_PR_ARG(bssid)) 124914e8a3c4SBeni Lev ); 125014e8a3c4SBeni Lev 125114e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 125214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 12531d4c0f04SJohannes Berg struct cfg80211_assoc_request *req), 12541d4c0f04SJohannes Berg TP_ARGS(wiphy, netdev, req), 125514e8a3c4SBeni Lev TP_STRUCT__entry( 125614e8a3c4SBeni Lev WIPHY_ENTRY 125714e8a3c4SBeni Lev NETDEV_ENTRY 125814e8a3c4SBeni Lev MAC_ENTRY(bssid) 125914e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 126014e8a3c4SBeni Lev __field(bool, use_mfp) 126114e8a3c4SBeni Lev __field(u32, flags) 126264a87472SJohannes Berg __dynamic_array(u8, elements, req->ie_len) 126364a87472SJohannes Berg __array(u8, ht_capa, sizeof(struct ieee80211_ht_cap)) 126464a87472SJohannes Berg __array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap)) 126564a87472SJohannes Berg __array(u8, vht_capa, sizeof(struct ieee80211_vht_cap)) 126664a87472SJohannes Berg __array(u8, vht_capa_mask, sizeof(struct ieee80211_vht_cap)) 126764a87472SJohannes Berg __dynamic_array(u8, fils_kek, req->fils_kek_len) 126864a87472SJohannes Berg __dynamic_array(u8, fils_nonces, 126964a87472SJohannes Berg req->fils_nonces ? 2 * FILS_NONCE_LEN : 0) 127014e8a3c4SBeni Lev ), 127114e8a3c4SBeni Lev TP_fast_assign( 127214e8a3c4SBeni Lev WIPHY_ASSIGN; 127314e8a3c4SBeni Lev NETDEV_ASSIGN; 127414e8a3c4SBeni Lev if (req->bss) 127514e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 127614e8a3c4SBeni Lev else 1277d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 127814e8a3c4SBeni Lev MAC_ASSIGN(prev_bssid, req->prev_bssid); 127914e8a3c4SBeni Lev __entry->use_mfp = req->use_mfp; 128014e8a3c4SBeni Lev __entry->flags = req->flags; 128164a87472SJohannes Berg if (req->ie) 128264a87472SJohannes Berg memcpy(__get_dynamic_array(elements), 128364a87472SJohannes Berg req->ie, req->ie_len); 128464a87472SJohannes Berg memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa)); 128564a87472SJohannes Berg memcpy(__entry->ht_capa_mask, &req->ht_capa_mask, 128664a87472SJohannes Berg sizeof(req->ht_capa_mask)); 128764a87472SJohannes Berg memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa)); 128864a87472SJohannes Berg memcpy(__entry->vht_capa_mask, &req->vht_capa_mask, 128964a87472SJohannes Berg sizeof(req->vht_capa_mask)); 129064a87472SJohannes Berg if (req->fils_kek) 129164a87472SJohannes Berg memcpy(__get_dynamic_array(fils_kek), 129264a87472SJohannes Berg req->fils_kek, req->fils_kek_len); 129364a87472SJohannes Berg if (req->fils_nonces) 129464a87472SJohannes Berg memcpy(__get_dynamic_array(fils_nonces), 129564a87472SJohannes Berg req->fils_nonces, 2 * FILS_NONCE_LEN); 129614e8a3c4SBeni Lev ), 1297ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 129814e8a3c4SBeni Lev ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u", 129914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 130014e8a3c4SBeni Lev MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp), 130114e8a3c4SBeni Lev __entry->flags) 130214e8a3c4SBeni Lev ); 130314e8a3c4SBeni Lev 130414e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 130514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 130614e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 130714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 130814e8a3c4SBeni Lev TP_STRUCT__entry( 130914e8a3c4SBeni Lev WIPHY_ENTRY 131014e8a3c4SBeni Lev NETDEV_ENTRY 131114e8a3c4SBeni Lev MAC_ENTRY(bssid) 131214e8a3c4SBeni Lev __field(u16, reason_code) 131314e8a3c4SBeni Lev ), 131414e8a3c4SBeni Lev TP_fast_assign( 131514e8a3c4SBeni Lev WIPHY_ASSIGN; 131614e8a3c4SBeni Lev NETDEV_ASSIGN; 131714e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 131814e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 131914e8a3c4SBeni Lev ), 1320ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u", 132114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 132214e8a3c4SBeni Lev __entry->reason_code) 132314e8a3c4SBeni Lev ); 132414e8a3c4SBeni Lev 132514e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 132614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 132714e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 132814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 132914e8a3c4SBeni Lev TP_STRUCT__entry( 133014e8a3c4SBeni Lev WIPHY_ENTRY 133114e8a3c4SBeni Lev NETDEV_ENTRY 133214e8a3c4SBeni Lev MAC_ENTRY(bssid) 133314e8a3c4SBeni Lev __field(u16, reason_code) 133414e8a3c4SBeni Lev __field(bool, local_state_change) 133514e8a3c4SBeni Lev ), 133614e8a3c4SBeni Lev TP_fast_assign( 133714e8a3c4SBeni Lev WIPHY_ASSIGN; 133814e8a3c4SBeni Lev NETDEV_ASSIGN; 13398f6e0dfcSJohannes Berg MAC_ASSIGN(bssid, req->ap_addr); 134014e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 134114e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 134214e8a3c4SBeni Lev ), 1343ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 134414e8a3c4SBeni Lev ", reason: %u, local state change: %s", 134514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 134614e8a3c4SBeni Lev __entry->reason_code, 134714e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 134814e8a3c4SBeni Lev ); 134914e8a3c4SBeni Lev 135014e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 135114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 135214e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 135314e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 135414e8a3c4SBeni Lev TP_STRUCT__entry( 135514e8a3c4SBeni Lev WIPHY_ENTRY 135614e8a3c4SBeni Lev WDEV_ENTRY 135714e8a3c4SBeni Lev __field(u64, cookie) 135814e8a3c4SBeni Lev ), 135914e8a3c4SBeni Lev TP_fast_assign( 136014e8a3c4SBeni Lev WIPHY_ASSIGN; 136114e8a3c4SBeni Lev WDEV_ASSIGN; 136214e8a3c4SBeni Lev __entry->cookie = cookie; 136314e8a3c4SBeni Lev ), 1364ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 136514e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 136614e8a3c4SBeni Lev ); 136714e8a3c4SBeni Lev 136814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 136914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 137014e8a3c4SBeni Lev bool enabled, int timeout), 137114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 137214e8a3c4SBeni Lev TP_STRUCT__entry( 137314e8a3c4SBeni Lev WIPHY_ENTRY 137414e8a3c4SBeni Lev NETDEV_ENTRY 137514e8a3c4SBeni Lev __field(bool, enabled) 137614e8a3c4SBeni Lev __field(int, timeout) 137714e8a3c4SBeni Lev ), 137814e8a3c4SBeni Lev TP_fast_assign( 137914e8a3c4SBeni Lev WIPHY_ASSIGN; 138014e8a3c4SBeni Lev NETDEV_ASSIGN; 138114e8a3c4SBeni Lev __entry->enabled = enabled; 138214e8a3c4SBeni Lev __entry->timeout = timeout; 138314e8a3c4SBeni Lev ), 1384ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 138514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 138614e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 138714e8a3c4SBeni Lev ); 138814e8a3c4SBeni Lev 138914e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 139014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 139114e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 139214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 139314e8a3c4SBeni Lev TP_STRUCT__entry( 139414e8a3c4SBeni Lev WIPHY_ENTRY 139514e8a3c4SBeni Lev NETDEV_ENTRY 139614e8a3c4SBeni Lev MAC_ENTRY(bssid) 139714e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 139814e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 139914e8a3c4SBeni Lev __field(bool, privacy) 140014e8a3c4SBeni Lev __field(u32, wpa_versions) 140114e8a3c4SBeni Lev __field(u32, flags) 1402ba6fbacfSJouni Malinen MAC_ENTRY(prev_bssid) 140314e8a3c4SBeni Lev ), 140414e8a3c4SBeni Lev TP_fast_assign( 140514e8a3c4SBeni Lev WIPHY_ASSIGN; 140614e8a3c4SBeni Lev NETDEV_ASSIGN; 140714e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 140814e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 140914e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 141014e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 141114e8a3c4SBeni Lev __entry->privacy = sme->privacy; 141214e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 141314e8a3c4SBeni Lev __entry->flags = sme->flags; 1414ba6fbacfSJouni Malinen MAC_ASSIGN(prev_bssid, sme->prev_bssid); 141514e8a3c4SBeni Lev ), 1416ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 141714e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 1418ba6fbacfSJouni Malinen "flags: %u, previous bssid: " MAC_PR_FMT, 141914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid, 142014e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 1421ba6fbacfSJouni Malinen __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid)) 142214e8a3c4SBeni Lev ); 142314e8a3c4SBeni Lev 1424088e8df8Svamsi krishna TRACE_EVENT(rdev_update_connect_params, 1425088e8df8Svamsi krishna TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1426088e8df8Svamsi krishna struct cfg80211_connect_params *sme, u32 changed), 1427088e8df8Svamsi krishna TP_ARGS(wiphy, netdev, sme, changed), 1428088e8df8Svamsi krishna TP_STRUCT__entry( 1429088e8df8Svamsi krishna WIPHY_ENTRY 1430088e8df8Svamsi krishna NETDEV_ENTRY 1431088e8df8Svamsi krishna __field(u32, changed) 1432088e8df8Svamsi krishna ), 1433088e8df8Svamsi krishna TP_fast_assign( 1434088e8df8Svamsi krishna WIPHY_ASSIGN; 1435088e8df8Svamsi krishna NETDEV_ASSIGN; 1436088e8df8Svamsi krishna __entry->changed = changed; 1437088e8df8Svamsi krishna ), 1438088e8df8Svamsi krishna TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u", 1439088e8df8Svamsi krishna WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed) 1440088e8df8Svamsi krishna ); 1441088e8df8Svamsi krishna 144214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 144314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 144414e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 144514e8a3c4SBeni Lev u32 rssi_hyst), 144614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 144714e8a3c4SBeni Lev TP_STRUCT__entry( 144814e8a3c4SBeni Lev WIPHY_ENTRY 144914e8a3c4SBeni Lev NETDEV_ENTRY 145014e8a3c4SBeni Lev __field(s32, rssi_thold) 145114e8a3c4SBeni Lev __field(u32, rssi_hyst) 145214e8a3c4SBeni Lev ), 145314e8a3c4SBeni Lev TP_fast_assign( 145414e8a3c4SBeni Lev WIPHY_ASSIGN; 145514e8a3c4SBeni Lev NETDEV_ASSIGN; 145614e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 145714e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 145814e8a3c4SBeni Lev ), 1459ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 146014e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 146114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 146214e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 146314e8a3c4SBeni Lev ); 146414e8a3c4SBeni Lev 14654a4b8169SAndrew Zaborowski TRACE_EVENT(rdev_set_cqm_rssi_range_config, 14664a4b8169SAndrew Zaborowski TP_PROTO(struct wiphy *wiphy, 14674a4b8169SAndrew Zaborowski struct net_device *netdev, s32 low, s32 high), 14684a4b8169SAndrew Zaborowski TP_ARGS(wiphy, netdev, low, high), 14694a4b8169SAndrew Zaborowski TP_STRUCT__entry( 14704a4b8169SAndrew Zaborowski WIPHY_ENTRY 14714a4b8169SAndrew Zaborowski NETDEV_ENTRY 14724a4b8169SAndrew Zaborowski __field(s32, rssi_low) 14734a4b8169SAndrew Zaborowski __field(s32, rssi_high) 14744a4b8169SAndrew Zaborowski ), 14754a4b8169SAndrew Zaborowski TP_fast_assign( 14764a4b8169SAndrew Zaborowski WIPHY_ASSIGN; 14774a4b8169SAndrew Zaborowski NETDEV_ASSIGN; 14784a4b8169SAndrew Zaborowski __entry->rssi_low = low; 14794a4b8169SAndrew Zaborowski __entry->rssi_high = high; 14804a4b8169SAndrew Zaborowski ), 14814a4b8169SAndrew Zaborowski TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 14824a4b8169SAndrew Zaborowski ", range: %d - %d ", 14834a4b8169SAndrew Zaborowski WIPHY_PR_ARG, NETDEV_PR_ARG, 14844a4b8169SAndrew Zaborowski __entry->rssi_low, __entry->rssi_high) 14854a4b8169SAndrew Zaborowski ); 14864a4b8169SAndrew Zaborowski 148714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 148814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 148914e8a3c4SBeni Lev u32 pkts, u32 intvl), 149014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 149114e8a3c4SBeni Lev TP_STRUCT__entry( 149214e8a3c4SBeni Lev WIPHY_ENTRY 149314e8a3c4SBeni Lev NETDEV_ENTRY 149414e8a3c4SBeni Lev __field(u32, rate) 149514e8a3c4SBeni Lev __field(u32, pkts) 149614e8a3c4SBeni Lev __field(u32, intvl) 149714e8a3c4SBeni Lev ), 149814e8a3c4SBeni Lev TP_fast_assign( 149914e8a3c4SBeni Lev WIPHY_ASSIGN; 150014e8a3c4SBeni Lev NETDEV_ASSIGN; 150114e8a3c4SBeni Lev __entry->rate = rate; 150214e8a3c4SBeni Lev __entry->pkts = pkts; 150314e8a3c4SBeni Lev __entry->intvl = intvl; 150414e8a3c4SBeni Lev ), 1505ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 150614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 150714e8a3c4SBeni Lev __entry->intvl) 150814e8a3c4SBeni Lev ); 150914e8a3c4SBeni Lev 151014e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 151114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 151214e8a3c4SBeni Lev u16 reason_code), 151314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 151414e8a3c4SBeni Lev TP_STRUCT__entry( 151514e8a3c4SBeni Lev WIPHY_ENTRY 151614e8a3c4SBeni Lev NETDEV_ENTRY 151714e8a3c4SBeni Lev __field(u16, reason_code) 151814e8a3c4SBeni Lev ), 151914e8a3c4SBeni Lev TP_fast_assign( 152014e8a3c4SBeni Lev WIPHY_ASSIGN; 152114e8a3c4SBeni Lev NETDEV_ASSIGN; 152214e8a3c4SBeni Lev __entry->reason_code = reason_code; 152314e8a3c4SBeni Lev ), 1524ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 152514e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 152614e8a3c4SBeni Lev ); 152714e8a3c4SBeni Lev 152814e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 152914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 153014e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 153114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 153214e8a3c4SBeni Lev TP_STRUCT__entry( 153314e8a3c4SBeni Lev WIPHY_ENTRY 153414e8a3c4SBeni Lev NETDEV_ENTRY 153514e8a3c4SBeni Lev MAC_ENTRY(bssid) 153614e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 153714e8a3c4SBeni Lev ), 153814e8a3c4SBeni Lev TP_fast_assign( 153914e8a3c4SBeni Lev WIPHY_ASSIGN; 154014e8a3c4SBeni Lev NETDEV_ASSIGN; 154114e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 154214e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 154314e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 154414e8a3c4SBeni Lev ), 1545ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s", 154614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid) 154714e8a3c4SBeni Lev ); 154814e8a3c4SBeni Lev 15496e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 15506e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 15516e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 15526e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 15536e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 15546e0bd6c3SRostislav Lisovy WIPHY_ENTRY 15556e0bd6c3SRostislav Lisovy NETDEV_ENTRY 15566e0bd6c3SRostislav Lisovy ), 15576e0bd6c3SRostislav Lisovy TP_fast_assign( 15586e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 15596e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 15606e0bd6c3SRostislav Lisovy ), 15616e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 15626e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 15636e0bd6c3SRostislav Lisovy ); 15646e0bd6c3SRostislav Lisovy 156514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 156614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 156714e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 156814e8a3c4SBeni Lev TP_STRUCT__entry( 156914e8a3c4SBeni Lev WIPHY_ENTRY 157014e8a3c4SBeni Lev __field(u32, changed) 157114e8a3c4SBeni Lev ), 157214e8a3c4SBeni Lev TP_fast_assign( 157314e8a3c4SBeni Lev WIPHY_ASSIGN; 157414e8a3c4SBeni Lev __entry->changed = changed; 157514e8a3c4SBeni Lev ), 157614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 157714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 157814e8a3c4SBeni Lev ); 157914e8a3c4SBeni Lev 1580c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1581c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1582c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1583c8442118SJohannes Berg ); 1584c8442118SJohannes Berg 158514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1586c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1587c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1588c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 158914e8a3c4SBeni Lev TP_STRUCT__entry( 159014e8a3c4SBeni Lev WIPHY_ENTRY 1591c8442118SJohannes Berg WDEV_ENTRY 159214e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 159314e8a3c4SBeni Lev __field(int, mbm) 159414e8a3c4SBeni Lev ), 159514e8a3c4SBeni Lev TP_fast_assign( 159614e8a3c4SBeni Lev WIPHY_ASSIGN; 1597c8442118SJohannes Berg WDEV_ASSIGN; 159814e8a3c4SBeni Lev __entry->type = type; 159914e8a3c4SBeni Lev __entry->mbm = mbm; 160014e8a3c4SBeni Lev ), 1601ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1602c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 160314e8a3c4SBeni Lev ); 160414e8a3c4SBeni Lev 160514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 160614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 160714e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 160814e8a3c4SBeni Lev TP_STRUCT__entry( 160914e8a3c4SBeni Lev WIPHY_ENTRY 161014e8a3c4SBeni Lev __field(int, func_ret) 161114e8a3c4SBeni Lev __field(int, func_fill) 161214e8a3c4SBeni Lev ), 161314e8a3c4SBeni Lev TP_fast_assign( 161414e8a3c4SBeni Lev WIPHY_ASSIGN; 161514e8a3c4SBeni Lev __entry->func_ret = func_ret; 161614e8a3c4SBeni Lev __entry->func_fill = func_fill; 161714e8a3c4SBeni Lev ), 161814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 161914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 162014e8a3c4SBeni Lev ); 162114e8a3c4SBeni Lev 162214e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 162314e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1624fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1625fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 162614e8a3c4SBeni Lev TP_STRUCT__entry( 162714e8a3c4SBeni Lev WIPHY_ENTRY 1628fc73f11fSDavid Spinadel WDEV_ENTRY 162914e8a3c4SBeni Lev ), 163014e8a3c4SBeni Lev TP_fast_assign( 163114e8a3c4SBeni Lev WIPHY_ASSIGN; 1632fc73f11fSDavid Spinadel WDEV_ASSIGN; 163314e8a3c4SBeni Lev ), 1634fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 163514e8a3c4SBeni Lev ); 163614e8a3c4SBeni Lev 163714e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 163814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 163914e8a3c4SBeni Lev TP_ARGS(wiphy), 164014e8a3c4SBeni Lev TP_STRUCT__entry( 164114e8a3c4SBeni Lev WIPHY_ENTRY 164214e8a3c4SBeni Lev ), 164314e8a3c4SBeni Lev TP_fast_assign( 164414e8a3c4SBeni Lev WIPHY_ASSIGN; 164514e8a3c4SBeni Lev ), 164614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 164714e8a3c4SBeni Lev ); 164814e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 164914e8a3c4SBeni Lev 165014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 165114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 16527b0a0e3cSJohannes Berg unsigned int link_id, 165314e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 16547b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, peer, mask), 165514e8a3c4SBeni Lev TP_STRUCT__entry( 165614e8a3c4SBeni Lev WIPHY_ENTRY 165714e8a3c4SBeni Lev NETDEV_ENTRY 16587b0a0e3cSJohannes Berg __field(unsigned int, link_id) 165914e8a3c4SBeni Lev MAC_ENTRY(peer) 166014e8a3c4SBeni Lev ), 166114e8a3c4SBeni Lev TP_fast_assign( 166214e8a3c4SBeni Lev WIPHY_ASSIGN; 166314e8a3c4SBeni Lev NETDEV_ASSIGN; 16647b0a0e3cSJohannes Berg __entry->link_id = link_id; 166514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 166614e8a3c4SBeni Lev ), 16677b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT, 16687b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 16697b0a0e3cSJohannes Berg MAC_PR_ARG(peer)) 167014e8a3c4SBeni Lev ); 167114e8a3c4SBeni Lev 16726cd536feSJohannes Berg TRACE_EVENT(rdev_update_mgmt_frame_registrations, 167314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 16746cd536feSJohannes Berg struct mgmt_frame_regs *upd), 16756cd536feSJohannes Berg TP_ARGS(wiphy, wdev, upd), 167614e8a3c4SBeni Lev TP_STRUCT__entry( 167714e8a3c4SBeni Lev WIPHY_ENTRY 167814e8a3c4SBeni Lev WDEV_ENTRY 16796cd536feSJohannes Berg __field(u16, global_stypes) 16806cd536feSJohannes Berg __field(u16, interface_stypes) 168114e8a3c4SBeni Lev ), 168214e8a3c4SBeni Lev TP_fast_assign( 168314e8a3c4SBeni Lev WIPHY_ASSIGN; 168414e8a3c4SBeni Lev WDEV_ASSIGN; 16856cd536feSJohannes Berg __entry->global_stypes = upd->global_stypes; 16866cd536feSJohannes Berg __entry->interface_stypes = upd->interface_stypes; 168714e8a3c4SBeni Lev ), 16886cd536feSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x", 16896cd536feSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 16906cd536feSJohannes Berg __entry->global_stypes, __entry->interface_stypes) 169114e8a3c4SBeni Lev ); 169214e8a3c4SBeni Lev 169314e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 169414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 169514e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 169614e8a3c4SBeni Lev TP_STRUCT__entry( 169714e8a3c4SBeni Lev WIPHY_ENTRY 169814e8a3c4SBeni Lev __field(int, ret) 169914e8a3c4SBeni Lev __field(u32, tx) 170014e8a3c4SBeni Lev __field(u32, rx) 170114e8a3c4SBeni Lev ), 170214e8a3c4SBeni Lev TP_fast_assign( 170314e8a3c4SBeni Lev WIPHY_ASSIGN; 170414e8a3c4SBeni Lev __entry->ret = ret; 170514e8a3c4SBeni Lev __entry->tx = tx; 170614e8a3c4SBeni Lev __entry->rx = rx; 170714e8a3c4SBeni Lev ), 170814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 170914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 171014e8a3c4SBeni Lev ); 171114e8a3c4SBeni Lev 171214e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 171314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 171414e8a3c4SBeni Lev u32 rx, u32 rx_max), 171514e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 171614e8a3c4SBeni Lev TP_STRUCT__entry( 171714e8a3c4SBeni Lev WIPHY_ENTRY 171814e8a3c4SBeni Lev __field(u32, tx) 171914e8a3c4SBeni Lev __field(u32, tx_max) 172014e8a3c4SBeni Lev __field(u32, rx) 172114e8a3c4SBeni Lev __field(u32, rx_max) 172214e8a3c4SBeni Lev ), 172314e8a3c4SBeni Lev TP_fast_assign( 172414e8a3c4SBeni Lev WIPHY_ASSIGN; 172514e8a3c4SBeni Lev __entry->tx = tx; 172614e8a3c4SBeni Lev __entry->tx_max = tx_max; 172714e8a3c4SBeni Lev __entry->rx = rx; 172814e8a3c4SBeni Lev __entry->rx_max = rx_max; 172914e8a3c4SBeni Lev ), 173014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 173114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 173214e8a3c4SBeni Lev __entry->rx_max) 173314e8a3c4SBeni Lev ); 173414e8a3c4SBeni Lev 173514e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 173614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 173714e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 173814e8a3c4SBeni Lev TP_STRUCT__entry( 173914e8a3c4SBeni Lev WIPHY_ENTRY 174014e8a3c4SBeni Lev __field(u32, tx) 174114e8a3c4SBeni Lev __field(u32, rx) 174214e8a3c4SBeni Lev ), 174314e8a3c4SBeni Lev TP_fast_assign( 174414e8a3c4SBeni Lev WIPHY_ASSIGN; 174514e8a3c4SBeni Lev __entry->tx = tx; 174614e8a3c4SBeni Lev __entry->rx = rx; 174714e8a3c4SBeni Lev ), 174814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 174914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 175014e8a3c4SBeni Lev ); 175114e8a3c4SBeni Lev 175214e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 175314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 175414e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 175514e8a3c4SBeni Lev ); 175614e8a3c4SBeni Lev 1757ca986ad9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_netdev_id_evt, 1758ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1759ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id), 176014e8a3c4SBeni Lev TP_STRUCT__entry( 176114e8a3c4SBeni Lev WIPHY_ENTRY 176214e8a3c4SBeni Lev NETDEV_ENTRY 1763ca986ad9SArend Van Spriel __field(u64, id) 176414e8a3c4SBeni Lev ), 176514e8a3c4SBeni Lev TP_fast_assign( 176614e8a3c4SBeni Lev WIPHY_ASSIGN; 176714e8a3c4SBeni Lev NETDEV_ASSIGN; 1768ca986ad9SArend Van Spriel __entry->id = id; 176914e8a3c4SBeni Lev ), 1770ca986ad9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu", 1771ca986ad9SArend Van Spriel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id) 1772ca986ad9SArend Van Spriel ); 1773ca986ad9SArend Van Spriel 1774ca986ad9SArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start, 1775ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1776ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id) 177714e8a3c4SBeni Lev ); 177814e8a3c4SBeni Lev 17793a3ecf1dSArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop, 17803a3ecf1dSArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 17813a3ecf1dSArend Van Spriel TP_ARGS(wiphy, netdev, id) 17823a3ecf1dSArend Van Spriel ); 17833a3ecf1dSArend Van Spriel 178414e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 178514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 178614e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1787df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 178831fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 178914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 179031fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 179114e8a3c4SBeni Lev TP_STRUCT__entry( 179214e8a3c4SBeni Lev WIPHY_ENTRY 179314e8a3c4SBeni Lev NETDEV_ENTRY 179414e8a3c4SBeni Lev MAC_ENTRY(peer) 179514e8a3c4SBeni Lev __field(u8, action_code) 179614e8a3c4SBeni Lev __field(u8, dialog_token) 179714e8a3c4SBeni Lev __field(u16, status_code) 1798df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 179931fa97c5SArik Nemtsov __field(bool, initiator) 180014e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 180114e8a3c4SBeni Lev ), 180214e8a3c4SBeni Lev TP_fast_assign( 180314e8a3c4SBeni Lev WIPHY_ASSIGN; 180414e8a3c4SBeni Lev NETDEV_ASSIGN; 180514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 180614e8a3c4SBeni Lev __entry->action_code = action_code; 180714e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 180814e8a3c4SBeni Lev __entry->status_code = status_code; 1809df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 181031fa97c5SArik Nemtsov __entry->initiator = initiator; 181114e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 181214e8a3c4SBeni Lev ), 1813ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, " 181431fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 181531fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 181614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 181714e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1818df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 181931fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1820df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 182114e8a3c4SBeni Lev ); 182214e8a3c4SBeni Lev 182314e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 1824aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx), 1825aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx), 182614e8a3c4SBeni Lev TP_STRUCT__entry( 182714e8a3c4SBeni Lev WIPHY_ENTRY 182814e8a3c4SBeni Lev NETDEV_ENTRY 182914e8a3c4SBeni Lev __field(int, idx) 183014e8a3c4SBeni Lev ), 183114e8a3c4SBeni Lev TP_fast_assign( 183214e8a3c4SBeni Lev WIPHY_ASSIGN; 183314e8a3c4SBeni Lev NETDEV_ASSIGN; 1834aaaa10e0SJohannes Berg __entry->idx = _idx; 183514e8a3c4SBeni Lev ), 1836ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 183714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 183814e8a3c4SBeni Lev ); 183914e8a3c4SBeni Lev 184014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 184114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 184214e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 184314e8a3c4SBeni Lev TP_STRUCT__entry( 184414e8a3c4SBeni Lev WIPHY_ENTRY 184514e8a3c4SBeni Lev CHAN_ENTRY 184614e8a3c4SBeni Lev __field(int, ret) 18474ed20bebSJohannes Berg __field(u64, time) 18484ed20bebSJohannes Berg __field(u64, time_busy) 18494ed20bebSJohannes Berg __field(u64, time_ext_busy) 18504ed20bebSJohannes Berg __field(u64, time_rx) 18514ed20bebSJohannes Berg __field(u64, time_tx) 1852052536abSJohannes Berg __field(u64, time_scan) 185314e8a3c4SBeni Lev __field(u32, filled) 185414e8a3c4SBeni Lev __field(s8, noise) 185514e8a3c4SBeni Lev ), 185614e8a3c4SBeni Lev TP_fast_assign( 185714e8a3c4SBeni Lev WIPHY_ASSIGN; 185814e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 185914e8a3c4SBeni Lev __entry->ret = ret; 18604ed20bebSJohannes Berg __entry->time = info->time; 18614ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 18624ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 18634ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 18644ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1865052536abSJohannes Berg __entry->time_scan = info->time_scan; 186614e8a3c4SBeni Lev __entry->filled = info->filled; 186714e8a3c4SBeni Lev __entry->noise = info->noise; 186814e8a3c4SBeni Lev ), 186914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 187014e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 187114e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1872052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 187314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 18744ed20bebSJohannes Berg __entry->time, __entry->time_busy, 18754ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1876052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1877052536abSJohannes Berg __entry->filled, __entry->noise) 187814e8a3c4SBeni Lev ); 187914e8a3c4SBeni Lev 188014e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 188114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 188214e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 188314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 188414e8a3c4SBeni Lev TP_STRUCT__entry( 188514e8a3c4SBeni Lev WIPHY_ENTRY 188614e8a3c4SBeni Lev NETDEV_ENTRY 188714e8a3c4SBeni Lev MAC_ENTRY(peer) 188814e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 188914e8a3c4SBeni Lev ), 189014e8a3c4SBeni Lev TP_fast_assign( 189114e8a3c4SBeni Lev WIPHY_ASSIGN; 189214e8a3c4SBeni Lev NETDEV_ASSIGN; 189314e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 189414e8a3c4SBeni Lev __entry->oper = oper; 189514e8a3c4SBeni Lev ), 1896ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d", 189714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper) 189814e8a3c4SBeni Lev ); 189914e8a3c4SBeni Lev 190014e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 190114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 190214e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 190314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 190414e8a3c4SBeni Lev TP_STRUCT__entry( 190514e8a3c4SBeni Lev WIPHY_ENTRY 190614e8a3c4SBeni Lev NETDEV_ENTRY 190714e8a3c4SBeni Lev MAC_ENTRY(bssid) 190814e8a3c4SBeni Lev ), 190914e8a3c4SBeni Lev TP_fast_assign( 191014e8a3c4SBeni Lev WIPHY_ASSIGN; 191114e8a3c4SBeni Lev NETDEV_ASSIGN; 191214e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 191314e8a3c4SBeni Lev ), 1914ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT, 191514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid)) 191614e8a3c4SBeni Lev ); 191714e8a3c4SBeni Lev 191814e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 191914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192014e8a3c4SBeni Lev const u8 *peer), 192114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 192214e8a3c4SBeni Lev TP_STRUCT__entry( 192314e8a3c4SBeni Lev WIPHY_ENTRY 192414e8a3c4SBeni Lev NETDEV_ENTRY 192514e8a3c4SBeni Lev MAC_ENTRY(peer) 192614e8a3c4SBeni Lev ), 192714e8a3c4SBeni Lev TP_fast_assign( 192814e8a3c4SBeni Lev WIPHY_ASSIGN; 192914e8a3c4SBeni Lev NETDEV_ASSIGN; 193014e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 193114e8a3c4SBeni Lev ), 1932ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 193314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 193414e8a3c4SBeni Lev ); 193514e8a3c4SBeni Lev 193614e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 193714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 193814e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 193914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 194014e8a3c4SBeni Lev ); 194114e8a3c4SBeni Lev 194214e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 194314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 194414e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 194514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 194614e8a3c4SBeni Lev ); 194714e8a3c4SBeni Lev 194814e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 194914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 195014e8a3c4SBeni Lev struct ieee80211_channel *chan, 195142d97a59SJohannes Berg unsigned int duration), 195242d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 195314e8a3c4SBeni Lev TP_STRUCT__entry( 195414e8a3c4SBeni Lev WIPHY_ENTRY 195514e8a3c4SBeni Lev WDEV_ENTRY 195614e8a3c4SBeni Lev CHAN_ENTRY 195714e8a3c4SBeni Lev __field(unsigned int, duration) 195814e8a3c4SBeni Lev ), 195914e8a3c4SBeni Lev TP_fast_assign( 196014e8a3c4SBeni Lev WIPHY_ASSIGN; 196114e8a3c4SBeni Lev WDEV_ASSIGN; 196214e8a3c4SBeni Lev CHAN_ASSIGN(chan); 196314e8a3c4SBeni Lev __entry->duration = duration; 196414e8a3c4SBeni Lev ), 1965ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 196642d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 196714e8a3c4SBeni Lev ); 196814e8a3c4SBeni Lev 196914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 197014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 197114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 197214e8a3c4SBeni Lev TP_STRUCT__entry( 197314e8a3c4SBeni Lev WIPHY_ENTRY 197414e8a3c4SBeni Lev __field(int, ret) 197514e8a3c4SBeni Lev __field(u64, cookie) 197614e8a3c4SBeni Lev ), 197714e8a3c4SBeni Lev TP_fast_assign( 197814e8a3c4SBeni Lev WIPHY_ASSIGN; 197914e8a3c4SBeni Lev __entry->ret = ret; 198014e8a3c4SBeni Lev __entry->cookie = cookie; 198114e8a3c4SBeni Lev ), 198214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 198314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 198414e8a3c4SBeni Lev ); 198514e8a3c4SBeni Lev 198614e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 198714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 198814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 198914e8a3c4SBeni Lev TP_STRUCT__entry( 199014e8a3c4SBeni Lev WIPHY_ENTRY 199114e8a3c4SBeni Lev WDEV_ENTRY 199214e8a3c4SBeni Lev __field(u64, cookie) 199314e8a3c4SBeni Lev ), 199414e8a3c4SBeni Lev TP_fast_assign( 199514e8a3c4SBeni Lev WIPHY_ASSIGN; 199614e8a3c4SBeni Lev WDEV_ASSIGN; 199714e8a3c4SBeni Lev __entry->cookie = cookie; 199814e8a3c4SBeni Lev ), 1999ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 200014e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 200114e8a3c4SBeni Lev ); 200214e8a3c4SBeni Lev 200314e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 200414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2005b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 2006b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 200714e8a3c4SBeni Lev TP_STRUCT__entry( 200814e8a3c4SBeni Lev WIPHY_ENTRY 200914e8a3c4SBeni Lev WDEV_ENTRY 201014e8a3c4SBeni Lev CHAN_ENTRY 201114e8a3c4SBeni Lev __field(bool, offchan) 201214e8a3c4SBeni Lev __field(unsigned int, wait) 201314e8a3c4SBeni Lev __field(bool, no_cck) 201414e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 201514e8a3c4SBeni Lev ), 201614e8a3c4SBeni Lev TP_fast_assign( 201714e8a3c4SBeni Lev WIPHY_ASSIGN; 201814e8a3c4SBeni Lev WDEV_ASSIGN; 2019b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 2020b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 2021b176e629SAndrei Otcheretianski __entry->wait = params->wait; 2022b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 2023b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 202414e8a3c4SBeni Lev ), 2025ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 202642d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 202714e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 202842d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 202914e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 203014e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 203114e8a3c4SBeni Lev ); 203214e8a3c4SBeni Lev 20332576a9acSDenis Kenzior TRACE_EVENT(rdev_tx_control_port, 20342576a9acSDenis Kenzior TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20358d74a623SJohannes Berg const u8 *buf, size_t len, const u8 *dest, __be16 proto, 203667207babSAndrei Otcheretianski bool unencrypted, int link_id), 203767207babSAndrei Otcheretianski TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted, link_id), 20382576a9acSDenis Kenzior TP_STRUCT__entry( 20392576a9acSDenis Kenzior WIPHY_ENTRY 20402576a9acSDenis Kenzior NETDEV_ENTRY 20412576a9acSDenis Kenzior MAC_ENTRY(dest) 20428d74a623SJohannes Berg __field(__be16, proto) 20432576a9acSDenis Kenzior __field(bool, unencrypted) 204467207babSAndrei Otcheretianski __field(int, link_id) 20452576a9acSDenis Kenzior ), 20462576a9acSDenis Kenzior TP_fast_assign( 20472576a9acSDenis Kenzior WIPHY_ASSIGN; 20482576a9acSDenis Kenzior NETDEV_ASSIGN; 20492576a9acSDenis Kenzior MAC_ASSIGN(dest, dest); 20508d74a623SJohannes Berg __entry->proto = proto; 20512576a9acSDenis Kenzior __entry->unencrypted = unencrypted; 205267207babSAndrei Otcheretianski __entry->link_id = link_id; 20532576a9acSDenis Kenzior ), 20548d74a623SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT "," 205567207babSAndrei Otcheretianski " proto: 0x%x, unencrypted: %s, link: %d", 20568d74a623SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest), 20578d74a623SJohannes Berg be16_to_cpu(__entry->proto), 205867207babSAndrei Otcheretianski BOOL_TO_STR(__entry->unencrypted), 205967207babSAndrei Otcheretianski __entry->link_id) 20602576a9acSDenis Kenzior ); 20612576a9acSDenis Kenzior 206214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 206314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 206414e8a3c4SBeni Lev u16 noack_map), 206514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 206614e8a3c4SBeni Lev TP_STRUCT__entry( 206714e8a3c4SBeni Lev WIPHY_ENTRY 206814e8a3c4SBeni Lev NETDEV_ENTRY 206914e8a3c4SBeni Lev __field(u16, noack_map) 207014e8a3c4SBeni Lev ), 207114e8a3c4SBeni Lev TP_fast_assign( 207214e8a3c4SBeni Lev WIPHY_ASSIGN; 207314e8a3c4SBeni Lev NETDEV_ASSIGN; 207414e8a3c4SBeni Lev __entry->noack_map = noack_map; 207514e8a3c4SBeni Lev ), 2076ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 207714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 207814e8a3c4SBeni Lev ); 207914e8a3c4SBeni Lev 2080f2a0290bSJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_link_evt, 20817b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 20827b0a0e3cSJohannes Berg unsigned int link_id), 20837b0a0e3cSJohannes Berg TP_ARGS(wiphy, wdev, link_id), 20847b0a0e3cSJohannes Berg TP_STRUCT__entry( 20857b0a0e3cSJohannes Berg WIPHY_ENTRY 20867b0a0e3cSJohannes Berg WDEV_ENTRY 20877b0a0e3cSJohannes Berg __field(unsigned int, link_id) 20887b0a0e3cSJohannes Berg ), 20897b0a0e3cSJohannes Berg TP_fast_assign( 20907b0a0e3cSJohannes Berg WIPHY_ASSIGN; 20917b0a0e3cSJohannes Berg WDEV_ASSIGN; 20927b0a0e3cSJohannes Berg __entry->link_id = link_id; 20937b0a0e3cSJohannes Berg ), 20947b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", 20957b0a0e3cSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) 209614e8a3c4SBeni Lev ); 209714e8a3c4SBeni Lev 2098f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel, 2099f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2100f2a0290bSJohannes Berg unsigned int link_id), 2101f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2102f2a0290bSJohannes Berg ); 2103f2a0290bSJohannes Berg 2104683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2105683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2106683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2107683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 210814e8a3c4SBeni Lev TP_STRUCT__entry( 210914e8a3c4SBeni Lev WIPHY_ENTRY 2110683b6d3bSJohannes Berg __field(int, ret) 2111683b6d3bSJohannes Berg CHAN_DEF_ENTRY 211214e8a3c4SBeni Lev ), 211314e8a3c4SBeni Lev TP_fast_assign( 211414e8a3c4SBeni Lev WIPHY_ASSIGN; 2115683b6d3bSJohannes Berg if (ret == 0) 2116683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2117683b6d3bSJohannes Berg else 2118683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2119683b6d3bSJohannes Berg __entry->ret = ret; 212014e8a3c4SBeni Lev ), 2121ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2122683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 212314e8a3c4SBeni Lev ); 212414e8a3c4SBeni Lev 2125eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2126eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2127eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2128eeb126e9SJohannes Berg ); 2129eeb126e9SJohannes Berg 2130eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2131eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2132eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2133eeb126e9SJohannes Berg ); 2134eeb126e9SJohannes Berg 2135cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2136cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2137cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2138cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2139cb3b7d87SAyala Beker TP_STRUCT__entry( 2140cb3b7d87SAyala Beker WIPHY_ENTRY 2141cb3b7d87SAyala Beker WDEV_ENTRY 2142cb3b7d87SAyala Beker __field(u8, master_pref) 214304ae87a5SPeter Zijlstra __field(u8, bands) 2144cb3b7d87SAyala Beker ), 2145cb3b7d87SAyala Beker TP_fast_assign( 2146cb3b7d87SAyala Beker WIPHY_ASSIGN; 2147cb3b7d87SAyala Beker WDEV_ASSIGN; 2148cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 21498585989dSLuca Coelho __entry->bands = conf->bands; 2150cb3b7d87SAyala Beker ), 2151cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21528585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2153cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21548585989dSLuca Coelho __entry->bands) 2155cb3b7d87SAyala Beker ); 2156cb3b7d87SAyala Beker 2157a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2158a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2159a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2160a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2161a5a9dcf2SAyala Beker TP_STRUCT__entry( 2162a5a9dcf2SAyala Beker WIPHY_ENTRY 2163a5a9dcf2SAyala Beker WDEV_ENTRY 2164a5a9dcf2SAyala Beker __field(u8, master_pref) 216504ae87a5SPeter Zijlstra __field(u8, bands) 216604ae87a5SPeter Zijlstra __field(u32, changes) 2167a5a9dcf2SAyala Beker ), 2168a5a9dcf2SAyala Beker TP_fast_assign( 2169a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2170a5a9dcf2SAyala Beker WDEV_ASSIGN; 2171a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21728585989dSLuca Coelho __entry->bands = conf->bands; 2173a5a9dcf2SAyala Beker __entry->changes = changes; 2174a5a9dcf2SAyala Beker ), 2175a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21768585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2177a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21788585989dSLuca Coelho __entry->bands, __entry->changes) 2179a5a9dcf2SAyala Beker ); 2180a5a9dcf2SAyala Beker 2181cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2182cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2183cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2184cb3b7d87SAyala Beker ); 2185cb3b7d87SAyala Beker 2186a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2187a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2188a442b761SAyala Beker const struct cfg80211_nan_func *func), 2189a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2190a442b761SAyala Beker TP_STRUCT__entry( 2191a442b761SAyala Beker WIPHY_ENTRY 2192a442b761SAyala Beker WDEV_ENTRY 2193a442b761SAyala Beker __field(u8, func_type) 2194a442b761SAyala Beker __field(u64, cookie) 2195a442b761SAyala Beker ), 2196a442b761SAyala Beker TP_fast_assign( 2197a442b761SAyala Beker WIPHY_ASSIGN; 2198a442b761SAyala Beker WDEV_ASSIGN; 2199a442b761SAyala Beker __entry->func_type = func->type; 2200a442b761SAyala Beker __entry->cookie = func->cookie 2201a442b761SAyala Beker ), 2202a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2203a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2204a442b761SAyala Beker __entry->cookie) 2205a442b761SAyala Beker ); 2206a442b761SAyala Beker 2207a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2208a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2209a442b761SAyala Beker u64 cookie), 2210a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2211a442b761SAyala Beker TP_STRUCT__entry( 2212a442b761SAyala Beker WIPHY_ENTRY 2213a442b761SAyala Beker WDEV_ENTRY 2214a442b761SAyala Beker __field(u64, cookie) 2215a442b761SAyala Beker ), 2216a442b761SAyala Beker TP_fast_assign( 2217a442b761SAyala Beker WIPHY_ASSIGN; 2218a442b761SAyala Beker WDEV_ASSIGN; 2219a442b761SAyala Beker __entry->cookie = cookie; 2220a442b761SAyala Beker ), 2221a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2222a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2223a442b761SAyala Beker ); 2224a442b761SAyala Beker 222577765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 222677765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 222777765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 222877765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 222977765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 223077765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 223177765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 223277765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 223377765eafSVasanthakumar Thiagarajan ), 223477765eafSVasanthakumar Thiagarajan TP_fast_assign( 223577765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2236021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 223777765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 223877765eafSVasanthakumar Thiagarajan ), 223977765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 224077765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 224177765eafSVasanthakumar Thiagarajan ); 224277765eafSVasanthakumar Thiagarajan 2243355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2244355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2245355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2246355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2247355199e0SJouni Malinen TP_STRUCT__entry( 2248355199e0SJouni Malinen WIPHY_ENTRY 2249355199e0SJouni Malinen NETDEV_ENTRY 2250355199e0SJouni Malinen __field(u16, md) 2251355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2252355199e0SJouni Malinen ), 2253355199e0SJouni Malinen TP_fast_assign( 2254355199e0SJouni Malinen WIPHY_ASSIGN; 2255355199e0SJouni Malinen NETDEV_ASSIGN; 2256355199e0SJouni Malinen __entry->md = ftie->md; 2257355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2258355199e0SJouni Malinen ), 2259355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2260355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2261355199e0SJouni Malinen ); 2262355199e0SJouni Malinen 22635de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22645de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22655de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22665de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22675de17984SArend van Spriel TP_STRUCT__entry( 22685de17984SArend van Spriel WIPHY_ENTRY 22695de17984SArend van Spriel WDEV_ENTRY 22705de17984SArend van Spriel __field(u16, proto) 22715de17984SArend van Spriel __field(u16, duration) 22725de17984SArend van Spriel ), 22735de17984SArend van Spriel TP_fast_assign( 22745de17984SArend van Spriel WIPHY_ASSIGN; 22755de17984SArend van Spriel WDEV_ASSIGN; 22765de17984SArend van Spriel __entry->proto = protocol; 22775de17984SArend van Spriel __entry->duration = duration; 22785de17984SArend van Spriel ), 22795de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22805de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22815de17984SArend van Spriel ); 22825de17984SArend van Spriel 22835de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 22845de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 22855de17984SArend van Spriel TP_ARGS(wiphy, wdev), 22865de17984SArend van Spriel TP_STRUCT__entry( 22875de17984SArend van Spriel WIPHY_ENTRY 22885de17984SArend van Spriel WDEV_ENTRY 22895de17984SArend van Spriel ), 22905de17984SArend van Spriel TP_fast_assign( 22915de17984SArend van Spriel WIPHY_ASSIGN; 22925de17984SArend van Spriel WDEV_ASSIGN; 22935de17984SArend van Spriel ), 22945de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 22955de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 22965de17984SArend van Spriel ); 22975de17984SArend van Spriel 229816ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 229916ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 230016ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 230116ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 230216ef1fe2SSimon Wunderlich TP_STRUCT__entry( 230316ef1fe2SSimon Wunderlich WIPHY_ENTRY 230416ef1fe2SSimon Wunderlich NETDEV_ENTRY 230516ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 230616ef1fe2SSimon Wunderlich __field(bool, radar_required) 230716ef1fe2SSimon Wunderlich __field(bool, block_tx) 230816ef1fe2SSimon Wunderlich __field(u8, count) 23099a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 23109a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 231116ef1fe2SSimon Wunderlich ), 231216ef1fe2SSimon Wunderlich TP_fast_assign( 231316ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 231416ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 231516ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 231616ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 231716ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 231816ef1fe2SSimon Wunderlich __entry->count = params->count; 23199a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 23209a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 23219a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 23229a774c78SAndrei Otcheretianski 23239a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 23249a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 23259a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 23269a774c78SAndrei Otcheretianski params->counter_offsets_presp, 23279a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 232816ef1fe2SSimon Wunderlich ), 232916ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 23309a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 233116ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23329a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 233316ef1fe2SSimon Wunderlich ); 233416ef1fe2SSimon Wunderlich 2335fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2336fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2337fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2338fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2339fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2340fa9ffc74SKyeyoon Park WIPHY_ENTRY 2341fa9ffc74SKyeyoon Park NETDEV_ENTRY 2342fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2343fa9ffc74SKyeyoon Park ), 2344fa9ffc74SKyeyoon Park TP_fast_assign( 2345fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2346fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2347fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2348fa9ffc74SKyeyoon Park ), 2349fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2350fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2351fa9ffc74SKyeyoon Park ); 2352fa9ffc74SKyeyoon Park 2353e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2354e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23557b0a0e3cSJohannes Berg unsigned int link_id, 2356e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 23577b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, chandef), 2358e16821bcSJouni Malinen TP_STRUCT__entry( 2359e16821bcSJouni Malinen WIPHY_ENTRY 2360e16821bcSJouni Malinen NETDEV_ENTRY 2361e16821bcSJouni Malinen CHAN_DEF_ENTRY 23627b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2363e16821bcSJouni Malinen ), 2364e16821bcSJouni Malinen TP_fast_assign( 2365e16821bcSJouni Malinen WIPHY_ASSIGN; 2366e16821bcSJouni Malinen NETDEV_ASSIGN; 2367e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 23687b0a0e3cSJohannes Berg __entry->link_id = link_id; 2369e16821bcSJouni Malinen ), 23707b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 23717b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23727b0a0e3cSJohannes Berg __entry->link_id) 2373e16821bcSJouni Malinen ); 2374e16821bcSJouni Malinen 2375960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2376960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2377960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2378960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2379960d01acSJohannes Berg TP_STRUCT__entry( 2380960d01acSJohannes Berg WIPHY_ENTRY 2381960d01acSJohannes Berg NETDEV_ENTRY 2382960d01acSJohannes Berg MAC_ENTRY(peer) 2383960d01acSJohannes Berg __field(u8, tsid) 2384960d01acSJohannes Berg __field(u8, user_prio) 2385960d01acSJohannes Berg __field(u16, admitted_time) 2386960d01acSJohannes Berg ), 2387960d01acSJohannes Berg TP_fast_assign( 2388960d01acSJohannes Berg WIPHY_ASSIGN; 2389960d01acSJohannes Berg NETDEV_ASSIGN; 2390960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2391960d01acSJohannes Berg __entry->tsid = tsid; 2392960d01acSJohannes Berg __entry->user_prio = user_prio; 2393960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2394960d01acSJohannes Berg ), 2395960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2396960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2397960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2398960d01acSJohannes Berg ); 2399960d01acSJohannes Berg 2400960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2401960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2402960d01acSJohannes Berg u8 tsid, const u8 *peer), 2403960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2404960d01acSJohannes Berg TP_STRUCT__entry( 2405960d01acSJohannes Berg WIPHY_ENTRY 2406960d01acSJohannes Berg NETDEV_ENTRY 2407960d01acSJohannes Berg MAC_ENTRY(peer) 2408960d01acSJohannes Berg __field(u8, tsid) 2409960d01acSJohannes Berg ), 2410960d01acSJohannes Berg TP_fast_assign( 2411960d01acSJohannes Berg WIPHY_ASSIGN; 2412960d01acSJohannes Berg NETDEV_ASSIGN; 2413960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2414960d01acSJohannes Berg __entry->tsid = tsid; 2415960d01acSJohannes Berg ), 2416960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2417960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2418960d01acSJohannes Berg ); 2419960d01acSJohannes Berg 24201057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 24211057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24221057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 24231057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 24241057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 24251057d35eSArik Nemtsov TP_STRUCT__entry( 24261057d35eSArik Nemtsov WIPHY_ENTRY 24271057d35eSArik Nemtsov NETDEV_ENTRY 24281057d35eSArik Nemtsov MAC_ENTRY(addr) 24291057d35eSArik Nemtsov __field(u8, oper_class) 24301057d35eSArik Nemtsov CHAN_DEF_ENTRY 24311057d35eSArik Nemtsov ), 24321057d35eSArik Nemtsov TP_fast_assign( 24331057d35eSArik Nemtsov WIPHY_ASSIGN; 24341057d35eSArik Nemtsov NETDEV_ASSIGN; 24351057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24361057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 24371057d35eSArik Nemtsov ), 24381057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24391057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 24401057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 24411057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 24421057d35eSArik Nemtsov ); 24431057d35eSArik Nemtsov 24441057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 24451057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24461057d35eSArik Nemtsov const u8 *addr), 24471057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 24481057d35eSArik Nemtsov TP_STRUCT__entry( 24491057d35eSArik Nemtsov WIPHY_ENTRY 24501057d35eSArik Nemtsov NETDEV_ENTRY 24511057d35eSArik Nemtsov MAC_ENTRY(addr) 24521057d35eSArik Nemtsov ), 24531057d35eSArik Nemtsov TP_fast_assign( 24541057d35eSArik Nemtsov WIPHY_ASSIGN; 24551057d35eSArik Nemtsov NETDEV_ASSIGN; 24561057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24571057d35eSArik Nemtsov ), 24581057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 24591057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24601057d35eSArik Nemtsov ); 24611057d35eSArik Nemtsov 24623a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24633a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24643a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24653a00df57SAvraham Stern 24663a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24673a00df57SAvraham Stern 24683a00df57SAvraham Stern TP_STRUCT__entry( 24693a00df57SAvraham Stern WIPHY_ENTRY 24703a00df57SAvraham Stern NETDEV_ENTRY 24713a00df57SAvraham Stern MAC_ENTRY(aa) 24723a00df57SAvraham Stern __field(u8, pmk_len) 24733a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24743a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24753a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24763a00df57SAvraham Stern ), 24773a00df57SAvraham Stern 24783a00df57SAvraham Stern TP_fast_assign( 24793a00df57SAvraham Stern WIPHY_ASSIGN; 24803a00df57SAvraham Stern NETDEV_ASSIGN; 24813a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24823a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24833a00df57SAvraham Stern __entry->pmk_r0_name_len = 24843a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 24853a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 24863a00df57SAvraham Stern pmk_conf->pmk_len); 24873a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 24883a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 24893a00df57SAvraham Stern ), 24903a00df57SAvraham Stern 24913a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 24923a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 24933a00df57SAvraham Stern NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len, 24943a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 24953a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 24963a00df57SAvraham Stern __entry->pmk_r0_name_len ? 24973a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 24983a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 24993a00df57SAvraham Stern ); 25003a00df57SAvraham Stern 25013a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 25023a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 25033a00df57SAvraham Stern 25043a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 25053a00df57SAvraham Stern 25063a00df57SAvraham Stern TP_STRUCT__entry( 25073a00df57SAvraham Stern WIPHY_ENTRY 25083a00df57SAvraham Stern NETDEV_ENTRY 25093a00df57SAvraham Stern MAC_ENTRY(aa) 25103a00df57SAvraham Stern ), 25113a00df57SAvraham Stern 25123a00df57SAvraham Stern TP_fast_assign( 25133a00df57SAvraham Stern WIPHY_ASSIGN; 25143a00df57SAvraham Stern NETDEV_ASSIGN; 25153a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 25163a00df57SAvraham Stern ), 25173a00df57SAvraham Stern 25183a00df57SAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 25193a00df57SAvraham Stern WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa)) 25203a00df57SAvraham Stern ); 25213a00df57SAvraham Stern 252240cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 252340cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 252440cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 252540cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 252640cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 252740cbfa90SSrinivas Dasari NETDEV_ENTRY 252840cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 252940cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 253040cbfa90SSrinivas Dasari __field(u16, status) 253140cbfa90SSrinivas Dasari ), 253240cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 253340cbfa90SSrinivas Dasari NETDEV_ASSIGN; 253440cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 253540cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 253640cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 253740cbfa90SSrinivas Dasari params->ssid.ssid_len); 253840cbfa90SSrinivas Dasari __entry->status = params->status; 253940cbfa90SSrinivas Dasari ), 254040cbfa90SSrinivas Dasari TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 254140cbfa90SSrinivas Dasari ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 254240cbfa90SSrinivas Dasari __entry->bssid, __entry->ssid, __entry->status) 254340cbfa90SSrinivas Dasari ); 254440cbfa90SSrinivas Dasari 25455207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 25465207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25475207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 25485207ca55SJohannes Berg u32 cac_time_ms), 25495207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 25505207ca55SJohannes Berg TP_STRUCT__entry( 25515207ca55SJohannes Berg WIPHY_ENTRY 25525207ca55SJohannes Berg NETDEV_ENTRY 25535207ca55SJohannes Berg CHAN_DEF_ENTRY 25545207ca55SJohannes Berg __field(u32, cac_time_ms) 25555207ca55SJohannes Berg ), 25565207ca55SJohannes Berg TP_fast_assign( 25575207ca55SJohannes Berg WIPHY_ASSIGN; 25585207ca55SJohannes Berg NETDEV_ASSIGN; 25595207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25605207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25615207ca55SJohannes Berg ), 25625207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25635207ca55SJohannes Berg ", cac_time_ms=%u", 25645207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25655207ca55SJohannes Berg __entry->cac_time_ms) 25665207ca55SJohannes Berg ); 25675207ca55SJohannes Berg 25685207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25695207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25705207ca55SJohannes Berg int *mcast_rate), 25715207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25725207ca55SJohannes Berg TP_STRUCT__entry( 25735207ca55SJohannes Berg WIPHY_ENTRY 25745207ca55SJohannes Berg NETDEV_ENTRY 25755207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25765207ca55SJohannes Berg ), 25775207ca55SJohannes Berg TP_fast_assign( 25785207ca55SJohannes Berg WIPHY_ASSIGN; 25795207ca55SJohannes Berg NETDEV_ASSIGN; 25805207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 25815207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 25825207ca55SJohannes Berg ), 25835207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2584e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 25855207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25865207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 25875207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2588e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 25895207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 25905207ca55SJohannes Berg ); 25915207ca55SJohannes Berg 25925207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 25935207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 25945207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 25955207ca55SJohannes Berg TP_STRUCT__entry( 25965207ca55SJohannes Berg WIPHY_ENTRY 25975207ca55SJohannes Berg __field(int, n_rules) 25985207ca55SJohannes Berg ), 25995207ca55SJohannes Berg TP_fast_assign( 26005207ca55SJohannes Berg WIPHY_ASSIGN; 26015207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 26025207ca55SJohannes Berg ), 26035207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 26045207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 26055207ca55SJohannes Berg ); 26065207ca55SJohannes Berg 26075207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 26085207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26095207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26105207ca55SJohannes Berg ); 26115207ca55SJohannes Berg 26125207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 26135207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26145207ca55SJohannes Berg const bool enabled), 26155207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 26165207ca55SJohannes Berg TP_STRUCT__entry( 26175207ca55SJohannes Berg WIPHY_ENTRY 26185207ca55SJohannes Berg NETDEV_ENTRY 26195207ca55SJohannes Berg __field(bool, enabled) 26205207ca55SJohannes Berg ), 26215207ca55SJohannes Berg TP_fast_assign( 26225207ca55SJohannes Berg WIPHY_ASSIGN; 26235207ca55SJohannes Berg NETDEV_ASSIGN; 26245207ca55SJohannes Berg __entry->enabled = enabled; 26255207ca55SJohannes Berg ), 26265207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 26275207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26285207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 26295207ca55SJohannes Berg ); 26305207ca55SJohannes Berg 26315207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 26325207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26335207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26345207ca55SJohannes Berg ); 26355207ca55SJohannes Berg 26365207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 26375207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26385207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 26395207ca55SJohannes Berg 26405207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 26415207ca55SJohannes Berg 26425207ca55SJohannes Berg TP_STRUCT__entry( 26435207ca55SJohannes Berg WIPHY_ENTRY 26445207ca55SJohannes Berg NETDEV_ENTRY 26455207ca55SJohannes Berg __field(u64, timestamp) 26465207ca55SJohannes Berg __field(u32, success_num) 26475207ca55SJohannes Berg __field(u32, partial_num) 26485207ca55SJohannes Berg __field(u32, failed_num) 26495207ca55SJohannes Berg __field(u32, asap_num) 26505207ca55SJohannes Berg __field(u32, non_asap_num) 26515207ca55SJohannes Berg __field(u64, duration) 26525207ca55SJohannes Berg __field(u32, unknown_triggers) 26535207ca55SJohannes Berg __field(u32, reschedule) 26545207ca55SJohannes Berg __field(u32, out_of_window) 26555207ca55SJohannes Berg ), 26565207ca55SJohannes Berg 26575207ca55SJohannes Berg TP_fast_assign( 26585207ca55SJohannes Berg WIPHY_ASSIGN; 26595207ca55SJohannes Berg NETDEV_ASSIGN; 26605207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26615207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26625207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26635207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26645207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26655207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26665207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26675207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26685207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26695207ca55SJohannes Berg ), 26705207ca55SJohannes Berg 26715207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26725207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26735207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26745207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26755207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26765207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26775207ca55SJohannes Berg __entry->out_of_window) 26785207ca55SJohannes Berg ); 26795207ca55SJohannes Berg 26809bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 26819bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26829bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26839bb7e0f2SJohannes Berg ); 26849bb7e0f2SJohannes Berg 26859bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 26869bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26879bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26889bb7e0f2SJohannes Berg ); 26899bb7e0f2SJohannes Berg 2690e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2691e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2692e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2693e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2694e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2695e306784aSSubrat Mishra NETDEV_ENTRY 2696e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2697e306784aSSubrat Mishra __field(u8, kek_len) 2698e306784aSSubrat Mishra ), 2699e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2700e306784aSSubrat Mishra NETDEV_ASSIGN; 2701e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2702e306784aSSubrat Mishra ), 2703e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2704e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2705e306784aSSubrat Mishra __entry->kek_len) 2706e306784aSSubrat Mishra ); 2707e306784aSSubrat Mishra 2708c8a11ed5SJohannes Berg TRACE_EVENT(rdev_update_owe_info, 2709c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2710c8a11ed5SJohannes Berg struct cfg80211_update_owe_info *owe_info), 2711c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, owe_info), 2712c8a11ed5SJohannes Berg TP_STRUCT__entry(WIPHY_ENTRY 2713c8a11ed5SJohannes Berg NETDEV_ENTRY 2714c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2715c8a11ed5SJohannes Berg __field(u16, status) 2716c8a11ed5SJohannes Berg __dynamic_array(u8, ie, owe_info->ie_len)), 2717c8a11ed5SJohannes Berg TP_fast_assign(WIPHY_ASSIGN; 2718c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2719c8a11ed5SJohannes Berg MAC_ASSIGN(peer, owe_info->peer); 2720c8a11ed5SJohannes Berg __entry->status = owe_info->status; 2721c8a11ed5SJohannes Berg memcpy(__get_dynamic_array(ie), 2722c8a11ed5SJohannes Berg owe_info->ie, owe_info->ie_len);), 2723c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT 2724c8a11ed5SJohannes Berg " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2725c8a11ed5SJohannes Berg __entry->status) 2726c8a11ed5SJohannes Berg ); 2727c8a11ed5SJohannes Berg 2728c8a11ed5SJohannes Berg TRACE_EVENT(rdev_probe_mesh_link, 2729c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2730c8a11ed5SJohannes Berg const u8 *dest, const u8 *buf, size_t len), 2731c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, dest, buf, len), 2732c8a11ed5SJohannes Berg TP_STRUCT__entry( 2733c8a11ed5SJohannes Berg WIPHY_ENTRY 2734c8a11ed5SJohannes Berg NETDEV_ENTRY 2735c8a11ed5SJohannes Berg MAC_ENTRY(dest) 2736c8a11ed5SJohannes Berg ), 2737c8a11ed5SJohannes Berg TP_fast_assign( 2738c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2739c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2740c8a11ed5SJohannes Berg MAC_ASSIGN(dest, dest); 2741c8a11ed5SJohannes Berg ), 2742c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 2743c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest)) 2744c8a11ed5SJohannes Berg ); 2745c8a11ed5SJohannes Berg 2746c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_tid_config, 2747c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2748c8a11ed5SJohannes Berg struct cfg80211_tid_config *tid_conf), 2749c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, tid_conf), 2750c8a11ed5SJohannes Berg TP_STRUCT__entry( 2751c8a11ed5SJohannes Berg WIPHY_ENTRY 2752c8a11ed5SJohannes Berg NETDEV_ENTRY 2753c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2754c8a11ed5SJohannes Berg ), 2755c8a11ed5SJohannes Berg TP_fast_assign( 2756c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2757c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2758c8a11ed5SJohannes Berg MAC_ASSIGN(peer, tid_conf->peer); 2759c8a11ed5SJohannes Berg ), 2760c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 2761c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 2762c8a11ed5SJohannes Berg ); 2763c8a11ed5SJohannes Berg 2764c8a11ed5SJohannes Berg TRACE_EVENT(rdev_reset_tid_config, 2765c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2766c8a11ed5SJohannes Berg const u8 *peer, u8 tids), 2767c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 2768c8a11ed5SJohannes Berg TP_STRUCT__entry( 2769c8a11ed5SJohannes Berg WIPHY_ENTRY 2770c8a11ed5SJohannes Berg NETDEV_ENTRY 2771c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2772c8a11ed5SJohannes Berg __field(u8, tids) 2773c8a11ed5SJohannes Berg ), 2774c8a11ed5SJohannes Berg TP_fast_assign( 2775c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2776c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2777c8a11ed5SJohannes Berg MAC_ASSIGN(peer, peer); 2778c8a11ed5SJohannes Berg __entry->tids = tids; 2779c8a11ed5SJohannes Berg ), 2780c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x", 2781c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids) 2782c8a11ed5SJohannes Berg ); 2783c8a11ed5SJohannes Berg 2784c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_sar_specs, 2785c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 2786c8a11ed5SJohannes Berg TP_ARGS(wiphy, sar), 2787c8a11ed5SJohannes Berg TP_STRUCT__entry( 2788c8a11ed5SJohannes Berg WIPHY_ENTRY 2789c8a11ed5SJohannes Berg __field(u16, type) 2790c8a11ed5SJohannes Berg __field(u16, num) 2791c8a11ed5SJohannes Berg ), 2792c8a11ed5SJohannes Berg TP_fast_assign( 2793c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2794c8a11ed5SJohannes Berg __entry->type = sar->type; 2795c8a11ed5SJohannes Berg __entry->num = sar->num_sub_specs; 2796c8a11ed5SJohannes Berg 2797c8a11ed5SJohannes Berg ), 2798c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 2799c8a11ed5SJohannes Berg WIPHY_PR_ARG, __entry->type, __entry->num) 2800c8a11ed5SJohannes Berg ); 2801c8a11ed5SJohannes Berg 2802c8a11ed5SJohannes Berg TRACE_EVENT(rdev_color_change, 2803c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2804c8a11ed5SJohannes Berg struct cfg80211_color_change_settings *params), 2805c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, params), 2806c8a11ed5SJohannes Berg TP_STRUCT__entry( 2807c8a11ed5SJohannes Berg WIPHY_ENTRY 2808c8a11ed5SJohannes Berg NETDEV_ENTRY 2809c8a11ed5SJohannes Berg __field(u8, count) 2810c8a11ed5SJohannes Berg __field(u16, bcn_ofs) 2811c8a11ed5SJohannes Berg __field(u16, pres_ofs) 2812c8a11ed5SJohannes Berg ), 2813c8a11ed5SJohannes Berg TP_fast_assign( 2814c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2815c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2816c8a11ed5SJohannes Berg __entry->count = params->count; 2817c8a11ed5SJohannes Berg __entry->bcn_ofs = params->counter_offset_beacon; 2818c8a11ed5SJohannes Berg __entry->pres_ofs = params->counter_offset_presp; 2819c8a11ed5SJohannes Berg ), 2820c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 2821c8a11ed5SJohannes Berg ", count: %u", 2822c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 2823c8a11ed5SJohannes Berg __entry->count) 2824c8a11ed5SJohannes Berg ); 2825c8a11ed5SJohannes Berg 2826c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_radar_background, 2827c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 2828c8a11ed5SJohannes Berg 2829c8a11ed5SJohannes Berg TP_ARGS(wiphy, chandef), 2830c8a11ed5SJohannes Berg 2831c8a11ed5SJohannes Berg TP_STRUCT__entry( 2832c8a11ed5SJohannes Berg WIPHY_ENTRY 2833c8a11ed5SJohannes Berg CHAN_DEF_ENTRY 2834c8a11ed5SJohannes Berg ), 2835c8a11ed5SJohannes Berg 2836c8a11ed5SJohannes Berg TP_fast_assign( 2837c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2838c8a11ed5SJohannes Berg CHAN_DEF_ASSIGN(chandef) 2839c8a11ed5SJohannes Berg ), 2840c8a11ed5SJohannes Berg 2841c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 2842c8a11ed5SJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 2843c8a11ed5SJohannes Berg ); 2844c8a11ed5SJohannes Berg 2845f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link, 2846f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2847f2a0290bSJohannes Berg unsigned int link_id), 2848f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2849f2a0290bSJohannes Berg ); 2850f2a0290bSJohannes Berg 2851f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link, 2852f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2853f2a0290bSJohannes Berg unsigned int link_id), 2854f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2855f2a0290bSJohannes Berg ); 2856f2a0290bSJohannes Berg 28574ee3e063SBeni Lev /************************************************************* 28584ee3e063SBeni Lev * cfg80211 exported functions traces * 28594ee3e063SBeni Lev *************************************************************/ 28604ee3e063SBeni Lev 28614ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 28624ee3e063SBeni Lev TP_PROTO(bool ret), 28634ee3e063SBeni Lev TP_ARGS(ret), 28644ee3e063SBeni Lev TP_STRUCT__entry( 28654ee3e063SBeni Lev __field(bool, ret) 28664ee3e063SBeni Lev ), 28674ee3e063SBeni Lev TP_fast_assign( 28684ee3e063SBeni Lev __entry->ret = ret; 28694ee3e063SBeni Lev ), 28704ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 28714ee3e063SBeni Lev ); 28724ee3e063SBeni Lev 28734ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 28744ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28754ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 28764ee3e063SBeni Lev TP_STRUCT__entry( 28774ee3e063SBeni Lev NETDEV_ENTRY 28784ee3e063SBeni Lev MAC_ENTRY(macaddr) 28794ee3e063SBeni Lev ), 28804ee3e063SBeni Lev TP_fast_assign( 28814ee3e063SBeni Lev NETDEV_ASSIGN; 28824ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 28834ee3e063SBeni Lev ), 28844ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 28854ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 28864ee3e063SBeni Lev ); 28874ee3e063SBeni Lev 28884ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 28894ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28904ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 28914ee3e063SBeni Lev ); 28924ee3e063SBeni Lev 28934ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 28944ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28954ee3e063SBeni Lev TP_ARGS(netdev), 28964ee3e063SBeni Lev TP_STRUCT__entry( 28974ee3e063SBeni Lev NETDEV_ENTRY 28984ee3e063SBeni Lev ), 28994ee3e063SBeni Lev TP_fast_assign( 29004ee3e063SBeni Lev NETDEV_ASSIGN; 29014ee3e063SBeni Lev ), 29024ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 29034ee3e063SBeni Lev ); 29044ee3e063SBeni Lev 29054ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 29064ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 29074ee3e063SBeni Lev TP_ARGS(netdev) 29084ee3e063SBeni Lev ); 29094ee3e063SBeni Lev 29104ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 29115cd212cbSJohannes Berg TP_PROTO(struct net_device *netdev, 29125cd212cbSJohannes Berg struct cfg80211_rx_assoc_resp *data), 29135cd212cbSJohannes Berg TP_ARGS(netdev, data), 29144ee3e063SBeni Lev TP_STRUCT__entry( 29154ee3e063SBeni Lev NETDEV_ENTRY 29165cd212cbSJohannes Berg MAC_ENTRY(ap_addr) 29174ee3e063SBeni Lev ), 29184ee3e063SBeni Lev TP_fast_assign( 29194ee3e063SBeni Lev NETDEV_ASSIGN; 29205cd212cbSJohannes Berg MAC_ASSIGN(ap_addr, 29215cd212cbSJohannes Berg data->ap_mld_addr ?: data->links[0].bss->bssid); 29224ee3e063SBeni Lev ), 29235cd212cbSJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 29245cd212cbSJohannes Berg NETDEV_PR_ARG, MAC_PR_ARG(ap_addr)) 29254ee3e063SBeni Lev ); 29264ee3e063SBeni Lev 29276ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 29286ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29296ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 29306ff57cf8SJohannes Berg TP_STRUCT__entry( 29316ff57cf8SJohannes Berg NETDEV_ENTRY 29326ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29336ff57cf8SJohannes Berg ), 29346ff57cf8SJohannes Berg TP_fast_assign( 29356ff57cf8SJohannes Berg NETDEV_ASSIGN; 29366ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29376ff57cf8SJohannes Berg ), 29386ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 29396ff57cf8SJohannes Berg NETDEV_PR_ARG, 29406ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 29414ee3e063SBeni Lev ); 29424ee3e063SBeni Lev 29436ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 29446ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29456ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29464ee3e063SBeni Lev ); 29474ee3e063SBeni Lev 29486ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 29496ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29506ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29514ee3e063SBeni Lev ); 29524ee3e063SBeni Lev 29536ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 29543bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 29553bb02143SJohannes Berg bool reconnect), 29563bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 29576ff57cf8SJohannes Berg TP_STRUCT__entry( 29586ff57cf8SJohannes Berg NETDEV_ENTRY 29596ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29603bb02143SJohannes Berg __field(int, reconnect) 29616ff57cf8SJohannes Berg ), 29626ff57cf8SJohannes Berg TP_fast_assign( 29636ff57cf8SJohannes Berg NETDEV_ASSIGN; 29646ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29653bb02143SJohannes Berg __entry->reconnect = reconnect; 29666ff57cf8SJohannes Berg ), 29673bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 29686ff57cf8SJohannes Berg NETDEV_PR_ARG, 29693bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 29703bb02143SJohannes Berg __entry->reconnect) 29714ee3e063SBeni Lev ); 29724ee3e063SBeni Lev 29734ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 29744ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29754ee3e063SBeni Lev TP_ARGS(netdev, mac), 29764ee3e063SBeni Lev TP_STRUCT__entry( 29774ee3e063SBeni Lev NETDEV_ENTRY 29784ee3e063SBeni Lev MAC_ENTRY(mac) 29794ee3e063SBeni Lev ), 29804ee3e063SBeni Lev TP_fast_assign( 29814ee3e063SBeni Lev NETDEV_ASSIGN; 29824ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 29834ee3e063SBeni Lev ), 29844ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 29854ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 29864ee3e063SBeni Lev ); 29874ee3e063SBeni Lev 29884ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 29894ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29904ee3e063SBeni Lev TP_ARGS(netdev, mac) 29914ee3e063SBeni Lev ); 29924ee3e063SBeni Lev 2993f662d2f4SJohannes Berg TRACE_EVENT(cfg80211_send_assoc_failure, 2994f662d2f4SJohannes Berg TP_PROTO(struct net_device *netdev, 2995f662d2f4SJohannes Berg struct cfg80211_assoc_failure *data), 2996f662d2f4SJohannes Berg TP_ARGS(netdev, data), 2997f662d2f4SJohannes Berg TP_STRUCT__entry( 2998f662d2f4SJohannes Berg NETDEV_ENTRY 2999f662d2f4SJohannes Berg MAC_ENTRY(ap_addr) 3000f662d2f4SJohannes Berg __field(bool, timeout) 3001f662d2f4SJohannes Berg ), 3002f662d2f4SJohannes Berg TP_fast_assign( 3003f662d2f4SJohannes Berg NETDEV_ASSIGN; 3004f662d2f4SJohannes Berg MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid); 3005f662d2f4SJohannes Berg __entry->timeout = data->timeout; 3006f662d2f4SJohannes Berg ), 3007f662d2f4SJohannes Berg TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT ", timeout: %d", 3008f662d2f4SJohannes Berg NETDEV_PR_ARG, MAC_PR_ARG(ap_addr), __entry->timeout) 30094ee3e063SBeni Lev ); 30104ee3e063SBeni Lev 30114ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 30124ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 30134ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 30144ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 30154ee3e063SBeni Lev TP_STRUCT__entry( 30164ee3e063SBeni Lev NETDEV_ENTRY 30174ee3e063SBeni Lev MAC_ENTRY(addr) 30184ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 30194ee3e063SBeni Lev __field(int, key_id) 30204ee3e063SBeni Lev __array(u8, tsc, 6) 30214ee3e063SBeni Lev ), 30224ee3e063SBeni Lev TP_fast_assign( 30234ee3e063SBeni Lev NETDEV_ASSIGN; 30244ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 30254ee3e063SBeni Lev __entry->key_type = key_type; 30264ee3e063SBeni Lev __entry->key_id = key_id; 30278c26d458SEliad Peller if (tsc) 30284ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 30294ee3e063SBeni Lev ), 3030ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 30314ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 30324ee3e063SBeni Lev __entry->key_id, __entry->tsc) 30334ee3e063SBeni Lev ); 30344ee3e063SBeni Lev 30354ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 30364ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30374ee3e063SBeni Lev struct ieee80211_channel *chan, 303842d97a59SJohannes Berg unsigned int duration), 303942d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 30404ee3e063SBeni Lev TP_STRUCT__entry( 30414ee3e063SBeni Lev WDEV_ENTRY 30424ee3e063SBeni Lev __field(u64, cookie) 30434ee3e063SBeni Lev CHAN_ENTRY 30444ee3e063SBeni Lev __field(unsigned int, duration) 30454ee3e063SBeni Lev ), 30464ee3e063SBeni Lev TP_fast_assign( 30474ee3e063SBeni Lev WDEV_ASSIGN; 30484ee3e063SBeni Lev __entry->cookie = cookie; 30494ee3e063SBeni Lev CHAN_ASSIGN(chan); 30504ee3e063SBeni Lev __entry->duration = duration; 30514ee3e063SBeni Lev ), 305242d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 30534ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 305442d97a59SJohannes Berg __entry->duration) 30554ee3e063SBeni Lev ); 30564ee3e063SBeni Lev 30574ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 30584ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 305942d97a59SJohannes Berg struct ieee80211_channel *chan), 306042d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 30614ee3e063SBeni Lev TP_STRUCT__entry( 30624ee3e063SBeni Lev WDEV_ENTRY 30634ee3e063SBeni Lev __field(u64, cookie) 30644ee3e063SBeni Lev CHAN_ENTRY 30654ee3e063SBeni Lev ), 30664ee3e063SBeni Lev TP_fast_assign( 30674ee3e063SBeni Lev WDEV_ASSIGN; 30684ee3e063SBeni Lev __entry->cookie = cookie; 30694ee3e063SBeni Lev CHAN_ASSIGN(chan); 30704ee3e063SBeni Lev ), 307142d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 307242d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30734ee3e063SBeni Lev ); 30744ee3e063SBeni Lev 30751c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 30761c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30771c38c7f2SJames Prestwood struct ieee80211_channel *chan), 30781c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 30791c38c7f2SJames Prestwood TP_STRUCT__entry( 30801c38c7f2SJames Prestwood WDEV_ENTRY 30811c38c7f2SJames Prestwood __field(u64, cookie) 30821c38c7f2SJames Prestwood CHAN_ENTRY 30831c38c7f2SJames Prestwood ), 30841c38c7f2SJames Prestwood TP_fast_assign( 30851c38c7f2SJames Prestwood WDEV_ASSIGN; 30861c38c7f2SJames Prestwood __entry->cookie = cookie; 30871c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 30881c38c7f2SJames Prestwood ), 30891c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 30901c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30911c38c7f2SJames Prestwood ); 30921c38c7f2SJames Prestwood 30934ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 30944ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 30954ee3e063SBeni Lev struct station_info *sinfo), 30964ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 30974ee3e063SBeni Lev TP_STRUCT__entry( 30984ee3e063SBeni Lev NETDEV_ENTRY 30994ee3e063SBeni Lev MAC_ENTRY(mac_addr) 31004ee3e063SBeni Lev SINFO_ENTRY 31014ee3e063SBeni Lev ), 31024ee3e063SBeni Lev TP_fast_assign( 31034ee3e063SBeni Lev NETDEV_ASSIGN; 31044ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 31054ee3e063SBeni Lev SINFO_ASSIGN; 31064ee3e063SBeni Lev ), 3107ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 31084ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 31094ee3e063SBeni Lev ); 31104ee3e063SBeni Lev 31114ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 31124ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 31134ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 31144ee3e063SBeni Lev ); 31154ee3e063SBeni Lev 31164ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 311700b3d840SAvraham Stern TP_PROTO(struct wireless_dev *wdev, struct cfg80211_rx_info *info), 311800b3d840SAvraham Stern TP_ARGS(wdev, info), 31194ee3e063SBeni Lev TP_STRUCT__entry( 31204ee3e063SBeni Lev WDEV_ENTRY 31214ee3e063SBeni Lev __field(int, freq) 31226c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 31234ee3e063SBeni Lev ), 31244ee3e063SBeni Lev TP_fast_assign( 31254ee3e063SBeni Lev WDEV_ASSIGN; 312600b3d840SAvraham Stern __entry->freq = info->freq; 312700b3d840SAvraham Stern __entry->sig_dbm = info->sig_dbm; 31284ee3e063SBeni Lev ), 3129e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 3130e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 31314ee3e063SBeni Lev ); 31324ee3e063SBeni Lev 31334ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 31344ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 31354ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 31364ee3e063SBeni Lev TP_STRUCT__entry( 31374ee3e063SBeni Lev WDEV_ENTRY 31384ee3e063SBeni Lev __field(u64, cookie) 31394ee3e063SBeni Lev __field(bool, ack) 31404ee3e063SBeni Lev ), 31414ee3e063SBeni Lev TP_fast_assign( 31424ee3e063SBeni Lev WDEV_ASSIGN; 31434ee3e063SBeni Lev __entry->cookie = cookie; 31444ee3e063SBeni Lev __entry->ack = ack; 31454ee3e063SBeni Lev ), 31464ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 31474ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 31484ee3e063SBeni Lev ); 31494ee3e063SBeni Lev 3150dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 3151dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 3152dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 3153dca9ca2dSMarkus Theil TP_STRUCT__entry( 3154dca9ca2dSMarkus Theil WDEV_ENTRY 3155dca9ca2dSMarkus Theil __field(u64, cookie) 3156dca9ca2dSMarkus Theil __field(bool, ack) 3157dca9ca2dSMarkus Theil ), 3158dca9ca2dSMarkus Theil TP_fast_assign( 3159dca9ca2dSMarkus Theil WDEV_ASSIGN; 3160dca9ca2dSMarkus Theil __entry->cookie = cookie; 3161dca9ca2dSMarkus Theil __entry->ack = ack; 3162dca9ca2dSMarkus Theil ), 3163dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 3164dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 3165dca9ca2dSMarkus Theil ); 3166dca9ca2dSMarkus Theil 31676a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 3168a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 3169a948f713SDenis Kenzior bool unencrypted), 3170a948f713SDenis Kenzior TP_ARGS(netdev, skb, unencrypted), 31716a671a50SDenis Kenzior TP_STRUCT__entry( 31726a671a50SDenis Kenzior NETDEV_ENTRY 3173a948f713SDenis Kenzior __field(int, len) 3174a948f713SDenis Kenzior MAC_ENTRY(from) 31756a671a50SDenis Kenzior __field(u16, proto) 31766a671a50SDenis Kenzior __field(bool, unencrypted) 31776a671a50SDenis Kenzior ), 31786a671a50SDenis Kenzior TP_fast_assign( 31796a671a50SDenis Kenzior NETDEV_ASSIGN; 3180a948f713SDenis Kenzior __entry->len = skb->len; 3181a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 3182a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 31836a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 31846a671a50SDenis Kenzior ), 31858d74a623SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s", 31868d74a623SJohannes Berg NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from), 31876a671a50SDenis Kenzior __entry->proto, BOOL_TO_STR(__entry->unencrypted)) 31886a671a50SDenis Kenzior ); 31896a671a50SDenis Kenzior 31904ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 31914ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 3192bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 3193bee427b8SAndrzej Zaborowski s32 rssi_level), 3194bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 31954ee3e063SBeni Lev TP_STRUCT__entry( 31964ee3e063SBeni Lev NETDEV_ENTRY 31974ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 3198bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 31994ee3e063SBeni Lev ), 32004ee3e063SBeni Lev TP_fast_assign( 32014ee3e063SBeni Lev NETDEV_ASSIGN; 32024ee3e063SBeni Lev __entry->rssi_event = rssi_event; 3203bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 32044ee3e063SBeni Lev ), 3205bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 3206bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 32074ee3e063SBeni Lev ); 32084ee3e063SBeni Lev 3209683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 3210174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3211923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 3212923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 32134ee3e063SBeni Lev TP_STRUCT__entry( 32144ee3e063SBeni Lev WIPHY_ENTRY 3215683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3216174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 3217923b352fSArik Nemtsov __field(bool, check_no_ir) 32184ee3e063SBeni Lev ), 32194ee3e063SBeni Lev TP_fast_assign( 32204ee3e063SBeni Lev WIPHY_ASSIGN; 3221683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3222174e0cd2SIlan Peer __entry->iftype = iftype; 3223923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 32244ee3e063SBeni Lev ), 3225923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3226923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3227923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 32284ee3e063SBeni Lev ); 32294ee3e063SBeni Lev 323004f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 323104f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 323204f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 323304f39047SSimon Wunderlich TP_STRUCT__entry( 323404f39047SSimon Wunderlich WIPHY_ENTRY 323504f39047SSimon Wunderlich CHAN_DEF_ENTRY 323604f39047SSimon Wunderlich ), 323704f39047SSimon Wunderlich TP_fast_assign( 323804f39047SSimon Wunderlich WIPHY_ASSIGN; 323904f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 324004f39047SSimon Wunderlich ), 324104f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 324204f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 324304f39047SSimon Wunderlich ); 324404f39047SSimon Wunderlich 32454ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3246683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 32477b0a0e3cSJohannes Berg struct cfg80211_chan_def *chandef, 32487b0a0e3cSJohannes Berg unsigned int link_id), 32497b0a0e3cSJohannes Berg TP_ARGS(netdev, chandef, link_id), 32504ee3e063SBeni Lev TP_STRUCT__entry( 32514ee3e063SBeni Lev NETDEV_ENTRY 3252683b6d3bSJohannes Berg CHAN_DEF_ENTRY 32537b0a0e3cSJohannes Berg __field(unsigned int, link_id) 32544ee3e063SBeni Lev ), 32554ee3e063SBeni Lev TP_fast_assign( 32564ee3e063SBeni Lev NETDEV_ASSIGN; 3257683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 32587b0a0e3cSJohannes Berg __entry->link_id = link_id; 32594ee3e063SBeni Lev ), 32607b0a0e3cSJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 32617b0a0e3cSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 32624ee3e063SBeni Lev ); 32634ee3e063SBeni Lev 3264f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3265f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3266*b8c9024eSVeerendranath Jakkam struct cfg80211_chan_def *chandef, 3267*b8c9024eSVeerendranath Jakkam unsigned int link_id), 3268*b8c9024eSVeerendranath Jakkam TP_ARGS(netdev, chandef, link_id), 3269f8d7552eSLuciano Coelho TP_STRUCT__entry( 3270f8d7552eSLuciano Coelho NETDEV_ENTRY 3271f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3272*b8c9024eSVeerendranath Jakkam __field(unsigned int, link_id) 3273f8d7552eSLuciano Coelho ), 3274f8d7552eSLuciano Coelho TP_fast_assign( 3275f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3276f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3277*b8c9024eSVeerendranath Jakkam __entry->link_id = link_id; 3278f8d7552eSLuciano Coelho ), 3279*b8c9024eSVeerendranath Jakkam TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 3280*b8c9024eSVeerendranath Jakkam NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 3281f8d7552eSLuciano Coelho ); 3282f8d7552eSLuciano Coelho 328304f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3284c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3285c47240cbSLorenzo Bianconi bool offchan), 3286c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 328704f39047SSimon Wunderlich TP_STRUCT__entry( 328804f39047SSimon Wunderlich WIPHY_ENTRY 328904f39047SSimon Wunderlich CHAN_DEF_ENTRY 3290c47240cbSLorenzo Bianconi __field(bool, offchan) 329104f39047SSimon Wunderlich ), 329204f39047SSimon Wunderlich TP_fast_assign( 329304f39047SSimon Wunderlich WIPHY_ASSIGN; 329404f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3295c47240cbSLorenzo Bianconi __entry->offchan = offchan; 329604f39047SSimon Wunderlich ), 3297c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3298c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 329904f39047SSimon Wunderlich ); 330004f39047SSimon Wunderlich 330104f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 330204f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 330304f39047SSimon Wunderlich TP_ARGS(netdev, evt), 330404f39047SSimon Wunderlich TP_STRUCT__entry( 330504f39047SSimon Wunderlich NETDEV_ENTRY 330604f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 330704f39047SSimon Wunderlich ), 330804f39047SSimon Wunderlich TP_fast_assign( 330904f39047SSimon Wunderlich NETDEV_ASSIGN; 331004f39047SSimon Wunderlich __entry->evt = evt; 331104f39047SSimon Wunderlich ), 331204f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 331304f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 331404f39047SSimon Wunderlich ); 331504f39047SSimon Wunderlich 33164ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 33174ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33184ee3e063SBeni Lev TP_ARGS(netdev, addr), 33194ee3e063SBeni Lev TP_STRUCT__entry( 33204ee3e063SBeni Lev NETDEV_ENTRY 33214ee3e063SBeni Lev MAC_ENTRY(addr) 33224ee3e063SBeni Lev ), 33234ee3e063SBeni Lev TP_fast_assign( 33244ee3e063SBeni Lev NETDEV_ASSIGN; 33254ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33264ee3e063SBeni Lev ), 3327ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 33284ee3e063SBeni Lev ); 33294ee3e063SBeni Lev 33304ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 33314ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33324ee3e063SBeni Lev TP_ARGS(netdev, addr) 33334ee3e063SBeni Lev ); 33344ee3e063SBeni Lev 33354ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 33364ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33374ee3e063SBeni Lev TP_ARGS(netdev, addr) 33384ee3e063SBeni Lev ); 33394ee3e063SBeni Lev 3340fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3341fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3342fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3343fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3344fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3345fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3346fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3347fe94f3a4SAntonio Quartulli CHAN_ENTRY 3348fe94f3a4SAntonio Quartulli ), 3349fe94f3a4SAntonio Quartulli TP_fast_assign( 3350fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3351fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3352fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3353fe94f3a4SAntonio Quartulli ), 3354fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 3355fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 3356fe94f3a4SAntonio Quartulli ); 3357fe94f3a4SAntonio Quartulli 33584ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 33594ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 33604ee3e063SBeni Lev bool acked), 33614ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 33624ee3e063SBeni Lev TP_STRUCT__entry( 33634ee3e063SBeni Lev NETDEV_ENTRY 33644ee3e063SBeni Lev MAC_ENTRY(addr) 33654ee3e063SBeni Lev __field(u64, cookie) 33664ee3e063SBeni Lev __field(bool, acked) 33674ee3e063SBeni Lev ), 33684ee3e063SBeni Lev TP_fast_assign( 33694ee3e063SBeni Lev NETDEV_ASSIGN; 33704ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33714ee3e063SBeni Lev __entry->cookie = cookie; 33724ee3e063SBeni Lev __entry->acked = acked; 33734ee3e063SBeni Lev ), 3374ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 33754ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 33764ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 33774ee3e063SBeni Lev ); 33784ee3e063SBeni Lev 33794ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 33804ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 33814ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 33824ee3e063SBeni Lev TP_STRUCT__entry( 33834ee3e063SBeni Lev NETDEV_ENTRY 33844ee3e063SBeni Lev MAC_ENTRY(peer) 33854ee3e063SBeni Lev __field(u32, num_packets) 33864ee3e063SBeni Lev ), 33874ee3e063SBeni Lev TP_fast_assign( 33884ee3e063SBeni Lev NETDEV_ASSIGN; 33894ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 33904ee3e063SBeni Lev __entry->num_packets = num_packets; 33914ee3e063SBeni Lev ), 33924ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 33934ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 33944ee3e063SBeni Lev ); 33954ee3e063SBeni Lev 33964ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 33974ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 33984ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 33994ee3e063SBeni Lev ); 34004ee3e063SBeni Lev 34014ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 34024ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 34034ee3e063SBeni Lev bool preauth), 34044ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 34054ee3e063SBeni Lev TP_STRUCT__entry( 34064ee3e063SBeni Lev NETDEV_ENTRY 34074ee3e063SBeni Lev __field(int, index) 34084ee3e063SBeni Lev MAC_ENTRY(bssid) 34094ee3e063SBeni Lev __field(bool, preauth) 34104ee3e063SBeni Lev ), 34114ee3e063SBeni Lev TP_fast_assign( 34124ee3e063SBeni Lev NETDEV_ASSIGN; 34134ee3e063SBeni Lev __entry->index = index; 34144ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 34154ee3e063SBeni Lev __entry->preauth = preauth; 34164ee3e063SBeni Lev ), 34174ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 34184ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 34194ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 34204ee3e063SBeni Lev ); 34214ee3e063SBeni Lev 34224ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 34234ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 34244ee3e063SBeni Lev int freq, int sig_dbm), 34254ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 34264ee3e063SBeni Lev TP_STRUCT__entry( 34274ee3e063SBeni Lev WIPHY_ENTRY 34284ee3e063SBeni Lev __field(int, freq) 34294ee3e063SBeni Lev __field(int, sig_dbm) 34304ee3e063SBeni Lev ), 34314ee3e063SBeni Lev TP_fast_assign( 34324ee3e063SBeni Lev WIPHY_ASSIGN; 34334ee3e063SBeni Lev __entry->freq = freq; 34344ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 34354ee3e063SBeni Lev ), 3436e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3437e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 34384ee3e063SBeni Lev ); 34394ee3e063SBeni Lev 34403475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 34413475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 34423475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 34433475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 34443475b094SJouni Malinen TP_STRUCT__entry( 34453475b094SJouni Malinen WIPHY_ENTRY 34463475b094SJouni Malinen NETDEV_ENTRY 34473475b094SJouni Malinen MAC_ENTRY(peer) 34483475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 34493475b094SJouni Malinen __field(u16, reason_code) 34503475b094SJouni Malinen ), 34513475b094SJouni Malinen TP_fast_assign( 34523475b094SJouni Malinen WIPHY_ASSIGN; 34533475b094SJouni Malinen NETDEV_ASSIGN; 34543475b094SJouni Malinen MAC_ASSIGN(peer, peer); 34553475b094SJouni Malinen __entry->oper = oper; 34563475b094SJouni Malinen __entry->reason_code = reason_code; 34573475b094SJouni Malinen ), 34583475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 34593475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 34603475b094SJouni Malinen __entry->reason_code) 34613475b094SJouni Malinen ); 34623475b094SJouni Malinen 34634ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 34641d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 34651d76250bSAvraham Stern struct cfg80211_scan_info *info), 34661d76250bSAvraham Stern TP_ARGS(request, info), 34674ee3e063SBeni Lev TP_STRUCT__entry( 34684ee3e063SBeni Lev __field(u32, n_channels) 34694ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 347057fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 34714ee3e063SBeni Lev __field(u32, wdev_id) 34724ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 34734ee3e063SBeni Lev __field(bool, no_cck) 34744ee3e063SBeni Lev __field(bool, aborted) 34751d76250bSAvraham Stern __field(u64, scan_start_tsf) 34761d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 34774ee3e063SBeni Lev ), 34784ee3e063SBeni Lev TP_fast_assign( 34794ee3e063SBeni Lev if (request) { 34804ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 34814ee3e063SBeni Lev request->ie_len); 34824ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 348357fbcce3SJohannes Berg NUM_NL80211_BANDS); 34844ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 34854ee3e063SBeni Lev request->wdev->identifier : 0; 34864ee3e063SBeni Lev if (request->wiphy) 34874ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 34884ee3e063SBeni Lev request->wiphy->perm_addr); 34894ee3e063SBeni Lev __entry->no_cck = request->no_cck; 34904ee3e063SBeni Lev } 34911d76250bSAvraham Stern if (info) { 34921d76250bSAvraham Stern __entry->aborted = info->aborted; 34931d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 34941d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 34951d76250bSAvraham Stern } 34964ee3e063SBeni Lev ), 34971d76250bSAvraham Stern TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT, 34981d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 34991d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 35001d76250bSAvraham Stern MAC_PR_ARG(tsf_bssid)) 35014ee3e063SBeni Lev ); 35024ee3e063SBeni Lev 3503b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3504b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3505b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3506b34939b9SArend Van Spriel TP_STRUCT__entry( 3507b34939b9SArend Van Spriel WIPHY_ENTRY 3508b34939b9SArend Van Spriel __field(u64, id) 3509b34939b9SArend Van Spriel ), 3510b34939b9SArend Van Spriel TP_fast_assign( 3511b34939b9SArend Van Spriel WIPHY_ASSIGN; 3512b34939b9SArend Van Spriel __entry->id = id; 3513b34939b9SArend Van Spriel ), 3514b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 35154ee3e063SBeni Lev ); 35164ee3e063SBeni Lev 3517b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3518b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3519b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3520b34939b9SArend Van Spriel ); 3521b34939b9SArend Van Spriel 3522b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3523b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3524b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 35254ee3e063SBeni Lev ); 35264ee3e063SBeni Lev 35274ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 35284ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 35294ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 35306eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 35316eb18137SDedy Lansky enum ieee80211_privacy privacy), 35326eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 35334ee3e063SBeni Lev TP_STRUCT__entry( 35344ee3e063SBeni Lev WIPHY_ENTRY 35354ee3e063SBeni Lev CHAN_ENTRY 35364ee3e063SBeni Lev MAC_ENTRY(bssid) 35374ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 35386eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 35396eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 35404ee3e063SBeni Lev ), 35414ee3e063SBeni Lev TP_fast_assign( 35424ee3e063SBeni Lev WIPHY_ASSIGN; 35434ee3e063SBeni Lev CHAN_ASSIGN(channel); 35444ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 35454ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 35466eb18137SDedy Lansky __entry->bss_type = bss_type; 35476eb18137SDedy Lansky __entry->privacy = privacy; 35484ee3e063SBeni Lev ), 35496eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 35506eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 35516eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 35526eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 35536eb18137SDedy Lansky __entry->privacy) 35544ee3e063SBeni Lev ); 35554ee3e063SBeni Lev 35566e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 35576e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 35586e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 35596e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 35604ee3e063SBeni Lev TP_STRUCT__entry( 35614ee3e063SBeni Lev WIPHY_ENTRY 35624ee3e063SBeni Lev CHAN_ENTRY 3563dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 35644ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 35654ee3e063SBeni Lev __field(s32, signal) 35666e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 35671d76250bSAvraham Stern __field(u64, parent_tsf) 35681d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 35694ee3e063SBeni Lev ), 35704ee3e063SBeni Lev TP_fast_assign( 35714ee3e063SBeni Lev WIPHY_ASSIGN; 35726e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 35736e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 35744ee3e063SBeni Lev if (mgmt) 35754ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 35766e19bc4bSDmitry Shmidt __entry->signal = data->signal; 35776e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 35781d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 35791d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 35804ee3e063SBeni Lev ), 35811d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 35821d76250bSAvraham Stern "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: " 35831d76250bSAvraham Stern MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 35841d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 35851d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 35861d76250bSAvraham Stern MAC_PR_ARG(parent_bssid)) 35874ee3e063SBeni Lev ); 35884ee3e063SBeni Lev 35894ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 35904ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35914ee3e063SBeni Lev TP_ARGS(pub), 35924ee3e063SBeni Lev TP_STRUCT__entry( 35934ee3e063SBeni Lev MAC_ENTRY(bssid) 35944ee3e063SBeni Lev CHAN_ENTRY 35954ee3e063SBeni Lev ), 35964ee3e063SBeni Lev TP_fast_assign( 35974ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 35984ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 35994ee3e063SBeni Lev ), 3600ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 36014ee3e063SBeni Lev ); 36024ee3e063SBeni Lev 36034ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 36044ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 36054ee3e063SBeni Lev TP_ARGS(pub) 36064ee3e063SBeni Lev ); 36074ee3e063SBeni Lev 36084ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 36094ee3e063SBeni Lev TP_PROTO(unsigned int ret), 36104ee3e063SBeni Lev TP_ARGS(ret), 36114ee3e063SBeni Lev TP_STRUCT__entry( 36124ee3e063SBeni Lev __field(unsigned int, ret) 36134ee3e063SBeni Lev ), 36144ee3e063SBeni Lev TP_fast_assign( 36154ee3e063SBeni Lev __entry->ret = ret; 36164ee3e063SBeni Lev ), 36174ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 36184ee3e063SBeni Lev ); 36194ee3e063SBeni Lev 36204ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 36214ee3e063SBeni Lev TP_PROTO(u32 ret), 36224ee3e063SBeni Lev TP_ARGS(ret), 36234ee3e063SBeni Lev TP_STRUCT__entry( 36244ee3e063SBeni Lev __field(u32, ret) 36254ee3e063SBeni Lev ), 36264ee3e063SBeni Lev TP_fast_assign( 36274ee3e063SBeni Lev __entry->ret = ret; 36284ee3e063SBeni Lev ), 36294ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 36304ee3e063SBeni Lev ); 36314ee3e063SBeni Lev 3632cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3633cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3634cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3635cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3636cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3637cd8f7cb4SJohannes Berg WIPHY_ENTRY 3638cd8f7cb4SJohannes Berg WDEV_ENTRY 3639a92eecbbSJohannes Berg __field(bool, non_wireless) 3640cd8f7cb4SJohannes Berg __field(bool, disconnect) 3641cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3642cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3643cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3644cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3645cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3646cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3647cd8f7cb4SJohannes Berg __field(u32, packet_len) 3648a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3649a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3650cd8f7cb4SJohannes Berg ), 3651cd8f7cb4SJohannes Berg TP_fast_assign( 3652cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3653cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3654a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3655a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3656a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3657a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3658a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3659a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3660a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3661a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3662a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3663a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3664cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3665cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3666cd8f7cb4SJohannes Berg ), 3667cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3668cd8f7cb4SJohannes Berg ); 3669cd8f7cb4SJohannes Berg 3670355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3671355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3672355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3673355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3674355199e0SJouni Malinen TP_STRUCT__entry( 3675355199e0SJouni Malinen WIPHY_ENTRY 3676355199e0SJouni Malinen NETDEV_ENTRY 3677355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3678355199e0SJouni Malinen MAC_ENTRY(target_ap) 3679355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3680355199e0SJouni Malinen ), 3681355199e0SJouni Malinen TP_fast_assign( 3682355199e0SJouni Malinen WIPHY_ASSIGN; 3683355199e0SJouni Malinen NETDEV_ASSIGN; 3684355199e0SJouni Malinen if (ft_event->ies) 3685355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3686355199e0SJouni Malinen ft_event->ies_len); 3687355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3688355199e0SJouni Malinen if (ft_event->ric_ies) 3689355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3690355199e0SJouni Malinen ft_event->ric_ies_len); 3691355199e0SJouni Malinen ), 3692355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 3693355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 3694355199e0SJouni Malinen ); 3695355199e0SJouni Malinen 3696f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3697f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3698f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3699f04c2203SMichal Kazior TP_STRUCT__entry( 3700f04c2203SMichal Kazior WIPHY_ENTRY 3701f04c2203SMichal Kazior WDEV_ENTRY 3702f04c2203SMichal Kazior ), 3703f04c2203SMichal Kazior TP_fast_assign( 3704f04c2203SMichal Kazior WIPHY_ASSIGN; 3705f04c2203SMichal Kazior WDEV_ASSIGN; 3706f04c2203SMichal Kazior ), 3707f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3708f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3709f04c2203SMichal Kazior ); 37109bb7e0f2SJohannes Berg 37119bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 37129bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 37139bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 37149bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 37159bb7e0f2SJohannes Berg TP_STRUCT__entry( 37169bb7e0f2SJohannes Berg WIPHY_ENTRY 37179bb7e0f2SJohannes Berg WDEV_ENTRY 37189bb7e0f2SJohannes Berg __field(u64, cookie) 37199bb7e0f2SJohannes Berg MAC_ENTRY(addr) 37209bb7e0f2SJohannes Berg ), 37219bb7e0f2SJohannes Berg TP_fast_assign( 37229bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37239bb7e0f2SJohannes Berg WDEV_ASSIGN; 37249bb7e0f2SJohannes Berg __entry->cookie = cookie; 37259bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 37269bb7e0f2SJohannes Berg ), 37279bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT, 37289bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37299bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 37309bb7e0f2SJohannes Berg MAC_PR_ARG(addr)) 37319bb7e0f2SJohannes Berg ); 37329bb7e0f2SJohannes Berg 37339bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 37349bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 37359bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 37369bb7e0f2SJohannes Berg TP_STRUCT__entry( 37379bb7e0f2SJohannes Berg WIPHY_ENTRY 37389bb7e0f2SJohannes Berg WDEV_ENTRY 37399bb7e0f2SJohannes Berg __field(u64, cookie) 37409bb7e0f2SJohannes Berg ), 37419bb7e0f2SJohannes Berg TP_fast_assign( 37429bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37439bb7e0f2SJohannes Berg WDEV_ASSIGN; 37449bb7e0f2SJohannes Berg __entry->cookie = cookie; 37459bb7e0f2SJohannes Berg ), 37469bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 37479bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37489bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 37499bb7e0f2SJohannes Berg ); 3750cb74e977SSunil Dutt 3751cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3752cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3753cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3754cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3755cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3756cb74e977SSunil Dutt NETDEV_ENTRY 3757cb74e977SSunil Dutt MAC_ENTRY(peer) 3758cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3759cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3760cb74e977SSunil Dutt NETDEV_ASSIGN; 3761cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3762cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 3763cb74e977SSunil Dutt owe_info->ie_len);), 3764cb74e977SSunil Dutt TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 3765cb74e977SSunil Dutt WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 3766cb74e977SSunil Dutt ); 3767cb74e977SSunil Dutt 37680d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 37690d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 37700d2ab3aeSJohn Crispin enum nl80211_commands cmd, 37710d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 37720d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 37730d2ab3aeSJohn Crispin TP_STRUCT__entry( 37740d2ab3aeSJohn Crispin NETDEV_ENTRY 3775c448f0fdSJohannes Berg __field(u32, cmd) 37760d2ab3aeSJohn Crispin __field(u8, count) 37770d2ab3aeSJohn Crispin __field(u64, color_bitmap) 37780d2ab3aeSJohn Crispin ), 37790d2ab3aeSJohn Crispin TP_fast_assign( 37800d2ab3aeSJohn Crispin NETDEV_ASSIGN; 37810d2ab3aeSJohn Crispin __entry->cmd = cmd; 37820d2ab3aeSJohn Crispin __entry->count = count; 37830d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 37840d2ab3aeSJohn Crispin ), 37850d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 37860d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 37870d2ab3aeSJohn Crispin __entry->color_bitmap) 37880d2ab3aeSJohn Crispin ); 37890d2ab3aeSJohn Crispin 3790a083ee8aSIlan Peer TRACE_EVENT(cfg80211_assoc_comeback, 3791e69dac88SJohannes Berg TP_PROTO(struct wireless_dev *wdev, const u8 *ap_addr, u32 timeout), 3792e69dac88SJohannes Berg TP_ARGS(wdev, ap_addr, timeout), 3793a083ee8aSIlan Peer TP_STRUCT__entry( 3794a083ee8aSIlan Peer WDEV_ENTRY 3795e69dac88SJohannes Berg MAC_ENTRY(ap_addr) 3796a083ee8aSIlan Peer __field(u32, timeout) 3797a083ee8aSIlan Peer ), 3798a083ee8aSIlan Peer TP_fast_assign( 3799a083ee8aSIlan Peer WDEV_ASSIGN; 3800e69dac88SJohannes Berg MAC_ASSIGN(ap_addr, ap_addr); 3801a083ee8aSIlan Peer __entry->timeout = timeout; 3802a083ee8aSIlan Peer ), 3803a083ee8aSIlan Peer TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs", 3804e69dac88SJohannes Berg WDEV_PR_ARG, MAC_PR_ARG(ap_addr), __entry->timeout) 3805a083ee8aSIlan Peer ); 3806a083ee8aSIlan Peer 3807577e5b8cSShaul Triebitz DECLARE_EVENT_CLASS(link_station_add_mod, 3808577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3809577e5b8cSShaul Triebitz struct link_station_parameters *params), 3810577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3811577e5b8cSShaul Triebitz TP_STRUCT__entry( 3812577e5b8cSShaul Triebitz WIPHY_ENTRY 3813577e5b8cSShaul Triebitz NETDEV_ENTRY 3814577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3815577e5b8cSShaul Triebitz __array(u8, link_mac, 6) 3816577e5b8cSShaul Triebitz __field(u32, link_id) 3817577e5b8cSShaul Triebitz __dynamic_array(u8, supported_rates, 3818577e5b8cSShaul Triebitz params->supported_rates_len) 3819577e5b8cSShaul Triebitz __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 3820577e5b8cSShaul Triebitz __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 3821577e5b8cSShaul Triebitz __field(u8, opmode_notif) 3822577e5b8cSShaul Triebitz __field(bool, opmode_notif_used) 3823577e5b8cSShaul Triebitz __dynamic_array(u8, he_capa, params->he_capa_len) 3824577e5b8cSShaul Triebitz __array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa)) 3825577e5b8cSShaul Triebitz __dynamic_array(u8, eht_capa, params->eht_capa_len) 3826577e5b8cSShaul Triebitz ), 3827577e5b8cSShaul Triebitz TP_fast_assign( 3828577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3829577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3830577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3831577e5b8cSShaul Triebitz memset(__entry->link_mac, 0, 6); 3832577e5b8cSShaul Triebitz if (params->mld_mac) 3833577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3834577e5b8cSShaul Triebitz if (params->link_mac) 3835577e5b8cSShaul Triebitz memcpy(__entry->link_mac, params->link_mac, 6); 3836577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3837577e5b8cSShaul Triebitz if (params->supported_rates && params->supported_rates_len) 3838577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(supported_rates), 3839577e5b8cSShaul Triebitz params->supported_rates, 3840577e5b8cSShaul Triebitz params->supported_rates_len); 3841577e5b8cSShaul Triebitz memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 3842577e5b8cSShaul Triebitz if (params->ht_capa) 3843577e5b8cSShaul Triebitz memcpy(__entry->ht_capa, params->ht_capa, 3844577e5b8cSShaul Triebitz sizeof(struct ieee80211_ht_cap)); 3845577e5b8cSShaul Triebitz memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 3846577e5b8cSShaul Triebitz if (params->vht_capa) 3847577e5b8cSShaul Triebitz memcpy(__entry->vht_capa, params->vht_capa, 3848577e5b8cSShaul Triebitz sizeof(struct ieee80211_vht_cap)); 3849577e5b8cSShaul Triebitz __entry->opmode_notif = params->opmode_notif; 3850577e5b8cSShaul Triebitz __entry->opmode_notif_used = params->opmode_notif_used; 3851577e5b8cSShaul Triebitz if (params->he_capa && params->he_capa_len) 3852577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(he_capa), params->he_capa, 3853577e5b8cSShaul Triebitz params->he_capa_len); 3854577e5b8cSShaul Triebitz memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa)); 3855577e5b8cSShaul Triebitz if (params->he_6ghz_capa) 3856577e5b8cSShaul Triebitz memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa, 3857577e5b8cSShaul Triebitz sizeof(struct ieee80211_he_6ghz_capa)); 3858577e5b8cSShaul Triebitz if (params->eht_capa && params->eht_capa_len) 3859577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(eht_capa), params->eht_capa, 3860577e5b8cSShaul Triebitz params->eht_capa_len); 3861577e5b8cSShaul Triebitz ), 3862577e5b8cSShaul Triebitz TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 3863577e5b8cSShaul Triebitz ", link mac: " MAC_PR_FMT ", link id: %u", 3864577e5b8cSShaul Triebitz WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac), 3865577e5b8cSShaul Triebitz MAC_PR_ARG(link_mac), __entry->link_id) 3866577e5b8cSShaul Triebitz ); 3867577e5b8cSShaul Triebitz 3868577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_add_link_station, 3869577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3870577e5b8cSShaul Triebitz struct link_station_parameters *params), 3871577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3872577e5b8cSShaul Triebitz ); 3873577e5b8cSShaul Triebitz 3874577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_mod_link_station, 3875577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3876577e5b8cSShaul Triebitz struct link_station_parameters *params), 3877577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3878577e5b8cSShaul Triebitz ); 3879577e5b8cSShaul Triebitz 3880577e5b8cSShaul Triebitz TRACE_EVENT(rdev_del_link_station, 3881577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3882577e5b8cSShaul Triebitz struct link_station_del_parameters *params), 3883577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3884577e5b8cSShaul Triebitz TP_STRUCT__entry( 3885577e5b8cSShaul Triebitz WIPHY_ENTRY 3886577e5b8cSShaul Triebitz NETDEV_ENTRY 3887577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3888577e5b8cSShaul Triebitz __field(u32, link_id) 3889577e5b8cSShaul Triebitz ), 3890577e5b8cSShaul Triebitz TP_fast_assign( 3891577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3892577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3893577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3894577e5b8cSShaul Triebitz if (params->mld_mac) 3895577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3896577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3897577e5b8cSShaul Triebitz ), 3898577e5b8cSShaul Triebitz TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 3899577e5b8cSShaul Triebitz ", link id: %u", 3900577e5b8cSShaul Triebitz WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac), 3901577e5b8cSShaul Triebitz __entry->link_id) 3902577e5b8cSShaul Triebitz ); 3903577e5b8cSShaul Triebitz 390414e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 390514e8a3c4SBeni Lev 390614e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 390714e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 390814e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 390914e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 391014e8a3c4SBeni Lev #include <trace/define_trace.h> 3911