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 23ec816087SJohannes Berg #define MAXNAME 32 24ec816087SJohannes Berg #define WIPHY_ENTRY __array(char, wiphy_name, 32) 25ec816087SJohannes Berg #define WIPHY_ASSIGN strlcpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME) 26ec816087SJohannes Berg #define WIPHY_PR_FMT "%s" 27ec816087SJohannes Berg #define WIPHY_PR_ARG __entry->wiphy_name 2814e8a3c4SBeni Lev 2914e8a3c4SBeni Lev #define WDEV_ENTRY __field(u32, id) 30ce1eaddaSJohannes Berg #define WDEV_ASSIGN (__entry->id) = (!IS_ERR_OR_NULL(wdev) \ 31ce1eaddaSJohannes Berg ? wdev->identifier : 0) 32ec816087SJohannes Berg #define WDEV_PR_FMT "wdev(%u)" 3314e8a3c4SBeni Lev #define WDEV_PR_ARG (__entry->id) 3414e8a3c4SBeni Lev 3514e8a3c4SBeni Lev #define NETDEV_ENTRY __array(char, name, IFNAMSIZ) \ 3614e8a3c4SBeni Lev __field(int, ifindex) 3714e8a3c4SBeni Lev #define NETDEV_ASSIGN \ 3814e8a3c4SBeni Lev do { \ 3914e8a3c4SBeni Lev memcpy(__entry->name, netdev->name, IFNAMSIZ); \ 4014e8a3c4SBeni Lev (__entry->ifindex) = (netdev->ifindex); \ 4114e8a3c4SBeni Lev } while (0) 42ec816087SJohannes Berg #define NETDEV_PR_FMT "netdev:%s(%d)" 43ec816087SJohannes Berg #define NETDEV_PR_ARG __entry->name, __entry->ifindex 4414e8a3c4SBeni Lev 4514e8a3c4SBeni Lev #define MESH_CFG_ENTRY __field(u16, dot11MeshRetryTimeout) \ 4614e8a3c4SBeni Lev __field(u16, dot11MeshConfirmTimeout) \ 4714e8a3c4SBeni Lev __field(u16, dot11MeshHoldingTimeout) \ 4814e8a3c4SBeni Lev __field(u16, dot11MeshMaxPeerLinks) \ 4914e8a3c4SBeni Lev __field(u8, dot11MeshMaxRetries) \ 5014e8a3c4SBeni Lev __field(u8, dot11MeshTTL) \ 5114e8a3c4SBeni Lev __field(u8, element_ttl) \ 5214e8a3c4SBeni Lev __field(bool, auto_open_plinks) \ 5314e8a3c4SBeni Lev __field(u32, dot11MeshNbrOffsetMaxNeighbor) \ 5414e8a3c4SBeni Lev __field(u8, dot11MeshHWMPmaxPREQretries) \ 5514e8a3c4SBeni Lev __field(u32, path_refresh_time) \ 5614e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathTimeout) \ 5714e8a3c4SBeni Lev __field(u16, min_discovery_timeout) \ 5814e8a3c4SBeni Lev __field(u16, dot11MeshHWMPpreqMinInterval) \ 5914e8a3c4SBeni Lev __field(u16, dot11MeshHWMPperrMinInterval) \ 6014e8a3c4SBeni Lev __field(u16, dot11MeshHWMPnetDiameterTraversalTime) \ 6114e8a3c4SBeni Lev __field(u8, dot11MeshHWMPRootMode) \ 6214e8a3c4SBeni Lev __field(u16, dot11MeshHWMPRannInterval) \ 6314e8a3c4SBeni Lev __field(bool, dot11MeshGateAnnouncementProtocol) \ 6414e8a3c4SBeni Lev __field(bool, dot11MeshForwarding) \ 6514e8a3c4SBeni Lev __field(s32, rssi_threshold) \ 6614e8a3c4SBeni Lev __field(u16, ht_opmode) \ 6714e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathToRootTimeout) \ 6814e8a3c4SBeni Lev __field(u16, dot11MeshHWMProotInterval) \ 69e3718a61SLinus Lüssing __field(u16, dot11MeshHWMPconfirmationInterval) \ 70e3718a61SLinus Lüssing __field(bool, dot11MeshNolearn) 7114e8a3c4SBeni Lev #define MESH_CFG_ASSIGN \ 7214e8a3c4SBeni Lev do { \ 7314e8a3c4SBeni Lev __entry->dot11MeshRetryTimeout = conf->dot11MeshRetryTimeout; \ 7414e8a3c4SBeni Lev __entry->dot11MeshConfirmTimeout = \ 7514e8a3c4SBeni Lev conf->dot11MeshConfirmTimeout; \ 7614e8a3c4SBeni Lev __entry->dot11MeshHoldingTimeout = \ 7714e8a3c4SBeni Lev conf->dot11MeshHoldingTimeout; \ 7814e8a3c4SBeni Lev __entry->dot11MeshMaxPeerLinks = conf->dot11MeshMaxPeerLinks; \ 7914e8a3c4SBeni Lev __entry->dot11MeshMaxRetries = conf->dot11MeshMaxRetries; \ 8014e8a3c4SBeni Lev __entry->dot11MeshTTL = conf->dot11MeshTTL; \ 8114e8a3c4SBeni Lev __entry->element_ttl = conf->element_ttl; \ 8214e8a3c4SBeni Lev __entry->auto_open_plinks = conf->auto_open_plinks; \ 8314e8a3c4SBeni Lev __entry->dot11MeshNbrOffsetMaxNeighbor = \ 8414e8a3c4SBeni Lev conf->dot11MeshNbrOffsetMaxNeighbor; \ 8514e8a3c4SBeni Lev __entry->dot11MeshHWMPmaxPREQretries = \ 8614e8a3c4SBeni Lev conf->dot11MeshHWMPmaxPREQretries; \ 8714e8a3c4SBeni Lev __entry->path_refresh_time = conf->path_refresh_time; \ 8814e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathTimeout = \ 8914e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathTimeout; \ 9014e8a3c4SBeni Lev __entry->min_discovery_timeout = conf->min_discovery_timeout; \ 9114e8a3c4SBeni Lev __entry->dot11MeshHWMPpreqMinInterval = \ 9214e8a3c4SBeni Lev conf->dot11MeshHWMPpreqMinInterval; \ 9314e8a3c4SBeni Lev __entry->dot11MeshHWMPperrMinInterval = \ 9414e8a3c4SBeni Lev conf->dot11MeshHWMPperrMinInterval; \ 9514e8a3c4SBeni Lev __entry->dot11MeshHWMPnetDiameterTraversalTime = \ 9614e8a3c4SBeni Lev conf->dot11MeshHWMPnetDiameterTraversalTime; \ 9714e8a3c4SBeni Lev __entry->dot11MeshHWMPRootMode = conf->dot11MeshHWMPRootMode; \ 9814e8a3c4SBeni Lev __entry->dot11MeshHWMPRannInterval = \ 9914e8a3c4SBeni Lev conf->dot11MeshHWMPRannInterval; \ 10014e8a3c4SBeni Lev __entry->dot11MeshGateAnnouncementProtocol = \ 10114e8a3c4SBeni Lev conf->dot11MeshGateAnnouncementProtocol; \ 10214e8a3c4SBeni Lev __entry->dot11MeshForwarding = conf->dot11MeshForwarding; \ 10314e8a3c4SBeni Lev __entry->rssi_threshold = conf->rssi_threshold; \ 10414e8a3c4SBeni Lev __entry->ht_opmode = conf->ht_opmode; \ 10514e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathToRootTimeout = \ 10614e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathToRootTimeout; \ 10714e8a3c4SBeni Lev __entry->dot11MeshHWMProotInterval = \ 10814e8a3c4SBeni Lev conf->dot11MeshHWMProotInterval; \ 10914e8a3c4SBeni Lev __entry->dot11MeshHWMPconfirmationInterval = \ 11014e8a3c4SBeni Lev conf->dot11MeshHWMPconfirmationInterval; \ 111e3718a61SLinus Lüssing __entry->dot11MeshNolearn = conf->dot11MeshNolearn; \ 11214e8a3c4SBeni Lev } while (0) 11314e8a3c4SBeni Lev 11457fbcce3SJohannes Berg #define CHAN_ENTRY __field(enum nl80211_band, band) \ 115934f4c7dSThomas Pedersen __field(u32, center_freq) \ 116934f4c7dSThomas Pedersen __field(u16, freq_offset) 11714e8a3c4SBeni Lev #define CHAN_ASSIGN(chan) \ 11814e8a3c4SBeni Lev do { \ 11914e8a3c4SBeni Lev if (chan) { \ 12014e8a3c4SBeni Lev __entry->band = chan->band; \ 12114e8a3c4SBeni Lev __entry->center_freq = chan->center_freq; \ 122934f4c7dSThomas Pedersen __entry->freq_offset = chan->freq_offset; \ 12314e8a3c4SBeni Lev } else { \ 12414e8a3c4SBeni Lev __entry->band = 0; \ 12514e8a3c4SBeni Lev __entry->center_freq = 0; \ 126934f4c7dSThomas Pedersen __entry->freq_offset = 0; \ 12714e8a3c4SBeni Lev } \ 12814e8a3c4SBeni Lev } while (0) 129934f4c7dSThomas Pedersen #define CHAN_PR_FMT "band: %d, freq: %u.%03u" 130934f4c7dSThomas Pedersen #define CHAN_PR_ARG __entry->band, __entry->center_freq, __entry->freq_offset 13114e8a3c4SBeni Lev 13257fbcce3SJohannes Berg #define CHAN_DEF_ENTRY __field(enum nl80211_band, band) \ 1333d9d1d66SJohannes Berg __field(u32, control_freq) \ 134934f4c7dSThomas Pedersen __field(u32, freq_offset) \ 1353d9d1d66SJohannes Berg __field(u32, width) \ 1363d9d1d66SJohannes Berg __field(u32, center_freq1) \ 137934f4c7dSThomas Pedersen __field(u32, freq1_offset) \ 1383d9d1d66SJohannes Berg __field(u32, center_freq2) 139683b6d3bSJohannes Berg #define CHAN_DEF_ASSIGN(chandef) \ 140683b6d3bSJohannes Berg do { \ 141683b6d3bSJohannes Berg if ((chandef) && (chandef)->chan) { \ 142683b6d3bSJohannes Berg __entry->band = (chandef)->chan->band; \ 1433d9d1d66SJohannes Berg __entry->control_freq = \ 144683b6d3bSJohannes Berg (chandef)->chan->center_freq; \ 145934f4c7dSThomas Pedersen __entry->freq_offset = \ 146934f4c7dSThomas Pedersen (chandef)->chan->freq_offset; \ 1473d9d1d66SJohannes Berg __entry->width = (chandef)->width; \ 1483d9d1d66SJohannes Berg __entry->center_freq1 = (chandef)->center_freq1;\ 149934f4c7dSThomas Pedersen __entry->freq1_offset = (chandef)->freq1_offset;\ 1503d9d1d66SJohannes Berg __entry->center_freq2 = (chandef)->center_freq2;\ 151683b6d3bSJohannes Berg } else { \ 152683b6d3bSJohannes Berg __entry->band = 0; \ 1533d9d1d66SJohannes Berg __entry->control_freq = 0; \ 154934f4c7dSThomas Pedersen __entry->freq_offset = 0; \ 1553d9d1d66SJohannes Berg __entry->width = 0; \ 1563d9d1d66SJohannes Berg __entry->center_freq1 = 0; \ 157934f4c7dSThomas Pedersen __entry->freq1_offset = 0; \ 1583d9d1d66SJohannes Berg __entry->center_freq2 = 0; \ 159683b6d3bSJohannes Berg } \ 160683b6d3bSJohannes Berg } while (0) 1613d9d1d66SJohannes Berg #define CHAN_DEF_PR_FMT \ 162934f4c7dSThomas Pedersen "band: %d, control freq: %u.%03u, width: %d, cf1: %u.%03u, cf2: %u" 1633d9d1d66SJohannes Berg #define CHAN_DEF_PR_ARG __entry->band, __entry->control_freq, \ 164934f4c7dSThomas Pedersen __entry->freq_offset, __entry->width, \ 165934f4c7dSThomas Pedersen __entry->center_freq1, __entry->freq1_offset, \ 1663d9d1d66SJohannes Berg __entry->center_freq2 167683b6d3bSJohannes Berg 168e306784aSSubrat Mishra #define FILS_AAD_ASSIGN(fa) \ 169e306784aSSubrat Mishra do { \ 170e306784aSSubrat Mishra if (fa) { \ 171e306784aSSubrat Mishra ether_addr_copy(__entry->macaddr, fa->macaddr); \ 172e306784aSSubrat Mishra __entry->kek_len = fa->kek_len; \ 173e306784aSSubrat Mishra } else { \ 174e306784aSSubrat Mishra eth_zero_addr(__entry->macaddr); \ 175e306784aSSubrat Mishra __entry->kek_len = 0; \ 176e306784aSSubrat Mishra } \ 177e306784aSSubrat Mishra } while (0) 178e306784aSSubrat Mishra #define FILS_AAD_PR_FMT \ 179e306784aSSubrat Mishra "macaddr: %pM, kek_len: %d" 180e306784aSSubrat Mishra 18114e8a3c4SBeni Lev #define SINFO_ENTRY __field(int, generation) \ 18214e8a3c4SBeni Lev __field(u32, connected_time) \ 18314e8a3c4SBeni Lev __field(u32, inactive_time) \ 18414e8a3c4SBeni Lev __field(u32, rx_bytes) \ 18514e8a3c4SBeni Lev __field(u32, tx_bytes) \ 18614e8a3c4SBeni Lev __field(u32, rx_packets) \ 18714e8a3c4SBeni Lev __field(u32, tx_packets) \ 18814e8a3c4SBeni Lev __field(u32, tx_retries) \ 18914e8a3c4SBeni Lev __field(u32, tx_failed) \ 19014e8a3c4SBeni Lev __field(u32, rx_dropped_misc) \ 19114e8a3c4SBeni Lev __field(u32, beacon_loss_count) \ 19214e8a3c4SBeni Lev __field(u16, llid) \ 19314e8a3c4SBeni Lev __field(u16, plid) \ 19414e8a3c4SBeni Lev __field(u8, plink_state) 19514e8a3c4SBeni Lev #define SINFO_ASSIGN \ 19614e8a3c4SBeni Lev do { \ 19714e8a3c4SBeni Lev __entry->generation = sinfo->generation; \ 19814e8a3c4SBeni Lev __entry->connected_time = sinfo->connected_time; \ 19914e8a3c4SBeni Lev __entry->inactive_time = sinfo->inactive_time; \ 20014e8a3c4SBeni Lev __entry->rx_bytes = sinfo->rx_bytes; \ 20114e8a3c4SBeni Lev __entry->tx_bytes = sinfo->tx_bytes; \ 20214e8a3c4SBeni Lev __entry->rx_packets = sinfo->rx_packets; \ 20314e8a3c4SBeni Lev __entry->tx_packets = sinfo->tx_packets; \ 20414e8a3c4SBeni Lev __entry->tx_retries = sinfo->tx_retries; \ 20514e8a3c4SBeni Lev __entry->tx_failed = sinfo->tx_failed; \ 20614e8a3c4SBeni Lev __entry->rx_dropped_misc = sinfo->rx_dropped_misc; \ 20714e8a3c4SBeni Lev __entry->beacon_loss_count = sinfo->beacon_loss_count; \ 20814e8a3c4SBeni Lev __entry->llid = sinfo->llid; \ 20914e8a3c4SBeni Lev __entry->plid = sinfo->plid; \ 21014e8a3c4SBeni Lev __entry->plink_state = sinfo->plink_state; \ 21114e8a3c4SBeni Lev } while (0) 21214e8a3c4SBeni Lev 21314e8a3c4SBeni Lev #define BOOL_TO_STR(bo) (bo) ? "true" : "false" 21414e8a3c4SBeni Lev 215fa9ffc74SKyeyoon Park #define QOS_MAP_ENTRY __field(u8, num_des) \ 216fa9ffc74SKyeyoon Park __array(u8, dscp_exception, \ 217fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX) \ 218fa9ffc74SKyeyoon Park __array(u8, up, IEEE80211_QOS_MAP_LEN_MIN) 219fa9ffc74SKyeyoon Park #define QOS_MAP_ASSIGN(qos_map) \ 220fa9ffc74SKyeyoon Park do { \ 221fa9ffc74SKyeyoon Park if ((qos_map)) { \ 222fa9ffc74SKyeyoon Park __entry->num_des = (qos_map)->num_des; \ 223fa9ffc74SKyeyoon Park memcpy(__entry->dscp_exception, \ 224fa9ffc74SKyeyoon Park &(qos_map)->dscp_exception, \ 225fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 226fa9ffc74SKyeyoon Park memcpy(__entry->up, &(qos_map)->up, \ 227fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 228fa9ffc74SKyeyoon Park } else { \ 229fa9ffc74SKyeyoon Park __entry->num_des = 0; \ 230fa9ffc74SKyeyoon Park memset(__entry->dscp_exception, 0, \ 231fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 232fa9ffc74SKyeyoon Park memset(__entry->up, 0, \ 233fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 234fa9ffc74SKyeyoon Park } \ 235fa9ffc74SKyeyoon Park } while (0) 236fa9ffc74SKyeyoon Park 23714e8a3c4SBeni Lev /************************************************************* 23814e8a3c4SBeni Lev * rdev->ops traces * 23914e8a3c4SBeni Lev *************************************************************/ 24014e8a3c4SBeni Lev 24114e8a3c4SBeni Lev TRACE_EVENT(rdev_suspend, 24214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_wowlan *wow), 24314e8a3c4SBeni Lev TP_ARGS(wiphy, wow), 24414e8a3c4SBeni Lev TP_STRUCT__entry( 24514e8a3c4SBeni Lev WIPHY_ENTRY 24614e8a3c4SBeni Lev __field(bool, any) 24714e8a3c4SBeni Lev __field(bool, disconnect) 24814e8a3c4SBeni Lev __field(bool, magic_pkt) 24914e8a3c4SBeni Lev __field(bool, gtk_rekey_failure) 25014e8a3c4SBeni Lev __field(bool, eap_identity_req) 25114e8a3c4SBeni Lev __field(bool, four_way_handshake) 25214e8a3c4SBeni Lev __field(bool, rfkill_release) 25314e8a3c4SBeni Lev __field(bool, valid_wow) 25414e8a3c4SBeni Lev ), 25514e8a3c4SBeni Lev TP_fast_assign( 25614e8a3c4SBeni Lev WIPHY_ASSIGN; 25714e8a3c4SBeni Lev if (wow) { 25814e8a3c4SBeni Lev __entry->any = wow->any; 25914e8a3c4SBeni Lev __entry->disconnect = wow->disconnect; 26014e8a3c4SBeni Lev __entry->magic_pkt = wow->magic_pkt; 26114e8a3c4SBeni Lev __entry->gtk_rekey_failure = wow->gtk_rekey_failure; 26214e8a3c4SBeni Lev __entry->eap_identity_req = wow->eap_identity_req; 26314e8a3c4SBeni Lev __entry->four_way_handshake = wow->four_way_handshake; 26414e8a3c4SBeni Lev __entry->rfkill_release = wow->rfkill_release; 26514e8a3c4SBeni Lev __entry->valid_wow = true; 26614e8a3c4SBeni Lev } else { 26714e8a3c4SBeni Lev __entry->valid_wow = false; 26814e8a3c4SBeni Lev } 26914e8a3c4SBeni Lev ), 27014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", wow%s - any: %d, disconnect: %d, " 27114e8a3c4SBeni Lev "magic pkt: %d, gtk rekey failure: %d, eap identify req: %d, " 27214e8a3c4SBeni Lev "four way handshake: %d, rfkill release: %d.", 27314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->valid_wow ? "" : "(Not configured!)", 27414e8a3c4SBeni Lev __entry->any, __entry->disconnect, __entry->magic_pkt, 27514e8a3c4SBeni Lev __entry->gtk_rekey_failure, __entry->eap_identity_req, 27614e8a3c4SBeni Lev __entry->four_way_handshake, __entry->rfkill_release) 27714e8a3c4SBeni Lev ); 27814e8a3c4SBeni Lev 27914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int, 28014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret), 28114e8a3c4SBeni Lev TP_ARGS(wiphy, ret), 28214e8a3c4SBeni Lev TP_STRUCT__entry( 28314e8a3c4SBeni Lev WIPHY_ENTRY 28414e8a3c4SBeni Lev __field(int, ret) 28514e8a3c4SBeni Lev ), 28614e8a3c4SBeni Lev TP_fast_assign( 28714e8a3c4SBeni Lev WIPHY_ASSIGN; 28814e8a3c4SBeni Lev __entry->ret = ret; 28914e8a3c4SBeni Lev ), 29014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", WIPHY_PR_ARG, __entry->ret) 29114e8a3c4SBeni Lev ); 29214e8a3c4SBeni Lev 29314e8a3c4SBeni Lev TRACE_EVENT(rdev_scan, 29414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_scan_request *request), 29514e8a3c4SBeni Lev TP_ARGS(wiphy, request), 29614e8a3c4SBeni Lev TP_STRUCT__entry( 29714e8a3c4SBeni Lev WIPHY_ENTRY 29814e8a3c4SBeni Lev ), 29914e8a3c4SBeni Lev TP_fast_assign( 30014e8a3c4SBeni Lev WIPHY_ASSIGN; 30114e8a3c4SBeni Lev ), 30214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 30314e8a3c4SBeni Lev ); 30414e8a3c4SBeni Lev 30514e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_only_evt, 30614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 30714e8a3c4SBeni Lev TP_ARGS(wiphy), 30814e8a3c4SBeni Lev TP_STRUCT__entry( 30914e8a3c4SBeni Lev WIPHY_ENTRY 31014e8a3c4SBeni Lev ), 31114e8a3c4SBeni Lev TP_fast_assign( 31214e8a3c4SBeni Lev WIPHY_ASSIGN; 31314e8a3c4SBeni Lev ), 31414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 31514e8a3c4SBeni Lev ); 31614e8a3c4SBeni Lev 31714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_resume, 31814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 31914e8a3c4SBeni Lev TP_ARGS(wiphy) 32014e8a3c4SBeni Lev ); 32114e8a3c4SBeni Lev 32214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_return_void, 32314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 32414e8a3c4SBeni Lev TP_ARGS(wiphy) 32514e8a3c4SBeni Lev ); 32614e8a3c4SBeni Lev 32714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_get_antenna, 32814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 32914e8a3c4SBeni Lev TP_ARGS(wiphy) 33014e8a3c4SBeni Lev ); 33114e8a3c4SBeni Lev 33214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_rfkill_poll, 33314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 33414e8a3c4SBeni Lev TP_ARGS(wiphy) 33514e8a3c4SBeni Lev ); 33614e8a3c4SBeni Lev 33714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_enabled_evt, 33814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 33914e8a3c4SBeni Lev TP_ARGS(wiphy, enabled), 34014e8a3c4SBeni Lev TP_STRUCT__entry( 34114e8a3c4SBeni Lev WIPHY_ENTRY 34214e8a3c4SBeni Lev __field(bool, enabled) 34314e8a3c4SBeni Lev ), 34414e8a3c4SBeni Lev TP_fast_assign( 34514e8a3c4SBeni Lev WIPHY_ASSIGN; 34614e8a3c4SBeni Lev __entry->enabled = enabled; 34714e8a3c4SBeni Lev ), 34814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", %senabled ", 34914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->enabled ? "" : "not ") 35014e8a3c4SBeni Lev ); 35114e8a3c4SBeni Lev 35214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_enabled_evt, rdev_set_wakeup, 35314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 35414e8a3c4SBeni Lev TP_ARGS(wiphy, enabled) 35514e8a3c4SBeni Lev ); 35614e8a3c4SBeni Lev 35714e8a3c4SBeni Lev TRACE_EVENT(rdev_add_virtual_intf, 35814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, char *name, enum nl80211_iftype type), 35914e8a3c4SBeni Lev TP_ARGS(wiphy, name, type), 36014e8a3c4SBeni Lev TP_STRUCT__entry( 36114e8a3c4SBeni Lev WIPHY_ENTRY 36214e8a3c4SBeni Lev __string(vir_intf_name, name ? name : "<noname>") 36314e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 36414e8a3c4SBeni Lev ), 36514e8a3c4SBeni Lev TP_fast_assign( 36614e8a3c4SBeni Lev WIPHY_ASSIGN; 36714e8a3c4SBeni Lev __assign_str(vir_intf_name, name ? name : "<noname>"); 36814e8a3c4SBeni Lev __entry->type = type; 36914e8a3c4SBeni Lev ), 37014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d", 37114e8a3c4SBeni Lev WIPHY_PR_ARG, __get_str(vir_intf_name), __entry->type) 37214e8a3c4SBeni Lev ); 37314e8a3c4SBeni Lev 37414e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_wdev_evt, 37514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 37614e8a3c4SBeni Lev TP_ARGS(wiphy, wdev), 37714e8a3c4SBeni Lev TP_STRUCT__entry( 37814e8a3c4SBeni Lev WIPHY_ENTRY 37914e8a3c4SBeni Lev WDEV_ENTRY 38014e8a3c4SBeni Lev ), 38114e8a3c4SBeni Lev TP_fast_assign( 38214e8a3c4SBeni Lev WIPHY_ASSIGN; 38314e8a3c4SBeni Lev WDEV_ASSIGN; 38414e8a3c4SBeni Lev ), 385ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 38614e8a3c4SBeni Lev ); 38714e8a3c4SBeni Lev 3889bb7e0f2SJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_cookie_evt, 3899bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 3909bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 3919bb7e0f2SJohannes Berg TP_STRUCT__entry( 3929bb7e0f2SJohannes Berg WIPHY_ENTRY 3939bb7e0f2SJohannes Berg WDEV_ENTRY 3949bb7e0f2SJohannes Berg __field(u64, cookie) 3959bb7e0f2SJohannes Berg ), 3969bb7e0f2SJohannes Berg TP_fast_assign( 3979bb7e0f2SJohannes Berg WIPHY_ASSIGN; 3989bb7e0f2SJohannes Berg WDEV_ASSIGN; 3999bb7e0f2SJohannes Berg __entry->cookie = cookie; 4009bb7e0f2SJohannes Berg ), 4019bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %lld", 4029bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 4039bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 4049bb7e0f2SJohannes Berg ); 4059bb7e0f2SJohannes Berg 40614e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_return_wdev, 40714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 40814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 40914e8a3c4SBeni Lev ); 41014e8a3c4SBeni Lev 41114e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_del_virtual_intf, 41214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 41314e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 41414e8a3c4SBeni Lev ); 41514e8a3c4SBeni Lev 41614e8a3c4SBeni Lev TRACE_EVENT(rdev_change_virtual_intf, 41714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 41814e8a3c4SBeni Lev enum nl80211_iftype type), 41914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, type), 42014e8a3c4SBeni Lev TP_STRUCT__entry( 42114e8a3c4SBeni Lev WIPHY_ENTRY 42214e8a3c4SBeni Lev NETDEV_ENTRY 42314e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 42414e8a3c4SBeni Lev ), 42514e8a3c4SBeni Lev TP_fast_assign( 42614e8a3c4SBeni Lev WIPHY_ASSIGN; 42714e8a3c4SBeni Lev NETDEV_ASSIGN; 42814e8a3c4SBeni Lev __entry->type = type; 42914e8a3c4SBeni Lev ), 430ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", type: %d", 43114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->type) 43214e8a3c4SBeni Lev ); 43314e8a3c4SBeni Lev 43414e8a3c4SBeni Lev DECLARE_EVENT_CLASS(key_handle, 435e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 436e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr), 437e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr), 43814e8a3c4SBeni Lev TP_STRUCT__entry( 43914e8a3c4SBeni Lev WIPHY_ENTRY 44014e8a3c4SBeni Lev NETDEV_ENTRY 44114e8a3c4SBeni Lev MAC_ENTRY(mac_addr) 442e7a7b84eSVeerendranath Jakkam __field(int, link_id) 44314e8a3c4SBeni Lev __field(u8, key_index) 44414e8a3c4SBeni Lev __field(bool, pairwise) 44514e8a3c4SBeni Lev ), 44614e8a3c4SBeni Lev TP_fast_assign( 44714e8a3c4SBeni Lev WIPHY_ASSIGN; 44814e8a3c4SBeni Lev NETDEV_ASSIGN; 44914e8a3c4SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 450e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 45114e8a3c4SBeni Lev __entry->key_index = key_index; 45214e8a3c4SBeni Lev __entry->pairwise = pairwise; 45314e8a3c4SBeni Lev ), 454e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 455*3d9c3617SJohannes Berg "key_index: %u, pairwise: %s, mac addr: %pM", 456e7a7b84eSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 457e7a7b84eSVeerendranath Jakkam __entry->key_index, BOOL_TO_STR(__entry->pairwise), 458*3d9c3617SJohannes Berg __entry->mac_addr) 45914e8a3c4SBeni Lev ); 46014e8a3c4SBeni Lev 46114e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_get_key, 462e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 463e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr), 464e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr) 46514e8a3c4SBeni Lev ); 46614e8a3c4SBeni Lev 46714e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_del_key, 468e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 469e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr), 470e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr) 47114e8a3c4SBeni Lev ); 47214e8a3c4SBeni Lev 4736cdd3979SAlexander Wetzel TRACE_EVENT(rdev_add_key, 474e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 475e7a7b84eSVeerendranath Jakkam u8 key_index, bool pairwise, const u8 *mac_addr, u8 mode), 476e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, pairwise, mac_addr, mode), 4776cdd3979SAlexander Wetzel TP_STRUCT__entry( 4786cdd3979SAlexander Wetzel WIPHY_ENTRY 4796cdd3979SAlexander Wetzel NETDEV_ENTRY 4806cdd3979SAlexander Wetzel MAC_ENTRY(mac_addr) 481e7a7b84eSVeerendranath Jakkam __field(int, link_id) 4826cdd3979SAlexander Wetzel __field(u8, key_index) 4836cdd3979SAlexander Wetzel __field(bool, pairwise) 4846cdd3979SAlexander Wetzel __field(u8, mode) 4856cdd3979SAlexander Wetzel ), 4866cdd3979SAlexander Wetzel TP_fast_assign( 4876cdd3979SAlexander Wetzel WIPHY_ASSIGN; 4886cdd3979SAlexander Wetzel NETDEV_ASSIGN; 4896cdd3979SAlexander Wetzel MAC_ASSIGN(mac_addr, mac_addr); 490e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 4916cdd3979SAlexander Wetzel __entry->key_index = key_index; 4926cdd3979SAlexander Wetzel __entry->pairwise = pairwise; 4936cdd3979SAlexander Wetzel __entry->mode = mode; 4946cdd3979SAlexander Wetzel ), 495e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 496e7a7b84eSVeerendranath Jakkam "key_index: %u, mode: %u, pairwise: %s, " 497*3d9c3617SJohannes Berg "mac addr: %pM", 498e7a7b84eSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 499e7a7b84eSVeerendranath Jakkam __entry->key_index, __entry->mode, 500*3d9c3617SJohannes Berg BOOL_TO_STR(__entry->pairwise), __entry->mac_addr) 5016cdd3979SAlexander Wetzel ); 5026cdd3979SAlexander Wetzel 50314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_key, 504e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 505e7a7b84eSVeerendranath Jakkam u8 key_index, bool unicast, bool multicast), 506e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index, unicast, multicast), 50714e8a3c4SBeni Lev TP_STRUCT__entry( 50814e8a3c4SBeni Lev WIPHY_ENTRY 50914e8a3c4SBeni Lev NETDEV_ENTRY 510e7a7b84eSVeerendranath Jakkam __field(int, link_id) 51114e8a3c4SBeni Lev __field(u8, key_index) 51214e8a3c4SBeni Lev __field(bool, unicast) 51314e8a3c4SBeni Lev __field(bool, multicast) 51414e8a3c4SBeni Lev ), 51514e8a3c4SBeni Lev TP_fast_assign( 51614e8a3c4SBeni Lev WIPHY_ASSIGN; 51714e8a3c4SBeni Lev NETDEV_ASSIGN; 518e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 51914e8a3c4SBeni Lev __entry->key_index = key_index; 52014e8a3c4SBeni Lev __entry->unicast = unicast; 52114e8a3c4SBeni Lev __entry->multicast = multicast; 52214e8a3c4SBeni Lev ), 523e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 524e7a7b84eSVeerendranath Jakkam "key index: %u, unicast: %s, multicast: %s", 525e7a7b84eSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 526e7a7b84eSVeerendranath Jakkam __entry->key_index, BOOL_TO_STR(__entry->unicast), 52714e8a3c4SBeni Lev BOOL_TO_STR(__entry->multicast)) 52814e8a3c4SBeni Lev ); 52914e8a3c4SBeni Lev 53014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_mgmt_key, 531e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 532e7a7b84eSVeerendranath Jakkam u8 key_index), 533e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index), 53414e8a3c4SBeni Lev TP_STRUCT__entry( 53514e8a3c4SBeni Lev WIPHY_ENTRY 53614e8a3c4SBeni Lev NETDEV_ENTRY 537e7a7b84eSVeerendranath Jakkam __field(int, link_id) 53814e8a3c4SBeni Lev __field(u8, key_index) 53914e8a3c4SBeni Lev ), 54014e8a3c4SBeni Lev TP_fast_assign( 54114e8a3c4SBeni Lev WIPHY_ASSIGN; 54214e8a3c4SBeni Lev NETDEV_ASSIGN; 543e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 54414e8a3c4SBeni Lev __entry->key_index = key_index; 54514e8a3c4SBeni Lev ), 546e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 547e7a7b84eSVeerendranath Jakkam "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 548e7a7b84eSVeerendranath Jakkam __entry->link_id, __entry->key_index) 54914e8a3c4SBeni Lev ); 55014e8a3c4SBeni Lev 55156be393fSJouni Malinen TRACE_EVENT(rdev_set_default_beacon_key, 552e7a7b84eSVeerendranath Jakkam TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int link_id, 553e7a7b84eSVeerendranath Jakkam u8 key_index), 554e7a7b84eSVeerendranath Jakkam TP_ARGS(wiphy, netdev, link_id, key_index), 55556be393fSJouni Malinen TP_STRUCT__entry( 55656be393fSJouni Malinen WIPHY_ENTRY 55756be393fSJouni Malinen NETDEV_ENTRY 558e7a7b84eSVeerendranath Jakkam __field(int, link_id) 55956be393fSJouni Malinen __field(u8, key_index) 56056be393fSJouni Malinen ), 56156be393fSJouni Malinen TP_fast_assign( 56256be393fSJouni Malinen WIPHY_ASSIGN; 56356be393fSJouni Malinen NETDEV_ASSIGN; 564e7a7b84eSVeerendranath Jakkam __entry->link_id = link_id; 56556be393fSJouni Malinen __entry->key_index = key_index; 56656be393fSJouni Malinen ), 567e7a7b84eSVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, " 568e7a7b84eSVeerendranath Jakkam "key index: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 569e7a7b84eSVeerendranath Jakkam __entry->link_id, __entry->key_index) 57056be393fSJouni Malinen ); 57156be393fSJouni Malinen 57214e8a3c4SBeni Lev TRACE_EVENT(rdev_start_ap, 57314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 57414e8a3c4SBeni Lev struct cfg80211_ap_settings *settings), 57514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, settings), 57614e8a3c4SBeni Lev TP_STRUCT__entry( 57714e8a3c4SBeni Lev WIPHY_ENTRY 57814e8a3c4SBeni Lev NETDEV_ENTRY 579683b6d3bSJohannes Berg CHAN_DEF_ENTRY 58014e8a3c4SBeni Lev __field(int, beacon_interval) 58114e8a3c4SBeni Lev __field(int, dtim_period) 58214e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 58314e8a3c4SBeni Lev __field(enum nl80211_hidden_ssid, hidden_ssid) 58414e8a3c4SBeni Lev __field(u32, wpa_ver) 58514e8a3c4SBeni Lev __field(bool, privacy) 58614e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 58714e8a3c4SBeni Lev __field(int, inactivity_timeout) 5887b0a0e3cSJohannes Berg __field(unsigned int, link_id) 58914e8a3c4SBeni Lev ), 59014e8a3c4SBeni Lev TP_fast_assign( 59114e8a3c4SBeni Lev WIPHY_ASSIGN; 59214e8a3c4SBeni Lev NETDEV_ASSIGN; 593683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(&settings->chandef); 59414e8a3c4SBeni Lev __entry->beacon_interval = settings->beacon_interval; 59514e8a3c4SBeni Lev __entry->dtim_period = settings->dtim_period; 59614e8a3c4SBeni Lev __entry->hidden_ssid = settings->hidden_ssid; 59714e8a3c4SBeni Lev __entry->wpa_ver = settings->crypto.wpa_versions; 59814e8a3c4SBeni Lev __entry->privacy = settings->privacy; 59914e8a3c4SBeni Lev __entry->auth_type = settings->auth_type; 60014e8a3c4SBeni Lev __entry->inactivity_timeout = settings->inactivity_timeout; 60114e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 60214e8a3c4SBeni Lev memcpy(__entry->ssid, settings->ssid, settings->ssid_len); 6037b0a0e3cSJohannes Berg __entry->link_id = settings->beacon.link_id; 60414e8a3c4SBeni Lev ), 605ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " 606683b6d3bSJohannes Berg CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " 60714e8a3c4SBeni Lev "hidden ssid: %d, wpa versions: %u, privacy: %s, " 6087b0a0e3cSJohannes Berg "auth type: %d, inactivity timeout: %d, link_id: %d", 609683b6d3bSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, 61014e8a3c4SBeni Lev __entry->beacon_interval, __entry->dtim_period, 61114e8a3c4SBeni Lev __entry->hidden_ssid, __entry->wpa_ver, 61214e8a3c4SBeni Lev BOOL_TO_STR(__entry->privacy), __entry->auth_type, 6137b0a0e3cSJohannes Berg __entry->inactivity_timeout, __entry->link_id) 61414e8a3c4SBeni Lev ); 61514e8a3c4SBeni Lev 61614e8a3c4SBeni Lev TRACE_EVENT(rdev_change_beacon, 61714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 61814e8a3c4SBeni Lev struct cfg80211_beacon_data *info), 61914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, info), 62014e8a3c4SBeni Lev TP_STRUCT__entry( 62114e8a3c4SBeni Lev WIPHY_ENTRY 62214e8a3c4SBeni Lev NETDEV_ENTRY 6237b0a0e3cSJohannes Berg __field(int, link_id) 62414e8a3c4SBeni Lev __dynamic_array(u8, head, info ? info->head_len : 0) 62514e8a3c4SBeni Lev __dynamic_array(u8, tail, info ? info->tail_len : 0) 62614e8a3c4SBeni Lev __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) 62714e8a3c4SBeni Lev __dynamic_array(u8, proberesp_ies, 62814e8a3c4SBeni Lev info ? info->proberesp_ies_len : 0) 62914e8a3c4SBeni Lev __dynamic_array(u8, assocresp_ies, 63014e8a3c4SBeni Lev info ? info->assocresp_ies_len : 0) 63114e8a3c4SBeni Lev __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) 63214e8a3c4SBeni Lev ), 63314e8a3c4SBeni Lev TP_fast_assign( 63414e8a3c4SBeni Lev WIPHY_ASSIGN; 63514e8a3c4SBeni Lev NETDEV_ASSIGN; 63614e8a3c4SBeni Lev if (info) { 6377b0a0e3cSJohannes Berg __entry->link_id = info->link_id; 63814e8a3c4SBeni Lev if (info->head) 63914e8a3c4SBeni Lev memcpy(__get_dynamic_array(head), info->head, 64014e8a3c4SBeni Lev info->head_len); 64114e8a3c4SBeni Lev if (info->tail) 64214e8a3c4SBeni Lev memcpy(__get_dynamic_array(tail), info->tail, 64314e8a3c4SBeni Lev info->tail_len); 64414e8a3c4SBeni Lev if (info->beacon_ies) 64514e8a3c4SBeni Lev memcpy(__get_dynamic_array(beacon_ies), 64614e8a3c4SBeni Lev info->beacon_ies, info->beacon_ies_len); 64714e8a3c4SBeni Lev if (info->proberesp_ies) 64814e8a3c4SBeni Lev memcpy(__get_dynamic_array(proberesp_ies), 64914e8a3c4SBeni Lev info->proberesp_ies, 65014e8a3c4SBeni Lev info->proberesp_ies_len); 65114e8a3c4SBeni Lev if (info->assocresp_ies) 65214e8a3c4SBeni Lev memcpy(__get_dynamic_array(assocresp_ies), 65314e8a3c4SBeni Lev info->assocresp_ies, 65414e8a3c4SBeni Lev info->assocresp_ies_len); 65514e8a3c4SBeni Lev if (info->probe_resp) 65614e8a3c4SBeni Lev memcpy(__get_dynamic_array(probe_resp), 65714e8a3c4SBeni Lev info->probe_resp, info->probe_resp_len); 6587b0a0e3cSJohannes Berg } else { 6597b0a0e3cSJohannes Berg __entry->link_id = -1; 66014e8a3c4SBeni Lev } 66114e8a3c4SBeni Lev ), 6627b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d", 6637b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 6647b0a0e3cSJohannes Berg ); 6657b0a0e3cSJohannes Berg 6667b0a0e3cSJohannes Berg TRACE_EVENT(rdev_stop_ap, 6677b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 6687b0a0e3cSJohannes Berg unsigned int link_id), 6697b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id), 6707b0a0e3cSJohannes Berg TP_STRUCT__entry( 6717b0a0e3cSJohannes Berg WIPHY_ENTRY 6727b0a0e3cSJohannes Berg NETDEV_ENTRY 6737b0a0e3cSJohannes Berg __field(unsigned int, link_id) 6747b0a0e3cSJohannes Berg ), 6757b0a0e3cSJohannes Berg TP_fast_assign( 6767b0a0e3cSJohannes Berg WIPHY_ASSIGN; 6777b0a0e3cSJohannes Berg NETDEV_ASSIGN; 6787b0a0e3cSJohannes Berg __entry->link_id = link_id; 6797b0a0e3cSJohannes Berg ), 6807b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d", 6817b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) 68214e8a3c4SBeni Lev ); 68314e8a3c4SBeni Lev 68414e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_evt, 68514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 68614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev), 68714e8a3c4SBeni Lev TP_STRUCT__entry( 68814e8a3c4SBeni Lev WIPHY_ENTRY 68914e8a3c4SBeni Lev NETDEV_ENTRY 69014e8a3c4SBeni Lev ), 69114e8a3c4SBeni Lev TP_fast_assign( 69214e8a3c4SBeni Lev WIPHY_ASSIGN; 69314e8a3c4SBeni Lev NETDEV_ASSIGN; 69414e8a3c4SBeni Lev ), 695ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 69614e8a3c4SBeni Lev ); 69714e8a3c4SBeni Lev 69814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, 69914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 70014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 70114e8a3c4SBeni Lev ); 70214e8a3c4SBeni Lev 70314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config, 70414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 70514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 70614e8a3c4SBeni Lev ); 70714e8a3c4SBeni Lev 70814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh, 70914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 71014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 71114e8a3c4SBeni Lev ); 71214e8a3c4SBeni Lev 71314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss, 71414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 71514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 71614e8a3c4SBeni Lev ); 71714e8a3c4SBeni Lev 7186e0bd6c3SRostislav Lisovy DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb, 7196e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 7206e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev) 7216e0bd6c3SRostislav Lisovy ); 7226e0bd6c3SRostislav Lisovy 72314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa, 72414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 72514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 72614e8a3c4SBeni Lev ); 72714e8a3c4SBeni Lev 72826ec17a1SOrr Mazor DEFINE_EVENT(wiphy_netdev_evt, rdev_end_cac, 72926ec17a1SOrr Mazor TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 73026ec17a1SOrr Mazor TP_ARGS(wiphy, netdev) 73126ec17a1SOrr Mazor ); 73226ec17a1SOrr Mazor 73314e8a3c4SBeni Lev DECLARE_EVENT_CLASS(station_add_change, 73414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 73514e8a3c4SBeni Lev struct station_parameters *params), 73614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params), 73714e8a3c4SBeni Lev TP_STRUCT__entry( 73814e8a3c4SBeni Lev WIPHY_ENTRY 73914e8a3c4SBeni Lev NETDEV_ENTRY 74014e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 74114e8a3c4SBeni Lev __field(u32, sta_flags_mask) 74214e8a3c4SBeni Lev __field(u32, sta_flags_set) 74314e8a3c4SBeni Lev __field(u32, sta_modify_mask) 74414e8a3c4SBeni Lev __field(int, listen_interval) 7456e045905SJohannes Berg __field(u16, capability) 74614e8a3c4SBeni Lev __field(u16, aid) 74714e8a3c4SBeni Lev __field(u8, plink_action) 74814e8a3c4SBeni Lev __field(u8, plink_state) 74914e8a3c4SBeni Lev __field(u8, uapsd_queues) 7506e045905SJohannes Berg __field(u8, max_sp) 7516e045905SJohannes Berg __field(u8, opmode_notif) 7526e045905SJohannes Berg __field(bool, opmode_notif_used) 75314e8a3c4SBeni Lev __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 7546e045905SJohannes Berg __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 7555d8325ecSJohannes Berg __array(char, vlan, IFNAMSIZ) 7566e045905SJohannes Berg __dynamic_array(u8, supported_rates, 757b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len) 7586e045905SJohannes Berg __dynamic_array(u8, ext_capab, params->ext_capab_len) 7596e045905SJohannes Berg __dynamic_array(u8, supported_channels, 7606e045905SJohannes Berg params->supported_channels_len) 7616e045905SJohannes Berg __dynamic_array(u8, supported_oper_classes, 7626e045905SJohannes Berg params->supported_oper_classes_len) 76314e8a3c4SBeni Lev ), 76414e8a3c4SBeni Lev TP_fast_assign( 76514e8a3c4SBeni Lev WIPHY_ASSIGN; 76614e8a3c4SBeni Lev NETDEV_ASSIGN; 76714e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 76814e8a3c4SBeni Lev __entry->sta_flags_mask = params->sta_flags_mask; 76914e8a3c4SBeni Lev __entry->sta_flags_set = params->sta_flags_set; 77014e8a3c4SBeni Lev __entry->sta_modify_mask = params->sta_modify_mask; 77114e8a3c4SBeni Lev __entry->listen_interval = params->listen_interval; 77214e8a3c4SBeni Lev __entry->aid = params->aid; 77314e8a3c4SBeni Lev __entry->plink_action = params->plink_action; 77414e8a3c4SBeni Lev __entry->plink_state = params->plink_state; 77514e8a3c4SBeni Lev __entry->uapsd_queues = params->uapsd_queues; 77614e8a3c4SBeni Lev memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 777b95eb7f0SShaul Triebitz if (params->link_sta_params.ht_capa) 778b95eb7f0SShaul Triebitz memcpy(__entry->ht_capa, 779b95eb7f0SShaul Triebitz params->link_sta_params.ht_capa, 78014e8a3c4SBeni Lev sizeof(struct ieee80211_ht_cap)); 7816e045905SJohannes Berg memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 782b95eb7f0SShaul Triebitz if (params->link_sta_params.vht_capa) 783b95eb7f0SShaul Triebitz memcpy(__entry->vht_capa, 784b95eb7f0SShaul Triebitz params->link_sta_params.vht_capa, 7856e045905SJohannes Berg sizeof(struct ieee80211_vht_cap)); 7865d8325ecSJohannes Berg memset(__entry->vlan, 0, sizeof(__entry->vlan)); 7875d8325ecSJohannes Berg if (params->vlan) 7885d8325ecSJohannes Berg memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ); 789b95eb7f0SShaul Triebitz if (params->link_sta_params.supported_rates && 790b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len) 7916e045905SJohannes Berg memcpy(__get_dynamic_array(supported_rates), 792b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates, 793b95eb7f0SShaul Triebitz params->link_sta_params.supported_rates_len); 7946e045905SJohannes Berg if (params->ext_capab && params->ext_capab_len) 7956e045905SJohannes Berg memcpy(__get_dynamic_array(ext_capab), 7966e045905SJohannes Berg params->ext_capab, 7976e045905SJohannes Berg params->ext_capab_len); 7986e045905SJohannes Berg if (params->supported_channels && 7996e045905SJohannes Berg params->supported_channels_len) 8006e045905SJohannes Berg memcpy(__get_dynamic_array(supported_channels), 8016e045905SJohannes Berg params->supported_channels, 8026e045905SJohannes Berg params->supported_channels_len); 8036e045905SJohannes Berg if (params->supported_oper_classes && 8046e045905SJohannes Berg params->supported_oper_classes_len) 8056e045905SJohannes Berg memcpy(__get_dynamic_array(supported_oper_classes), 8066e045905SJohannes Berg params->supported_oper_classes, 8076e045905SJohannes Berg params->supported_oper_classes_len); 8086e045905SJohannes Berg __entry->max_sp = params->max_sp; 8096e045905SJohannes Berg __entry->capability = params->capability; 810b95eb7f0SShaul Triebitz __entry->opmode_notif = params->link_sta_params.opmode_notif; 811b95eb7f0SShaul Triebitz __entry->opmode_notif_used = 812b95eb7f0SShaul Triebitz params->link_sta_params.opmode_notif_used; 81314e8a3c4SBeni Lev ), 814*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM" 81514e8a3c4SBeni Lev ", station flags mask: %u, station flags set: %u, " 81614e8a3c4SBeni Lev "station modify mask: %u, listen interval: %d, aid: %u, " 8175d8325ecSJohannes Berg "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s", 818*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac, 81914e8a3c4SBeni Lev __entry->sta_flags_mask, __entry->sta_flags_set, 82014e8a3c4SBeni Lev __entry->sta_modify_mask, __entry->listen_interval, 82114e8a3c4SBeni Lev __entry->aid, __entry->plink_action, __entry->plink_state, 8225d8325ecSJohannes Berg __entry->uapsd_queues, __entry->vlan) 82314e8a3c4SBeni Lev ); 82414e8a3c4SBeni Lev 82514e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_add_station, 82614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 82714e8a3c4SBeni Lev struct station_parameters *params), 82814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 82914e8a3c4SBeni Lev ); 83014e8a3c4SBeni Lev 83114e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_change_station, 83214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 83314e8a3c4SBeni Lev struct station_parameters *params), 83414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 83514e8a3c4SBeni Lev ); 83614e8a3c4SBeni Lev 83714e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt, 83814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 83914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac), 84014e8a3c4SBeni Lev TP_STRUCT__entry( 84114e8a3c4SBeni Lev WIPHY_ENTRY 84214e8a3c4SBeni Lev NETDEV_ENTRY 84314e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 84414e8a3c4SBeni Lev ), 84514e8a3c4SBeni Lev TP_fast_assign( 84614e8a3c4SBeni Lev WIPHY_ASSIGN; 84714e8a3c4SBeni Lev NETDEV_ASSIGN; 84814e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 84914e8a3c4SBeni Lev ), 850*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: %pM", 851*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac) 85214e8a3c4SBeni Lev ); 85314e8a3c4SBeni Lev 85489c771e5SJouni Malinen DECLARE_EVENT_CLASS(station_del, 85589c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 85689c771e5SJouni Malinen struct station_del_parameters *params), 85789c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params), 85889c771e5SJouni Malinen TP_STRUCT__entry( 85989c771e5SJouni Malinen WIPHY_ENTRY 86089c771e5SJouni Malinen NETDEV_ENTRY 86189c771e5SJouni Malinen MAC_ENTRY(sta_mac) 86298856866SJouni Malinen __field(u8, subtype) 86398856866SJouni Malinen __field(u16, reason_code) 86489c771e5SJouni Malinen ), 86589c771e5SJouni Malinen TP_fast_assign( 86689c771e5SJouni Malinen WIPHY_ASSIGN; 86789c771e5SJouni Malinen NETDEV_ASSIGN; 86889c771e5SJouni Malinen MAC_ASSIGN(sta_mac, params->mac); 86998856866SJouni Malinen __entry->subtype = params->subtype; 87098856866SJouni Malinen __entry->reason_code = params->reason_code; 87189c771e5SJouni Malinen ), 872*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM" 87398856866SJouni Malinen ", subtype: %u, reason_code: %u", 874*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac, 87598856866SJouni Malinen __entry->subtype, __entry->reason_code) 87689c771e5SJouni Malinen ); 87789c771e5SJouni Malinen 87889c771e5SJouni Malinen DEFINE_EVENT(station_del, rdev_del_station, 87989c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 88089c771e5SJouni Malinen struct station_del_parameters *params), 88189c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params) 88214e8a3c4SBeni Lev ); 88314e8a3c4SBeni Lev 88414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station, 88514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 88614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 88714e8a3c4SBeni Lev ); 88814e8a3c4SBeni Lev 88914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath, 89014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 89114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 89214e8a3c4SBeni Lev ); 89314e8a3c4SBeni Lev 89414e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_station, 895aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 89614e8a3c4SBeni Lev u8 *mac), 897aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mac), 89814e8a3c4SBeni Lev TP_STRUCT__entry( 89914e8a3c4SBeni Lev WIPHY_ENTRY 90014e8a3c4SBeni Lev NETDEV_ENTRY 90114e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 90214e8a3c4SBeni Lev __field(int, idx) 90314e8a3c4SBeni Lev ), 90414e8a3c4SBeni Lev TP_fast_assign( 90514e8a3c4SBeni Lev WIPHY_ASSIGN; 90614e8a3c4SBeni Lev NETDEV_ASSIGN; 90714e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 908aaaa10e0SJohannes Berg __entry->idx = _idx; 90914e8a3c4SBeni Lev ), 910*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM, idx: %d", 911*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac, 91214e8a3c4SBeni Lev __entry->idx) 91314e8a3c4SBeni Lev ); 91414e8a3c4SBeni Lev 91514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_station_info, 91614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo), 91714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, sinfo), 91814e8a3c4SBeni Lev TP_STRUCT__entry( 91914e8a3c4SBeni Lev WIPHY_ENTRY 92014e8a3c4SBeni Lev __field(int, ret) 92114e8a3c4SBeni Lev SINFO_ENTRY 92214e8a3c4SBeni Lev ), 92314e8a3c4SBeni Lev TP_fast_assign( 92414e8a3c4SBeni Lev WIPHY_ASSIGN; 92514e8a3c4SBeni Lev __entry->ret = ret; 92614e8a3c4SBeni Lev SINFO_ASSIGN; 92714e8a3c4SBeni Lev ), 92814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d" , 92914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 93014e8a3c4SBeni Lev ); 93114e8a3c4SBeni Lev 93214e8a3c4SBeni Lev DECLARE_EVENT_CLASS(mpath_evt, 93314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 93414e8a3c4SBeni Lev u8 *next_hop), 93514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop), 93614e8a3c4SBeni Lev TP_STRUCT__entry( 93714e8a3c4SBeni Lev WIPHY_ENTRY 93814e8a3c4SBeni Lev NETDEV_ENTRY 93914e8a3c4SBeni Lev MAC_ENTRY(dst) 94014e8a3c4SBeni Lev MAC_ENTRY(next_hop) 94114e8a3c4SBeni Lev ), 94214e8a3c4SBeni Lev TP_fast_assign( 94314e8a3c4SBeni Lev WIPHY_ASSIGN; 94414e8a3c4SBeni Lev NETDEV_ASSIGN; 94514e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 94614e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 94714e8a3c4SBeni Lev ), 948*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM, next hop: %pM", 949*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dst, 950*3d9c3617SJohannes Berg __entry->next_hop) 95114e8a3c4SBeni Lev ); 95214e8a3c4SBeni Lev 95314e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_add_mpath, 95414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 95514e8a3c4SBeni Lev u8 *next_hop), 95614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 95714e8a3c4SBeni Lev ); 95814e8a3c4SBeni Lev 95914e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_change_mpath, 96014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 96114e8a3c4SBeni Lev u8 *next_hop), 96214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 96314e8a3c4SBeni Lev ); 96414e8a3c4SBeni Lev 96514e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_get_mpath, 96614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 96714e8a3c4SBeni Lev u8 *next_hop), 96814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 96914e8a3c4SBeni Lev ); 97014e8a3c4SBeni Lev 97114e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_mpath, 972aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 97314e8a3c4SBeni Lev u8 *dst, u8 *next_hop), 974aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, dst, next_hop), 97514e8a3c4SBeni Lev TP_STRUCT__entry( 97614e8a3c4SBeni Lev WIPHY_ENTRY 97714e8a3c4SBeni Lev NETDEV_ENTRY 97814e8a3c4SBeni Lev MAC_ENTRY(dst) 97914e8a3c4SBeni Lev MAC_ENTRY(next_hop) 98014e8a3c4SBeni Lev __field(int, idx) 98114e8a3c4SBeni Lev ), 98214e8a3c4SBeni Lev TP_fast_assign( 98314e8a3c4SBeni Lev WIPHY_ASSIGN; 98414e8a3c4SBeni Lev NETDEV_ASSIGN; 98514e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 98614e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 987aaaa10e0SJohannes Berg __entry->idx = _idx; 98814e8a3c4SBeni Lev ), 989*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, next hop: %pM", 990*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst, 991*3d9c3617SJohannes Berg __entry->next_hop) 99214e8a3c4SBeni Lev ); 99314e8a3c4SBeni Lev 99466be7d2bSHenning Rogge TRACE_EVENT(rdev_get_mpp, 99566be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 99666be7d2bSHenning Rogge u8 *dst, u8 *mpp), 99766be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, dst, mpp), 99866be7d2bSHenning Rogge TP_STRUCT__entry( 99966be7d2bSHenning Rogge WIPHY_ENTRY 100066be7d2bSHenning Rogge NETDEV_ENTRY 100166be7d2bSHenning Rogge MAC_ENTRY(dst) 100266be7d2bSHenning Rogge MAC_ENTRY(mpp) 100366be7d2bSHenning Rogge ), 100466be7d2bSHenning Rogge TP_fast_assign( 100566be7d2bSHenning Rogge WIPHY_ASSIGN; 100666be7d2bSHenning Rogge NETDEV_ASSIGN; 100766be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 100866be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 100966be7d2bSHenning Rogge ), 1010*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM" 1011*3d9c3617SJohannes Berg ", mpp: %pM", WIPHY_PR_ARG, NETDEV_PR_ARG, 1012*3d9c3617SJohannes Berg __entry->dst, __entry->mpp) 101366be7d2bSHenning Rogge ); 101466be7d2bSHenning Rogge 101566be7d2bSHenning Rogge TRACE_EVENT(rdev_dump_mpp, 1016aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx, 101766be7d2bSHenning Rogge u8 *dst, u8 *mpp), 1018aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx, mpp, dst), 101966be7d2bSHenning Rogge TP_STRUCT__entry( 102066be7d2bSHenning Rogge WIPHY_ENTRY 102166be7d2bSHenning Rogge NETDEV_ENTRY 102266be7d2bSHenning Rogge MAC_ENTRY(dst) 102366be7d2bSHenning Rogge MAC_ENTRY(mpp) 102466be7d2bSHenning Rogge __field(int, idx) 102566be7d2bSHenning Rogge ), 102666be7d2bSHenning Rogge TP_fast_assign( 102766be7d2bSHenning Rogge WIPHY_ASSIGN; 102866be7d2bSHenning Rogge NETDEV_ASSIGN; 102966be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 103066be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 1031aaaa10e0SJohannes Berg __entry->idx = _idx; 103266be7d2bSHenning Rogge ), 1033*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, mpp: %pM", 1034*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst, 1035*3d9c3617SJohannes Berg __entry->mpp) 103666be7d2bSHenning Rogge ); 103766be7d2bSHenning Rogge 103814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mpath_info, 103914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo), 104014e8a3c4SBeni Lev TP_ARGS(wiphy, ret, pinfo), 104114e8a3c4SBeni Lev TP_STRUCT__entry( 104214e8a3c4SBeni Lev WIPHY_ENTRY 104314e8a3c4SBeni Lev __field(int, ret) 104414e8a3c4SBeni Lev __field(int, generation) 104514e8a3c4SBeni Lev __field(u32, filled) 104614e8a3c4SBeni Lev __field(u32, frame_qlen) 104714e8a3c4SBeni Lev __field(u32, sn) 104814e8a3c4SBeni Lev __field(u32, metric) 104914e8a3c4SBeni Lev __field(u32, exptime) 105014e8a3c4SBeni Lev __field(u32, discovery_timeout) 105114e8a3c4SBeni Lev __field(u8, discovery_retries) 105214e8a3c4SBeni Lev __field(u8, flags) 105314e8a3c4SBeni Lev ), 105414e8a3c4SBeni Lev TP_fast_assign( 105514e8a3c4SBeni Lev WIPHY_ASSIGN; 105614e8a3c4SBeni Lev __entry->ret = ret; 105714e8a3c4SBeni Lev __entry->generation = pinfo->generation; 105814e8a3c4SBeni Lev __entry->filled = pinfo->filled; 105914e8a3c4SBeni Lev __entry->frame_qlen = pinfo->frame_qlen; 106014e8a3c4SBeni Lev __entry->sn = pinfo->sn; 106114e8a3c4SBeni Lev __entry->metric = pinfo->metric; 106214e8a3c4SBeni Lev __entry->exptime = pinfo->exptime; 106314e8a3c4SBeni Lev __entry->discovery_timeout = pinfo->discovery_timeout; 106414e8a3c4SBeni Lev __entry->discovery_retries = pinfo->discovery_retries; 106514e8a3c4SBeni Lev __entry->flags = pinfo->flags; 106614e8a3c4SBeni Lev ), 106714e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, " 106814e8a3c4SBeni Lev "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u," 106914e8a3c4SBeni Lev " discovery timeout: %u, discovery retries: %u, flags: %u", 107014e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->generation, 107114e8a3c4SBeni Lev __entry->filled, __entry->frame_qlen, __entry->sn, 107214e8a3c4SBeni Lev __entry->metric, __entry->exptime, __entry->discovery_timeout, 107314e8a3c4SBeni Lev __entry->discovery_retries, __entry->flags) 107414e8a3c4SBeni Lev ); 107514e8a3c4SBeni Lev 107614e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mesh_config, 107714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf), 107814e8a3c4SBeni Lev TP_ARGS(wiphy, ret, conf), 107914e8a3c4SBeni Lev TP_STRUCT__entry( 108014e8a3c4SBeni Lev WIPHY_ENTRY 108114e8a3c4SBeni Lev MESH_CFG_ENTRY 108214e8a3c4SBeni Lev __field(int, ret) 108314e8a3c4SBeni Lev ), 108414e8a3c4SBeni Lev TP_fast_assign( 108514e8a3c4SBeni Lev WIPHY_ASSIGN; 108614e8a3c4SBeni Lev MESH_CFG_ASSIGN; 108714e8a3c4SBeni Lev __entry->ret = ret; 108814e8a3c4SBeni Lev ), 108914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", 109014e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 109114e8a3c4SBeni Lev ); 109214e8a3c4SBeni Lev 109314e8a3c4SBeni Lev TRACE_EVENT(rdev_update_mesh_config, 109414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask, 109514e8a3c4SBeni Lev const struct mesh_config *conf), 109614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mask, conf), 109714e8a3c4SBeni Lev TP_STRUCT__entry( 109814e8a3c4SBeni Lev WIPHY_ENTRY 109914e8a3c4SBeni Lev NETDEV_ENTRY 110014e8a3c4SBeni Lev MESH_CFG_ENTRY 110114e8a3c4SBeni Lev __field(u32, mask) 110214e8a3c4SBeni Lev ), 110314e8a3c4SBeni Lev TP_fast_assign( 110414e8a3c4SBeni Lev WIPHY_ASSIGN; 110514e8a3c4SBeni Lev NETDEV_ASSIGN; 110614e8a3c4SBeni Lev MESH_CFG_ASSIGN; 110714e8a3c4SBeni Lev __entry->mask = mask; 110814e8a3c4SBeni Lev ), 1109ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u", 111014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask) 111114e8a3c4SBeni Lev ); 111214e8a3c4SBeni Lev 111314e8a3c4SBeni Lev TRACE_EVENT(rdev_join_mesh, 111414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 111514e8a3c4SBeni Lev const struct mesh_config *conf, 111614e8a3c4SBeni Lev const struct mesh_setup *setup), 111714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, conf, setup), 111814e8a3c4SBeni Lev TP_STRUCT__entry( 111914e8a3c4SBeni Lev WIPHY_ENTRY 112014e8a3c4SBeni Lev NETDEV_ENTRY 112114e8a3c4SBeni Lev MESH_CFG_ENTRY 112214e8a3c4SBeni Lev ), 112314e8a3c4SBeni Lev TP_fast_assign( 112414e8a3c4SBeni Lev WIPHY_ASSIGN; 112514e8a3c4SBeni Lev NETDEV_ASSIGN; 112614e8a3c4SBeni Lev MESH_CFG_ASSIGN; 112714e8a3c4SBeni Lev ), 1128ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 112914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 113014e8a3c4SBeni Lev ); 113114e8a3c4SBeni Lev 113214e8a3c4SBeni Lev TRACE_EVENT(rdev_change_bss, 113314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 113414e8a3c4SBeni Lev struct bss_parameters *params), 113514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 113614e8a3c4SBeni Lev TP_STRUCT__entry( 113714e8a3c4SBeni Lev WIPHY_ENTRY 113814e8a3c4SBeni Lev NETDEV_ENTRY 113914e8a3c4SBeni Lev __field(int, use_cts_prot) 114014e8a3c4SBeni Lev __field(int, use_short_preamble) 114114e8a3c4SBeni Lev __field(int, use_short_slot_time) 114214e8a3c4SBeni Lev __field(int, ap_isolate) 114314e8a3c4SBeni Lev __field(int, ht_opmode) 114414e8a3c4SBeni Lev ), 114514e8a3c4SBeni Lev TP_fast_assign( 114614e8a3c4SBeni Lev WIPHY_ASSIGN; 114714e8a3c4SBeni Lev NETDEV_ASSIGN; 114814e8a3c4SBeni Lev __entry->use_cts_prot = params->use_cts_prot; 114914e8a3c4SBeni Lev __entry->use_short_preamble = params->use_short_preamble; 115014e8a3c4SBeni Lev __entry->use_short_slot_time = params->use_short_slot_time; 115114e8a3c4SBeni Lev __entry->ap_isolate = params->ap_isolate; 115214e8a3c4SBeni Lev __entry->ht_opmode = params->ht_opmode; 115314e8a3c4SBeni Lev ), 1154ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, " 115514e8a3c4SBeni Lev "use short preamble: %d, use short slot time: %d, " 115614e8a3c4SBeni Lev "ap isolate: %d, ht opmode: %d", 115714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot, 115814e8a3c4SBeni Lev __entry->use_short_preamble, __entry->use_short_slot_time, 115914e8a3c4SBeni Lev __entry->ap_isolate, __entry->ht_opmode) 116014e8a3c4SBeni Lev ); 116114e8a3c4SBeni Lev 116214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 116314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 116414e8a3c4SBeni Lev struct ieee80211_txq_params *params), 116514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 116614e8a3c4SBeni Lev TP_STRUCT__entry( 116714e8a3c4SBeni Lev WIPHY_ENTRY 116814e8a3c4SBeni Lev NETDEV_ENTRY 116914e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 117014e8a3c4SBeni Lev __field(u16, txop) 117114e8a3c4SBeni Lev __field(u16, cwmin) 117214e8a3c4SBeni Lev __field(u16, cwmax) 117314e8a3c4SBeni Lev __field(u8, aifs) 117414e8a3c4SBeni Lev ), 117514e8a3c4SBeni Lev TP_fast_assign( 117614e8a3c4SBeni Lev WIPHY_ASSIGN; 117714e8a3c4SBeni Lev NETDEV_ASSIGN; 117814e8a3c4SBeni Lev __entry->ac = params->ac; 117914e8a3c4SBeni Lev __entry->txop = params->txop; 118014e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 118114e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 118214e8a3c4SBeni Lev __entry->aifs = params->aifs; 118314e8a3c4SBeni Lev ), 1184ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 118514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 118614e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 118714e8a3c4SBeni Lev ); 118814e8a3c4SBeni Lev 118914e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 119014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 119114e8a3c4SBeni Lev struct ieee80211_channel *chan), 119214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 119314e8a3c4SBeni Lev TP_STRUCT__entry( 119414e8a3c4SBeni Lev WIPHY_ENTRY 119514e8a3c4SBeni Lev NETDEV_ENTRY 119614e8a3c4SBeni Lev CHAN_ENTRY 119714e8a3c4SBeni Lev ), 119814e8a3c4SBeni Lev TP_fast_assign( 119914e8a3c4SBeni Lev WIPHY_ASSIGN; 120014e8a3c4SBeni Lev NETDEV_ASSIGN; 120114e8a3c4SBeni Lev CHAN_ASSIGN(chan); 120214e8a3c4SBeni Lev ), 1203ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 120414e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 120514e8a3c4SBeni Lev ); 120614e8a3c4SBeni Lev 120714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1208683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1209683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1210683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 121114e8a3c4SBeni Lev TP_STRUCT__entry( 121214e8a3c4SBeni Lev WIPHY_ENTRY 1213683b6d3bSJohannes Berg CHAN_DEF_ENTRY 121414e8a3c4SBeni Lev ), 121514e8a3c4SBeni Lev TP_fast_assign( 121614e8a3c4SBeni Lev WIPHY_ASSIGN; 1217683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 121814e8a3c4SBeni Lev ), 1219ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1220683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 122114e8a3c4SBeni Lev ); 122214e8a3c4SBeni Lev 122314e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 122414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 122514e8a3c4SBeni Lev struct cfg80211_auth_request *req), 122614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 122714e8a3c4SBeni Lev TP_STRUCT__entry( 122814e8a3c4SBeni Lev WIPHY_ENTRY 122914e8a3c4SBeni Lev NETDEV_ENTRY 123014e8a3c4SBeni Lev MAC_ENTRY(bssid) 123114e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 123214e8a3c4SBeni Lev ), 123314e8a3c4SBeni Lev TP_fast_assign( 123414e8a3c4SBeni Lev WIPHY_ASSIGN; 123514e8a3c4SBeni Lev NETDEV_ASSIGN; 123614e8a3c4SBeni Lev if (req->bss) 123714e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 123814e8a3c4SBeni Lev else 1239d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 124014e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 124114e8a3c4SBeni Lev ), 1242*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: %pM", 124314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 1244*3d9c3617SJohannes Berg __entry->bssid) 124514e8a3c4SBeni Lev ); 124614e8a3c4SBeni Lev 124714e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 124814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 12491d4c0f04SJohannes Berg struct cfg80211_assoc_request *req), 12501d4c0f04SJohannes Berg TP_ARGS(wiphy, netdev, req), 125114e8a3c4SBeni Lev TP_STRUCT__entry( 125214e8a3c4SBeni Lev WIPHY_ENTRY 125314e8a3c4SBeni Lev NETDEV_ENTRY 125414e8a3c4SBeni Lev MAC_ENTRY(bssid) 125514e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 125614e8a3c4SBeni Lev __field(bool, use_mfp) 125714e8a3c4SBeni Lev __field(u32, flags) 125864a87472SJohannes Berg __dynamic_array(u8, elements, req->ie_len) 125964a87472SJohannes Berg __array(u8, ht_capa, sizeof(struct ieee80211_ht_cap)) 126064a87472SJohannes Berg __array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap)) 126164a87472SJohannes Berg __array(u8, vht_capa, sizeof(struct ieee80211_vht_cap)) 126264a87472SJohannes Berg __array(u8, vht_capa_mask, sizeof(struct ieee80211_vht_cap)) 126364a87472SJohannes Berg __dynamic_array(u8, fils_kek, req->fils_kek_len) 126464a87472SJohannes Berg __dynamic_array(u8, fils_nonces, 126564a87472SJohannes Berg req->fils_nonces ? 2 * FILS_NONCE_LEN : 0) 126614e8a3c4SBeni Lev ), 126714e8a3c4SBeni Lev TP_fast_assign( 126814e8a3c4SBeni Lev WIPHY_ASSIGN; 126914e8a3c4SBeni Lev NETDEV_ASSIGN; 127014e8a3c4SBeni Lev if (req->bss) 127114e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 127214e8a3c4SBeni Lev else 1273d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 127414e8a3c4SBeni Lev MAC_ASSIGN(prev_bssid, req->prev_bssid); 127514e8a3c4SBeni Lev __entry->use_mfp = req->use_mfp; 127614e8a3c4SBeni Lev __entry->flags = req->flags; 127764a87472SJohannes Berg if (req->ie) 127864a87472SJohannes Berg memcpy(__get_dynamic_array(elements), 127964a87472SJohannes Berg req->ie, req->ie_len); 128064a87472SJohannes Berg memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa)); 128164a87472SJohannes Berg memcpy(__entry->ht_capa_mask, &req->ht_capa_mask, 128264a87472SJohannes Berg sizeof(req->ht_capa_mask)); 128364a87472SJohannes Berg memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa)); 128464a87472SJohannes Berg memcpy(__entry->vht_capa_mask, &req->vht_capa_mask, 128564a87472SJohannes Berg sizeof(req->vht_capa_mask)); 128664a87472SJohannes Berg if (req->fils_kek) 128764a87472SJohannes Berg memcpy(__get_dynamic_array(fils_kek), 128864a87472SJohannes Berg req->fils_kek, req->fils_kek_len); 128964a87472SJohannes Berg if (req->fils_nonces) 129064a87472SJohannes Berg memcpy(__get_dynamic_array(fils_nonces), 129164a87472SJohannes Berg req->fils_nonces, 2 * FILS_NONCE_LEN); 129214e8a3c4SBeni Lev ), 1293*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 1294*3d9c3617SJohannes Berg ", previous bssid: %pM, use mfp: %s, flags: %u", 1295*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, 1296*3d9c3617SJohannes Berg __entry->prev_bssid, BOOL_TO_STR(__entry->use_mfp), 129714e8a3c4SBeni Lev __entry->flags) 129814e8a3c4SBeni Lev ); 129914e8a3c4SBeni Lev 130014e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 130114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 130214e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 130314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 130414e8a3c4SBeni Lev TP_STRUCT__entry( 130514e8a3c4SBeni Lev WIPHY_ENTRY 130614e8a3c4SBeni Lev NETDEV_ENTRY 130714e8a3c4SBeni Lev MAC_ENTRY(bssid) 130814e8a3c4SBeni Lev __field(u16, reason_code) 130914e8a3c4SBeni Lev ), 131014e8a3c4SBeni Lev TP_fast_assign( 131114e8a3c4SBeni Lev WIPHY_ASSIGN; 131214e8a3c4SBeni Lev NETDEV_ASSIGN; 131314e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 131414e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 131514e8a3c4SBeni Lev ), 1316*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, reason: %u", 1317*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, 131814e8a3c4SBeni Lev __entry->reason_code) 131914e8a3c4SBeni Lev ); 132014e8a3c4SBeni Lev 132114e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 132214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 132314e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 132414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 132514e8a3c4SBeni Lev TP_STRUCT__entry( 132614e8a3c4SBeni Lev WIPHY_ENTRY 132714e8a3c4SBeni Lev NETDEV_ENTRY 132814e8a3c4SBeni Lev MAC_ENTRY(bssid) 132914e8a3c4SBeni Lev __field(u16, reason_code) 133014e8a3c4SBeni Lev __field(bool, local_state_change) 133114e8a3c4SBeni Lev ), 133214e8a3c4SBeni Lev TP_fast_assign( 133314e8a3c4SBeni Lev WIPHY_ASSIGN; 133414e8a3c4SBeni Lev NETDEV_ASSIGN; 13358f6e0dfcSJohannes Berg MAC_ASSIGN(bssid, req->ap_addr); 133614e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 133714e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 133814e8a3c4SBeni Lev ), 1339*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 134014e8a3c4SBeni Lev ", reason: %u, local state change: %s", 1341*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, 134214e8a3c4SBeni Lev __entry->reason_code, 134314e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 134414e8a3c4SBeni Lev ); 134514e8a3c4SBeni Lev 134614e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 134714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 134814e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 134914e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 135014e8a3c4SBeni Lev TP_STRUCT__entry( 135114e8a3c4SBeni Lev WIPHY_ENTRY 135214e8a3c4SBeni Lev WDEV_ENTRY 135314e8a3c4SBeni Lev __field(u64, cookie) 135414e8a3c4SBeni Lev ), 135514e8a3c4SBeni Lev TP_fast_assign( 135614e8a3c4SBeni Lev WIPHY_ASSIGN; 135714e8a3c4SBeni Lev WDEV_ASSIGN; 135814e8a3c4SBeni Lev __entry->cookie = cookie; 135914e8a3c4SBeni Lev ), 1360ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 136114e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 136214e8a3c4SBeni Lev ); 136314e8a3c4SBeni Lev 136414e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 136514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 136614e8a3c4SBeni Lev bool enabled, int timeout), 136714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 136814e8a3c4SBeni Lev TP_STRUCT__entry( 136914e8a3c4SBeni Lev WIPHY_ENTRY 137014e8a3c4SBeni Lev NETDEV_ENTRY 137114e8a3c4SBeni Lev __field(bool, enabled) 137214e8a3c4SBeni Lev __field(int, timeout) 137314e8a3c4SBeni Lev ), 137414e8a3c4SBeni Lev TP_fast_assign( 137514e8a3c4SBeni Lev WIPHY_ASSIGN; 137614e8a3c4SBeni Lev NETDEV_ASSIGN; 137714e8a3c4SBeni Lev __entry->enabled = enabled; 137814e8a3c4SBeni Lev __entry->timeout = timeout; 137914e8a3c4SBeni Lev ), 1380ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 138114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 138214e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 138314e8a3c4SBeni Lev ); 138414e8a3c4SBeni Lev 138514e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 138614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 138714e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 138814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 138914e8a3c4SBeni Lev TP_STRUCT__entry( 139014e8a3c4SBeni Lev WIPHY_ENTRY 139114e8a3c4SBeni Lev NETDEV_ENTRY 139214e8a3c4SBeni Lev MAC_ENTRY(bssid) 139314e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 139414e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 139514e8a3c4SBeni Lev __field(bool, privacy) 139614e8a3c4SBeni Lev __field(u32, wpa_versions) 139714e8a3c4SBeni Lev __field(u32, flags) 1398ba6fbacfSJouni Malinen MAC_ENTRY(prev_bssid) 139914e8a3c4SBeni Lev ), 140014e8a3c4SBeni Lev TP_fast_assign( 140114e8a3c4SBeni Lev WIPHY_ASSIGN; 140214e8a3c4SBeni Lev NETDEV_ASSIGN; 140314e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 140414e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 140514e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 140614e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 140714e8a3c4SBeni Lev __entry->privacy = sme->privacy; 140814e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 140914e8a3c4SBeni Lev __entry->flags = sme->flags; 1410ba6fbacfSJouni Malinen MAC_ASSIGN(prev_bssid, sme->prev_bssid); 141114e8a3c4SBeni Lev ), 1412*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 141314e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 1414*3d9c3617SJohannes Berg "flags: %u, previous bssid: %pM", 1415*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid, 141614e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 1417*3d9c3617SJohannes Berg __entry->wpa_versions, __entry->flags, __entry->prev_bssid) 141814e8a3c4SBeni Lev ); 141914e8a3c4SBeni Lev 1420088e8df8Svamsi krishna TRACE_EVENT(rdev_update_connect_params, 1421088e8df8Svamsi krishna TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1422088e8df8Svamsi krishna struct cfg80211_connect_params *sme, u32 changed), 1423088e8df8Svamsi krishna TP_ARGS(wiphy, netdev, sme, changed), 1424088e8df8Svamsi krishna TP_STRUCT__entry( 1425088e8df8Svamsi krishna WIPHY_ENTRY 1426088e8df8Svamsi krishna NETDEV_ENTRY 1427088e8df8Svamsi krishna __field(u32, changed) 1428088e8df8Svamsi krishna ), 1429088e8df8Svamsi krishna TP_fast_assign( 1430088e8df8Svamsi krishna WIPHY_ASSIGN; 1431088e8df8Svamsi krishna NETDEV_ASSIGN; 1432088e8df8Svamsi krishna __entry->changed = changed; 1433088e8df8Svamsi krishna ), 1434088e8df8Svamsi krishna TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u", 1435088e8df8Svamsi krishna WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed) 1436088e8df8Svamsi krishna ); 1437088e8df8Svamsi krishna 143814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 143914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 144014e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 144114e8a3c4SBeni Lev u32 rssi_hyst), 144214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 144314e8a3c4SBeni Lev TP_STRUCT__entry( 144414e8a3c4SBeni Lev WIPHY_ENTRY 144514e8a3c4SBeni Lev NETDEV_ENTRY 144614e8a3c4SBeni Lev __field(s32, rssi_thold) 144714e8a3c4SBeni Lev __field(u32, rssi_hyst) 144814e8a3c4SBeni Lev ), 144914e8a3c4SBeni Lev TP_fast_assign( 145014e8a3c4SBeni Lev WIPHY_ASSIGN; 145114e8a3c4SBeni Lev NETDEV_ASSIGN; 145214e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 145314e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 145414e8a3c4SBeni Lev ), 1455ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 145614e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 145714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 145814e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 145914e8a3c4SBeni Lev ); 146014e8a3c4SBeni Lev 14614a4b8169SAndrew Zaborowski TRACE_EVENT(rdev_set_cqm_rssi_range_config, 14624a4b8169SAndrew Zaborowski TP_PROTO(struct wiphy *wiphy, 14634a4b8169SAndrew Zaborowski struct net_device *netdev, s32 low, s32 high), 14644a4b8169SAndrew Zaborowski TP_ARGS(wiphy, netdev, low, high), 14654a4b8169SAndrew Zaborowski TP_STRUCT__entry( 14664a4b8169SAndrew Zaborowski WIPHY_ENTRY 14674a4b8169SAndrew Zaborowski NETDEV_ENTRY 14684a4b8169SAndrew Zaborowski __field(s32, rssi_low) 14694a4b8169SAndrew Zaborowski __field(s32, rssi_high) 14704a4b8169SAndrew Zaborowski ), 14714a4b8169SAndrew Zaborowski TP_fast_assign( 14724a4b8169SAndrew Zaborowski WIPHY_ASSIGN; 14734a4b8169SAndrew Zaborowski NETDEV_ASSIGN; 14744a4b8169SAndrew Zaborowski __entry->rssi_low = low; 14754a4b8169SAndrew Zaborowski __entry->rssi_high = high; 14764a4b8169SAndrew Zaborowski ), 14774a4b8169SAndrew Zaborowski TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 14784a4b8169SAndrew Zaborowski ", range: %d - %d ", 14794a4b8169SAndrew Zaborowski WIPHY_PR_ARG, NETDEV_PR_ARG, 14804a4b8169SAndrew Zaborowski __entry->rssi_low, __entry->rssi_high) 14814a4b8169SAndrew Zaborowski ); 14824a4b8169SAndrew Zaborowski 148314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 148414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 148514e8a3c4SBeni Lev u32 pkts, u32 intvl), 148614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 148714e8a3c4SBeni Lev TP_STRUCT__entry( 148814e8a3c4SBeni Lev WIPHY_ENTRY 148914e8a3c4SBeni Lev NETDEV_ENTRY 149014e8a3c4SBeni Lev __field(u32, rate) 149114e8a3c4SBeni Lev __field(u32, pkts) 149214e8a3c4SBeni Lev __field(u32, intvl) 149314e8a3c4SBeni Lev ), 149414e8a3c4SBeni Lev TP_fast_assign( 149514e8a3c4SBeni Lev WIPHY_ASSIGN; 149614e8a3c4SBeni Lev NETDEV_ASSIGN; 149714e8a3c4SBeni Lev __entry->rate = rate; 149814e8a3c4SBeni Lev __entry->pkts = pkts; 149914e8a3c4SBeni Lev __entry->intvl = intvl; 150014e8a3c4SBeni Lev ), 1501ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 150214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 150314e8a3c4SBeni Lev __entry->intvl) 150414e8a3c4SBeni Lev ); 150514e8a3c4SBeni Lev 150614e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 150714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 150814e8a3c4SBeni Lev u16 reason_code), 150914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 151014e8a3c4SBeni Lev TP_STRUCT__entry( 151114e8a3c4SBeni Lev WIPHY_ENTRY 151214e8a3c4SBeni Lev NETDEV_ENTRY 151314e8a3c4SBeni Lev __field(u16, reason_code) 151414e8a3c4SBeni Lev ), 151514e8a3c4SBeni Lev TP_fast_assign( 151614e8a3c4SBeni Lev WIPHY_ASSIGN; 151714e8a3c4SBeni Lev NETDEV_ASSIGN; 151814e8a3c4SBeni Lev __entry->reason_code = reason_code; 151914e8a3c4SBeni Lev ), 1520ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 152114e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 152214e8a3c4SBeni Lev ); 152314e8a3c4SBeni Lev 152414e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 152514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 152614e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 152714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 152814e8a3c4SBeni Lev TP_STRUCT__entry( 152914e8a3c4SBeni Lev WIPHY_ENTRY 153014e8a3c4SBeni Lev NETDEV_ENTRY 153114e8a3c4SBeni Lev MAC_ENTRY(bssid) 153214e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 153314e8a3c4SBeni Lev ), 153414e8a3c4SBeni Lev TP_fast_assign( 153514e8a3c4SBeni Lev WIPHY_ASSIGN; 153614e8a3c4SBeni Lev NETDEV_ASSIGN; 153714e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 153814e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 153914e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 154014e8a3c4SBeni Lev ), 1541*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, ssid: %s", 1542*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid) 154314e8a3c4SBeni Lev ); 154414e8a3c4SBeni Lev 15456e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 15466e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 15476e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 15486e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 15496e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 15506e0bd6c3SRostislav Lisovy WIPHY_ENTRY 15516e0bd6c3SRostislav Lisovy NETDEV_ENTRY 15526e0bd6c3SRostislav Lisovy ), 15536e0bd6c3SRostislav Lisovy TP_fast_assign( 15546e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 15556e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 15566e0bd6c3SRostislav Lisovy ), 15576e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 15586e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 15596e0bd6c3SRostislav Lisovy ); 15606e0bd6c3SRostislav Lisovy 156114e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 156214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 156314e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 156414e8a3c4SBeni Lev TP_STRUCT__entry( 156514e8a3c4SBeni Lev WIPHY_ENTRY 156614e8a3c4SBeni Lev __field(u32, changed) 156714e8a3c4SBeni Lev ), 156814e8a3c4SBeni Lev TP_fast_assign( 156914e8a3c4SBeni Lev WIPHY_ASSIGN; 157014e8a3c4SBeni Lev __entry->changed = changed; 157114e8a3c4SBeni Lev ), 157214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 157314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 157414e8a3c4SBeni Lev ); 157514e8a3c4SBeni Lev 1576c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1577c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1578c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1579c8442118SJohannes Berg ); 1580c8442118SJohannes Berg 158114e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1582c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1583c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1584c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 158514e8a3c4SBeni Lev TP_STRUCT__entry( 158614e8a3c4SBeni Lev WIPHY_ENTRY 1587c8442118SJohannes Berg WDEV_ENTRY 158814e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 158914e8a3c4SBeni Lev __field(int, mbm) 159014e8a3c4SBeni Lev ), 159114e8a3c4SBeni Lev TP_fast_assign( 159214e8a3c4SBeni Lev WIPHY_ASSIGN; 1593c8442118SJohannes Berg WDEV_ASSIGN; 159414e8a3c4SBeni Lev __entry->type = type; 159514e8a3c4SBeni Lev __entry->mbm = mbm; 159614e8a3c4SBeni Lev ), 1597ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1598c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 159914e8a3c4SBeni Lev ); 160014e8a3c4SBeni Lev 160114e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 160214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 160314e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 160414e8a3c4SBeni Lev TP_STRUCT__entry( 160514e8a3c4SBeni Lev WIPHY_ENTRY 160614e8a3c4SBeni Lev __field(int, func_ret) 160714e8a3c4SBeni Lev __field(int, func_fill) 160814e8a3c4SBeni Lev ), 160914e8a3c4SBeni Lev TP_fast_assign( 161014e8a3c4SBeni Lev WIPHY_ASSIGN; 161114e8a3c4SBeni Lev __entry->func_ret = func_ret; 161214e8a3c4SBeni Lev __entry->func_fill = func_fill; 161314e8a3c4SBeni Lev ), 161414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 161514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 161614e8a3c4SBeni Lev ); 161714e8a3c4SBeni Lev 161814e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 161914e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1620fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1621fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 162214e8a3c4SBeni Lev TP_STRUCT__entry( 162314e8a3c4SBeni Lev WIPHY_ENTRY 1624fc73f11fSDavid Spinadel WDEV_ENTRY 162514e8a3c4SBeni Lev ), 162614e8a3c4SBeni Lev TP_fast_assign( 162714e8a3c4SBeni Lev WIPHY_ASSIGN; 1628fc73f11fSDavid Spinadel WDEV_ASSIGN; 162914e8a3c4SBeni Lev ), 1630fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 163114e8a3c4SBeni Lev ); 163214e8a3c4SBeni Lev 163314e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 163414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 163514e8a3c4SBeni Lev TP_ARGS(wiphy), 163614e8a3c4SBeni Lev TP_STRUCT__entry( 163714e8a3c4SBeni Lev WIPHY_ENTRY 163814e8a3c4SBeni Lev ), 163914e8a3c4SBeni Lev TP_fast_assign( 164014e8a3c4SBeni Lev WIPHY_ASSIGN; 164114e8a3c4SBeni Lev ), 164214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 164314e8a3c4SBeni Lev ); 164414e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 164514e8a3c4SBeni Lev 164614e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 164714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 16487b0a0e3cSJohannes Berg unsigned int link_id, 164914e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 16507b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, peer, mask), 165114e8a3c4SBeni Lev TP_STRUCT__entry( 165214e8a3c4SBeni Lev WIPHY_ENTRY 165314e8a3c4SBeni Lev NETDEV_ENTRY 16547b0a0e3cSJohannes Berg __field(unsigned int, link_id) 165514e8a3c4SBeni Lev MAC_ENTRY(peer) 165614e8a3c4SBeni Lev ), 165714e8a3c4SBeni Lev TP_fast_assign( 165814e8a3c4SBeni Lev WIPHY_ASSIGN; 165914e8a3c4SBeni Lev NETDEV_ASSIGN; 16607b0a0e3cSJohannes Berg __entry->link_id = link_id; 166114e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 166214e8a3c4SBeni Lev ), 1663*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: %pM", 16647b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 1665*3d9c3617SJohannes Berg __entry->peer) 166614e8a3c4SBeni Lev ); 166714e8a3c4SBeni Lev 16686cd536feSJohannes Berg TRACE_EVENT(rdev_update_mgmt_frame_registrations, 166914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 16706cd536feSJohannes Berg struct mgmt_frame_regs *upd), 16716cd536feSJohannes Berg TP_ARGS(wiphy, wdev, upd), 167214e8a3c4SBeni Lev TP_STRUCT__entry( 167314e8a3c4SBeni Lev WIPHY_ENTRY 167414e8a3c4SBeni Lev WDEV_ENTRY 16756cd536feSJohannes Berg __field(u16, global_stypes) 16766cd536feSJohannes Berg __field(u16, interface_stypes) 167714e8a3c4SBeni Lev ), 167814e8a3c4SBeni Lev TP_fast_assign( 167914e8a3c4SBeni Lev WIPHY_ASSIGN; 168014e8a3c4SBeni Lev WDEV_ASSIGN; 16816cd536feSJohannes Berg __entry->global_stypes = upd->global_stypes; 16826cd536feSJohannes Berg __entry->interface_stypes = upd->interface_stypes; 168314e8a3c4SBeni Lev ), 16846cd536feSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x", 16856cd536feSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 16866cd536feSJohannes Berg __entry->global_stypes, __entry->interface_stypes) 168714e8a3c4SBeni Lev ); 168814e8a3c4SBeni Lev 168914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 169014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 169114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 169214e8a3c4SBeni Lev TP_STRUCT__entry( 169314e8a3c4SBeni Lev WIPHY_ENTRY 169414e8a3c4SBeni Lev __field(int, ret) 169514e8a3c4SBeni Lev __field(u32, tx) 169614e8a3c4SBeni Lev __field(u32, rx) 169714e8a3c4SBeni Lev ), 169814e8a3c4SBeni Lev TP_fast_assign( 169914e8a3c4SBeni Lev WIPHY_ASSIGN; 170014e8a3c4SBeni Lev __entry->ret = ret; 170114e8a3c4SBeni Lev __entry->tx = tx; 170214e8a3c4SBeni Lev __entry->rx = rx; 170314e8a3c4SBeni Lev ), 170414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 170514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 170614e8a3c4SBeni Lev ); 170714e8a3c4SBeni Lev 170814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 170914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 171014e8a3c4SBeni Lev u32 rx, u32 rx_max), 171114e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 171214e8a3c4SBeni Lev TP_STRUCT__entry( 171314e8a3c4SBeni Lev WIPHY_ENTRY 171414e8a3c4SBeni Lev __field(u32, tx) 171514e8a3c4SBeni Lev __field(u32, tx_max) 171614e8a3c4SBeni Lev __field(u32, rx) 171714e8a3c4SBeni Lev __field(u32, rx_max) 171814e8a3c4SBeni Lev ), 171914e8a3c4SBeni Lev TP_fast_assign( 172014e8a3c4SBeni Lev WIPHY_ASSIGN; 172114e8a3c4SBeni Lev __entry->tx = tx; 172214e8a3c4SBeni Lev __entry->tx_max = tx_max; 172314e8a3c4SBeni Lev __entry->rx = rx; 172414e8a3c4SBeni Lev __entry->rx_max = rx_max; 172514e8a3c4SBeni Lev ), 172614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 172714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 172814e8a3c4SBeni Lev __entry->rx_max) 172914e8a3c4SBeni Lev ); 173014e8a3c4SBeni Lev 173114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 173214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 173314e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 173414e8a3c4SBeni Lev TP_STRUCT__entry( 173514e8a3c4SBeni Lev WIPHY_ENTRY 173614e8a3c4SBeni Lev __field(u32, tx) 173714e8a3c4SBeni Lev __field(u32, rx) 173814e8a3c4SBeni Lev ), 173914e8a3c4SBeni Lev TP_fast_assign( 174014e8a3c4SBeni Lev WIPHY_ASSIGN; 174114e8a3c4SBeni Lev __entry->tx = tx; 174214e8a3c4SBeni Lev __entry->rx = rx; 174314e8a3c4SBeni Lev ), 174414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 174514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 174614e8a3c4SBeni Lev ); 174714e8a3c4SBeni Lev 174814e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 174914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 175014e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 175114e8a3c4SBeni Lev ); 175214e8a3c4SBeni Lev 1753ca986ad9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_netdev_id_evt, 1754ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1755ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id), 175614e8a3c4SBeni Lev TP_STRUCT__entry( 175714e8a3c4SBeni Lev WIPHY_ENTRY 175814e8a3c4SBeni Lev NETDEV_ENTRY 1759ca986ad9SArend Van Spriel __field(u64, id) 176014e8a3c4SBeni Lev ), 176114e8a3c4SBeni Lev TP_fast_assign( 176214e8a3c4SBeni Lev WIPHY_ASSIGN; 176314e8a3c4SBeni Lev NETDEV_ASSIGN; 1764ca986ad9SArend Van Spriel __entry->id = id; 176514e8a3c4SBeni Lev ), 1766ca986ad9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu", 1767ca986ad9SArend Van Spriel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id) 1768ca986ad9SArend Van Spriel ); 1769ca986ad9SArend Van Spriel 1770ca986ad9SArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start, 1771ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1772ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id) 177314e8a3c4SBeni Lev ); 177414e8a3c4SBeni Lev 17753a3ecf1dSArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop, 17763a3ecf1dSArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 17773a3ecf1dSArend Van Spriel TP_ARGS(wiphy, netdev, id) 17783a3ecf1dSArend Van Spriel ); 17793a3ecf1dSArend Van Spriel 178014e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 178114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 178214e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1783df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 178431fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 178514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 178631fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 178714e8a3c4SBeni Lev TP_STRUCT__entry( 178814e8a3c4SBeni Lev WIPHY_ENTRY 178914e8a3c4SBeni Lev NETDEV_ENTRY 179014e8a3c4SBeni Lev MAC_ENTRY(peer) 179114e8a3c4SBeni Lev __field(u8, action_code) 179214e8a3c4SBeni Lev __field(u8, dialog_token) 179314e8a3c4SBeni Lev __field(u16, status_code) 1794df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 179531fa97c5SArik Nemtsov __field(bool, initiator) 179614e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 179714e8a3c4SBeni Lev ), 179814e8a3c4SBeni Lev TP_fast_assign( 179914e8a3c4SBeni Lev WIPHY_ASSIGN; 180014e8a3c4SBeni Lev NETDEV_ASSIGN; 180114e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 180214e8a3c4SBeni Lev __entry->action_code = action_code; 180314e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 180414e8a3c4SBeni Lev __entry->status_code = status_code; 1805df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 180631fa97c5SArik Nemtsov __entry->initiator = initiator; 180714e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 180814e8a3c4SBeni Lev ), 1809*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, action_code: %u, " 181031fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 181131fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 1812*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, 181314e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1814df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 181531fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1816df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 181714e8a3c4SBeni Lev ); 181814e8a3c4SBeni Lev 181914e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 1820aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx), 1821aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx), 182214e8a3c4SBeni Lev TP_STRUCT__entry( 182314e8a3c4SBeni Lev WIPHY_ENTRY 182414e8a3c4SBeni Lev NETDEV_ENTRY 182514e8a3c4SBeni Lev __field(int, idx) 182614e8a3c4SBeni Lev ), 182714e8a3c4SBeni Lev TP_fast_assign( 182814e8a3c4SBeni Lev WIPHY_ASSIGN; 182914e8a3c4SBeni Lev NETDEV_ASSIGN; 1830aaaa10e0SJohannes Berg __entry->idx = _idx; 183114e8a3c4SBeni Lev ), 1832ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 183314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 183414e8a3c4SBeni Lev ); 183514e8a3c4SBeni Lev 183614e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 183714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 183814e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 183914e8a3c4SBeni Lev TP_STRUCT__entry( 184014e8a3c4SBeni Lev WIPHY_ENTRY 184114e8a3c4SBeni Lev CHAN_ENTRY 184214e8a3c4SBeni Lev __field(int, ret) 18434ed20bebSJohannes Berg __field(u64, time) 18444ed20bebSJohannes Berg __field(u64, time_busy) 18454ed20bebSJohannes Berg __field(u64, time_ext_busy) 18464ed20bebSJohannes Berg __field(u64, time_rx) 18474ed20bebSJohannes Berg __field(u64, time_tx) 1848052536abSJohannes Berg __field(u64, time_scan) 184914e8a3c4SBeni Lev __field(u32, filled) 185014e8a3c4SBeni Lev __field(s8, noise) 185114e8a3c4SBeni Lev ), 185214e8a3c4SBeni Lev TP_fast_assign( 185314e8a3c4SBeni Lev WIPHY_ASSIGN; 185414e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 185514e8a3c4SBeni Lev __entry->ret = ret; 18564ed20bebSJohannes Berg __entry->time = info->time; 18574ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 18584ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 18594ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 18604ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1861052536abSJohannes Berg __entry->time_scan = info->time_scan; 186214e8a3c4SBeni Lev __entry->filled = info->filled; 186314e8a3c4SBeni Lev __entry->noise = info->noise; 186414e8a3c4SBeni Lev ), 186514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 186614e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 186714e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1868052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 186914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 18704ed20bebSJohannes Berg __entry->time, __entry->time_busy, 18714ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1872052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1873052536abSJohannes Berg __entry->filled, __entry->noise) 187414e8a3c4SBeni Lev ); 187514e8a3c4SBeni Lev 187614e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 187714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 187814e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 187914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 188014e8a3c4SBeni Lev TP_STRUCT__entry( 188114e8a3c4SBeni Lev WIPHY_ENTRY 188214e8a3c4SBeni Lev NETDEV_ENTRY 188314e8a3c4SBeni Lev MAC_ENTRY(peer) 188414e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 188514e8a3c4SBeni Lev ), 188614e8a3c4SBeni Lev TP_fast_assign( 188714e8a3c4SBeni Lev WIPHY_ASSIGN; 188814e8a3c4SBeni Lev NETDEV_ASSIGN; 188914e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 189014e8a3c4SBeni Lev __entry->oper = oper; 189114e8a3c4SBeni Lev ), 1892*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, oper: %d", 1893*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper) 189414e8a3c4SBeni Lev ); 189514e8a3c4SBeni Lev 189614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 189714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 189814e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 189914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 190014e8a3c4SBeni Lev TP_STRUCT__entry( 190114e8a3c4SBeni Lev WIPHY_ENTRY 190214e8a3c4SBeni Lev NETDEV_ENTRY 190314e8a3c4SBeni Lev MAC_ENTRY(bssid) 190414e8a3c4SBeni Lev ), 190514e8a3c4SBeni Lev TP_fast_assign( 190614e8a3c4SBeni Lev WIPHY_ASSIGN; 190714e8a3c4SBeni Lev NETDEV_ASSIGN; 190814e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 190914e8a3c4SBeni Lev ), 1910*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM", 1911*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid) 191214e8a3c4SBeni Lev ); 191314e8a3c4SBeni Lev 191414e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 191514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 191614e8a3c4SBeni Lev const u8 *peer), 191714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 191814e8a3c4SBeni Lev TP_STRUCT__entry( 191914e8a3c4SBeni Lev WIPHY_ENTRY 192014e8a3c4SBeni Lev NETDEV_ENTRY 192114e8a3c4SBeni Lev MAC_ENTRY(peer) 192214e8a3c4SBeni Lev ), 192314e8a3c4SBeni Lev TP_fast_assign( 192414e8a3c4SBeni Lev WIPHY_ASSIGN; 192514e8a3c4SBeni Lev NETDEV_ASSIGN; 192614e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 192714e8a3c4SBeni Lev ), 1928*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 1929*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer) 193014e8a3c4SBeni Lev ); 193114e8a3c4SBeni Lev 193214e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 193314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 193414e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 193514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 193614e8a3c4SBeni Lev ); 193714e8a3c4SBeni Lev 193814e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 193914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 194014e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 194114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 194214e8a3c4SBeni Lev ); 194314e8a3c4SBeni Lev 194414e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 194514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 194614e8a3c4SBeni Lev struct ieee80211_channel *chan, 194742d97a59SJohannes Berg unsigned int duration), 194842d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 194914e8a3c4SBeni Lev TP_STRUCT__entry( 195014e8a3c4SBeni Lev WIPHY_ENTRY 195114e8a3c4SBeni Lev WDEV_ENTRY 195214e8a3c4SBeni Lev CHAN_ENTRY 195314e8a3c4SBeni Lev __field(unsigned int, duration) 195414e8a3c4SBeni Lev ), 195514e8a3c4SBeni Lev TP_fast_assign( 195614e8a3c4SBeni Lev WIPHY_ASSIGN; 195714e8a3c4SBeni Lev WDEV_ASSIGN; 195814e8a3c4SBeni Lev CHAN_ASSIGN(chan); 195914e8a3c4SBeni Lev __entry->duration = duration; 196014e8a3c4SBeni Lev ), 1961ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 196242d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 196314e8a3c4SBeni Lev ); 196414e8a3c4SBeni Lev 196514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 196614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 196714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 196814e8a3c4SBeni Lev TP_STRUCT__entry( 196914e8a3c4SBeni Lev WIPHY_ENTRY 197014e8a3c4SBeni Lev __field(int, ret) 197114e8a3c4SBeni Lev __field(u64, cookie) 197214e8a3c4SBeni Lev ), 197314e8a3c4SBeni Lev TP_fast_assign( 197414e8a3c4SBeni Lev WIPHY_ASSIGN; 197514e8a3c4SBeni Lev __entry->ret = ret; 197614e8a3c4SBeni Lev __entry->cookie = cookie; 197714e8a3c4SBeni Lev ), 197814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 197914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 198014e8a3c4SBeni Lev ); 198114e8a3c4SBeni Lev 198214e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 198314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 198414e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 198514e8a3c4SBeni Lev TP_STRUCT__entry( 198614e8a3c4SBeni Lev WIPHY_ENTRY 198714e8a3c4SBeni Lev WDEV_ENTRY 198814e8a3c4SBeni Lev __field(u64, cookie) 198914e8a3c4SBeni Lev ), 199014e8a3c4SBeni Lev TP_fast_assign( 199114e8a3c4SBeni Lev WIPHY_ASSIGN; 199214e8a3c4SBeni Lev WDEV_ASSIGN; 199314e8a3c4SBeni Lev __entry->cookie = cookie; 199414e8a3c4SBeni Lev ), 1995ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 199614e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 199714e8a3c4SBeni Lev ); 199814e8a3c4SBeni Lev 199914e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 200014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2001b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 2002b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 200314e8a3c4SBeni Lev TP_STRUCT__entry( 200414e8a3c4SBeni Lev WIPHY_ENTRY 200514e8a3c4SBeni Lev WDEV_ENTRY 200614e8a3c4SBeni Lev CHAN_ENTRY 200714e8a3c4SBeni Lev __field(bool, offchan) 200814e8a3c4SBeni Lev __field(unsigned int, wait) 200914e8a3c4SBeni Lev __field(bool, no_cck) 201014e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 201114e8a3c4SBeni Lev ), 201214e8a3c4SBeni Lev TP_fast_assign( 201314e8a3c4SBeni Lev WIPHY_ASSIGN; 201414e8a3c4SBeni Lev WDEV_ASSIGN; 2015b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 2016b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 2017b176e629SAndrei Otcheretianski __entry->wait = params->wait; 2018b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 2019b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 202014e8a3c4SBeni Lev ), 2021ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 202242d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 202314e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 202442d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 202514e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 202614e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 202714e8a3c4SBeni Lev ); 202814e8a3c4SBeni Lev 20292576a9acSDenis Kenzior TRACE_EVENT(rdev_tx_control_port, 20302576a9acSDenis Kenzior TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20318d74a623SJohannes Berg const u8 *buf, size_t len, const u8 *dest, __be16 proto, 203267207babSAndrei Otcheretianski bool unencrypted, int link_id), 203367207babSAndrei Otcheretianski TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted, link_id), 20342576a9acSDenis Kenzior TP_STRUCT__entry( 20352576a9acSDenis Kenzior WIPHY_ENTRY 20362576a9acSDenis Kenzior NETDEV_ENTRY 20372576a9acSDenis Kenzior MAC_ENTRY(dest) 20388d74a623SJohannes Berg __field(__be16, proto) 20392576a9acSDenis Kenzior __field(bool, unencrypted) 204067207babSAndrei Otcheretianski __field(int, link_id) 20412576a9acSDenis Kenzior ), 20422576a9acSDenis Kenzior TP_fast_assign( 20432576a9acSDenis Kenzior WIPHY_ASSIGN; 20442576a9acSDenis Kenzior NETDEV_ASSIGN; 20452576a9acSDenis Kenzior MAC_ASSIGN(dest, dest); 20468d74a623SJohannes Berg __entry->proto = proto; 20472576a9acSDenis Kenzior __entry->unencrypted = unencrypted; 204867207babSAndrei Otcheretianski __entry->link_id = link_id; 20492576a9acSDenis Kenzior ), 2050*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM," 205167207babSAndrei Otcheretianski " proto: 0x%x, unencrypted: %s, link: %d", 2052*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest, 20538d74a623SJohannes Berg be16_to_cpu(__entry->proto), 205467207babSAndrei Otcheretianski BOOL_TO_STR(__entry->unencrypted), 205567207babSAndrei Otcheretianski __entry->link_id) 20562576a9acSDenis Kenzior ); 20572576a9acSDenis Kenzior 205814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 205914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 206014e8a3c4SBeni Lev u16 noack_map), 206114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 206214e8a3c4SBeni Lev TP_STRUCT__entry( 206314e8a3c4SBeni Lev WIPHY_ENTRY 206414e8a3c4SBeni Lev NETDEV_ENTRY 206514e8a3c4SBeni Lev __field(u16, noack_map) 206614e8a3c4SBeni Lev ), 206714e8a3c4SBeni Lev TP_fast_assign( 206814e8a3c4SBeni Lev WIPHY_ASSIGN; 206914e8a3c4SBeni Lev NETDEV_ASSIGN; 207014e8a3c4SBeni Lev __entry->noack_map = noack_map; 207114e8a3c4SBeni Lev ), 2072ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 207314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 207414e8a3c4SBeni Lev ); 207514e8a3c4SBeni Lev 2076f2a0290bSJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_link_evt, 20777b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 20787b0a0e3cSJohannes Berg unsigned int link_id), 20797b0a0e3cSJohannes Berg TP_ARGS(wiphy, wdev, link_id), 20807b0a0e3cSJohannes Berg TP_STRUCT__entry( 20817b0a0e3cSJohannes Berg WIPHY_ENTRY 20827b0a0e3cSJohannes Berg WDEV_ENTRY 20837b0a0e3cSJohannes Berg __field(unsigned int, link_id) 20847b0a0e3cSJohannes Berg ), 20857b0a0e3cSJohannes Berg TP_fast_assign( 20867b0a0e3cSJohannes Berg WIPHY_ASSIGN; 20877b0a0e3cSJohannes Berg WDEV_ASSIGN; 20887b0a0e3cSJohannes Berg __entry->link_id = link_id; 20897b0a0e3cSJohannes Berg ), 20907b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", 20917b0a0e3cSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) 209214e8a3c4SBeni Lev ); 209314e8a3c4SBeni Lev 2094f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel, 2095f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2096f2a0290bSJohannes Berg unsigned int link_id), 2097f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2098f2a0290bSJohannes Berg ); 2099f2a0290bSJohannes Berg 2100683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2101683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2102683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2103683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 210414e8a3c4SBeni Lev TP_STRUCT__entry( 210514e8a3c4SBeni Lev WIPHY_ENTRY 2106683b6d3bSJohannes Berg __field(int, ret) 2107683b6d3bSJohannes Berg CHAN_DEF_ENTRY 210814e8a3c4SBeni Lev ), 210914e8a3c4SBeni Lev TP_fast_assign( 211014e8a3c4SBeni Lev WIPHY_ASSIGN; 2111683b6d3bSJohannes Berg if (ret == 0) 2112683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2113683b6d3bSJohannes Berg else 2114683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2115683b6d3bSJohannes Berg __entry->ret = ret; 211614e8a3c4SBeni Lev ), 2117ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2118683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 211914e8a3c4SBeni Lev ); 212014e8a3c4SBeni Lev 2121eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2122eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2123eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2124eeb126e9SJohannes Berg ); 2125eeb126e9SJohannes Berg 2126eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2127eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2128eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2129eeb126e9SJohannes Berg ); 2130eeb126e9SJohannes Berg 2131cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2132cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2133cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2134cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2135cb3b7d87SAyala Beker TP_STRUCT__entry( 2136cb3b7d87SAyala Beker WIPHY_ENTRY 2137cb3b7d87SAyala Beker WDEV_ENTRY 2138cb3b7d87SAyala Beker __field(u8, master_pref) 213904ae87a5SPeter Zijlstra __field(u8, bands) 2140cb3b7d87SAyala Beker ), 2141cb3b7d87SAyala Beker TP_fast_assign( 2142cb3b7d87SAyala Beker WIPHY_ASSIGN; 2143cb3b7d87SAyala Beker WDEV_ASSIGN; 2144cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 21458585989dSLuca Coelho __entry->bands = conf->bands; 2146cb3b7d87SAyala Beker ), 2147cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21488585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2149cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21508585989dSLuca Coelho __entry->bands) 2151cb3b7d87SAyala Beker ); 2152cb3b7d87SAyala Beker 2153a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2154a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2155a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2156a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2157a5a9dcf2SAyala Beker TP_STRUCT__entry( 2158a5a9dcf2SAyala Beker WIPHY_ENTRY 2159a5a9dcf2SAyala Beker WDEV_ENTRY 2160a5a9dcf2SAyala Beker __field(u8, master_pref) 216104ae87a5SPeter Zijlstra __field(u8, bands) 216204ae87a5SPeter Zijlstra __field(u32, changes) 2163a5a9dcf2SAyala Beker ), 2164a5a9dcf2SAyala Beker TP_fast_assign( 2165a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2166a5a9dcf2SAyala Beker WDEV_ASSIGN; 2167a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21688585989dSLuca Coelho __entry->bands = conf->bands; 2169a5a9dcf2SAyala Beker __entry->changes = changes; 2170a5a9dcf2SAyala Beker ), 2171a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21728585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2173a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21748585989dSLuca Coelho __entry->bands, __entry->changes) 2175a5a9dcf2SAyala Beker ); 2176a5a9dcf2SAyala Beker 2177cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2178cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2179cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2180cb3b7d87SAyala Beker ); 2181cb3b7d87SAyala Beker 2182a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2183a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2184a442b761SAyala Beker const struct cfg80211_nan_func *func), 2185a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2186a442b761SAyala Beker TP_STRUCT__entry( 2187a442b761SAyala Beker WIPHY_ENTRY 2188a442b761SAyala Beker WDEV_ENTRY 2189a442b761SAyala Beker __field(u8, func_type) 2190a442b761SAyala Beker __field(u64, cookie) 2191a442b761SAyala Beker ), 2192a442b761SAyala Beker TP_fast_assign( 2193a442b761SAyala Beker WIPHY_ASSIGN; 2194a442b761SAyala Beker WDEV_ASSIGN; 2195a442b761SAyala Beker __entry->func_type = func->type; 2196a442b761SAyala Beker __entry->cookie = func->cookie 2197a442b761SAyala Beker ), 2198a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2199a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2200a442b761SAyala Beker __entry->cookie) 2201a442b761SAyala Beker ); 2202a442b761SAyala Beker 2203a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2204a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2205a442b761SAyala Beker u64 cookie), 2206a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2207a442b761SAyala Beker TP_STRUCT__entry( 2208a442b761SAyala Beker WIPHY_ENTRY 2209a442b761SAyala Beker WDEV_ENTRY 2210a442b761SAyala Beker __field(u64, cookie) 2211a442b761SAyala Beker ), 2212a442b761SAyala Beker TP_fast_assign( 2213a442b761SAyala Beker WIPHY_ASSIGN; 2214a442b761SAyala Beker WDEV_ASSIGN; 2215a442b761SAyala Beker __entry->cookie = cookie; 2216a442b761SAyala Beker ), 2217a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2218a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2219a442b761SAyala Beker ); 2220a442b761SAyala Beker 222177765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 222277765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 222377765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 222477765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 222577765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 222677765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 222777765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 222877765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 222977765eafSVasanthakumar Thiagarajan ), 223077765eafSVasanthakumar Thiagarajan TP_fast_assign( 223177765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2232021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 223377765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 223477765eafSVasanthakumar Thiagarajan ), 223577765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 223677765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 223777765eafSVasanthakumar Thiagarajan ); 223877765eafSVasanthakumar Thiagarajan 2239355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2240355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2241355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2242355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2243355199e0SJouni Malinen TP_STRUCT__entry( 2244355199e0SJouni Malinen WIPHY_ENTRY 2245355199e0SJouni Malinen NETDEV_ENTRY 2246355199e0SJouni Malinen __field(u16, md) 2247355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2248355199e0SJouni Malinen ), 2249355199e0SJouni Malinen TP_fast_assign( 2250355199e0SJouni Malinen WIPHY_ASSIGN; 2251355199e0SJouni Malinen NETDEV_ASSIGN; 2252355199e0SJouni Malinen __entry->md = ftie->md; 2253355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2254355199e0SJouni Malinen ), 2255355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2256355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2257355199e0SJouni Malinen ); 2258355199e0SJouni Malinen 22595de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22605de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22615de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22625de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22635de17984SArend van Spriel TP_STRUCT__entry( 22645de17984SArend van Spriel WIPHY_ENTRY 22655de17984SArend van Spriel WDEV_ENTRY 22665de17984SArend van Spriel __field(u16, proto) 22675de17984SArend van Spriel __field(u16, duration) 22685de17984SArend van Spriel ), 22695de17984SArend van Spriel TP_fast_assign( 22705de17984SArend van Spriel WIPHY_ASSIGN; 22715de17984SArend van Spriel WDEV_ASSIGN; 22725de17984SArend van Spriel __entry->proto = protocol; 22735de17984SArend van Spriel __entry->duration = duration; 22745de17984SArend van Spriel ), 22755de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22765de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22775de17984SArend van Spriel ); 22785de17984SArend van Spriel 22795de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 22805de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 22815de17984SArend van Spriel TP_ARGS(wiphy, wdev), 22825de17984SArend van Spriel TP_STRUCT__entry( 22835de17984SArend van Spriel WIPHY_ENTRY 22845de17984SArend van Spriel WDEV_ENTRY 22855de17984SArend van Spriel ), 22865de17984SArend van Spriel TP_fast_assign( 22875de17984SArend van Spriel WIPHY_ASSIGN; 22885de17984SArend van Spriel WDEV_ASSIGN; 22895de17984SArend van Spriel ), 22905de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 22915de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 22925de17984SArend van Spriel ); 22935de17984SArend van Spriel 229416ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 229516ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 229616ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 229716ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 229816ef1fe2SSimon Wunderlich TP_STRUCT__entry( 229916ef1fe2SSimon Wunderlich WIPHY_ENTRY 230016ef1fe2SSimon Wunderlich NETDEV_ENTRY 230116ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 230216ef1fe2SSimon Wunderlich __field(bool, radar_required) 230316ef1fe2SSimon Wunderlich __field(bool, block_tx) 230416ef1fe2SSimon Wunderlich __field(u8, count) 23059a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 23069a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 230716ef1fe2SSimon Wunderlich ), 230816ef1fe2SSimon Wunderlich TP_fast_assign( 230916ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 231016ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 231116ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 231216ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 231316ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 231416ef1fe2SSimon Wunderlich __entry->count = params->count; 23159a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 23169a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 23179a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 23189a774c78SAndrei Otcheretianski 23199a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 23209a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 23219a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 23229a774c78SAndrei Otcheretianski params->counter_offsets_presp, 23239a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 232416ef1fe2SSimon Wunderlich ), 232516ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 23269a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 232716ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23289a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 232916ef1fe2SSimon Wunderlich ); 233016ef1fe2SSimon Wunderlich 2331fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2332fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2333fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2334fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2335fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2336fa9ffc74SKyeyoon Park WIPHY_ENTRY 2337fa9ffc74SKyeyoon Park NETDEV_ENTRY 2338fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2339fa9ffc74SKyeyoon Park ), 2340fa9ffc74SKyeyoon Park TP_fast_assign( 2341fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2342fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2343fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2344fa9ffc74SKyeyoon Park ), 2345fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2346fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2347fa9ffc74SKyeyoon Park ); 2348fa9ffc74SKyeyoon Park 2349e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2350e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23517b0a0e3cSJohannes Berg unsigned int link_id, 2352e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 23537b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, chandef), 2354e16821bcSJouni Malinen TP_STRUCT__entry( 2355e16821bcSJouni Malinen WIPHY_ENTRY 2356e16821bcSJouni Malinen NETDEV_ENTRY 2357e16821bcSJouni Malinen CHAN_DEF_ENTRY 23587b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2359e16821bcSJouni Malinen ), 2360e16821bcSJouni Malinen TP_fast_assign( 2361e16821bcSJouni Malinen WIPHY_ASSIGN; 2362e16821bcSJouni Malinen NETDEV_ASSIGN; 2363e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 23647b0a0e3cSJohannes Berg __entry->link_id = link_id; 2365e16821bcSJouni Malinen ), 23667b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 23677b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23687b0a0e3cSJohannes Berg __entry->link_id) 2369e16821bcSJouni Malinen ); 2370e16821bcSJouni Malinen 2371960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2372960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2373960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2374960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2375960d01acSJohannes Berg TP_STRUCT__entry( 2376960d01acSJohannes Berg WIPHY_ENTRY 2377960d01acSJohannes Berg NETDEV_ENTRY 2378960d01acSJohannes Berg MAC_ENTRY(peer) 2379960d01acSJohannes Berg __field(u8, tsid) 2380960d01acSJohannes Berg __field(u8, user_prio) 2381960d01acSJohannes Berg __field(u16, admitted_time) 2382960d01acSJohannes Berg ), 2383960d01acSJohannes Berg TP_fast_assign( 2384960d01acSJohannes Berg WIPHY_ASSIGN; 2385960d01acSJohannes Berg NETDEV_ASSIGN; 2386960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2387960d01acSJohannes Berg __entry->tsid = tsid; 2388960d01acSJohannes Berg __entry->user_prio = user_prio; 2389960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2390960d01acSJohannes Berg ), 2391*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d, UP %d, time %d", 2392*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, 2393960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2394960d01acSJohannes Berg ); 2395960d01acSJohannes Berg 2396960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2397960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2398960d01acSJohannes Berg u8 tsid, const u8 *peer), 2399960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2400960d01acSJohannes Berg TP_STRUCT__entry( 2401960d01acSJohannes Berg WIPHY_ENTRY 2402960d01acSJohannes Berg NETDEV_ENTRY 2403960d01acSJohannes Berg MAC_ENTRY(peer) 2404960d01acSJohannes Berg __field(u8, tsid) 2405960d01acSJohannes Berg ), 2406960d01acSJohannes Berg TP_fast_assign( 2407960d01acSJohannes Berg WIPHY_ASSIGN; 2408960d01acSJohannes Berg NETDEV_ASSIGN; 2409960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2410960d01acSJohannes Berg __entry->tsid = tsid; 2411960d01acSJohannes Berg ), 2412*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d", 2413*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tsid) 2414960d01acSJohannes Berg ); 2415960d01acSJohannes Berg 24161057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 24171057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24181057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 24191057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 24201057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 24211057d35eSArik Nemtsov TP_STRUCT__entry( 24221057d35eSArik Nemtsov WIPHY_ENTRY 24231057d35eSArik Nemtsov NETDEV_ENTRY 24241057d35eSArik Nemtsov MAC_ENTRY(addr) 24251057d35eSArik Nemtsov __field(u8, oper_class) 24261057d35eSArik Nemtsov CHAN_DEF_ENTRY 24271057d35eSArik Nemtsov ), 24281057d35eSArik Nemtsov TP_fast_assign( 24291057d35eSArik Nemtsov WIPHY_ASSIGN; 24301057d35eSArik Nemtsov NETDEV_ASSIGN; 24311057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24321057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 24331057d35eSArik Nemtsov ), 2434*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM" 24351057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 2436*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr, 24371057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 24381057d35eSArik Nemtsov ); 24391057d35eSArik Nemtsov 24401057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 24411057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24421057d35eSArik Nemtsov const u8 *addr), 24431057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 24441057d35eSArik Nemtsov TP_STRUCT__entry( 24451057d35eSArik Nemtsov WIPHY_ENTRY 24461057d35eSArik Nemtsov NETDEV_ENTRY 24471057d35eSArik Nemtsov MAC_ENTRY(addr) 24481057d35eSArik Nemtsov ), 24491057d35eSArik Nemtsov TP_fast_assign( 24501057d35eSArik Nemtsov WIPHY_ASSIGN; 24511057d35eSArik Nemtsov NETDEV_ASSIGN; 24521057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24531057d35eSArik Nemtsov ), 2454*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 2455*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr) 24561057d35eSArik Nemtsov ); 24571057d35eSArik Nemtsov 24583a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24593a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24603a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24613a00df57SAvraham Stern 24623a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24633a00df57SAvraham Stern 24643a00df57SAvraham Stern TP_STRUCT__entry( 24653a00df57SAvraham Stern WIPHY_ENTRY 24663a00df57SAvraham Stern NETDEV_ENTRY 24673a00df57SAvraham Stern MAC_ENTRY(aa) 24683a00df57SAvraham Stern __field(u8, pmk_len) 24693a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24703a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24713a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24723a00df57SAvraham Stern ), 24733a00df57SAvraham Stern 24743a00df57SAvraham Stern TP_fast_assign( 24753a00df57SAvraham Stern WIPHY_ASSIGN; 24763a00df57SAvraham Stern NETDEV_ASSIGN; 24773a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24783a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24793a00df57SAvraham Stern __entry->pmk_r0_name_len = 24803a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 24813a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 24823a00df57SAvraham Stern pmk_conf->pmk_len); 24833a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 24843a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 24853a00df57SAvraham Stern ), 24863a00df57SAvraham Stern 2487*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM" 24883a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 2489*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->aa, __entry->pmk_len, 24903a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 24913a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 24923a00df57SAvraham Stern __entry->pmk_r0_name_len ? 24933a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 24943a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 24953a00df57SAvraham Stern ); 24963a00df57SAvraham Stern 24973a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 24983a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 24993a00df57SAvraham Stern 25003a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 25013a00df57SAvraham Stern 25023a00df57SAvraham Stern TP_STRUCT__entry( 25033a00df57SAvraham Stern WIPHY_ENTRY 25043a00df57SAvraham Stern NETDEV_ENTRY 25053a00df57SAvraham Stern MAC_ENTRY(aa) 25063a00df57SAvraham Stern ), 25073a00df57SAvraham Stern 25083a00df57SAvraham Stern TP_fast_assign( 25093a00df57SAvraham Stern WIPHY_ASSIGN; 25103a00df57SAvraham Stern NETDEV_ASSIGN; 25113a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 25123a00df57SAvraham Stern ), 25133a00df57SAvraham Stern 2514*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 2515*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->aa) 25163a00df57SAvraham Stern ); 25173a00df57SAvraham Stern 251840cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 251940cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 252040cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 252140cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 252240cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 252340cbfa90SSrinivas Dasari NETDEV_ENTRY 252440cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 252540cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 252640cbfa90SSrinivas Dasari __field(u16, status) 252740cbfa90SSrinivas Dasari ), 252840cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 252940cbfa90SSrinivas Dasari NETDEV_ASSIGN; 253040cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 253140cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 253240cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 253340cbfa90SSrinivas Dasari params->ssid.ssid_len); 253440cbfa90SSrinivas Dasari __entry->status = params->status; 253540cbfa90SSrinivas Dasari ), 2536*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 253740cbfa90SSrinivas Dasari ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG, 253840cbfa90SSrinivas Dasari __entry->bssid, __entry->ssid, __entry->status) 253940cbfa90SSrinivas Dasari ); 254040cbfa90SSrinivas Dasari 25415207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 25425207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25435207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 25445207ca55SJohannes Berg u32 cac_time_ms), 25455207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 25465207ca55SJohannes Berg TP_STRUCT__entry( 25475207ca55SJohannes Berg WIPHY_ENTRY 25485207ca55SJohannes Berg NETDEV_ENTRY 25495207ca55SJohannes Berg CHAN_DEF_ENTRY 25505207ca55SJohannes Berg __field(u32, cac_time_ms) 25515207ca55SJohannes Berg ), 25525207ca55SJohannes Berg TP_fast_assign( 25535207ca55SJohannes Berg WIPHY_ASSIGN; 25545207ca55SJohannes Berg NETDEV_ASSIGN; 25555207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25565207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25575207ca55SJohannes Berg ), 25585207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25595207ca55SJohannes Berg ", cac_time_ms=%u", 25605207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25615207ca55SJohannes Berg __entry->cac_time_ms) 25625207ca55SJohannes Berg ); 25635207ca55SJohannes Berg 25645207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25655207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25665207ca55SJohannes Berg int *mcast_rate), 25675207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25685207ca55SJohannes Berg TP_STRUCT__entry( 25695207ca55SJohannes Berg WIPHY_ENTRY 25705207ca55SJohannes Berg NETDEV_ENTRY 25715207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25725207ca55SJohannes Berg ), 25735207ca55SJohannes Berg TP_fast_assign( 25745207ca55SJohannes Berg WIPHY_ASSIGN; 25755207ca55SJohannes Berg NETDEV_ASSIGN; 25765207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 25775207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 25785207ca55SJohannes Berg ), 25795207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2580e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 25815207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 25825207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 25835207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2584e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 25855207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 25865207ca55SJohannes Berg ); 25875207ca55SJohannes Berg 25885207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 25895207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 25905207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 25915207ca55SJohannes Berg TP_STRUCT__entry( 25925207ca55SJohannes Berg WIPHY_ENTRY 25935207ca55SJohannes Berg __field(int, n_rules) 25945207ca55SJohannes Berg ), 25955207ca55SJohannes Berg TP_fast_assign( 25965207ca55SJohannes Berg WIPHY_ASSIGN; 25975207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 25985207ca55SJohannes Berg ), 25995207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 26005207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 26015207ca55SJohannes Berg ); 26025207ca55SJohannes Berg 26035207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 26045207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26055207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26065207ca55SJohannes Berg ); 26075207ca55SJohannes Berg 26085207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 26095207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26105207ca55SJohannes Berg const bool enabled), 26115207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 26125207ca55SJohannes Berg TP_STRUCT__entry( 26135207ca55SJohannes Berg WIPHY_ENTRY 26145207ca55SJohannes Berg NETDEV_ENTRY 26155207ca55SJohannes Berg __field(bool, enabled) 26165207ca55SJohannes Berg ), 26175207ca55SJohannes Berg TP_fast_assign( 26185207ca55SJohannes Berg WIPHY_ASSIGN; 26195207ca55SJohannes Berg NETDEV_ASSIGN; 26205207ca55SJohannes Berg __entry->enabled = enabled; 26215207ca55SJohannes Berg ), 26225207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 26235207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26245207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 26255207ca55SJohannes Berg ); 26265207ca55SJohannes Berg 26275207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 26285207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26295207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26305207ca55SJohannes Berg ); 26315207ca55SJohannes Berg 26325207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 26335207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26345207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 26355207ca55SJohannes Berg 26365207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 26375207ca55SJohannes Berg 26385207ca55SJohannes Berg TP_STRUCT__entry( 26395207ca55SJohannes Berg WIPHY_ENTRY 26405207ca55SJohannes Berg NETDEV_ENTRY 26415207ca55SJohannes Berg __field(u64, timestamp) 26425207ca55SJohannes Berg __field(u32, success_num) 26435207ca55SJohannes Berg __field(u32, partial_num) 26445207ca55SJohannes Berg __field(u32, failed_num) 26455207ca55SJohannes Berg __field(u32, asap_num) 26465207ca55SJohannes Berg __field(u32, non_asap_num) 26475207ca55SJohannes Berg __field(u64, duration) 26485207ca55SJohannes Berg __field(u32, unknown_triggers) 26495207ca55SJohannes Berg __field(u32, reschedule) 26505207ca55SJohannes Berg __field(u32, out_of_window) 26515207ca55SJohannes Berg ), 26525207ca55SJohannes Berg 26535207ca55SJohannes Berg TP_fast_assign( 26545207ca55SJohannes Berg WIPHY_ASSIGN; 26555207ca55SJohannes Berg NETDEV_ASSIGN; 26565207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26575207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26585207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26595207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26605207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26615207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26625207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26635207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26645207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26655207ca55SJohannes Berg ), 26665207ca55SJohannes Berg 26675207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26685207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26695207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26705207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26715207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26725207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26735207ca55SJohannes Berg __entry->out_of_window) 26745207ca55SJohannes Berg ); 26755207ca55SJohannes Berg 26769bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 26779bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26789bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26799bb7e0f2SJohannes Berg ); 26809bb7e0f2SJohannes Berg 26819bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 26829bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 26839bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 26849bb7e0f2SJohannes Berg ); 26859bb7e0f2SJohannes Berg 2686e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2687e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2688e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2689e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2690e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2691e306784aSSubrat Mishra NETDEV_ENTRY 2692e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2693e306784aSSubrat Mishra __field(u8, kek_len) 2694e306784aSSubrat Mishra ), 2695e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2696e306784aSSubrat Mishra NETDEV_ASSIGN; 2697e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2698e306784aSSubrat Mishra ), 2699e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2700e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2701e306784aSSubrat Mishra __entry->kek_len) 2702e306784aSSubrat Mishra ); 2703e306784aSSubrat Mishra 2704c8a11ed5SJohannes Berg TRACE_EVENT(rdev_update_owe_info, 2705c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2706c8a11ed5SJohannes Berg struct cfg80211_update_owe_info *owe_info), 2707c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, owe_info), 2708c8a11ed5SJohannes Berg TP_STRUCT__entry(WIPHY_ENTRY 2709c8a11ed5SJohannes Berg NETDEV_ENTRY 2710c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2711c8a11ed5SJohannes Berg __field(u16, status) 2712c8a11ed5SJohannes Berg __dynamic_array(u8, ie, owe_info->ie_len)), 2713c8a11ed5SJohannes Berg TP_fast_assign(WIPHY_ASSIGN; 2714c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2715c8a11ed5SJohannes Berg MAC_ASSIGN(peer, owe_info->peer); 2716c8a11ed5SJohannes Berg __entry->status = owe_info->status; 2717c8a11ed5SJohannes Berg memcpy(__get_dynamic_array(ie), 2718c8a11ed5SJohannes Berg owe_info->ie, owe_info->ie_len);), 2719*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM" 2720*3d9c3617SJohannes Berg " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, 2721c8a11ed5SJohannes Berg __entry->status) 2722c8a11ed5SJohannes Berg ); 2723c8a11ed5SJohannes Berg 2724c8a11ed5SJohannes Berg TRACE_EVENT(rdev_probe_mesh_link, 2725c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2726c8a11ed5SJohannes Berg const u8 *dest, const u8 *buf, size_t len), 2727c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, dest, buf, len), 2728c8a11ed5SJohannes Berg TP_STRUCT__entry( 2729c8a11ed5SJohannes Berg WIPHY_ENTRY 2730c8a11ed5SJohannes Berg NETDEV_ENTRY 2731c8a11ed5SJohannes Berg MAC_ENTRY(dest) 2732c8a11ed5SJohannes Berg ), 2733c8a11ed5SJohannes Berg TP_fast_assign( 2734c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2735c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2736c8a11ed5SJohannes Berg MAC_ASSIGN(dest, dest); 2737c8a11ed5SJohannes Berg ), 2738*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 2739*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest) 2740c8a11ed5SJohannes Berg ); 2741c8a11ed5SJohannes Berg 2742c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_tid_config, 2743c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2744c8a11ed5SJohannes Berg struct cfg80211_tid_config *tid_conf), 2745c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, tid_conf), 2746c8a11ed5SJohannes Berg TP_STRUCT__entry( 2747c8a11ed5SJohannes Berg WIPHY_ENTRY 2748c8a11ed5SJohannes Berg NETDEV_ENTRY 2749c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2750c8a11ed5SJohannes Berg ), 2751c8a11ed5SJohannes Berg TP_fast_assign( 2752c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2753c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2754c8a11ed5SJohannes Berg MAC_ASSIGN(peer, tid_conf->peer); 2755c8a11ed5SJohannes Berg ), 2756*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM", 2757*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer) 2758c8a11ed5SJohannes Berg ); 2759c8a11ed5SJohannes Berg 2760c8a11ed5SJohannes Berg TRACE_EVENT(rdev_reset_tid_config, 2761c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2762c8a11ed5SJohannes Berg const u8 *peer, u8 tids), 2763c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 2764c8a11ed5SJohannes Berg TP_STRUCT__entry( 2765c8a11ed5SJohannes Berg WIPHY_ENTRY 2766c8a11ed5SJohannes Berg NETDEV_ENTRY 2767c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2768c8a11ed5SJohannes Berg __field(u8, tids) 2769c8a11ed5SJohannes Berg ), 2770c8a11ed5SJohannes Berg TP_fast_assign( 2771c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2772c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2773c8a11ed5SJohannes Berg MAC_ASSIGN(peer, peer); 2774c8a11ed5SJohannes Berg __entry->tids = tids; 2775c8a11ed5SJohannes Berg ), 2776*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, tids: 0x%x", 2777*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tids) 2778c8a11ed5SJohannes Berg ); 2779c8a11ed5SJohannes Berg 2780c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_sar_specs, 2781c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 2782c8a11ed5SJohannes Berg TP_ARGS(wiphy, sar), 2783c8a11ed5SJohannes Berg TP_STRUCT__entry( 2784c8a11ed5SJohannes Berg WIPHY_ENTRY 2785c8a11ed5SJohannes Berg __field(u16, type) 2786c8a11ed5SJohannes Berg __field(u16, num) 2787c8a11ed5SJohannes Berg ), 2788c8a11ed5SJohannes Berg TP_fast_assign( 2789c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2790c8a11ed5SJohannes Berg __entry->type = sar->type; 2791c8a11ed5SJohannes Berg __entry->num = sar->num_sub_specs; 2792c8a11ed5SJohannes Berg 2793c8a11ed5SJohannes Berg ), 2794c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 2795c8a11ed5SJohannes Berg WIPHY_PR_ARG, __entry->type, __entry->num) 2796c8a11ed5SJohannes Berg ); 2797c8a11ed5SJohannes Berg 2798c8a11ed5SJohannes Berg TRACE_EVENT(rdev_color_change, 2799c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2800c8a11ed5SJohannes Berg struct cfg80211_color_change_settings *params), 2801c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, params), 2802c8a11ed5SJohannes Berg TP_STRUCT__entry( 2803c8a11ed5SJohannes Berg WIPHY_ENTRY 2804c8a11ed5SJohannes Berg NETDEV_ENTRY 2805c8a11ed5SJohannes Berg __field(u8, count) 2806c8a11ed5SJohannes Berg __field(u16, bcn_ofs) 2807c8a11ed5SJohannes Berg __field(u16, pres_ofs) 2808c8a11ed5SJohannes Berg ), 2809c8a11ed5SJohannes Berg TP_fast_assign( 2810c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2811c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2812c8a11ed5SJohannes Berg __entry->count = params->count; 2813c8a11ed5SJohannes Berg __entry->bcn_ofs = params->counter_offset_beacon; 2814c8a11ed5SJohannes Berg __entry->pres_ofs = params->counter_offset_presp; 2815c8a11ed5SJohannes Berg ), 2816c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 2817c8a11ed5SJohannes Berg ", count: %u", 2818c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 2819c8a11ed5SJohannes Berg __entry->count) 2820c8a11ed5SJohannes Berg ); 2821c8a11ed5SJohannes Berg 2822c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_radar_background, 2823c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 2824c8a11ed5SJohannes Berg 2825c8a11ed5SJohannes Berg TP_ARGS(wiphy, chandef), 2826c8a11ed5SJohannes Berg 2827c8a11ed5SJohannes Berg TP_STRUCT__entry( 2828c8a11ed5SJohannes Berg WIPHY_ENTRY 2829c8a11ed5SJohannes Berg CHAN_DEF_ENTRY 2830c8a11ed5SJohannes Berg ), 2831c8a11ed5SJohannes Berg 2832c8a11ed5SJohannes Berg TP_fast_assign( 2833c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2834c8a11ed5SJohannes Berg CHAN_DEF_ASSIGN(chandef) 2835c8a11ed5SJohannes Berg ), 2836c8a11ed5SJohannes Berg 2837c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 2838c8a11ed5SJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 2839c8a11ed5SJohannes Berg ); 2840c8a11ed5SJohannes Berg 2841f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link, 2842f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2843f2a0290bSJohannes Berg unsigned int link_id), 2844f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2845f2a0290bSJohannes Berg ); 2846f2a0290bSJohannes Berg 2847f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link, 2848f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2849f2a0290bSJohannes Berg unsigned int link_id), 2850f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2851f2a0290bSJohannes Berg ); 2852f2a0290bSJohannes Berg 28534ee3e063SBeni Lev /************************************************************* 28544ee3e063SBeni Lev * cfg80211 exported functions traces * 28554ee3e063SBeni Lev *************************************************************/ 28564ee3e063SBeni Lev 28574ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 28584ee3e063SBeni Lev TP_PROTO(bool ret), 28594ee3e063SBeni Lev TP_ARGS(ret), 28604ee3e063SBeni Lev TP_STRUCT__entry( 28614ee3e063SBeni Lev __field(bool, ret) 28624ee3e063SBeni Lev ), 28634ee3e063SBeni Lev TP_fast_assign( 28644ee3e063SBeni Lev __entry->ret = ret; 28654ee3e063SBeni Lev ), 28664ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 28674ee3e063SBeni Lev ); 28684ee3e063SBeni Lev 28694ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 28704ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28714ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 28724ee3e063SBeni Lev TP_STRUCT__entry( 28734ee3e063SBeni Lev NETDEV_ENTRY 28744ee3e063SBeni Lev MAC_ENTRY(macaddr) 28754ee3e063SBeni Lev ), 28764ee3e063SBeni Lev TP_fast_assign( 28774ee3e063SBeni Lev NETDEV_ASSIGN; 28784ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 28794ee3e063SBeni Lev ), 2880*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", mac: %pM", 2881*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->macaddr) 28824ee3e063SBeni Lev ); 28834ee3e063SBeni Lev 28844ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 28854ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28864ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 28874ee3e063SBeni Lev ); 28884ee3e063SBeni Lev 28894ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 28904ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 28914ee3e063SBeni Lev TP_ARGS(netdev), 28924ee3e063SBeni Lev TP_STRUCT__entry( 28934ee3e063SBeni Lev NETDEV_ENTRY 28944ee3e063SBeni Lev ), 28954ee3e063SBeni Lev TP_fast_assign( 28964ee3e063SBeni Lev NETDEV_ASSIGN; 28974ee3e063SBeni Lev ), 28984ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 28994ee3e063SBeni Lev ); 29004ee3e063SBeni Lev 29014ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 29024ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 29034ee3e063SBeni Lev TP_ARGS(netdev) 29044ee3e063SBeni Lev ); 29054ee3e063SBeni Lev 29064ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 29075cd212cbSJohannes Berg TP_PROTO(struct net_device *netdev, 29085cd212cbSJohannes Berg struct cfg80211_rx_assoc_resp *data), 29095cd212cbSJohannes Berg TP_ARGS(netdev, data), 29104ee3e063SBeni Lev TP_STRUCT__entry( 29114ee3e063SBeni Lev NETDEV_ENTRY 29125cd212cbSJohannes Berg MAC_ENTRY(ap_addr) 29134ee3e063SBeni Lev ), 29144ee3e063SBeni Lev TP_fast_assign( 29154ee3e063SBeni Lev NETDEV_ASSIGN; 29165cd212cbSJohannes Berg MAC_ASSIGN(ap_addr, 29175cd212cbSJohannes Berg data->ap_mld_addr ?: data->links[0].bss->bssid); 29184ee3e063SBeni Lev ), 2919*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM", 2920*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->ap_addr) 29214ee3e063SBeni Lev ); 29224ee3e063SBeni Lev 29236ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 29246ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29256ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 29266ff57cf8SJohannes Berg TP_STRUCT__entry( 29276ff57cf8SJohannes Berg NETDEV_ENTRY 29286ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29296ff57cf8SJohannes Berg ), 29306ff57cf8SJohannes Berg TP_fast_assign( 29316ff57cf8SJohannes Berg NETDEV_ASSIGN; 29326ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29336ff57cf8SJohannes Berg ), 29346ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 29356ff57cf8SJohannes Berg NETDEV_PR_ARG, 29366ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 29374ee3e063SBeni Lev ); 29384ee3e063SBeni Lev 29396ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 29406ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29416ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29424ee3e063SBeni Lev ); 29434ee3e063SBeni Lev 29446ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 29456ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29466ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29474ee3e063SBeni Lev ); 29484ee3e063SBeni Lev 29496ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 29503bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 29513bb02143SJohannes Berg bool reconnect), 29523bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 29536ff57cf8SJohannes Berg TP_STRUCT__entry( 29546ff57cf8SJohannes Berg NETDEV_ENTRY 29556ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29563bb02143SJohannes Berg __field(int, reconnect) 29576ff57cf8SJohannes Berg ), 29586ff57cf8SJohannes Berg TP_fast_assign( 29596ff57cf8SJohannes Berg NETDEV_ASSIGN; 29606ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29613bb02143SJohannes Berg __entry->reconnect = reconnect; 29626ff57cf8SJohannes Berg ), 29633bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 29646ff57cf8SJohannes Berg NETDEV_PR_ARG, 29653bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 29663bb02143SJohannes Berg __entry->reconnect) 29674ee3e063SBeni Lev ); 29684ee3e063SBeni Lev 29694ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 29704ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29714ee3e063SBeni Lev TP_ARGS(netdev, mac), 29724ee3e063SBeni Lev TP_STRUCT__entry( 29734ee3e063SBeni Lev NETDEV_ENTRY 29744ee3e063SBeni Lev MAC_ENTRY(mac) 29754ee3e063SBeni Lev ), 29764ee3e063SBeni Lev TP_fast_assign( 29774ee3e063SBeni Lev NETDEV_ASSIGN; 29784ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 29794ee3e063SBeni Lev ), 2980*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", mac: %pM", 2981*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->mac) 29824ee3e063SBeni Lev ); 29834ee3e063SBeni Lev 29844ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 29854ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29864ee3e063SBeni Lev TP_ARGS(netdev, mac) 29874ee3e063SBeni Lev ); 29884ee3e063SBeni Lev 2989f662d2f4SJohannes Berg TRACE_EVENT(cfg80211_send_assoc_failure, 2990f662d2f4SJohannes Berg TP_PROTO(struct net_device *netdev, 2991f662d2f4SJohannes Berg struct cfg80211_assoc_failure *data), 2992f662d2f4SJohannes Berg TP_ARGS(netdev, data), 2993f662d2f4SJohannes Berg TP_STRUCT__entry( 2994f662d2f4SJohannes Berg NETDEV_ENTRY 2995f662d2f4SJohannes Berg MAC_ENTRY(ap_addr) 2996f662d2f4SJohannes Berg __field(bool, timeout) 2997f662d2f4SJohannes Berg ), 2998f662d2f4SJohannes Berg TP_fast_assign( 2999f662d2f4SJohannes Berg NETDEV_ASSIGN; 3000f662d2f4SJohannes Berg MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid); 3001f662d2f4SJohannes Berg __entry->timeout = data->timeout; 3002f662d2f4SJohannes Berg ), 3003*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", mac: %pM, timeout: %d", 3004*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->ap_addr, __entry->timeout) 30054ee3e063SBeni Lev ); 30064ee3e063SBeni Lev 30074ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 30084ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 30094ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 30104ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 30114ee3e063SBeni Lev TP_STRUCT__entry( 30124ee3e063SBeni Lev NETDEV_ENTRY 30134ee3e063SBeni Lev MAC_ENTRY(addr) 30144ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 30154ee3e063SBeni Lev __field(int, key_id) 30164ee3e063SBeni Lev __array(u8, tsc, 6) 30174ee3e063SBeni Lev ), 30184ee3e063SBeni Lev TP_fast_assign( 30194ee3e063SBeni Lev NETDEV_ASSIGN; 30204ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 30214ee3e063SBeni Lev __entry->key_type = key_type; 30224ee3e063SBeni Lev __entry->key_id = key_id; 30238c26d458SEliad Peller if (tsc) 30244ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 30254ee3e063SBeni Lev ), 3026*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM, key type: %d, key id: %d, tsc: %pm", 3027*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->addr, __entry->key_type, 30284ee3e063SBeni Lev __entry->key_id, __entry->tsc) 30294ee3e063SBeni Lev ); 30304ee3e063SBeni Lev 30314ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 30324ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30334ee3e063SBeni Lev struct ieee80211_channel *chan, 303442d97a59SJohannes Berg unsigned int duration), 303542d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 30364ee3e063SBeni Lev TP_STRUCT__entry( 30374ee3e063SBeni Lev WDEV_ENTRY 30384ee3e063SBeni Lev __field(u64, cookie) 30394ee3e063SBeni Lev CHAN_ENTRY 30404ee3e063SBeni Lev __field(unsigned int, duration) 30414ee3e063SBeni Lev ), 30424ee3e063SBeni Lev TP_fast_assign( 30434ee3e063SBeni Lev WDEV_ASSIGN; 30444ee3e063SBeni Lev __entry->cookie = cookie; 30454ee3e063SBeni Lev CHAN_ASSIGN(chan); 30464ee3e063SBeni Lev __entry->duration = duration; 30474ee3e063SBeni Lev ), 304842d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 30494ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 305042d97a59SJohannes Berg __entry->duration) 30514ee3e063SBeni Lev ); 30524ee3e063SBeni Lev 30534ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 30544ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 305542d97a59SJohannes Berg struct ieee80211_channel *chan), 305642d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 30574ee3e063SBeni Lev TP_STRUCT__entry( 30584ee3e063SBeni Lev WDEV_ENTRY 30594ee3e063SBeni Lev __field(u64, cookie) 30604ee3e063SBeni Lev CHAN_ENTRY 30614ee3e063SBeni Lev ), 30624ee3e063SBeni Lev TP_fast_assign( 30634ee3e063SBeni Lev WDEV_ASSIGN; 30644ee3e063SBeni Lev __entry->cookie = cookie; 30654ee3e063SBeni Lev CHAN_ASSIGN(chan); 30664ee3e063SBeni Lev ), 306742d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 306842d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30694ee3e063SBeni Lev ); 30704ee3e063SBeni Lev 30711c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 30721c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30731c38c7f2SJames Prestwood struct ieee80211_channel *chan), 30741c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 30751c38c7f2SJames Prestwood TP_STRUCT__entry( 30761c38c7f2SJames Prestwood WDEV_ENTRY 30771c38c7f2SJames Prestwood __field(u64, cookie) 30781c38c7f2SJames Prestwood CHAN_ENTRY 30791c38c7f2SJames Prestwood ), 30801c38c7f2SJames Prestwood TP_fast_assign( 30811c38c7f2SJames Prestwood WDEV_ASSIGN; 30821c38c7f2SJames Prestwood __entry->cookie = cookie; 30831c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 30841c38c7f2SJames Prestwood ), 30851c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 30861c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30871c38c7f2SJames Prestwood ); 30881c38c7f2SJames Prestwood 30894ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 30904ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 30914ee3e063SBeni Lev struct station_info *sinfo), 30924ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 30934ee3e063SBeni Lev TP_STRUCT__entry( 30944ee3e063SBeni Lev NETDEV_ENTRY 30954ee3e063SBeni Lev MAC_ENTRY(mac_addr) 30964ee3e063SBeni Lev SINFO_ENTRY 30974ee3e063SBeni Lev ), 30984ee3e063SBeni Lev TP_fast_assign( 30994ee3e063SBeni Lev NETDEV_ASSIGN; 31004ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 31014ee3e063SBeni Lev SINFO_ASSIGN; 31024ee3e063SBeni Lev ), 3103*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM", 3104*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->mac_addr) 31054ee3e063SBeni Lev ); 31064ee3e063SBeni Lev 31074ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 31084ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 31094ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 31104ee3e063SBeni Lev ); 31114ee3e063SBeni Lev 31124ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 311300b3d840SAvraham Stern TP_PROTO(struct wireless_dev *wdev, struct cfg80211_rx_info *info), 311400b3d840SAvraham Stern TP_ARGS(wdev, info), 31154ee3e063SBeni Lev TP_STRUCT__entry( 31164ee3e063SBeni Lev WDEV_ENTRY 31174ee3e063SBeni Lev __field(int, freq) 31186c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 31194ee3e063SBeni Lev ), 31204ee3e063SBeni Lev TP_fast_assign( 31214ee3e063SBeni Lev WDEV_ASSIGN; 312200b3d840SAvraham Stern __entry->freq = info->freq; 312300b3d840SAvraham Stern __entry->sig_dbm = info->sig_dbm; 31244ee3e063SBeni Lev ), 3125e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 3126e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 31274ee3e063SBeni Lev ); 31284ee3e063SBeni Lev 31294ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 31304ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 31314ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 31324ee3e063SBeni Lev TP_STRUCT__entry( 31334ee3e063SBeni Lev WDEV_ENTRY 31344ee3e063SBeni Lev __field(u64, cookie) 31354ee3e063SBeni Lev __field(bool, ack) 31364ee3e063SBeni Lev ), 31374ee3e063SBeni Lev TP_fast_assign( 31384ee3e063SBeni Lev WDEV_ASSIGN; 31394ee3e063SBeni Lev __entry->cookie = cookie; 31404ee3e063SBeni Lev __entry->ack = ack; 31414ee3e063SBeni Lev ), 31424ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 31434ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 31444ee3e063SBeni Lev ); 31454ee3e063SBeni Lev 3146dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 3147dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 3148dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 3149dca9ca2dSMarkus Theil TP_STRUCT__entry( 3150dca9ca2dSMarkus Theil WDEV_ENTRY 3151dca9ca2dSMarkus Theil __field(u64, cookie) 3152dca9ca2dSMarkus Theil __field(bool, ack) 3153dca9ca2dSMarkus Theil ), 3154dca9ca2dSMarkus Theil TP_fast_assign( 3155dca9ca2dSMarkus Theil WDEV_ASSIGN; 3156dca9ca2dSMarkus Theil __entry->cookie = cookie; 3157dca9ca2dSMarkus Theil __entry->ack = ack; 3158dca9ca2dSMarkus Theil ), 3159dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 3160dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 3161dca9ca2dSMarkus Theil ); 3162dca9ca2dSMarkus Theil 31636a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 3164a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 3165a948f713SDenis Kenzior bool unencrypted), 3166a948f713SDenis Kenzior TP_ARGS(netdev, skb, unencrypted), 31676a671a50SDenis Kenzior TP_STRUCT__entry( 31686a671a50SDenis Kenzior NETDEV_ENTRY 3169a948f713SDenis Kenzior __field(int, len) 3170a948f713SDenis Kenzior MAC_ENTRY(from) 31716a671a50SDenis Kenzior __field(u16, proto) 31726a671a50SDenis Kenzior __field(bool, unencrypted) 31736a671a50SDenis Kenzior ), 31746a671a50SDenis Kenzior TP_fast_assign( 31756a671a50SDenis Kenzior NETDEV_ASSIGN; 3176a948f713SDenis Kenzior __entry->len = skb->len; 3177a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 3178a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 31796a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 31806a671a50SDenis Kenzior ), 3181*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s", 3182*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->len, __entry->from, 31836a671a50SDenis Kenzior __entry->proto, BOOL_TO_STR(__entry->unencrypted)) 31846a671a50SDenis Kenzior ); 31856a671a50SDenis Kenzior 31864ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 31874ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 3188bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 3189bee427b8SAndrzej Zaborowski s32 rssi_level), 3190bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 31914ee3e063SBeni Lev TP_STRUCT__entry( 31924ee3e063SBeni Lev NETDEV_ENTRY 31934ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 3194bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 31954ee3e063SBeni Lev ), 31964ee3e063SBeni Lev TP_fast_assign( 31974ee3e063SBeni Lev NETDEV_ASSIGN; 31984ee3e063SBeni Lev __entry->rssi_event = rssi_event; 3199bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 32004ee3e063SBeni Lev ), 3201bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 3202bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 32034ee3e063SBeni Lev ); 32044ee3e063SBeni Lev 3205683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 3206174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3207923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 3208923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 32094ee3e063SBeni Lev TP_STRUCT__entry( 32104ee3e063SBeni Lev WIPHY_ENTRY 3211683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3212174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 3213923b352fSArik Nemtsov __field(bool, check_no_ir) 32144ee3e063SBeni Lev ), 32154ee3e063SBeni Lev TP_fast_assign( 32164ee3e063SBeni Lev WIPHY_ASSIGN; 3217683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3218174e0cd2SIlan Peer __entry->iftype = iftype; 3219923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 32204ee3e063SBeni Lev ), 3221923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3222923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3223923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 32244ee3e063SBeni Lev ); 32254ee3e063SBeni Lev 322604f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 322704f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 322804f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 322904f39047SSimon Wunderlich TP_STRUCT__entry( 323004f39047SSimon Wunderlich WIPHY_ENTRY 323104f39047SSimon Wunderlich CHAN_DEF_ENTRY 323204f39047SSimon Wunderlich ), 323304f39047SSimon Wunderlich TP_fast_assign( 323404f39047SSimon Wunderlich WIPHY_ASSIGN; 323504f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 323604f39047SSimon Wunderlich ), 323704f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 323804f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 323904f39047SSimon Wunderlich ); 324004f39047SSimon Wunderlich 32414ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3242683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 32437b0a0e3cSJohannes Berg struct cfg80211_chan_def *chandef, 32447b0a0e3cSJohannes Berg unsigned int link_id), 32457b0a0e3cSJohannes Berg TP_ARGS(netdev, chandef, link_id), 32464ee3e063SBeni Lev TP_STRUCT__entry( 32474ee3e063SBeni Lev NETDEV_ENTRY 3248683b6d3bSJohannes Berg CHAN_DEF_ENTRY 32497b0a0e3cSJohannes Berg __field(unsigned int, link_id) 32504ee3e063SBeni Lev ), 32514ee3e063SBeni Lev TP_fast_assign( 32524ee3e063SBeni Lev NETDEV_ASSIGN; 3253683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 32547b0a0e3cSJohannes Berg __entry->link_id = link_id; 32554ee3e063SBeni Lev ), 32567b0a0e3cSJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 32577b0a0e3cSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 32584ee3e063SBeni Lev ); 32594ee3e063SBeni Lev 3260f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3261f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3262b8c9024eSVeerendranath Jakkam struct cfg80211_chan_def *chandef, 3263b8c9024eSVeerendranath Jakkam unsigned int link_id), 3264b8c9024eSVeerendranath Jakkam TP_ARGS(netdev, chandef, link_id), 3265f8d7552eSLuciano Coelho TP_STRUCT__entry( 3266f8d7552eSLuciano Coelho NETDEV_ENTRY 3267f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3268b8c9024eSVeerendranath Jakkam __field(unsigned int, link_id) 3269f8d7552eSLuciano Coelho ), 3270f8d7552eSLuciano Coelho TP_fast_assign( 3271f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3272f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3273b8c9024eSVeerendranath Jakkam __entry->link_id = link_id; 3274f8d7552eSLuciano Coelho ), 3275b8c9024eSVeerendranath Jakkam TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 3276b8c9024eSVeerendranath Jakkam NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) 3277f8d7552eSLuciano Coelho ); 3278f8d7552eSLuciano Coelho 327904f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3280c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3281c47240cbSLorenzo Bianconi bool offchan), 3282c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 328304f39047SSimon Wunderlich TP_STRUCT__entry( 328404f39047SSimon Wunderlich WIPHY_ENTRY 328504f39047SSimon Wunderlich CHAN_DEF_ENTRY 3286c47240cbSLorenzo Bianconi __field(bool, offchan) 328704f39047SSimon Wunderlich ), 328804f39047SSimon Wunderlich TP_fast_assign( 328904f39047SSimon Wunderlich WIPHY_ASSIGN; 329004f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3291c47240cbSLorenzo Bianconi __entry->offchan = offchan; 329204f39047SSimon Wunderlich ), 3293c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3294c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 329504f39047SSimon Wunderlich ); 329604f39047SSimon Wunderlich 329704f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 329804f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 329904f39047SSimon Wunderlich TP_ARGS(netdev, evt), 330004f39047SSimon Wunderlich TP_STRUCT__entry( 330104f39047SSimon Wunderlich NETDEV_ENTRY 330204f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 330304f39047SSimon Wunderlich ), 330404f39047SSimon Wunderlich TP_fast_assign( 330504f39047SSimon Wunderlich NETDEV_ASSIGN; 330604f39047SSimon Wunderlich __entry->evt = evt; 330704f39047SSimon Wunderlich ), 330804f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 330904f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 331004f39047SSimon Wunderlich ); 331104f39047SSimon Wunderlich 33124ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 33134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33144ee3e063SBeni Lev TP_ARGS(netdev, addr), 33154ee3e063SBeni Lev TP_STRUCT__entry( 33164ee3e063SBeni Lev NETDEV_ENTRY 33174ee3e063SBeni Lev MAC_ENTRY(addr) 33184ee3e063SBeni Lev ), 33194ee3e063SBeni Lev TP_fast_assign( 33204ee3e063SBeni Lev NETDEV_ASSIGN; 33214ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33224ee3e063SBeni Lev ), 3323*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM", NETDEV_PR_ARG, __entry->addr) 33244ee3e063SBeni Lev ); 33254ee3e063SBeni Lev 33264ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 33274ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33284ee3e063SBeni Lev TP_ARGS(netdev, addr) 33294ee3e063SBeni Lev ); 33304ee3e063SBeni Lev 33314ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 33324ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33334ee3e063SBeni Lev TP_ARGS(netdev, addr) 33344ee3e063SBeni Lev ); 33354ee3e063SBeni Lev 3336fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3337fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3338fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3339fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3340fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3341fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3342fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3343fe94f3a4SAntonio Quartulli CHAN_ENTRY 3344fe94f3a4SAntonio Quartulli ), 3345fe94f3a4SAntonio Quartulli TP_fast_assign( 3346fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3347fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3348fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3349fe94f3a4SAntonio Quartulli ), 3350*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", bssid: %pM, " CHAN_PR_FMT, 3351*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->bssid, CHAN_PR_ARG) 3352fe94f3a4SAntonio Quartulli ); 3353fe94f3a4SAntonio Quartulli 33544ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 33554ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 33564ee3e063SBeni Lev bool acked), 33574ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 33584ee3e063SBeni Lev TP_STRUCT__entry( 33594ee3e063SBeni Lev NETDEV_ENTRY 33604ee3e063SBeni Lev MAC_ENTRY(addr) 33614ee3e063SBeni Lev __field(u64, cookie) 33624ee3e063SBeni Lev __field(bool, acked) 33634ee3e063SBeni Lev ), 33644ee3e063SBeni Lev TP_fast_assign( 33654ee3e063SBeni Lev NETDEV_ASSIGN; 33664ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33674ee3e063SBeni Lev __entry->cookie = cookie; 33684ee3e063SBeni Lev __entry->acked = acked; 33694ee3e063SBeni Lev ), 3370*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:%pM, cookie: %llu, acked: %s", 3371*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->addr, __entry->cookie, 33724ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 33734ee3e063SBeni Lev ); 33744ee3e063SBeni Lev 33754ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 33764ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 33774ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 33784ee3e063SBeni Lev TP_STRUCT__entry( 33794ee3e063SBeni Lev NETDEV_ENTRY 33804ee3e063SBeni Lev MAC_ENTRY(peer) 33814ee3e063SBeni Lev __field(u32, num_packets) 33824ee3e063SBeni Lev ), 33834ee3e063SBeni Lev TP_fast_assign( 33844ee3e063SBeni Lev NETDEV_ASSIGN; 33854ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 33864ee3e063SBeni Lev __entry->num_packets = num_packets; 33874ee3e063SBeni Lev ), 3388*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", peer: %pM, num of lost packets: %u", 3389*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->peer, __entry->num_packets) 33904ee3e063SBeni Lev ); 33914ee3e063SBeni Lev 33924ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 33934ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 33944ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 33954ee3e063SBeni Lev ); 33964ee3e063SBeni Lev 33974ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 33984ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 33994ee3e063SBeni Lev bool preauth), 34004ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 34014ee3e063SBeni Lev TP_STRUCT__entry( 34024ee3e063SBeni Lev NETDEV_ENTRY 34034ee3e063SBeni Lev __field(int, index) 34044ee3e063SBeni Lev MAC_ENTRY(bssid) 34054ee3e063SBeni Lev __field(bool, preauth) 34064ee3e063SBeni Lev ), 34074ee3e063SBeni Lev TP_fast_assign( 34084ee3e063SBeni Lev NETDEV_ASSIGN; 34094ee3e063SBeni Lev __entry->index = index; 34104ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 34114ee3e063SBeni Lev __entry->preauth = preauth; 34124ee3e063SBeni Lev ), 3413*3d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", index:%d, bssid: %pM, pre auth: %s", 3414*3d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->index, __entry->bssid, 34154ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 34164ee3e063SBeni Lev ); 34174ee3e063SBeni Lev 34184ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 34194ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 34204ee3e063SBeni Lev int freq, int sig_dbm), 34214ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 34224ee3e063SBeni Lev TP_STRUCT__entry( 34234ee3e063SBeni Lev WIPHY_ENTRY 34244ee3e063SBeni Lev __field(int, freq) 34254ee3e063SBeni Lev __field(int, sig_dbm) 34264ee3e063SBeni Lev ), 34274ee3e063SBeni Lev TP_fast_assign( 34284ee3e063SBeni Lev WIPHY_ASSIGN; 34294ee3e063SBeni Lev __entry->freq = freq; 34304ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 34314ee3e063SBeni Lev ), 3432e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3433e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 34344ee3e063SBeni Lev ); 34354ee3e063SBeni Lev 34363475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 34373475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 34383475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 34393475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 34403475b094SJouni Malinen TP_STRUCT__entry( 34413475b094SJouni Malinen WIPHY_ENTRY 34423475b094SJouni Malinen NETDEV_ENTRY 34433475b094SJouni Malinen MAC_ENTRY(peer) 34443475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 34453475b094SJouni Malinen __field(u16, reason_code) 34463475b094SJouni Malinen ), 34473475b094SJouni Malinen TP_fast_assign( 34483475b094SJouni Malinen WIPHY_ASSIGN; 34493475b094SJouni Malinen NETDEV_ASSIGN; 34503475b094SJouni Malinen MAC_ASSIGN(peer, peer); 34513475b094SJouni Malinen __entry->oper = oper; 34523475b094SJouni Malinen __entry->reason_code = reason_code; 34533475b094SJouni Malinen ), 3454*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, oper: %d, reason_code %u", 3455*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper, 34563475b094SJouni Malinen __entry->reason_code) 34573475b094SJouni Malinen ); 34583475b094SJouni Malinen 34594ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 34601d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 34611d76250bSAvraham Stern struct cfg80211_scan_info *info), 34621d76250bSAvraham Stern TP_ARGS(request, info), 34634ee3e063SBeni Lev TP_STRUCT__entry( 34644ee3e063SBeni Lev __field(u32, n_channels) 34654ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 346657fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 34674ee3e063SBeni Lev __field(u32, wdev_id) 34684ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 34694ee3e063SBeni Lev __field(bool, no_cck) 34704ee3e063SBeni Lev __field(bool, aborted) 34711d76250bSAvraham Stern __field(u64, scan_start_tsf) 34721d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 34734ee3e063SBeni Lev ), 34744ee3e063SBeni Lev TP_fast_assign( 34754ee3e063SBeni Lev if (request) { 34764ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 34774ee3e063SBeni Lev request->ie_len); 34784ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 347957fbcce3SJohannes Berg NUM_NL80211_BANDS); 34804ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 34814ee3e063SBeni Lev request->wdev->identifier : 0; 34824ee3e063SBeni Lev if (request->wiphy) 34834ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 34844ee3e063SBeni Lev request->wiphy->perm_addr); 34854ee3e063SBeni Lev __entry->no_cck = request->no_cck; 34864ee3e063SBeni Lev } 34871d76250bSAvraham Stern if (info) { 34881d76250bSAvraham Stern __entry->aborted = info->aborted; 34891d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 34901d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 34911d76250bSAvraham Stern } 34924ee3e063SBeni Lev ), 3493*3d9c3617SJohannes Berg TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: %pM", 34941d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 34951d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 3496*3d9c3617SJohannes Berg __entry->tsf_bssid) 34974ee3e063SBeni Lev ); 34984ee3e063SBeni Lev 3499b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3500b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3501b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3502b34939b9SArend Van Spriel TP_STRUCT__entry( 3503b34939b9SArend Van Spriel WIPHY_ENTRY 3504b34939b9SArend Van Spriel __field(u64, id) 3505b34939b9SArend Van Spriel ), 3506b34939b9SArend Van Spriel TP_fast_assign( 3507b34939b9SArend Van Spriel WIPHY_ASSIGN; 3508b34939b9SArend Van Spriel __entry->id = id; 3509b34939b9SArend Van Spriel ), 3510b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 35114ee3e063SBeni Lev ); 35124ee3e063SBeni Lev 3513b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3514b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3515b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3516b34939b9SArend Van Spriel ); 3517b34939b9SArend Van Spriel 3518b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3519b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3520b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 35214ee3e063SBeni Lev ); 35224ee3e063SBeni Lev 35234ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 35244ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 35254ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 35266eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 35276eb18137SDedy Lansky enum ieee80211_privacy privacy), 35286eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 35294ee3e063SBeni Lev TP_STRUCT__entry( 35304ee3e063SBeni Lev WIPHY_ENTRY 35314ee3e063SBeni Lev CHAN_ENTRY 35324ee3e063SBeni Lev MAC_ENTRY(bssid) 35334ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 35346eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 35356eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 35364ee3e063SBeni Lev ), 35374ee3e063SBeni Lev TP_fast_assign( 35384ee3e063SBeni Lev WIPHY_ASSIGN; 35394ee3e063SBeni Lev CHAN_ASSIGN(channel); 35404ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 35414ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 35426eb18137SDedy Lansky __entry->bss_type = bss_type; 35436eb18137SDedy Lansky __entry->privacy = privacy; 35444ee3e063SBeni Lev ), 3545*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", %pM" 35466eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 3547*3d9c3617SJohannes Berg WIPHY_PR_ARG, CHAN_PR_ARG, __entry->bssid, 35486eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 35496eb18137SDedy Lansky __entry->privacy) 35504ee3e063SBeni Lev ); 35514ee3e063SBeni Lev 35526e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 35536e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 35546e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 35556e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 35564ee3e063SBeni Lev TP_STRUCT__entry( 35574ee3e063SBeni Lev WIPHY_ENTRY 35584ee3e063SBeni Lev CHAN_ENTRY 3559dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 35604ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 35614ee3e063SBeni Lev __field(s32, signal) 35626e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 35631d76250bSAvraham Stern __field(u64, parent_tsf) 35641d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 35654ee3e063SBeni Lev ), 35664ee3e063SBeni Lev TP_fast_assign( 35674ee3e063SBeni Lev WIPHY_ASSIGN; 35686e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 35696e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 35704ee3e063SBeni Lev if (mgmt) 35714ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 35726e19bc4bSDmitry Shmidt __entry->signal = data->signal; 35736e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 35741d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 35751d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 35764ee3e063SBeni Lev ), 35771d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 3578*3d9c3617SJohannes Berg "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: %pM", 3579*3d9c3617SJohannes Berg WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 35801d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 35811d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 3582*3d9c3617SJohannes Berg __entry->parent_bssid) 35834ee3e063SBeni Lev ); 35844ee3e063SBeni Lev 35854ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 35864ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 35874ee3e063SBeni Lev TP_ARGS(pub), 35884ee3e063SBeni Lev TP_STRUCT__entry( 35894ee3e063SBeni Lev MAC_ENTRY(bssid) 35904ee3e063SBeni Lev CHAN_ENTRY 35914ee3e063SBeni Lev ), 35924ee3e063SBeni Lev TP_fast_assign( 35934ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 35944ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 35954ee3e063SBeni Lev ), 3596*3d9c3617SJohannes Berg TP_printk("%pM, " CHAN_PR_FMT, __entry->bssid, CHAN_PR_ARG) 35974ee3e063SBeni Lev ); 35984ee3e063SBeni Lev 35994ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 36004ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 36014ee3e063SBeni Lev TP_ARGS(pub) 36024ee3e063SBeni Lev ); 36034ee3e063SBeni Lev 36044ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 36054ee3e063SBeni Lev TP_PROTO(unsigned int ret), 36064ee3e063SBeni Lev TP_ARGS(ret), 36074ee3e063SBeni Lev TP_STRUCT__entry( 36084ee3e063SBeni Lev __field(unsigned int, ret) 36094ee3e063SBeni Lev ), 36104ee3e063SBeni Lev TP_fast_assign( 36114ee3e063SBeni Lev __entry->ret = ret; 36124ee3e063SBeni Lev ), 36134ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 36144ee3e063SBeni Lev ); 36154ee3e063SBeni Lev 36164ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 36174ee3e063SBeni Lev TP_PROTO(u32 ret), 36184ee3e063SBeni Lev TP_ARGS(ret), 36194ee3e063SBeni Lev TP_STRUCT__entry( 36204ee3e063SBeni Lev __field(u32, ret) 36214ee3e063SBeni Lev ), 36224ee3e063SBeni Lev TP_fast_assign( 36234ee3e063SBeni Lev __entry->ret = ret; 36244ee3e063SBeni Lev ), 36254ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 36264ee3e063SBeni Lev ); 36274ee3e063SBeni Lev 3628cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3629cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3630cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3631cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3632cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3633cd8f7cb4SJohannes Berg WIPHY_ENTRY 3634cd8f7cb4SJohannes Berg WDEV_ENTRY 3635a92eecbbSJohannes Berg __field(bool, non_wireless) 3636cd8f7cb4SJohannes Berg __field(bool, disconnect) 3637cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3638cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3639cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3640cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3641cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3642cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3643cd8f7cb4SJohannes Berg __field(u32, packet_len) 3644a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3645a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3646cd8f7cb4SJohannes Berg ), 3647cd8f7cb4SJohannes Berg TP_fast_assign( 3648cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3649cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3650a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3651a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3652a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3653a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3654a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3655a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3656a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3657a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3658a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3659a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3660cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3661cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3662cd8f7cb4SJohannes Berg ), 3663cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3664cd8f7cb4SJohannes Berg ); 3665cd8f7cb4SJohannes Berg 3666355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3667355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3668355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3669355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3670355199e0SJouni Malinen TP_STRUCT__entry( 3671355199e0SJouni Malinen WIPHY_ENTRY 3672355199e0SJouni Malinen NETDEV_ENTRY 3673355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3674355199e0SJouni Malinen MAC_ENTRY(target_ap) 3675355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3676355199e0SJouni Malinen ), 3677355199e0SJouni Malinen TP_fast_assign( 3678355199e0SJouni Malinen WIPHY_ASSIGN; 3679355199e0SJouni Malinen NETDEV_ASSIGN; 3680355199e0SJouni Malinen if (ft_event->ies) 3681355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3682355199e0SJouni Malinen ft_event->ies_len); 3683355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3684355199e0SJouni Malinen if (ft_event->ric_ies) 3685355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3686355199e0SJouni Malinen ft_event->ric_ies_len); 3687355199e0SJouni Malinen ), 3688*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: %pM", 3689*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->target_ap) 3690355199e0SJouni Malinen ); 3691355199e0SJouni Malinen 3692f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3693f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3694f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3695f04c2203SMichal Kazior TP_STRUCT__entry( 3696f04c2203SMichal Kazior WIPHY_ENTRY 3697f04c2203SMichal Kazior WDEV_ENTRY 3698f04c2203SMichal Kazior ), 3699f04c2203SMichal Kazior TP_fast_assign( 3700f04c2203SMichal Kazior WIPHY_ASSIGN; 3701f04c2203SMichal Kazior WDEV_ASSIGN; 3702f04c2203SMichal Kazior ), 3703f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3704f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3705f04c2203SMichal Kazior ); 37069bb7e0f2SJohannes Berg 37079bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 37089bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 37099bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 37109bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 37119bb7e0f2SJohannes Berg TP_STRUCT__entry( 37129bb7e0f2SJohannes Berg WIPHY_ENTRY 37139bb7e0f2SJohannes Berg WDEV_ENTRY 37149bb7e0f2SJohannes Berg __field(u64, cookie) 37159bb7e0f2SJohannes Berg MAC_ENTRY(addr) 37169bb7e0f2SJohannes Berg ), 37179bb7e0f2SJohannes Berg TP_fast_assign( 37189bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37199bb7e0f2SJohannes Berg WDEV_ASSIGN; 37209bb7e0f2SJohannes Berg __entry->cookie = cookie; 37219bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 37229bb7e0f2SJohannes Berg ), 3723*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, %pM", 37249bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37259bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 3726*3d9c3617SJohannes Berg __entry->addr) 37279bb7e0f2SJohannes Berg ); 37289bb7e0f2SJohannes Berg 37299bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 37309bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 37319bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 37329bb7e0f2SJohannes Berg TP_STRUCT__entry( 37339bb7e0f2SJohannes Berg WIPHY_ENTRY 37349bb7e0f2SJohannes Berg WDEV_ENTRY 37359bb7e0f2SJohannes Berg __field(u64, cookie) 37369bb7e0f2SJohannes Berg ), 37379bb7e0f2SJohannes Berg TP_fast_assign( 37389bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37399bb7e0f2SJohannes Berg WDEV_ASSIGN; 37409bb7e0f2SJohannes Berg __entry->cookie = cookie; 37419bb7e0f2SJohannes Berg ), 37429bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 37439bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37449bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 37459bb7e0f2SJohannes Berg ); 3746cb74e977SSunil Dutt 3747cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3748cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3749cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3750cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 3751cb74e977SSunil Dutt TP_STRUCT__entry(WIPHY_ENTRY 3752cb74e977SSunil Dutt NETDEV_ENTRY 3753cb74e977SSunil Dutt MAC_ENTRY(peer) 3754cb74e977SSunil Dutt __dynamic_array(u8, ie, owe_info->ie_len)), 3755cb74e977SSunil Dutt TP_fast_assign(WIPHY_ASSIGN; 3756cb74e977SSunil Dutt NETDEV_ASSIGN; 3757cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3758cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 3759cb74e977SSunil Dutt owe_info->ie_len);), 3760*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM", 3761*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer) 3762cb74e977SSunil Dutt ); 3763cb74e977SSunil Dutt 37640d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 37650d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 37660d2ab3aeSJohn Crispin enum nl80211_commands cmd, 37670d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 37680d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 37690d2ab3aeSJohn Crispin TP_STRUCT__entry( 37700d2ab3aeSJohn Crispin NETDEV_ENTRY 3771c448f0fdSJohannes Berg __field(u32, cmd) 37720d2ab3aeSJohn Crispin __field(u8, count) 37730d2ab3aeSJohn Crispin __field(u64, color_bitmap) 37740d2ab3aeSJohn Crispin ), 37750d2ab3aeSJohn Crispin TP_fast_assign( 37760d2ab3aeSJohn Crispin NETDEV_ASSIGN; 37770d2ab3aeSJohn Crispin __entry->cmd = cmd; 37780d2ab3aeSJohn Crispin __entry->count = count; 37790d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 37800d2ab3aeSJohn Crispin ), 37810d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 37820d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 37830d2ab3aeSJohn Crispin __entry->color_bitmap) 37840d2ab3aeSJohn Crispin ); 37850d2ab3aeSJohn Crispin 3786a083ee8aSIlan Peer TRACE_EVENT(cfg80211_assoc_comeback, 3787e69dac88SJohannes Berg TP_PROTO(struct wireless_dev *wdev, const u8 *ap_addr, u32 timeout), 3788e69dac88SJohannes Berg TP_ARGS(wdev, ap_addr, timeout), 3789a083ee8aSIlan Peer TP_STRUCT__entry( 3790a083ee8aSIlan Peer WDEV_ENTRY 3791e69dac88SJohannes Berg MAC_ENTRY(ap_addr) 3792a083ee8aSIlan Peer __field(u32, timeout) 3793a083ee8aSIlan Peer ), 3794a083ee8aSIlan Peer TP_fast_assign( 3795a083ee8aSIlan Peer WDEV_ASSIGN; 3796e69dac88SJohannes Berg MAC_ASSIGN(ap_addr, ap_addr); 3797a083ee8aSIlan Peer __entry->timeout = timeout; 3798a083ee8aSIlan Peer ), 3799*3d9c3617SJohannes Berg TP_printk(WDEV_PR_FMT ", %pM, timeout: %u TUs", 3800*3d9c3617SJohannes Berg WDEV_PR_ARG, __entry->ap_addr, __entry->timeout) 3801a083ee8aSIlan Peer ); 3802a083ee8aSIlan Peer 3803577e5b8cSShaul Triebitz DECLARE_EVENT_CLASS(link_station_add_mod, 3804577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3805577e5b8cSShaul Triebitz struct link_station_parameters *params), 3806577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3807577e5b8cSShaul Triebitz TP_STRUCT__entry( 3808577e5b8cSShaul Triebitz WIPHY_ENTRY 3809577e5b8cSShaul Triebitz NETDEV_ENTRY 3810577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3811577e5b8cSShaul Triebitz __array(u8, link_mac, 6) 3812577e5b8cSShaul Triebitz __field(u32, link_id) 3813577e5b8cSShaul Triebitz __dynamic_array(u8, supported_rates, 3814577e5b8cSShaul Triebitz params->supported_rates_len) 3815577e5b8cSShaul Triebitz __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 3816577e5b8cSShaul Triebitz __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 3817577e5b8cSShaul Triebitz __field(u8, opmode_notif) 3818577e5b8cSShaul Triebitz __field(bool, opmode_notif_used) 3819577e5b8cSShaul Triebitz __dynamic_array(u8, he_capa, params->he_capa_len) 3820577e5b8cSShaul Triebitz __array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa)) 3821577e5b8cSShaul Triebitz __dynamic_array(u8, eht_capa, params->eht_capa_len) 3822577e5b8cSShaul Triebitz ), 3823577e5b8cSShaul Triebitz TP_fast_assign( 3824577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3825577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3826577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3827577e5b8cSShaul Triebitz memset(__entry->link_mac, 0, 6); 3828577e5b8cSShaul Triebitz if (params->mld_mac) 3829577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3830577e5b8cSShaul Triebitz if (params->link_mac) 3831577e5b8cSShaul Triebitz memcpy(__entry->link_mac, params->link_mac, 6); 3832577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3833577e5b8cSShaul Triebitz if (params->supported_rates && params->supported_rates_len) 3834577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(supported_rates), 3835577e5b8cSShaul Triebitz params->supported_rates, 3836577e5b8cSShaul Triebitz params->supported_rates_len); 3837577e5b8cSShaul Triebitz memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 3838577e5b8cSShaul Triebitz if (params->ht_capa) 3839577e5b8cSShaul Triebitz memcpy(__entry->ht_capa, params->ht_capa, 3840577e5b8cSShaul Triebitz sizeof(struct ieee80211_ht_cap)); 3841577e5b8cSShaul Triebitz memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 3842577e5b8cSShaul Triebitz if (params->vht_capa) 3843577e5b8cSShaul Triebitz memcpy(__entry->vht_capa, params->vht_capa, 3844577e5b8cSShaul Triebitz sizeof(struct ieee80211_vht_cap)); 3845577e5b8cSShaul Triebitz __entry->opmode_notif = params->opmode_notif; 3846577e5b8cSShaul Triebitz __entry->opmode_notif_used = params->opmode_notif_used; 3847577e5b8cSShaul Triebitz if (params->he_capa && params->he_capa_len) 3848577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(he_capa), params->he_capa, 3849577e5b8cSShaul Triebitz params->he_capa_len); 3850577e5b8cSShaul Triebitz memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa)); 3851577e5b8cSShaul Triebitz if (params->he_6ghz_capa) 3852577e5b8cSShaul Triebitz memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa, 3853577e5b8cSShaul Triebitz sizeof(struct ieee80211_he_6ghz_capa)); 3854577e5b8cSShaul Triebitz if (params->eht_capa && params->eht_capa_len) 3855577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(eht_capa), params->eht_capa, 3856577e5b8cSShaul Triebitz params->eht_capa_len); 3857577e5b8cSShaul Triebitz ), 3858*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM" 3859*3d9c3617SJohannes Berg ", link mac: %pM, link id: %u", 3860*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac, 3861*3d9c3617SJohannes Berg __entry->link_mac, __entry->link_id) 3862577e5b8cSShaul Triebitz ); 3863577e5b8cSShaul Triebitz 3864577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_add_link_station, 3865577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3866577e5b8cSShaul Triebitz struct link_station_parameters *params), 3867577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3868577e5b8cSShaul Triebitz ); 3869577e5b8cSShaul Triebitz 3870577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_mod_link_station, 3871577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3872577e5b8cSShaul Triebitz struct link_station_parameters *params), 3873577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3874577e5b8cSShaul Triebitz ); 3875577e5b8cSShaul Triebitz 3876577e5b8cSShaul Triebitz TRACE_EVENT(rdev_del_link_station, 3877577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3878577e5b8cSShaul Triebitz struct link_station_del_parameters *params), 3879577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3880577e5b8cSShaul Triebitz TP_STRUCT__entry( 3881577e5b8cSShaul Triebitz WIPHY_ENTRY 3882577e5b8cSShaul Triebitz NETDEV_ENTRY 3883577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3884577e5b8cSShaul Triebitz __field(u32, link_id) 3885577e5b8cSShaul Triebitz ), 3886577e5b8cSShaul Triebitz TP_fast_assign( 3887577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3888577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3889577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3890577e5b8cSShaul Triebitz if (params->mld_mac) 3891577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3892577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3893577e5b8cSShaul Triebitz ), 3894*3d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM" 3895577e5b8cSShaul Triebitz ", link id: %u", 3896*3d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac, 3897577e5b8cSShaul Triebitz __entry->link_id) 3898577e5b8cSShaul Triebitz ); 3899577e5b8cSShaul Triebitz 390014e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 390114e8a3c4SBeni Lev 390214e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 390314e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 390414e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 390514e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 390614e8a3c4SBeni Lev #include <trace/define_trace.h> 3907