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) 250ffe8588SAzeem Shaikh #define WIPHY_ASSIGN strscpy(__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, " 4553d9c3617SJohannes 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), 4583d9c3617SJohannes 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, " 4973d9c3617SJohannes Berg "mac addr: %pM", 498e7a7b84eSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 499e7a7b84eSVeerendranath Jakkam __entry->key_index, __entry->mode, 5003d9c3617SJohannes 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 ), 8143d9c3617SJohannes 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", 8183d9c3617SJohannes 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 ), 8503d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: %pM", 8513d9c3617SJohannes 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 ), 8723d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM" 87398856866SJouni Malinen ", subtype: %u, reason_code: %u", 8743d9c3617SJohannes 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 ), 9103d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM, idx: %d", 9113d9c3617SJohannes 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 ), 9483d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM, next hop: %pM", 9493d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dst, 9503d9c3617SJohannes 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 ), 9893d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, next hop: %pM", 9903d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst, 9913d9c3617SJohannes 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 ), 10103d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM" 10113d9c3617SJohannes Berg ", mpp: %pM", WIPHY_PR_ARG, NETDEV_PR_ARG, 10123d9c3617SJohannes 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), 1018ff9580efSIgor Artemiev TP_ARGS(wiphy, netdev, _idx, dst, mpp), 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 ), 10333d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, mpp: %pM", 10343d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst, 10353d9c3617SJohannes 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 11625db25290SBenjamin Berg TRACE_EVENT(rdev_inform_bss, 11635db25290SBenjamin Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_bss *bss), 11645db25290SBenjamin Berg TP_ARGS(wiphy, bss), 11655db25290SBenjamin Berg TP_STRUCT__entry( 11665db25290SBenjamin Berg WIPHY_ENTRY 11675db25290SBenjamin Berg MAC_ENTRY(bssid) 11685db25290SBenjamin Berg CHAN_ENTRY 11695db25290SBenjamin Berg ), 11705db25290SBenjamin Berg TP_fast_assign( 11715db25290SBenjamin Berg WIPHY_ASSIGN; 11725db25290SBenjamin Berg MAC_ASSIGN(bssid, bss->bssid); 11735db25290SBenjamin Berg CHAN_ASSIGN(bss->channel); 11745db25290SBenjamin Berg ), 11755db25290SBenjamin Berg TP_printk(WIPHY_PR_FMT ", %pM, " CHAN_PR_FMT, 11765db25290SBenjamin Berg WIPHY_PR_ARG, __entry->bssid, CHAN_PR_ARG) 11775db25290SBenjamin Berg ); 11785db25290SBenjamin Berg 117914e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 118014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 118114e8a3c4SBeni Lev struct ieee80211_txq_params *params), 118214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 118314e8a3c4SBeni Lev TP_STRUCT__entry( 118414e8a3c4SBeni Lev WIPHY_ENTRY 118514e8a3c4SBeni Lev NETDEV_ENTRY 118614e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 118714e8a3c4SBeni Lev __field(u16, txop) 118814e8a3c4SBeni Lev __field(u16, cwmin) 118914e8a3c4SBeni Lev __field(u16, cwmax) 119014e8a3c4SBeni Lev __field(u8, aifs) 119114e8a3c4SBeni Lev ), 119214e8a3c4SBeni Lev TP_fast_assign( 119314e8a3c4SBeni Lev WIPHY_ASSIGN; 119414e8a3c4SBeni Lev NETDEV_ASSIGN; 119514e8a3c4SBeni Lev __entry->ac = params->ac; 119614e8a3c4SBeni Lev __entry->txop = params->txop; 119714e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 119814e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 119914e8a3c4SBeni Lev __entry->aifs = params->aifs; 120014e8a3c4SBeni Lev ), 1201ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 120214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 120314e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 120414e8a3c4SBeni Lev ); 120514e8a3c4SBeni Lev 120614e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 120714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 120814e8a3c4SBeni Lev struct ieee80211_channel *chan), 120914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 121014e8a3c4SBeni Lev TP_STRUCT__entry( 121114e8a3c4SBeni Lev WIPHY_ENTRY 121214e8a3c4SBeni Lev NETDEV_ENTRY 121314e8a3c4SBeni Lev CHAN_ENTRY 121414e8a3c4SBeni Lev ), 121514e8a3c4SBeni Lev TP_fast_assign( 121614e8a3c4SBeni Lev WIPHY_ASSIGN; 121714e8a3c4SBeni Lev NETDEV_ASSIGN; 121814e8a3c4SBeni Lev CHAN_ASSIGN(chan); 121914e8a3c4SBeni Lev ), 1220ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 122114e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 122214e8a3c4SBeni Lev ); 122314e8a3c4SBeni Lev 122414e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1225683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1226683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1227683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 122814e8a3c4SBeni Lev TP_STRUCT__entry( 122914e8a3c4SBeni Lev WIPHY_ENTRY 1230683b6d3bSJohannes Berg CHAN_DEF_ENTRY 123114e8a3c4SBeni Lev ), 123214e8a3c4SBeni Lev TP_fast_assign( 123314e8a3c4SBeni Lev WIPHY_ASSIGN; 1234683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 123514e8a3c4SBeni Lev ), 1236ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1237683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 123814e8a3c4SBeni Lev ); 123914e8a3c4SBeni Lev 124014e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 124114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 124214e8a3c4SBeni Lev struct cfg80211_auth_request *req), 124314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 124414e8a3c4SBeni Lev TP_STRUCT__entry( 124514e8a3c4SBeni Lev WIPHY_ENTRY 124614e8a3c4SBeni Lev NETDEV_ENTRY 124714e8a3c4SBeni Lev MAC_ENTRY(bssid) 124814e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 124914e8a3c4SBeni Lev ), 125014e8a3c4SBeni Lev TP_fast_assign( 125114e8a3c4SBeni Lev WIPHY_ASSIGN; 125214e8a3c4SBeni Lev NETDEV_ASSIGN; 125314e8a3c4SBeni Lev if (req->bss) 125414e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 125514e8a3c4SBeni Lev else 1256d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 125714e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 125814e8a3c4SBeni Lev ), 12593d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: %pM", 126014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 12613d9c3617SJohannes Berg __entry->bssid) 126214e8a3c4SBeni Lev ); 126314e8a3c4SBeni Lev 126414e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 126514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 12661d4c0f04SJohannes Berg struct cfg80211_assoc_request *req), 12671d4c0f04SJohannes Berg TP_ARGS(wiphy, netdev, req), 126814e8a3c4SBeni Lev TP_STRUCT__entry( 126914e8a3c4SBeni Lev WIPHY_ENTRY 127014e8a3c4SBeni Lev NETDEV_ENTRY 127114e8a3c4SBeni Lev MAC_ENTRY(bssid) 127214e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 127314e8a3c4SBeni Lev __field(bool, use_mfp) 127414e8a3c4SBeni Lev __field(u32, flags) 127564a87472SJohannes Berg __dynamic_array(u8, elements, req->ie_len) 127664a87472SJohannes Berg __array(u8, ht_capa, sizeof(struct ieee80211_ht_cap)) 127764a87472SJohannes Berg __array(u8, ht_capa_mask, sizeof(struct ieee80211_ht_cap)) 127864a87472SJohannes Berg __array(u8, vht_capa, sizeof(struct ieee80211_vht_cap)) 127964a87472SJohannes Berg __array(u8, vht_capa_mask, sizeof(struct ieee80211_vht_cap)) 128064a87472SJohannes Berg __dynamic_array(u8, fils_kek, req->fils_kek_len) 128164a87472SJohannes Berg __dynamic_array(u8, fils_nonces, 128264a87472SJohannes Berg req->fils_nonces ? 2 * FILS_NONCE_LEN : 0) 128314e8a3c4SBeni Lev ), 128414e8a3c4SBeni Lev TP_fast_assign( 128514e8a3c4SBeni Lev WIPHY_ASSIGN; 128614e8a3c4SBeni Lev NETDEV_ASSIGN; 128714e8a3c4SBeni Lev if (req->bss) 128814e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 128914e8a3c4SBeni Lev else 1290d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 129114e8a3c4SBeni Lev MAC_ASSIGN(prev_bssid, req->prev_bssid); 129214e8a3c4SBeni Lev __entry->use_mfp = req->use_mfp; 129314e8a3c4SBeni Lev __entry->flags = req->flags; 129464a87472SJohannes Berg if (req->ie) 129564a87472SJohannes Berg memcpy(__get_dynamic_array(elements), 129664a87472SJohannes Berg req->ie, req->ie_len); 129764a87472SJohannes Berg memcpy(__entry->ht_capa, &req->ht_capa, sizeof(req->ht_capa)); 129864a87472SJohannes Berg memcpy(__entry->ht_capa_mask, &req->ht_capa_mask, 129964a87472SJohannes Berg sizeof(req->ht_capa_mask)); 130064a87472SJohannes Berg memcpy(__entry->vht_capa, &req->vht_capa, sizeof(req->vht_capa)); 130164a87472SJohannes Berg memcpy(__entry->vht_capa_mask, &req->vht_capa_mask, 130264a87472SJohannes Berg sizeof(req->vht_capa_mask)); 130364a87472SJohannes Berg if (req->fils_kek) 130464a87472SJohannes Berg memcpy(__get_dynamic_array(fils_kek), 130564a87472SJohannes Berg req->fils_kek, req->fils_kek_len); 130664a87472SJohannes Berg if (req->fils_nonces) 130764a87472SJohannes Berg memcpy(__get_dynamic_array(fils_nonces), 130864a87472SJohannes Berg req->fils_nonces, 2 * FILS_NONCE_LEN); 130914e8a3c4SBeni Lev ), 13103d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 13113d9c3617SJohannes Berg ", previous bssid: %pM, use mfp: %s, flags: %u", 13123d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, 13133d9c3617SJohannes Berg __entry->prev_bssid, BOOL_TO_STR(__entry->use_mfp), 131414e8a3c4SBeni Lev __entry->flags) 131514e8a3c4SBeni Lev ); 131614e8a3c4SBeni Lev 131714e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 131814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 131914e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 132014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 132114e8a3c4SBeni Lev TP_STRUCT__entry( 132214e8a3c4SBeni Lev WIPHY_ENTRY 132314e8a3c4SBeni Lev NETDEV_ENTRY 132414e8a3c4SBeni Lev MAC_ENTRY(bssid) 132514e8a3c4SBeni Lev __field(u16, reason_code) 132614e8a3c4SBeni Lev ), 132714e8a3c4SBeni Lev TP_fast_assign( 132814e8a3c4SBeni Lev WIPHY_ASSIGN; 132914e8a3c4SBeni Lev NETDEV_ASSIGN; 133014e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 133114e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 133214e8a3c4SBeni Lev ), 13333d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, reason: %u", 13343d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, 133514e8a3c4SBeni Lev __entry->reason_code) 133614e8a3c4SBeni Lev ); 133714e8a3c4SBeni Lev 133814e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 133914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 134014e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 134114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 134214e8a3c4SBeni Lev TP_STRUCT__entry( 134314e8a3c4SBeni Lev WIPHY_ENTRY 134414e8a3c4SBeni Lev NETDEV_ENTRY 134514e8a3c4SBeni Lev MAC_ENTRY(bssid) 134614e8a3c4SBeni Lev __field(u16, reason_code) 134714e8a3c4SBeni Lev __field(bool, local_state_change) 134814e8a3c4SBeni Lev ), 134914e8a3c4SBeni Lev TP_fast_assign( 135014e8a3c4SBeni Lev WIPHY_ASSIGN; 135114e8a3c4SBeni Lev NETDEV_ASSIGN; 13528f6e0dfcSJohannes Berg MAC_ASSIGN(bssid, req->ap_addr); 135314e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 135414e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 135514e8a3c4SBeni Lev ), 13563d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 135714e8a3c4SBeni Lev ", reason: %u, local state change: %s", 13583d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, 135914e8a3c4SBeni Lev __entry->reason_code, 136014e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 136114e8a3c4SBeni Lev ); 136214e8a3c4SBeni Lev 136314e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 136414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 136514e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 136614e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 136714e8a3c4SBeni Lev TP_STRUCT__entry( 136814e8a3c4SBeni Lev WIPHY_ENTRY 136914e8a3c4SBeni Lev WDEV_ENTRY 137014e8a3c4SBeni Lev __field(u64, cookie) 137114e8a3c4SBeni Lev ), 137214e8a3c4SBeni Lev TP_fast_assign( 137314e8a3c4SBeni Lev WIPHY_ASSIGN; 137414e8a3c4SBeni Lev WDEV_ASSIGN; 137514e8a3c4SBeni Lev __entry->cookie = cookie; 137614e8a3c4SBeni Lev ), 1377ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 137814e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 137914e8a3c4SBeni Lev ); 138014e8a3c4SBeni Lev 138114e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 138214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 138314e8a3c4SBeni Lev bool enabled, int timeout), 138414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 138514e8a3c4SBeni Lev TP_STRUCT__entry( 138614e8a3c4SBeni Lev WIPHY_ENTRY 138714e8a3c4SBeni Lev NETDEV_ENTRY 138814e8a3c4SBeni Lev __field(bool, enabled) 138914e8a3c4SBeni Lev __field(int, timeout) 139014e8a3c4SBeni Lev ), 139114e8a3c4SBeni Lev TP_fast_assign( 139214e8a3c4SBeni Lev WIPHY_ASSIGN; 139314e8a3c4SBeni Lev NETDEV_ASSIGN; 139414e8a3c4SBeni Lev __entry->enabled = enabled; 139514e8a3c4SBeni Lev __entry->timeout = timeout; 139614e8a3c4SBeni Lev ), 1397ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 139814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 139914e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 140014e8a3c4SBeni Lev ); 140114e8a3c4SBeni Lev 140214e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 140314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 140414e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 140514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 140614e8a3c4SBeni Lev TP_STRUCT__entry( 140714e8a3c4SBeni Lev WIPHY_ENTRY 140814e8a3c4SBeni Lev NETDEV_ENTRY 140914e8a3c4SBeni Lev MAC_ENTRY(bssid) 141014e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 141114e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 141214e8a3c4SBeni Lev __field(bool, privacy) 141314e8a3c4SBeni Lev __field(u32, wpa_versions) 141414e8a3c4SBeni Lev __field(u32, flags) 1415ba6fbacfSJouni Malinen MAC_ENTRY(prev_bssid) 141614e8a3c4SBeni Lev ), 141714e8a3c4SBeni Lev TP_fast_assign( 141814e8a3c4SBeni Lev WIPHY_ASSIGN; 141914e8a3c4SBeni Lev NETDEV_ASSIGN; 142014e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 142114e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 142214e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 142314e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 142414e8a3c4SBeni Lev __entry->privacy = sme->privacy; 142514e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 142614e8a3c4SBeni Lev __entry->flags = sme->flags; 1427ba6fbacfSJouni Malinen MAC_ASSIGN(prev_bssid, sme->prev_bssid); 142814e8a3c4SBeni Lev ), 14293d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 143014e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 14313d9c3617SJohannes Berg "flags: %u, previous bssid: %pM", 14323d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid, 143314e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 14343d9c3617SJohannes Berg __entry->wpa_versions, __entry->flags, __entry->prev_bssid) 143514e8a3c4SBeni Lev ); 143614e8a3c4SBeni Lev 1437088e8df8Svamsi krishna TRACE_EVENT(rdev_update_connect_params, 1438088e8df8Svamsi krishna TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1439088e8df8Svamsi krishna struct cfg80211_connect_params *sme, u32 changed), 1440088e8df8Svamsi krishna TP_ARGS(wiphy, netdev, sme, changed), 1441088e8df8Svamsi krishna TP_STRUCT__entry( 1442088e8df8Svamsi krishna WIPHY_ENTRY 1443088e8df8Svamsi krishna NETDEV_ENTRY 1444088e8df8Svamsi krishna __field(u32, changed) 1445088e8df8Svamsi krishna ), 1446088e8df8Svamsi krishna TP_fast_assign( 1447088e8df8Svamsi krishna WIPHY_ASSIGN; 1448088e8df8Svamsi krishna NETDEV_ASSIGN; 1449088e8df8Svamsi krishna __entry->changed = changed; 1450088e8df8Svamsi krishna ), 1451088e8df8Svamsi krishna TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", parameters changed: %u", 1452088e8df8Svamsi krishna WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->changed) 1453088e8df8Svamsi krishna ); 1454088e8df8Svamsi krishna 145514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 145614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 145714e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 145814e8a3c4SBeni Lev u32 rssi_hyst), 145914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 146014e8a3c4SBeni Lev TP_STRUCT__entry( 146114e8a3c4SBeni Lev WIPHY_ENTRY 146214e8a3c4SBeni Lev NETDEV_ENTRY 146314e8a3c4SBeni Lev __field(s32, rssi_thold) 146414e8a3c4SBeni Lev __field(u32, rssi_hyst) 146514e8a3c4SBeni Lev ), 146614e8a3c4SBeni Lev TP_fast_assign( 146714e8a3c4SBeni Lev WIPHY_ASSIGN; 146814e8a3c4SBeni Lev NETDEV_ASSIGN; 146914e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 147014e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 147114e8a3c4SBeni Lev ), 1472ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 147314e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 147414e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 147514e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 147614e8a3c4SBeni Lev ); 147714e8a3c4SBeni Lev 14784a4b8169SAndrew Zaborowski TRACE_EVENT(rdev_set_cqm_rssi_range_config, 14794a4b8169SAndrew Zaborowski TP_PROTO(struct wiphy *wiphy, 14804a4b8169SAndrew Zaborowski struct net_device *netdev, s32 low, s32 high), 14814a4b8169SAndrew Zaborowski TP_ARGS(wiphy, netdev, low, high), 14824a4b8169SAndrew Zaborowski TP_STRUCT__entry( 14834a4b8169SAndrew Zaborowski WIPHY_ENTRY 14844a4b8169SAndrew Zaborowski NETDEV_ENTRY 14854a4b8169SAndrew Zaborowski __field(s32, rssi_low) 14864a4b8169SAndrew Zaborowski __field(s32, rssi_high) 14874a4b8169SAndrew Zaborowski ), 14884a4b8169SAndrew Zaborowski TP_fast_assign( 14894a4b8169SAndrew Zaborowski WIPHY_ASSIGN; 14904a4b8169SAndrew Zaborowski NETDEV_ASSIGN; 14914a4b8169SAndrew Zaborowski __entry->rssi_low = low; 14924a4b8169SAndrew Zaborowski __entry->rssi_high = high; 14934a4b8169SAndrew Zaborowski ), 14944a4b8169SAndrew Zaborowski TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 14954a4b8169SAndrew Zaborowski ", range: %d - %d ", 14964a4b8169SAndrew Zaborowski WIPHY_PR_ARG, NETDEV_PR_ARG, 14974a4b8169SAndrew Zaborowski __entry->rssi_low, __entry->rssi_high) 14984a4b8169SAndrew Zaborowski ); 14994a4b8169SAndrew Zaborowski 150014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 150114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 150214e8a3c4SBeni Lev u32 pkts, u32 intvl), 150314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 150414e8a3c4SBeni Lev TP_STRUCT__entry( 150514e8a3c4SBeni Lev WIPHY_ENTRY 150614e8a3c4SBeni Lev NETDEV_ENTRY 150714e8a3c4SBeni Lev __field(u32, rate) 150814e8a3c4SBeni Lev __field(u32, pkts) 150914e8a3c4SBeni Lev __field(u32, intvl) 151014e8a3c4SBeni Lev ), 151114e8a3c4SBeni Lev TP_fast_assign( 151214e8a3c4SBeni Lev WIPHY_ASSIGN; 151314e8a3c4SBeni Lev NETDEV_ASSIGN; 151414e8a3c4SBeni Lev __entry->rate = rate; 151514e8a3c4SBeni Lev __entry->pkts = pkts; 151614e8a3c4SBeni Lev __entry->intvl = intvl; 151714e8a3c4SBeni Lev ), 1518ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 151914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 152014e8a3c4SBeni Lev __entry->intvl) 152114e8a3c4SBeni Lev ); 152214e8a3c4SBeni Lev 152314e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 152414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 152514e8a3c4SBeni Lev u16 reason_code), 152614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 152714e8a3c4SBeni Lev TP_STRUCT__entry( 152814e8a3c4SBeni Lev WIPHY_ENTRY 152914e8a3c4SBeni Lev NETDEV_ENTRY 153014e8a3c4SBeni Lev __field(u16, reason_code) 153114e8a3c4SBeni Lev ), 153214e8a3c4SBeni Lev TP_fast_assign( 153314e8a3c4SBeni Lev WIPHY_ASSIGN; 153414e8a3c4SBeni Lev NETDEV_ASSIGN; 153514e8a3c4SBeni Lev __entry->reason_code = reason_code; 153614e8a3c4SBeni Lev ), 1537ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 153814e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 153914e8a3c4SBeni Lev ); 154014e8a3c4SBeni Lev 154114e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 154214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 154314e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 154414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 154514e8a3c4SBeni Lev TP_STRUCT__entry( 154614e8a3c4SBeni Lev WIPHY_ENTRY 154714e8a3c4SBeni Lev NETDEV_ENTRY 154814e8a3c4SBeni Lev MAC_ENTRY(bssid) 154914e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 155014e8a3c4SBeni Lev ), 155114e8a3c4SBeni Lev TP_fast_assign( 155214e8a3c4SBeni Lev WIPHY_ASSIGN; 155314e8a3c4SBeni Lev NETDEV_ASSIGN; 155414e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 155514e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 155614e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 155714e8a3c4SBeni Lev ), 15583d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, ssid: %s", 15593d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid) 156014e8a3c4SBeni Lev ); 156114e8a3c4SBeni Lev 15626e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 15636e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 15646e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 15656e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 15666e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 15676e0bd6c3SRostislav Lisovy WIPHY_ENTRY 15686e0bd6c3SRostislav Lisovy NETDEV_ENTRY 15696e0bd6c3SRostislav Lisovy ), 15706e0bd6c3SRostislav Lisovy TP_fast_assign( 15716e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 15726e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 15736e0bd6c3SRostislav Lisovy ), 15746e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 15756e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 15766e0bd6c3SRostislav Lisovy ); 15776e0bd6c3SRostislav Lisovy 157814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 157914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 158014e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 158114e8a3c4SBeni Lev TP_STRUCT__entry( 158214e8a3c4SBeni Lev WIPHY_ENTRY 158314e8a3c4SBeni Lev __field(u32, changed) 158414e8a3c4SBeni Lev ), 158514e8a3c4SBeni Lev TP_fast_assign( 158614e8a3c4SBeni Lev WIPHY_ASSIGN; 158714e8a3c4SBeni Lev __entry->changed = changed; 158814e8a3c4SBeni Lev ), 158914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 159014e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 159114e8a3c4SBeni Lev ); 159214e8a3c4SBeni Lev 1593c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1594c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1595c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1596c8442118SJohannes Berg ); 1597c8442118SJohannes Berg 159814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1599c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1600c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1601c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 160214e8a3c4SBeni Lev TP_STRUCT__entry( 160314e8a3c4SBeni Lev WIPHY_ENTRY 1604c8442118SJohannes Berg WDEV_ENTRY 160514e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 160614e8a3c4SBeni Lev __field(int, mbm) 160714e8a3c4SBeni Lev ), 160814e8a3c4SBeni Lev TP_fast_assign( 160914e8a3c4SBeni Lev WIPHY_ASSIGN; 1610c8442118SJohannes Berg WDEV_ASSIGN; 161114e8a3c4SBeni Lev __entry->type = type; 161214e8a3c4SBeni Lev __entry->mbm = mbm; 161314e8a3c4SBeni Lev ), 1614ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1615c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 161614e8a3c4SBeni Lev ); 161714e8a3c4SBeni Lev 161814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 161914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 162014e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 162114e8a3c4SBeni Lev TP_STRUCT__entry( 162214e8a3c4SBeni Lev WIPHY_ENTRY 162314e8a3c4SBeni Lev __field(int, func_ret) 162414e8a3c4SBeni Lev __field(int, func_fill) 162514e8a3c4SBeni Lev ), 162614e8a3c4SBeni Lev TP_fast_assign( 162714e8a3c4SBeni Lev WIPHY_ASSIGN; 162814e8a3c4SBeni Lev __entry->func_ret = func_ret; 162914e8a3c4SBeni Lev __entry->func_fill = func_fill; 163014e8a3c4SBeni Lev ), 163114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 163214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 163314e8a3c4SBeni Lev ); 163414e8a3c4SBeni Lev 163514e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 163614e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1637fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1638fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 163914e8a3c4SBeni Lev TP_STRUCT__entry( 164014e8a3c4SBeni Lev WIPHY_ENTRY 1641fc73f11fSDavid Spinadel WDEV_ENTRY 164214e8a3c4SBeni Lev ), 164314e8a3c4SBeni Lev TP_fast_assign( 164414e8a3c4SBeni Lev WIPHY_ASSIGN; 1645fc73f11fSDavid Spinadel WDEV_ASSIGN; 164614e8a3c4SBeni Lev ), 1647fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 164814e8a3c4SBeni Lev ); 164914e8a3c4SBeni Lev 165014e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 165114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 165214e8a3c4SBeni Lev TP_ARGS(wiphy), 165314e8a3c4SBeni Lev TP_STRUCT__entry( 165414e8a3c4SBeni Lev WIPHY_ENTRY 165514e8a3c4SBeni Lev ), 165614e8a3c4SBeni Lev TP_fast_assign( 165714e8a3c4SBeni Lev WIPHY_ASSIGN; 165814e8a3c4SBeni Lev ), 165914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 166014e8a3c4SBeni Lev ); 166114e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 166214e8a3c4SBeni Lev 166314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 166414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 16657b0a0e3cSJohannes Berg unsigned int link_id, 166614e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 16677b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, peer, mask), 166814e8a3c4SBeni Lev TP_STRUCT__entry( 166914e8a3c4SBeni Lev WIPHY_ENTRY 167014e8a3c4SBeni Lev NETDEV_ENTRY 16717b0a0e3cSJohannes Berg __field(unsigned int, link_id) 167214e8a3c4SBeni Lev MAC_ENTRY(peer) 167314e8a3c4SBeni Lev ), 167414e8a3c4SBeni Lev TP_fast_assign( 167514e8a3c4SBeni Lev WIPHY_ASSIGN; 167614e8a3c4SBeni Lev NETDEV_ASSIGN; 16777b0a0e3cSJohannes Berg __entry->link_id = link_id; 167814e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 167914e8a3c4SBeni Lev ), 16803d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: %pM", 16817b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, 16823d9c3617SJohannes Berg __entry->peer) 168314e8a3c4SBeni Lev ); 168414e8a3c4SBeni Lev 16856cd536feSJohannes Berg TRACE_EVENT(rdev_update_mgmt_frame_registrations, 168614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 16876cd536feSJohannes Berg struct mgmt_frame_regs *upd), 16886cd536feSJohannes Berg TP_ARGS(wiphy, wdev, upd), 168914e8a3c4SBeni Lev TP_STRUCT__entry( 169014e8a3c4SBeni Lev WIPHY_ENTRY 169114e8a3c4SBeni Lev WDEV_ENTRY 16926cd536feSJohannes Berg __field(u16, global_stypes) 16936cd536feSJohannes Berg __field(u16, interface_stypes) 169414e8a3c4SBeni Lev ), 169514e8a3c4SBeni Lev TP_fast_assign( 169614e8a3c4SBeni Lev WIPHY_ASSIGN; 169714e8a3c4SBeni Lev WDEV_ASSIGN; 16986cd536feSJohannes Berg __entry->global_stypes = upd->global_stypes; 16996cd536feSJohannes Berg __entry->interface_stypes = upd->interface_stypes; 170014e8a3c4SBeni Lev ), 17016cd536feSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", global: 0x%.2x, intf: 0x%.2x", 17026cd536feSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 17036cd536feSJohannes Berg __entry->global_stypes, __entry->interface_stypes) 170414e8a3c4SBeni Lev ); 170514e8a3c4SBeni Lev 170614e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 170714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 170814e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 170914e8a3c4SBeni Lev TP_STRUCT__entry( 171014e8a3c4SBeni Lev WIPHY_ENTRY 171114e8a3c4SBeni Lev __field(int, ret) 171214e8a3c4SBeni Lev __field(u32, tx) 171314e8a3c4SBeni Lev __field(u32, rx) 171414e8a3c4SBeni Lev ), 171514e8a3c4SBeni Lev TP_fast_assign( 171614e8a3c4SBeni Lev WIPHY_ASSIGN; 171714e8a3c4SBeni Lev __entry->ret = ret; 171814e8a3c4SBeni Lev __entry->tx = tx; 171914e8a3c4SBeni Lev __entry->rx = rx; 172014e8a3c4SBeni Lev ), 172114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 172214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 172314e8a3c4SBeni Lev ); 172414e8a3c4SBeni Lev 172514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 172614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 172714e8a3c4SBeni Lev u32 rx, u32 rx_max), 172814e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 172914e8a3c4SBeni Lev TP_STRUCT__entry( 173014e8a3c4SBeni Lev WIPHY_ENTRY 173114e8a3c4SBeni Lev __field(u32, tx) 173214e8a3c4SBeni Lev __field(u32, tx_max) 173314e8a3c4SBeni Lev __field(u32, rx) 173414e8a3c4SBeni Lev __field(u32, rx_max) 173514e8a3c4SBeni Lev ), 173614e8a3c4SBeni Lev TP_fast_assign( 173714e8a3c4SBeni Lev WIPHY_ASSIGN; 173814e8a3c4SBeni Lev __entry->tx = tx; 173914e8a3c4SBeni Lev __entry->tx_max = tx_max; 174014e8a3c4SBeni Lev __entry->rx = rx; 174114e8a3c4SBeni Lev __entry->rx_max = rx_max; 174214e8a3c4SBeni Lev ), 174314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 174414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 174514e8a3c4SBeni Lev __entry->rx_max) 174614e8a3c4SBeni Lev ); 174714e8a3c4SBeni Lev 174814e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 174914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 1750*125c0dccSIgor Artemiev TP_ARGS(wiphy, tx, rx), 175114e8a3c4SBeni Lev TP_STRUCT__entry( 175214e8a3c4SBeni Lev WIPHY_ENTRY 175314e8a3c4SBeni Lev __field(u32, tx) 175414e8a3c4SBeni Lev __field(u32, rx) 175514e8a3c4SBeni Lev ), 175614e8a3c4SBeni Lev TP_fast_assign( 175714e8a3c4SBeni Lev WIPHY_ASSIGN; 175814e8a3c4SBeni Lev __entry->tx = tx; 175914e8a3c4SBeni Lev __entry->rx = rx; 176014e8a3c4SBeni Lev ), 176114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 176214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 176314e8a3c4SBeni Lev ); 176414e8a3c4SBeni Lev 176514e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 176614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 1767*125c0dccSIgor Artemiev TP_ARGS(wiphy, tx, rx) 176814e8a3c4SBeni Lev ); 176914e8a3c4SBeni Lev 1770ca986ad9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_netdev_id_evt, 1771ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1772ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id), 177314e8a3c4SBeni Lev TP_STRUCT__entry( 177414e8a3c4SBeni Lev WIPHY_ENTRY 177514e8a3c4SBeni Lev NETDEV_ENTRY 1776ca986ad9SArend Van Spriel __field(u64, id) 177714e8a3c4SBeni Lev ), 177814e8a3c4SBeni Lev TP_fast_assign( 177914e8a3c4SBeni Lev WIPHY_ASSIGN; 178014e8a3c4SBeni Lev NETDEV_ASSIGN; 1781ca986ad9SArend Van Spriel __entry->id = id; 178214e8a3c4SBeni Lev ), 1783ca986ad9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", id: %llu", 1784ca986ad9SArend Van Spriel WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->id) 1785ca986ad9SArend Van Spriel ); 1786ca986ad9SArend Van Spriel 1787ca986ad9SArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_start, 1788ca986ad9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 1789ca986ad9SArend Van Spriel TP_ARGS(wiphy, netdev, id) 179014e8a3c4SBeni Lev ); 179114e8a3c4SBeni Lev 17923a3ecf1dSArend Van Spriel DEFINE_EVENT(wiphy_netdev_id_evt, rdev_sched_scan_stop, 17933a3ecf1dSArend Van Spriel TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u64 id), 17943a3ecf1dSArend Van Spriel TP_ARGS(wiphy, netdev, id) 17953a3ecf1dSArend Van Spriel ); 17963a3ecf1dSArend Van Spriel 179714e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 179814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1799c6112046SMukesh Sisodiya u8 *peer, int link_id, u8 action_code, u8 dialog_token, 1800df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 180131fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 1802c6112046SMukesh Sisodiya TP_ARGS(wiphy, netdev, peer, link_id, action_code, dialog_token, 1803c6112046SMukesh Sisodiya status_code, peer_capability, initiator, buf, len), 180414e8a3c4SBeni Lev TP_STRUCT__entry( 180514e8a3c4SBeni Lev WIPHY_ENTRY 180614e8a3c4SBeni Lev NETDEV_ENTRY 180714e8a3c4SBeni Lev MAC_ENTRY(peer) 1808c6112046SMukesh Sisodiya __field(int, link_id) 180914e8a3c4SBeni Lev __field(u8, action_code) 181014e8a3c4SBeni Lev __field(u8, dialog_token) 181114e8a3c4SBeni Lev __field(u16, status_code) 1812df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 181331fa97c5SArik Nemtsov __field(bool, initiator) 181414e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 181514e8a3c4SBeni Lev ), 181614e8a3c4SBeni Lev TP_fast_assign( 181714e8a3c4SBeni Lev WIPHY_ASSIGN; 181814e8a3c4SBeni Lev NETDEV_ASSIGN; 181914e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 1820c6112046SMukesh Sisodiya __entry->link_id = link_id; 182114e8a3c4SBeni Lev __entry->action_code = action_code; 182214e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 182314e8a3c4SBeni Lev __entry->status_code = status_code; 1824df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 182531fa97c5SArik Nemtsov __entry->initiator = initiator; 182614e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 182714e8a3c4SBeni Lev ), 1828c6112046SMukesh Sisodiya TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM" 1829c6112046SMukesh Sisodiya ", link_id: %d, action_code: %u " 183031fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 183131fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 18323d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, 1833c6112046SMukesh Sisodiya __entry->link_id, __entry->action_code, __entry->dialog_token, 1834df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 183531fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1836df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 183714e8a3c4SBeni Lev ); 183814e8a3c4SBeni Lev 183914e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 1840aaaa10e0SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int _idx), 1841aaaa10e0SJohannes Berg TP_ARGS(wiphy, netdev, _idx), 184214e8a3c4SBeni Lev TP_STRUCT__entry( 184314e8a3c4SBeni Lev WIPHY_ENTRY 184414e8a3c4SBeni Lev NETDEV_ENTRY 184514e8a3c4SBeni Lev __field(int, idx) 184614e8a3c4SBeni Lev ), 184714e8a3c4SBeni Lev TP_fast_assign( 184814e8a3c4SBeni Lev WIPHY_ASSIGN; 184914e8a3c4SBeni Lev NETDEV_ASSIGN; 1850aaaa10e0SJohannes Berg __entry->idx = _idx; 185114e8a3c4SBeni Lev ), 1852ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 185314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 185414e8a3c4SBeni Lev ); 185514e8a3c4SBeni Lev 185614e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 185714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 185814e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 185914e8a3c4SBeni Lev TP_STRUCT__entry( 186014e8a3c4SBeni Lev WIPHY_ENTRY 186114e8a3c4SBeni Lev CHAN_ENTRY 186214e8a3c4SBeni Lev __field(int, ret) 18634ed20bebSJohannes Berg __field(u64, time) 18644ed20bebSJohannes Berg __field(u64, time_busy) 18654ed20bebSJohannes Berg __field(u64, time_ext_busy) 18664ed20bebSJohannes Berg __field(u64, time_rx) 18674ed20bebSJohannes Berg __field(u64, time_tx) 1868052536abSJohannes Berg __field(u64, time_scan) 186914e8a3c4SBeni Lev __field(u32, filled) 187014e8a3c4SBeni Lev __field(s8, noise) 187114e8a3c4SBeni Lev ), 187214e8a3c4SBeni Lev TP_fast_assign( 187314e8a3c4SBeni Lev WIPHY_ASSIGN; 187414e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 187514e8a3c4SBeni Lev __entry->ret = ret; 18764ed20bebSJohannes Berg __entry->time = info->time; 18774ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 18784ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 18794ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 18804ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1881052536abSJohannes Berg __entry->time_scan = info->time_scan; 188214e8a3c4SBeni Lev __entry->filled = info->filled; 188314e8a3c4SBeni Lev __entry->noise = info->noise; 188414e8a3c4SBeni Lev ), 188514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 188614e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 188714e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1888052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 188914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 18904ed20bebSJohannes Berg __entry->time, __entry->time_busy, 18914ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1892052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1893052536abSJohannes Berg __entry->filled, __entry->noise) 189414e8a3c4SBeni Lev ); 189514e8a3c4SBeni Lev 189614e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 189714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 189814e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 189914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 190014e8a3c4SBeni Lev TP_STRUCT__entry( 190114e8a3c4SBeni Lev WIPHY_ENTRY 190214e8a3c4SBeni Lev NETDEV_ENTRY 190314e8a3c4SBeni Lev MAC_ENTRY(peer) 190414e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 190514e8a3c4SBeni Lev ), 190614e8a3c4SBeni Lev TP_fast_assign( 190714e8a3c4SBeni Lev WIPHY_ASSIGN; 190814e8a3c4SBeni Lev NETDEV_ASSIGN; 190914e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 191014e8a3c4SBeni Lev __entry->oper = oper; 191114e8a3c4SBeni Lev ), 19123d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, oper: %d", 19133d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper) 191414e8a3c4SBeni Lev ); 191514e8a3c4SBeni Lev 191614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 191714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 191814e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 191914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 192014e8a3c4SBeni Lev TP_STRUCT__entry( 192114e8a3c4SBeni Lev WIPHY_ENTRY 192214e8a3c4SBeni Lev NETDEV_ENTRY 192314e8a3c4SBeni Lev MAC_ENTRY(bssid) 192414e8a3c4SBeni Lev ), 192514e8a3c4SBeni Lev TP_fast_assign( 192614e8a3c4SBeni Lev WIPHY_ASSIGN; 192714e8a3c4SBeni Lev NETDEV_ASSIGN; 192814e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 192914e8a3c4SBeni Lev ), 19303d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM", 19313d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid) 193214e8a3c4SBeni Lev ); 193314e8a3c4SBeni Lev 193414e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 193514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 193614e8a3c4SBeni Lev const u8 *peer), 193714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 193814e8a3c4SBeni Lev TP_STRUCT__entry( 193914e8a3c4SBeni Lev WIPHY_ENTRY 194014e8a3c4SBeni Lev NETDEV_ENTRY 194114e8a3c4SBeni Lev MAC_ENTRY(peer) 194214e8a3c4SBeni Lev ), 194314e8a3c4SBeni Lev TP_fast_assign( 194414e8a3c4SBeni Lev WIPHY_ASSIGN; 194514e8a3c4SBeni Lev NETDEV_ASSIGN; 194614e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 194714e8a3c4SBeni Lev ), 19483d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 19493d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer) 195014e8a3c4SBeni Lev ); 195114e8a3c4SBeni Lev 195214e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 195314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 195414e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 195514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 195614e8a3c4SBeni Lev ); 195714e8a3c4SBeni Lev 195814e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 195914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 196014e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 196114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 196214e8a3c4SBeni Lev ); 196314e8a3c4SBeni Lev 196414e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 196514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 196614e8a3c4SBeni Lev struct ieee80211_channel *chan, 196742d97a59SJohannes Berg unsigned int duration), 196842d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 196914e8a3c4SBeni Lev TP_STRUCT__entry( 197014e8a3c4SBeni Lev WIPHY_ENTRY 197114e8a3c4SBeni Lev WDEV_ENTRY 197214e8a3c4SBeni Lev CHAN_ENTRY 197314e8a3c4SBeni Lev __field(unsigned int, duration) 197414e8a3c4SBeni Lev ), 197514e8a3c4SBeni Lev TP_fast_assign( 197614e8a3c4SBeni Lev WIPHY_ASSIGN; 197714e8a3c4SBeni Lev WDEV_ASSIGN; 197814e8a3c4SBeni Lev CHAN_ASSIGN(chan); 197914e8a3c4SBeni Lev __entry->duration = duration; 198014e8a3c4SBeni Lev ), 1981ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 198242d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 198314e8a3c4SBeni Lev ); 198414e8a3c4SBeni Lev 198514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 198614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 198714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 198814e8a3c4SBeni Lev TP_STRUCT__entry( 198914e8a3c4SBeni Lev WIPHY_ENTRY 199014e8a3c4SBeni Lev __field(int, ret) 199114e8a3c4SBeni Lev __field(u64, cookie) 199214e8a3c4SBeni Lev ), 199314e8a3c4SBeni Lev TP_fast_assign( 199414e8a3c4SBeni Lev WIPHY_ASSIGN; 199514e8a3c4SBeni Lev __entry->ret = ret; 199614e8a3c4SBeni Lev __entry->cookie = cookie; 199714e8a3c4SBeni Lev ), 199814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 199914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 200014e8a3c4SBeni Lev ); 200114e8a3c4SBeni Lev 200214e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 200314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 200414e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 200514e8a3c4SBeni Lev TP_STRUCT__entry( 200614e8a3c4SBeni Lev WIPHY_ENTRY 200714e8a3c4SBeni Lev WDEV_ENTRY 200814e8a3c4SBeni Lev __field(u64, cookie) 200914e8a3c4SBeni Lev ), 201014e8a3c4SBeni Lev TP_fast_assign( 201114e8a3c4SBeni Lev WIPHY_ASSIGN; 201214e8a3c4SBeni Lev WDEV_ASSIGN; 201314e8a3c4SBeni Lev __entry->cookie = cookie; 201414e8a3c4SBeni Lev ), 2015ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 201614e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 201714e8a3c4SBeni Lev ); 201814e8a3c4SBeni Lev 201914e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 202014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2021b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 2022b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 202314e8a3c4SBeni Lev TP_STRUCT__entry( 202414e8a3c4SBeni Lev WIPHY_ENTRY 202514e8a3c4SBeni Lev WDEV_ENTRY 202614e8a3c4SBeni Lev CHAN_ENTRY 202714e8a3c4SBeni Lev __field(bool, offchan) 202814e8a3c4SBeni Lev __field(unsigned int, wait) 202914e8a3c4SBeni Lev __field(bool, no_cck) 203014e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 203114e8a3c4SBeni Lev ), 203214e8a3c4SBeni Lev TP_fast_assign( 203314e8a3c4SBeni Lev WIPHY_ASSIGN; 203414e8a3c4SBeni Lev WDEV_ASSIGN; 2035b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 2036b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 2037b176e629SAndrei Otcheretianski __entry->wait = params->wait; 2038b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 2039b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 204014e8a3c4SBeni Lev ), 2041ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 204242d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 204314e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 204442d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 204514e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 204614e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 204714e8a3c4SBeni Lev ); 204814e8a3c4SBeni Lev 20492576a9acSDenis Kenzior TRACE_EVENT(rdev_tx_control_port, 20502576a9acSDenis Kenzior TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20518d74a623SJohannes Berg const u8 *buf, size_t len, const u8 *dest, __be16 proto, 205267207babSAndrei Otcheretianski bool unencrypted, int link_id), 205367207babSAndrei Otcheretianski TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted, link_id), 20542576a9acSDenis Kenzior TP_STRUCT__entry( 20552576a9acSDenis Kenzior WIPHY_ENTRY 20562576a9acSDenis Kenzior NETDEV_ENTRY 20572576a9acSDenis Kenzior MAC_ENTRY(dest) 20588d74a623SJohannes Berg __field(__be16, proto) 20592576a9acSDenis Kenzior __field(bool, unencrypted) 206067207babSAndrei Otcheretianski __field(int, link_id) 20612576a9acSDenis Kenzior ), 20622576a9acSDenis Kenzior TP_fast_assign( 20632576a9acSDenis Kenzior WIPHY_ASSIGN; 20642576a9acSDenis Kenzior NETDEV_ASSIGN; 20652576a9acSDenis Kenzior MAC_ASSIGN(dest, dest); 20668d74a623SJohannes Berg __entry->proto = proto; 20672576a9acSDenis Kenzior __entry->unencrypted = unencrypted; 206867207babSAndrei Otcheretianski __entry->link_id = link_id; 20692576a9acSDenis Kenzior ), 20703d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM," 207167207babSAndrei Otcheretianski " proto: 0x%x, unencrypted: %s, link: %d", 20723d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest, 20738d74a623SJohannes Berg be16_to_cpu(__entry->proto), 207467207babSAndrei Otcheretianski BOOL_TO_STR(__entry->unencrypted), 207567207babSAndrei Otcheretianski __entry->link_id) 20762576a9acSDenis Kenzior ); 20772576a9acSDenis Kenzior 207814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 207914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 208014e8a3c4SBeni Lev u16 noack_map), 208114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 208214e8a3c4SBeni Lev TP_STRUCT__entry( 208314e8a3c4SBeni Lev WIPHY_ENTRY 208414e8a3c4SBeni Lev NETDEV_ENTRY 208514e8a3c4SBeni Lev __field(u16, noack_map) 208614e8a3c4SBeni Lev ), 208714e8a3c4SBeni Lev TP_fast_assign( 208814e8a3c4SBeni Lev WIPHY_ASSIGN; 208914e8a3c4SBeni Lev NETDEV_ASSIGN; 209014e8a3c4SBeni Lev __entry->noack_map = noack_map; 209114e8a3c4SBeni Lev ), 2092ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 209314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 209414e8a3c4SBeni Lev ); 209514e8a3c4SBeni Lev 2096f2a0290bSJohannes Berg DECLARE_EVENT_CLASS(wiphy_wdev_link_evt, 20977b0a0e3cSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 20987b0a0e3cSJohannes Berg unsigned int link_id), 20997b0a0e3cSJohannes Berg TP_ARGS(wiphy, wdev, link_id), 21007b0a0e3cSJohannes Berg TP_STRUCT__entry( 21017b0a0e3cSJohannes Berg WIPHY_ENTRY 21027b0a0e3cSJohannes Berg WDEV_ENTRY 21037b0a0e3cSJohannes Berg __field(unsigned int, link_id) 21047b0a0e3cSJohannes Berg ), 21057b0a0e3cSJohannes Berg TP_fast_assign( 21067b0a0e3cSJohannes Berg WIPHY_ASSIGN; 21077b0a0e3cSJohannes Berg WDEV_ASSIGN; 21087b0a0e3cSJohannes Berg __entry->link_id = link_id; 21097b0a0e3cSJohannes Berg ), 21107b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", 21117b0a0e3cSJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) 211214e8a3c4SBeni Lev ); 211314e8a3c4SBeni Lev 2114f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_get_channel, 2115f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2116f2a0290bSJohannes Berg unsigned int link_id), 2117f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2118f2a0290bSJohannes Berg ); 2119f2a0290bSJohannes Berg 2120683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 2121683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 2122683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2123683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 212414e8a3c4SBeni Lev TP_STRUCT__entry( 212514e8a3c4SBeni Lev WIPHY_ENTRY 2126683b6d3bSJohannes Berg __field(int, ret) 2127683b6d3bSJohannes Berg CHAN_DEF_ENTRY 212814e8a3c4SBeni Lev ), 212914e8a3c4SBeni Lev TP_fast_assign( 213014e8a3c4SBeni Lev WIPHY_ASSIGN; 2131683b6d3bSJohannes Berg if (ret == 0) 2132683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2133683b6d3bSJohannes Berg else 2134683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 2135683b6d3bSJohannes Berg __entry->ret = ret; 213614e8a3c4SBeni Lev ), 2137ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 2138683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 213914e8a3c4SBeni Lev ); 214014e8a3c4SBeni Lev 2141eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 2142eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2143eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2144eeb126e9SJohannes Berg ); 2145eeb126e9SJohannes Berg 2146eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 2147eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2148eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 2149eeb126e9SJohannes Berg ); 2150eeb126e9SJohannes Berg 2151cb3b7d87SAyala Beker TRACE_EVENT(rdev_start_nan, 2152cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2153cb3b7d87SAyala Beker struct cfg80211_nan_conf *conf), 2154cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev, conf), 2155cb3b7d87SAyala Beker TP_STRUCT__entry( 2156cb3b7d87SAyala Beker WIPHY_ENTRY 2157cb3b7d87SAyala Beker WDEV_ENTRY 2158cb3b7d87SAyala Beker __field(u8, master_pref) 215904ae87a5SPeter Zijlstra __field(u8, bands) 2160cb3b7d87SAyala Beker ), 2161cb3b7d87SAyala Beker TP_fast_assign( 2162cb3b7d87SAyala Beker WIPHY_ASSIGN; 2163cb3b7d87SAyala Beker WDEV_ASSIGN; 2164cb3b7d87SAyala Beker __entry->master_pref = conf->master_pref; 21658585989dSLuca Coelho __entry->bands = conf->bands; 2166cb3b7d87SAyala Beker ), 2167cb3b7d87SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21688585989dSLuca Coelho ", master preference: %u, bands: 0x%0x", 2169cb3b7d87SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21708585989dSLuca Coelho __entry->bands) 2171cb3b7d87SAyala Beker ); 2172cb3b7d87SAyala Beker 2173a5a9dcf2SAyala Beker TRACE_EVENT(rdev_nan_change_conf, 2174a5a9dcf2SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2175a5a9dcf2SAyala Beker struct cfg80211_nan_conf *conf, u32 changes), 2176a5a9dcf2SAyala Beker TP_ARGS(wiphy, wdev, conf, changes), 2177a5a9dcf2SAyala Beker TP_STRUCT__entry( 2178a5a9dcf2SAyala Beker WIPHY_ENTRY 2179a5a9dcf2SAyala Beker WDEV_ENTRY 2180a5a9dcf2SAyala Beker __field(u8, master_pref) 218104ae87a5SPeter Zijlstra __field(u8, bands) 218204ae87a5SPeter Zijlstra __field(u32, changes) 2183a5a9dcf2SAyala Beker ), 2184a5a9dcf2SAyala Beker TP_fast_assign( 2185a5a9dcf2SAyala Beker WIPHY_ASSIGN; 2186a5a9dcf2SAyala Beker WDEV_ASSIGN; 2187a5a9dcf2SAyala Beker __entry->master_pref = conf->master_pref; 21888585989dSLuca Coelho __entry->bands = conf->bands; 2189a5a9dcf2SAyala Beker __entry->changes = changes; 2190a5a9dcf2SAyala Beker ), 2191a5a9dcf2SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT 21928585989dSLuca Coelho ", master preference: %u, bands: 0x%0x, changes: %x", 2193a5a9dcf2SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->master_pref, 21948585989dSLuca Coelho __entry->bands, __entry->changes) 2195a5a9dcf2SAyala Beker ); 2196a5a9dcf2SAyala Beker 2197cb3b7d87SAyala Beker DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_nan, 2198cb3b7d87SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2199cb3b7d87SAyala Beker TP_ARGS(wiphy, wdev) 2200cb3b7d87SAyala Beker ); 2201cb3b7d87SAyala Beker 2202a442b761SAyala Beker TRACE_EVENT(rdev_add_nan_func, 2203a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2204a442b761SAyala Beker const struct cfg80211_nan_func *func), 2205a442b761SAyala Beker TP_ARGS(wiphy, wdev, func), 2206a442b761SAyala Beker TP_STRUCT__entry( 2207a442b761SAyala Beker WIPHY_ENTRY 2208a442b761SAyala Beker WDEV_ENTRY 2209a442b761SAyala Beker __field(u8, func_type) 2210a442b761SAyala Beker __field(u64, cookie) 2211a442b761SAyala Beker ), 2212a442b761SAyala Beker TP_fast_assign( 2213a442b761SAyala Beker WIPHY_ASSIGN; 2214a442b761SAyala Beker WDEV_ASSIGN; 2215a442b761SAyala Beker __entry->func_type = func->type; 2216a442b761SAyala Beker __entry->cookie = func->cookie 2217a442b761SAyala Beker ), 2218a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type=%u, cookie=%llu", 2219a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->func_type, 2220a442b761SAyala Beker __entry->cookie) 2221a442b761SAyala Beker ); 2222a442b761SAyala Beker 2223a442b761SAyala Beker TRACE_EVENT(rdev_del_nan_func, 2224a442b761SAyala Beker TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2225a442b761SAyala Beker u64 cookie), 2226a442b761SAyala Beker TP_ARGS(wiphy, wdev, cookie), 2227a442b761SAyala Beker TP_STRUCT__entry( 2228a442b761SAyala Beker WIPHY_ENTRY 2229a442b761SAyala Beker WDEV_ENTRY 2230a442b761SAyala Beker __field(u64, cookie) 2231a442b761SAyala Beker ), 2232a442b761SAyala Beker TP_fast_assign( 2233a442b761SAyala Beker WIPHY_ASSIGN; 2234a442b761SAyala Beker WDEV_ASSIGN; 2235a442b761SAyala Beker __entry->cookie = cookie; 2236a442b761SAyala Beker ), 2237a442b761SAyala Beker TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie=%llu", 2238a442b761SAyala Beker WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 2239a442b761SAyala Beker ); 2240a442b761SAyala Beker 224177765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 224277765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 224377765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 224477765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 224577765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 224677765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 224777765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 224877765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 224977765eafSVasanthakumar Thiagarajan ), 225077765eafSVasanthakumar Thiagarajan TP_fast_assign( 225177765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 2252021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 225377765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 225477765eafSVasanthakumar Thiagarajan ), 225577765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 225677765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 225777765eafSVasanthakumar Thiagarajan ); 225877765eafSVasanthakumar Thiagarajan 2259355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 2260355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2261355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 2262355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 2263355199e0SJouni Malinen TP_STRUCT__entry( 2264355199e0SJouni Malinen WIPHY_ENTRY 2265355199e0SJouni Malinen NETDEV_ENTRY 2266355199e0SJouni Malinen __field(u16, md) 2267355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 2268355199e0SJouni Malinen ), 2269355199e0SJouni Malinen TP_fast_assign( 2270355199e0SJouni Malinen WIPHY_ASSIGN; 2271355199e0SJouni Malinen NETDEV_ASSIGN; 2272355199e0SJouni Malinen __entry->md = ftie->md; 2273355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 2274355199e0SJouni Malinen ), 2275355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 2276355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 2277355199e0SJouni Malinen ); 2278355199e0SJouni Malinen 22795de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 22805de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 22815de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 22825de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 22835de17984SArend van Spriel TP_STRUCT__entry( 22845de17984SArend van Spriel WIPHY_ENTRY 22855de17984SArend van Spriel WDEV_ENTRY 22865de17984SArend van Spriel __field(u16, proto) 22875de17984SArend van Spriel __field(u16, duration) 22885de17984SArend van Spriel ), 22895de17984SArend van Spriel TP_fast_assign( 22905de17984SArend van Spriel WIPHY_ASSIGN; 22915de17984SArend van Spriel WDEV_ASSIGN; 22925de17984SArend van Spriel __entry->proto = protocol; 22935de17984SArend van Spriel __entry->duration = duration; 22945de17984SArend van Spriel ), 22955de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 22965de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 22975de17984SArend van Spriel ); 22985de17984SArend van Spriel 22995de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 23005de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 23015de17984SArend van Spriel TP_ARGS(wiphy, wdev), 23025de17984SArend van Spriel TP_STRUCT__entry( 23035de17984SArend van Spriel WIPHY_ENTRY 23045de17984SArend van Spriel WDEV_ENTRY 23055de17984SArend van Spriel ), 23065de17984SArend van Spriel TP_fast_assign( 23075de17984SArend van Spriel WIPHY_ASSIGN; 23085de17984SArend van Spriel WDEV_ASSIGN; 23095de17984SArend van Spriel ), 23105de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 23115de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 23125de17984SArend van Spriel ); 23135de17984SArend van Spriel 231416ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 231516ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 231616ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 231716ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 231816ef1fe2SSimon Wunderlich TP_STRUCT__entry( 231916ef1fe2SSimon Wunderlich WIPHY_ENTRY 232016ef1fe2SSimon Wunderlich NETDEV_ENTRY 232116ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 232216ef1fe2SSimon Wunderlich __field(bool, radar_required) 232316ef1fe2SSimon Wunderlich __field(bool, block_tx) 232416ef1fe2SSimon Wunderlich __field(u8, count) 23259a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 23269a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 232716ef1fe2SSimon Wunderlich ), 232816ef1fe2SSimon Wunderlich TP_fast_assign( 232916ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 233016ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 233116ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 233216ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 233316ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 233416ef1fe2SSimon Wunderlich __entry->count = params->count; 23359a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 23369a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 23379a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 23389a774c78SAndrei Otcheretianski 23399a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 23409a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 23419a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 23429a774c78SAndrei Otcheretianski params->counter_offsets_presp, 23439a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 234416ef1fe2SSimon Wunderlich ), 234516ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 23469a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 234716ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23489a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 234916ef1fe2SSimon Wunderlich ); 235016ef1fe2SSimon Wunderlich 2351fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 2352fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2353fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 2354fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 2355fa9ffc74SKyeyoon Park TP_STRUCT__entry( 2356fa9ffc74SKyeyoon Park WIPHY_ENTRY 2357fa9ffc74SKyeyoon Park NETDEV_ENTRY 2358fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 2359fa9ffc74SKyeyoon Park ), 2360fa9ffc74SKyeyoon Park TP_fast_assign( 2361fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 2362fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 2363fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 2364fa9ffc74SKyeyoon Park ), 2365fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 2366fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 2367fa9ffc74SKyeyoon Park ); 2368fa9ffc74SKyeyoon Park 2369e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 2370e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 23717b0a0e3cSJohannes Berg unsigned int link_id, 2372e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 23737b0a0e3cSJohannes Berg TP_ARGS(wiphy, netdev, link_id, chandef), 2374e16821bcSJouni Malinen TP_STRUCT__entry( 2375e16821bcSJouni Malinen WIPHY_ENTRY 2376e16821bcSJouni Malinen NETDEV_ENTRY 2377e16821bcSJouni Malinen CHAN_DEF_ENTRY 23787b0a0e3cSJohannes Berg __field(unsigned int, link_id) 2379e16821bcSJouni Malinen ), 2380e16821bcSJouni Malinen TP_fast_assign( 2381e16821bcSJouni Malinen WIPHY_ASSIGN; 2382e16821bcSJouni Malinen NETDEV_ASSIGN; 2383e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 23847b0a0e3cSJohannes Berg __entry->link_id = link_id; 2385e16821bcSJouni Malinen ), 23867b0a0e3cSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", 23877b0a0e3cSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 23887b0a0e3cSJohannes Berg __entry->link_id) 2389e16821bcSJouni Malinen ); 2390e16821bcSJouni Malinen 2391960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 2392960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2393960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2394960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2395960d01acSJohannes Berg TP_STRUCT__entry( 2396960d01acSJohannes Berg WIPHY_ENTRY 2397960d01acSJohannes Berg NETDEV_ENTRY 2398960d01acSJohannes Berg MAC_ENTRY(peer) 2399960d01acSJohannes Berg __field(u8, tsid) 2400960d01acSJohannes Berg __field(u8, user_prio) 2401960d01acSJohannes Berg __field(u16, admitted_time) 2402960d01acSJohannes Berg ), 2403960d01acSJohannes Berg TP_fast_assign( 2404960d01acSJohannes Berg WIPHY_ASSIGN; 2405960d01acSJohannes Berg NETDEV_ASSIGN; 2406960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2407960d01acSJohannes Berg __entry->tsid = tsid; 2408960d01acSJohannes Berg __entry->user_prio = user_prio; 2409960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2410960d01acSJohannes Berg ), 24113d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d, UP %d, time %d", 24123d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, 2413960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2414960d01acSJohannes Berg ); 2415960d01acSJohannes Berg 2416960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2417960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2418960d01acSJohannes Berg u8 tsid, const u8 *peer), 2419960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2420960d01acSJohannes Berg TP_STRUCT__entry( 2421960d01acSJohannes Berg WIPHY_ENTRY 2422960d01acSJohannes Berg NETDEV_ENTRY 2423960d01acSJohannes Berg MAC_ENTRY(peer) 2424960d01acSJohannes Berg __field(u8, tsid) 2425960d01acSJohannes Berg ), 2426960d01acSJohannes Berg TP_fast_assign( 2427960d01acSJohannes Berg WIPHY_ASSIGN; 2428960d01acSJohannes Berg NETDEV_ASSIGN; 2429960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2430960d01acSJohannes Berg __entry->tsid = tsid; 2431960d01acSJohannes Berg ), 24323d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d", 24333d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tsid) 2434960d01acSJohannes Berg ); 2435960d01acSJohannes Berg 24361057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 24371057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24381057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 24391057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 24401057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 24411057d35eSArik Nemtsov TP_STRUCT__entry( 24421057d35eSArik Nemtsov WIPHY_ENTRY 24431057d35eSArik Nemtsov NETDEV_ENTRY 24441057d35eSArik Nemtsov MAC_ENTRY(addr) 24451057d35eSArik Nemtsov __field(u8, oper_class) 24461057d35eSArik Nemtsov CHAN_DEF_ENTRY 24471057d35eSArik Nemtsov ), 24481057d35eSArik Nemtsov TP_fast_assign( 24491057d35eSArik Nemtsov WIPHY_ASSIGN; 24501057d35eSArik Nemtsov NETDEV_ASSIGN; 24511057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24521057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 24531057d35eSArik Nemtsov ), 24543d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM" 24551057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 24563d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr, 24571057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 24581057d35eSArik Nemtsov ); 24591057d35eSArik Nemtsov 24601057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 24611057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24621057d35eSArik Nemtsov const u8 *addr), 24631057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 24641057d35eSArik Nemtsov TP_STRUCT__entry( 24651057d35eSArik Nemtsov WIPHY_ENTRY 24661057d35eSArik Nemtsov NETDEV_ENTRY 24671057d35eSArik Nemtsov MAC_ENTRY(addr) 24681057d35eSArik Nemtsov ), 24691057d35eSArik Nemtsov TP_fast_assign( 24701057d35eSArik Nemtsov WIPHY_ASSIGN; 24711057d35eSArik Nemtsov NETDEV_ASSIGN; 24721057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 24731057d35eSArik Nemtsov ), 24743d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 24753d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr) 24761057d35eSArik Nemtsov ); 24771057d35eSArik Nemtsov 24783a00df57SAvraham Stern TRACE_EVENT(rdev_set_pmk, 24793a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 24803a00df57SAvraham Stern struct cfg80211_pmk_conf *pmk_conf), 24813a00df57SAvraham Stern 24823a00df57SAvraham Stern TP_ARGS(wiphy, netdev, pmk_conf), 24833a00df57SAvraham Stern 24843a00df57SAvraham Stern TP_STRUCT__entry( 24853a00df57SAvraham Stern WIPHY_ENTRY 24863a00df57SAvraham Stern NETDEV_ENTRY 24873a00df57SAvraham Stern MAC_ENTRY(aa) 24883a00df57SAvraham Stern __field(u8, pmk_len) 24893a00df57SAvraham Stern __field(u8, pmk_r0_name_len) 24903a00df57SAvraham Stern __dynamic_array(u8, pmk, pmk_conf->pmk_len) 24913a00df57SAvraham Stern __dynamic_array(u8, pmk_r0_name, WLAN_PMK_NAME_LEN) 24923a00df57SAvraham Stern ), 24933a00df57SAvraham Stern 24943a00df57SAvraham Stern TP_fast_assign( 24953a00df57SAvraham Stern WIPHY_ASSIGN; 24963a00df57SAvraham Stern NETDEV_ASSIGN; 24973a00df57SAvraham Stern MAC_ASSIGN(aa, pmk_conf->aa); 24983a00df57SAvraham Stern __entry->pmk_len = pmk_conf->pmk_len; 24993a00df57SAvraham Stern __entry->pmk_r0_name_len = 25003a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0; 25013a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk), pmk_conf->pmk, 25023a00df57SAvraham Stern pmk_conf->pmk_len); 25033a00df57SAvraham Stern memcpy(__get_dynamic_array(pmk_r0_name), pmk_conf->pmk_r0_name, 25043a00df57SAvraham Stern pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0); 25053a00df57SAvraham Stern ), 25063a00df57SAvraham Stern 25073d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM" 25083a00df57SAvraham Stern "pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG, 25093d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->aa, __entry->pmk_len, 25103a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk), 25113a00df57SAvraham Stern __get_dynamic_array_len(pmk), 1), 25123a00df57SAvraham Stern __entry->pmk_r0_name_len ? 25133a00df57SAvraham Stern __print_array(__get_dynamic_array(pmk_r0_name), 25143a00df57SAvraham Stern __get_dynamic_array_len(pmk_r0_name), 1) : "") 25153a00df57SAvraham Stern ); 25163a00df57SAvraham Stern 25173a00df57SAvraham Stern TRACE_EVENT(rdev_del_pmk, 25183a00df57SAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *aa), 25193a00df57SAvraham Stern 25203a00df57SAvraham Stern TP_ARGS(wiphy, netdev, aa), 25213a00df57SAvraham Stern 25223a00df57SAvraham Stern TP_STRUCT__entry( 25233a00df57SAvraham Stern WIPHY_ENTRY 25243a00df57SAvraham Stern NETDEV_ENTRY 25253a00df57SAvraham Stern MAC_ENTRY(aa) 25263a00df57SAvraham Stern ), 25273a00df57SAvraham Stern 25283a00df57SAvraham Stern TP_fast_assign( 25293a00df57SAvraham Stern WIPHY_ASSIGN; 25303a00df57SAvraham Stern NETDEV_ASSIGN; 25313a00df57SAvraham Stern MAC_ASSIGN(aa, aa); 25323a00df57SAvraham Stern ), 25333a00df57SAvraham Stern 25343d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 25353d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->aa) 25363a00df57SAvraham Stern ); 25373a00df57SAvraham Stern 253840cbfa90SSrinivas Dasari TRACE_EVENT(rdev_external_auth, 253940cbfa90SSrinivas Dasari TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 254040cbfa90SSrinivas Dasari struct cfg80211_external_auth_params *params), 254140cbfa90SSrinivas Dasari TP_ARGS(wiphy, netdev, params), 254240cbfa90SSrinivas Dasari TP_STRUCT__entry(WIPHY_ENTRY 254340cbfa90SSrinivas Dasari NETDEV_ENTRY 254440cbfa90SSrinivas Dasari MAC_ENTRY(bssid) 254540cbfa90SSrinivas Dasari __array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1) 254640cbfa90SSrinivas Dasari __field(u16, status) 25479a47c1efSVeerendranath Jakkam MAC_ENTRY(mld_addr) 254840cbfa90SSrinivas Dasari ), 254940cbfa90SSrinivas Dasari TP_fast_assign(WIPHY_ASSIGN; 255040cbfa90SSrinivas Dasari NETDEV_ASSIGN; 255140cbfa90SSrinivas Dasari MAC_ASSIGN(bssid, params->bssid); 255240cbfa90SSrinivas Dasari memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 255340cbfa90SSrinivas Dasari memcpy(__entry->ssid, params->ssid.ssid, 255440cbfa90SSrinivas Dasari params->ssid.ssid_len); 255540cbfa90SSrinivas Dasari __entry->status = params->status; 25569a47c1efSVeerendranath Jakkam MAC_ASSIGN(mld_addr, params->mld_addr); 255740cbfa90SSrinivas Dasari ), 25583d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM" 25599a47c1efSVeerendranath Jakkam ", ssid: %s, status: %u, mld_addr: %pM", 25609a47c1efSVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, 25619a47c1efSVeerendranath Jakkam __entry->ssid, __entry->status, __entry->mld_addr) 256240cbfa90SSrinivas Dasari ); 256340cbfa90SSrinivas Dasari 25645207ca55SJohannes Berg TRACE_EVENT(rdev_start_radar_detection, 25655207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25665207ca55SJohannes Berg struct cfg80211_chan_def *chandef, 25675207ca55SJohannes Berg u32 cac_time_ms), 25685207ca55SJohannes Berg TP_ARGS(wiphy, netdev, chandef, cac_time_ms), 25695207ca55SJohannes Berg TP_STRUCT__entry( 25705207ca55SJohannes Berg WIPHY_ENTRY 25715207ca55SJohannes Berg NETDEV_ENTRY 25725207ca55SJohannes Berg CHAN_DEF_ENTRY 25735207ca55SJohannes Berg __field(u32, cac_time_ms) 25745207ca55SJohannes Berg ), 25755207ca55SJohannes Berg TP_fast_assign( 25765207ca55SJohannes Berg WIPHY_ASSIGN; 25775207ca55SJohannes Berg NETDEV_ASSIGN; 25785207ca55SJohannes Berg CHAN_DEF_ASSIGN(chandef); 25795207ca55SJohannes Berg __entry->cac_time_ms = cac_time_ms; 25805207ca55SJohannes Berg ), 25815207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 25825207ca55SJohannes Berg ", cac_time_ms=%u", 25835207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 25845207ca55SJohannes Berg __entry->cac_time_ms) 25855207ca55SJohannes Berg ); 25865207ca55SJohannes Berg 25875207ca55SJohannes Berg TRACE_EVENT(rdev_set_mcast_rate, 25885207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 25895207ca55SJohannes Berg int *mcast_rate), 25905207ca55SJohannes Berg TP_ARGS(wiphy, netdev, mcast_rate), 25915207ca55SJohannes Berg TP_STRUCT__entry( 25925207ca55SJohannes Berg WIPHY_ENTRY 25935207ca55SJohannes Berg NETDEV_ENTRY 25945207ca55SJohannes Berg __array(int, mcast_rate, NUM_NL80211_BANDS) 25955207ca55SJohannes Berg ), 25965207ca55SJohannes Berg TP_fast_assign( 25975207ca55SJohannes Berg WIPHY_ASSIGN; 25985207ca55SJohannes Berg NETDEV_ASSIGN; 25995207ca55SJohannes Berg memcpy(__entry->mcast_rate, mcast_rate, 26005207ca55SJohannes Berg sizeof(int) * NUM_NL80211_BANDS); 26015207ca55SJohannes Berg ), 26025207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " 2603e548a1c3SArend van Spriel "mcast_rates [2.4GHz=0x%x, 5.2GHz=0x%x, 6GHz=0x%x, 60GHz=0x%x]", 26045207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26055207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_2GHZ], 26065207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_5GHZ], 2607e548a1c3SArend van Spriel __entry->mcast_rate[NL80211_BAND_6GHZ], 26085207ca55SJohannes Berg __entry->mcast_rate[NL80211_BAND_60GHZ]) 26095207ca55SJohannes Berg ); 26105207ca55SJohannes Berg 26115207ca55SJohannes Berg TRACE_EVENT(rdev_set_coalesce, 26125207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_coalesce *coalesce), 26135207ca55SJohannes Berg TP_ARGS(wiphy, coalesce), 26145207ca55SJohannes Berg TP_STRUCT__entry( 26155207ca55SJohannes Berg WIPHY_ENTRY 26165207ca55SJohannes Berg __field(int, n_rules) 26175207ca55SJohannes Berg ), 26185207ca55SJohannes Berg TP_fast_assign( 26195207ca55SJohannes Berg WIPHY_ASSIGN; 26205207ca55SJohannes Berg __entry->n_rules = coalesce ? coalesce->n_rules : 0; 26215207ca55SJohannes Berg ), 26225207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", n_rules=%d", 26235207ca55SJohannes Berg WIPHY_PR_ARG, __entry->n_rules) 26245207ca55SJohannes Berg ); 26255207ca55SJohannes Berg 26265207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_abort_scan, 26275207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26285207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26295207ca55SJohannes Berg ); 26305207ca55SJohannes Berg 26315207ca55SJohannes Berg TRACE_EVENT(rdev_set_multicast_to_unicast, 26325207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26335207ca55SJohannes Berg const bool enabled), 26345207ca55SJohannes Berg TP_ARGS(wiphy, netdev, enabled), 26355207ca55SJohannes Berg TP_STRUCT__entry( 26365207ca55SJohannes Berg WIPHY_ENTRY 26375207ca55SJohannes Berg NETDEV_ENTRY 26385207ca55SJohannes Berg __field(bool, enabled) 26395207ca55SJohannes Berg ), 26405207ca55SJohannes Berg TP_fast_assign( 26415207ca55SJohannes Berg WIPHY_ASSIGN; 26425207ca55SJohannes Berg NETDEV_ASSIGN; 26435207ca55SJohannes Berg __entry->enabled = enabled; 26445207ca55SJohannes Berg ), 26455207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", unicast: %s", 26465207ca55SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 26475207ca55SJohannes Berg BOOL_TO_STR(__entry->enabled)) 26485207ca55SJohannes Berg ); 26495207ca55SJohannes Berg 26505207ca55SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_txq_stats, 26515207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 26525207ca55SJohannes Berg TP_ARGS(wiphy, wdev) 26535207ca55SJohannes Berg ); 26545207ca55SJohannes Berg 26555207ca55SJohannes Berg TRACE_EVENT(rdev_get_ftm_responder_stats, 26565207ca55SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 26575207ca55SJohannes Berg struct cfg80211_ftm_responder_stats *ftm_stats), 26585207ca55SJohannes Berg 26595207ca55SJohannes Berg TP_ARGS(wiphy, netdev, ftm_stats), 26605207ca55SJohannes Berg 26615207ca55SJohannes Berg TP_STRUCT__entry( 26625207ca55SJohannes Berg WIPHY_ENTRY 26635207ca55SJohannes Berg NETDEV_ENTRY 26645207ca55SJohannes Berg __field(u64, timestamp) 26655207ca55SJohannes Berg __field(u32, success_num) 26665207ca55SJohannes Berg __field(u32, partial_num) 26675207ca55SJohannes Berg __field(u32, failed_num) 26685207ca55SJohannes Berg __field(u32, asap_num) 26695207ca55SJohannes Berg __field(u32, non_asap_num) 26705207ca55SJohannes Berg __field(u64, duration) 26715207ca55SJohannes Berg __field(u32, unknown_triggers) 26725207ca55SJohannes Berg __field(u32, reschedule) 26735207ca55SJohannes Berg __field(u32, out_of_window) 26745207ca55SJohannes Berg ), 26755207ca55SJohannes Berg 26765207ca55SJohannes Berg TP_fast_assign( 26775207ca55SJohannes Berg WIPHY_ASSIGN; 26785207ca55SJohannes Berg NETDEV_ASSIGN; 26795207ca55SJohannes Berg __entry->success_num = ftm_stats->success_num; 26805207ca55SJohannes Berg __entry->partial_num = ftm_stats->partial_num; 26815207ca55SJohannes Berg __entry->failed_num = ftm_stats->failed_num; 26825207ca55SJohannes Berg __entry->asap_num = ftm_stats->asap_num; 26835207ca55SJohannes Berg __entry->non_asap_num = ftm_stats->non_asap_num; 26845207ca55SJohannes Berg __entry->duration = ftm_stats->total_duration_ms; 26855207ca55SJohannes Berg __entry->unknown_triggers = ftm_stats->unknown_triggers_num; 26865207ca55SJohannes Berg __entry->reschedule = ftm_stats->reschedule_requests_num; 26875207ca55SJohannes Berg __entry->out_of_window = ftm_stats->out_of_window_triggers_num; 26885207ca55SJohannes Berg ), 26895207ca55SJohannes Berg 26905207ca55SJohannes Berg TP_printk(WIPHY_PR_FMT "Ftm responder stats: success %u, partial %u, " 26915207ca55SJohannes Berg "failed %u, asap %u, non asap %u, total duration %llu, unknown " 26925207ca55SJohannes Berg "triggers %u, rescheduled %u, out of window %u", WIPHY_PR_ARG, 26935207ca55SJohannes Berg __entry->success_num, __entry->partial_num, __entry->failed_num, 26945207ca55SJohannes Berg __entry->asap_num, __entry->non_asap_num, __entry->duration, 26955207ca55SJohannes Berg __entry->unknown_triggers, __entry->reschedule, 26965207ca55SJohannes Berg __entry->out_of_window) 26975207ca55SJohannes Berg ); 26985207ca55SJohannes Berg 26999bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_start_pmsr, 27009bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 27019bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 27029bb7e0f2SJohannes Berg ); 27039bb7e0f2SJohannes Berg 27049bb7e0f2SJohannes Berg DEFINE_EVENT(wiphy_wdev_cookie_evt, rdev_abort_pmsr, 27059bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 27069bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie) 27079bb7e0f2SJohannes Berg ); 27089bb7e0f2SJohannes Berg 2709e306784aSSubrat Mishra TRACE_EVENT(rdev_set_fils_aad, 2710e306784aSSubrat Mishra TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2711e306784aSSubrat Mishra struct cfg80211_fils_aad *fils_aad), 2712e306784aSSubrat Mishra TP_ARGS(wiphy, netdev, fils_aad), 2713e306784aSSubrat Mishra TP_STRUCT__entry(WIPHY_ENTRY 2714e306784aSSubrat Mishra NETDEV_ENTRY 2715e306784aSSubrat Mishra __array(u8, macaddr, ETH_ALEN) 2716e306784aSSubrat Mishra __field(u8, kek_len) 2717e306784aSSubrat Mishra ), 2718e306784aSSubrat Mishra TP_fast_assign(WIPHY_ASSIGN; 2719e306784aSSubrat Mishra NETDEV_ASSIGN; 2720e306784aSSubrat Mishra FILS_AAD_ASSIGN(fils_aad); 2721e306784aSSubrat Mishra ), 2722e306784aSSubrat Mishra TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " FILS_AAD_PR_FMT, 2723e306784aSSubrat Mishra WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 2724e306784aSSubrat Mishra __entry->kek_len) 2725e306784aSSubrat Mishra ); 2726e306784aSSubrat Mishra 2727c8a11ed5SJohannes Berg TRACE_EVENT(rdev_update_owe_info, 2728c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2729c8a11ed5SJohannes Berg struct cfg80211_update_owe_info *owe_info), 2730c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, owe_info), 2731c8a11ed5SJohannes Berg TP_STRUCT__entry(WIPHY_ENTRY 2732c8a11ed5SJohannes Berg NETDEV_ENTRY 2733c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2734c8a11ed5SJohannes Berg __field(u16, status) 2735c8a11ed5SJohannes Berg __dynamic_array(u8, ie, owe_info->ie_len)), 2736c8a11ed5SJohannes Berg TP_fast_assign(WIPHY_ASSIGN; 2737c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2738c8a11ed5SJohannes Berg MAC_ASSIGN(peer, owe_info->peer); 2739c8a11ed5SJohannes Berg __entry->status = owe_info->status; 2740c8a11ed5SJohannes Berg memcpy(__get_dynamic_array(ie), 2741c8a11ed5SJohannes Berg owe_info->ie, owe_info->ie_len);), 27423d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM" 27433d9c3617SJohannes Berg " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, 2744c8a11ed5SJohannes Berg __entry->status) 2745c8a11ed5SJohannes Berg ); 2746c8a11ed5SJohannes Berg 2747c8a11ed5SJohannes Berg TRACE_EVENT(rdev_probe_mesh_link, 2748c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2749c8a11ed5SJohannes Berg const u8 *dest, const u8 *buf, size_t len), 2750c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, dest, buf, len), 2751c8a11ed5SJohannes Berg TP_STRUCT__entry( 2752c8a11ed5SJohannes Berg WIPHY_ENTRY 2753c8a11ed5SJohannes Berg NETDEV_ENTRY 2754c8a11ed5SJohannes Berg MAC_ENTRY(dest) 2755c8a11ed5SJohannes Berg ), 2756c8a11ed5SJohannes Berg TP_fast_assign( 2757c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2758c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2759c8a11ed5SJohannes Berg MAC_ASSIGN(dest, dest); 2760c8a11ed5SJohannes Berg ), 27613d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM", 27623d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest) 2763c8a11ed5SJohannes Berg ); 2764c8a11ed5SJohannes Berg 2765c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_tid_config, 2766c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2767c8a11ed5SJohannes Berg struct cfg80211_tid_config *tid_conf), 2768c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, tid_conf), 2769c8a11ed5SJohannes Berg TP_STRUCT__entry( 2770c8a11ed5SJohannes Berg WIPHY_ENTRY 2771c8a11ed5SJohannes Berg NETDEV_ENTRY 2772c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2773c8a11ed5SJohannes Berg ), 2774c8a11ed5SJohannes Berg TP_fast_assign( 2775c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2776c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2777c8a11ed5SJohannes Berg MAC_ASSIGN(peer, tid_conf->peer); 2778c8a11ed5SJohannes Berg ), 27793d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM", 27803d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer) 2781c8a11ed5SJohannes Berg ); 2782c8a11ed5SJohannes Berg 2783c8a11ed5SJohannes Berg TRACE_EVENT(rdev_reset_tid_config, 2784c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2785c8a11ed5SJohannes Berg const u8 *peer, u8 tids), 2786c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, peer, tids), 2787c8a11ed5SJohannes Berg TP_STRUCT__entry( 2788c8a11ed5SJohannes Berg WIPHY_ENTRY 2789c8a11ed5SJohannes Berg NETDEV_ENTRY 2790c8a11ed5SJohannes Berg MAC_ENTRY(peer) 2791c8a11ed5SJohannes Berg __field(u8, tids) 2792c8a11ed5SJohannes Berg ), 2793c8a11ed5SJohannes Berg TP_fast_assign( 2794c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2795c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2796c8a11ed5SJohannes Berg MAC_ASSIGN(peer, peer); 2797c8a11ed5SJohannes Berg __entry->tids = tids; 2798c8a11ed5SJohannes Berg ), 27993d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, tids: 0x%x", 28003d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tids) 2801c8a11ed5SJohannes Berg ); 2802c8a11ed5SJohannes Berg 2803c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_sar_specs, 2804c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar), 2805c8a11ed5SJohannes Berg TP_ARGS(wiphy, sar), 2806c8a11ed5SJohannes Berg TP_STRUCT__entry( 2807c8a11ed5SJohannes Berg WIPHY_ENTRY 2808c8a11ed5SJohannes Berg __field(u16, type) 2809c8a11ed5SJohannes Berg __field(u16, num) 2810c8a11ed5SJohannes Berg ), 2811c8a11ed5SJohannes Berg TP_fast_assign( 2812c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2813c8a11ed5SJohannes Berg __entry->type = sar->type; 2814c8a11ed5SJohannes Berg __entry->num = sar->num_sub_specs; 2815c8a11ed5SJohannes Berg 2816c8a11ed5SJohannes Berg ), 2817c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d", 2818c8a11ed5SJohannes Berg WIPHY_PR_ARG, __entry->type, __entry->num) 2819c8a11ed5SJohannes Berg ); 2820c8a11ed5SJohannes Berg 2821c8a11ed5SJohannes Berg TRACE_EVENT(rdev_color_change, 2822c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2823c8a11ed5SJohannes Berg struct cfg80211_color_change_settings *params), 2824c8a11ed5SJohannes Berg TP_ARGS(wiphy, netdev, params), 2825c8a11ed5SJohannes Berg TP_STRUCT__entry( 2826c8a11ed5SJohannes Berg WIPHY_ENTRY 2827c8a11ed5SJohannes Berg NETDEV_ENTRY 2828c8a11ed5SJohannes Berg __field(u8, count) 2829c8a11ed5SJohannes Berg __field(u16, bcn_ofs) 2830c8a11ed5SJohannes Berg __field(u16, pres_ofs) 2831c8a11ed5SJohannes Berg ), 2832c8a11ed5SJohannes Berg TP_fast_assign( 2833c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2834c8a11ed5SJohannes Berg NETDEV_ASSIGN; 2835c8a11ed5SJohannes Berg __entry->count = params->count; 2836c8a11ed5SJohannes Berg __entry->bcn_ofs = params->counter_offset_beacon; 2837c8a11ed5SJohannes Berg __entry->pres_ofs = params->counter_offset_presp; 2838c8a11ed5SJohannes Berg ), 2839c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 2840c8a11ed5SJohannes Berg ", count: %u", 2841c8a11ed5SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, 2842c8a11ed5SJohannes Berg __entry->count) 2843c8a11ed5SJohannes Berg ); 2844c8a11ed5SJohannes Berg 2845c8a11ed5SJohannes Berg TRACE_EVENT(rdev_set_radar_background, 2846c8a11ed5SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 2847c8a11ed5SJohannes Berg 2848c8a11ed5SJohannes Berg TP_ARGS(wiphy, chandef), 2849c8a11ed5SJohannes Berg 2850c8a11ed5SJohannes Berg TP_STRUCT__entry( 2851c8a11ed5SJohannes Berg WIPHY_ENTRY 2852c8a11ed5SJohannes Berg CHAN_DEF_ENTRY 2853c8a11ed5SJohannes Berg ), 2854c8a11ed5SJohannes Berg 2855c8a11ed5SJohannes Berg TP_fast_assign( 2856c8a11ed5SJohannes Berg WIPHY_ASSIGN; 2857c8a11ed5SJohannes Berg CHAN_DEF_ASSIGN(chandef) 2858c8a11ed5SJohannes Berg ), 2859c8a11ed5SJohannes Berg 2860c8a11ed5SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 2861c8a11ed5SJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 2862c8a11ed5SJohannes Berg ); 2863c8a11ed5SJohannes Berg 2864f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_add_intf_link, 2865f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2866f2a0290bSJohannes Berg unsigned int link_id), 2867f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2868f2a0290bSJohannes Berg ); 2869f2a0290bSJohannes Berg 2870f2a0290bSJohannes Berg DEFINE_EVENT(wiphy_wdev_link_evt, rdev_del_intf_link, 2871f2a0290bSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2872f2a0290bSJohannes Berg unsigned int link_id), 2873f2a0290bSJohannes Berg TP_ARGS(wiphy, wdev, link_id) 2874f2a0290bSJohannes Berg ); 2875f2a0290bSJohannes Berg 28764ee3e063SBeni Lev /************************************************************* 28774ee3e063SBeni Lev * cfg80211 exported functions traces * 28784ee3e063SBeni Lev *************************************************************/ 28794ee3e063SBeni Lev 28804ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 28814ee3e063SBeni Lev TP_PROTO(bool ret), 28824ee3e063SBeni Lev TP_ARGS(ret), 28834ee3e063SBeni Lev TP_STRUCT__entry( 28844ee3e063SBeni Lev __field(bool, ret) 28854ee3e063SBeni Lev ), 28864ee3e063SBeni Lev TP_fast_assign( 28874ee3e063SBeni Lev __entry->ret = ret; 28884ee3e063SBeni Lev ), 28894ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 28904ee3e063SBeni Lev ); 28914ee3e063SBeni Lev 28924ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 28934ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 28944ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 28954ee3e063SBeni Lev TP_STRUCT__entry( 28964ee3e063SBeni Lev NETDEV_ENTRY 28974ee3e063SBeni Lev MAC_ENTRY(macaddr) 28984ee3e063SBeni Lev ), 28994ee3e063SBeni Lev TP_fast_assign( 29004ee3e063SBeni Lev NETDEV_ASSIGN; 29014ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 29024ee3e063SBeni Lev ), 29033d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", mac: %pM", 29043d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->macaddr) 29054ee3e063SBeni Lev ); 29064ee3e063SBeni Lev 29074ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 29084ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 29094ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 29104ee3e063SBeni Lev ); 29114ee3e063SBeni Lev 29124ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 29134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 29144ee3e063SBeni Lev TP_ARGS(netdev), 29154ee3e063SBeni Lev TP_STRUCT__entry( 29164ee3e063SBeni Lev NETDEV_ENTRY 29174ee3e063SBeni Lev ), 29184ee3e063SBeni Lev TP_fast_assign( 29194ee3e063SBeni Lev NETDEV_ASSIGN; 29204ee3e063SBeni Lev ), 29214ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 29224ee3e063SBeni Lev ); 29234ee3e063SBeni Lev 29244ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 29254ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 29264ee3e063SBeni Lev TP_ARGS(netdev) 29274ee3e063SBeni Lev ); 29284ee3e063SBeni Lev 29294ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 29305cd212cbSJohannes Berg TP_PROTO(struct net_device *netdev, 29315cd212cbSJohannes Berg struct cfg80211_rx_assoc_resp *data), 29325cd212cbSJohannes Berg TP_ARGS(netdev, data), 29334ee3e063SBeni Lev TP_STRUCT__entry( 29344ee3e063SBeni Lev NETDEV_ENTRY 29355cd212cbSJohannes Berg MAC_ENTRY(ap_addr) 29364ee3e063SBeni Lev ), 29374ee3e063SBeni Lev TP_fast_assign( 29384ee3e063SBeni Lev NETDEV_ASSIGN; 29395cd212cbSJohannes Berg MAC_ASSIGN(ap_addr, 29405cd212cbSJohannes Berg data->ap_mld_addr ?: data->links[0].bss->bssid); 29414ee3e063SBeni Lev ), 29423d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM", 29433d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->ap_addr) 29444ee3e063SBeni Lev ); 29454ee3e063SBeni Lev 29466ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 29476ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29486ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 29496ff57cf8SJohannes Berg TP_STRUCT__entry( 29506ff57cf8SJohannes Berg NETDEV_ENTRY 29516ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29526ff57cf8SJohannes Berg ), 29536ff57cf8SJohannes Berg TP_fast_assign( 29546ff57cf8SJohannes Berg NETDEV_ASSIGN; 29556ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29566ff57cf8SJohannes Berg ), 29576ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 29586ff57cf8SJohannes Berg NETDEV_PR_ARG, 29596ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 29604ee3e063SBeni Lev ); 29614ee3e063SBeni Lev 29626ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 29636ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29646ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29654ee3e063SBeni Lev ); 29664ee3e063SBeni Lev 29676ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 29686ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 29696ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 29704ee3e063SBeni Lev ); 29714ee3e063SBeni Lev 29726ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 29733bb02143SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len, 29743bb02143SJohannes Berg bool reconnect), 29753bb02143SJohannes Berg TP_ARGS(netdev, buf, len, reconnect), 29766ff57cf8SJohannes Berg TP_STRUCT__entry( 29776ff57cf8SJohannes Berg NETDEV_ENTRY 29786ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 29793bb02143SJohannes Berg __field(int, reconnect) 29806ff57cf8SJohannes Berg ), 29816ff57cf8SJohannes Berg TP_fast_assign( 29826ff57cf8SJohannes Berg NETDEV_ASSIGN; 29836ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 29843bb02143SJohannes Berg __entry->reconnect = reconnect; 29856ff57cf8SJohannes Berg ), 29863bb02143SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x reconnect:%d", 29876ff57cf8SJohannes Berg NETDEV_PR_ARG, 29883bb02143SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame)), 29893bb02143SJohannes Berg __entry->reconnect) 29904ee3e063SBeni Lev ); 29914ee3e063SBeni Lev 29924ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 29934ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 29944ee3e063SBeni Lev TP_ARGS(netdev, mac), 29954ee3e063SBeni Lev TP_STRUCT__entry( 29964ee3e063SBeni Lev NETDEV_ENTRY 29974ee3e063SBeni Lev MAC_ENTRY(mac) 29984ee3e063SBeni Lev ), 29994ee3e063SBeni Lev TP_fast_assign( 30004ee3e063SBeni Lev NETDEV_ASSIGN; 30014ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 30024ee3e063SBeni Lev ), 30033d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", mac: %pM", 30043d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->mac) 30054ee3e063SBeni Lev ); 30064ee3e063SBeni Lev 30074ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 30084ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 30094ee3e063SBeni Lev TP_ARGS(netdev, mac) 30104ee3e063SBeni Lev ); 30114ee3e063SBeni Lev 3012f662d2f4SJohannes Berg TRACE_EVENT(cfg80211_send_assoc_failure, 3013f662d2f4SJohannes Berg TP_PROTO(struct net_device *netdev, 3014f662d2f4SJohannes Berg struct cfg80211_assoc_failure *data), 3015f662d2f4SJohannes Berg TP_ARGS(netdev, data), 3016f662d2f4SJohannes Berg TP_STRUCT__entry( 3017f662d2f4SJohannes Berg NETDEV_ENTRY 3018f662d2f4SJohannes Berg MAC_ENTRY(ap_addr) 3019f662d2f4SJohannes Berg __field(bool, timeout) 3020f662d2f4SJohannes Berg ), 3021f662d2f4SJohannes Berg TP_fast_assign( 3022f662d2f4SJohannes Berg NETDEV_ASSIGN; 3023f662d2f4SJohannes Berg MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid); 3024f662d2f4SJohannes Berg __entry->timeout = data->timeout; 3025f662d2f4SJohannes Berg ), 30263d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", mac: %pM, timeout: %d", 30273d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->ap_addr, __entry->timeout) 30284ee3e063SBeni Lev ); 30294ee3e063SBeni Lev 30304ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 30314ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 30324ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 30334ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 30344ee3e063SBeni Lev TP_STRUCT__entry( 30354ee3e063SBeni Lev NETDEV_ENTRY 30364ee3e063SBeni Lev MAC_ENTRY(addr) 30374ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 30384ee3e063SBeni Lev __field(int, key_id) 30394ee3e063SBeni Lev __array(u8, tsc, 6) 30404ee3e063SBeni Lev ), 30414ee3e063SBeni Lev TP_fast_assign( 30424ee3e063SBeni Lev NETDEV_ASSIGN; 30434ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 30444ee3e063SBeni Lev __entry->key_type = key_type; 30454ee3e063SBeni Lev __entry->key_id = key_id; 30468c26d458SEliad Peller if (tsc) 30474ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 30484ee3e063SBeni Lev ), 30493d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM, key type: %d, key id: %d, tsc: %pm", 30503d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->addr, __entry->key_type, 30514ee3e063SBeni Lev __entry->key_id, __entry->tsc) 30524ee3e063SBeni Lev ); 30534ee3e063SBeni Lev 30544ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 30554ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30564ee3e063SBeni Lev struct ieee80211_channel *chan, 305742d97a59SJohannes Berg unsigned int duration), 305842d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 30594ee3e063SBeni Lev TP_STRUCT__entry( 30604ee3e063SBeni Lev WDEV_ENTRY 30614ee3e063SBeni Lev __field(u64, cookie) 30624ee3e063SBeni Lev CHAN_ENTRY 30634ee3e063SBeni Lev __field(unsigned int, duration) 30644ee3e063SBeni Lev ), 30654ee3e063SBeni Lev TP_fast_assign( 30664ee3e063SBeni Lev WDEV_ASSIGN; 30674ee3e063SBeni Lev __entry->cookie = cookie; 30684ee3e063SBeni Lev CHAN_ASSIGN(chan); 30694ee3e063SBeni Lev __entry->duration = duration; 30704ee3e063SBeni Lev ), 307142d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 30724ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 307342d97a59SJohannes Berg __entry->duration) 30744ee3e063SBeni Lev ); 30754ee3e063SBeni Lev 30764ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 30774ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 307842d97a59SJohannes Berg struct ieee80211_channel *chan), 307942d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 30804ee3e063SBeni Lev TP_STRUCT__entry( 30814ee3e063SBeni Lev WDEV_ENTRY 30824ee3e063SBeni Lev __field(u64, cookie) 30834ee3e063SBeni Lev CHAN_ENTRY 30844ee3e063SBeni Lev ), 30854ee3e063SBeni Lev TP_fast_assign( 30864ee3e063SBeni Lev WDEV_ASSIGN; 30874ee3e063SBeni Lev __entry->cookie = cookie; 30884ee3e063SBeni Lev CHAN_ASSIGN(chan); 30894ee3e063SBeni Lev ), 309042d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 309142d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 30924ee3e063SBeni Lev ); 30934ee3e063SBeni Lev 30941c38c7f2SJames Prestwood TRACE_EVENT(cfg80211_tx_mgmt_expired, 30951c38c7f2SJames Prestwood TP_PROTO(struct wireless_dev *wdev, u64 cookie, 30961c38c7f2SJames Prestwood struct ieee80211_channel *chan), 30971c38c7f2SJames Prestwood TP_ARGS(wdev, cookie, chan), 30981c38c7f2SJames Prestwood TP_STRUCT__entry( 30991c38c7f2SJames Prestwood WDEV_ENTRY 31001c38c7f2SJames Prestwood __field(u64, cookie) 31011c38c7f2SJames Prestwood CHAN_ENTRY 31021c38c7f2SJames Prestwood ), 31031c38c7f2SJames Prestwood TP_fast_assign( 31041c38c7f2SJames Prestwood WDEV_ASSIGN; 31051c38c7f2SJames Prestwood __entry->cookie = cookie; 31061c38c7f2SJames Prestwood CHAN_ASSIGN(chan); 31071c38c7f2SJames Prestwood ), 31081c38c7f2SJames Prestwood TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 31091c38c7f2SJames Prestwood WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 31101c38c7f2SJames Prestwood ); 31111c38c7f2SJames Prestwood 31124ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 31134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 31144ee3e063SBeni Lev struct station_info *sinfo), 31154ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 31164ee3e063SBeni Lev TP_STRUCT__entry( 31174ee3e063SBeni Lev NETDEV_ENTRY 31184ee3e063SBeni Lev MAC_ENTRY(mac_addr) 31194ee3e063SBeni Lev SINFO_ENTRY 31204ee3e063SBeni Lev ), 31214ee3e063SBeni Lev TP_fast_assign( 31224ee3e063SBeni Lev NETDEV_ASSIGN; 31234ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 31244ee3e063SBeni Lev SINFO_ASSIGN; 31254ee3e063SBeni Lev ), 31263d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM", 31273d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->mac_addr) 31284ee3e063SBeni Lev ); 31294ee3e063SBeni Lev 31304ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 31314ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 31324ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 31334ee3e063SBeni Lev ); 31344ee3e063SBeni Lev 31354ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 313600b3d840SAvraham Stern TP_PROTO(struct wireless_dev *wdev, struct cfg80211_rx_info *info), 313700b3d840SAvraham Stern TP_ARGS(wdev, info), 31384ee3e063SBeni Lev TP_STRUCT__entry( 31394ee3e063SBeni Lev WDEV_ENTRY 31404ee3e063SBeni Lev __field(int, freq) 31416c2fb1e6SSergey Matyukevich __field(int, sig_dbm) 31424ee3e063SBeni Lev ), 31434ee3e063SBeni Lev TP_fast_assign( 31444ee3e063SBeni Lev WDEV_ASSIGN; 314500b3d840SAvraham Stern __entry->freq = info->freq; 314600b3d840SAvraham Stern __entry->sig_dbm = info->sig_dbm; 31474ee3e063SBeni Lev ), 3148e76fede8SThomas Pedersen TP_printk(WDEV_PR_FMT ", freq: "KHZ_F", sig dbm: %d", 3149e76fede8SThomas Pedersen WDEV_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 31504ee3e063SBeni Lev ); 31514ee3e063SBeni Lev 31524ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 31534ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 31544ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 31554ee3e063SBeni Lev TP_STRUCT__entry( 31564ee3e063SBeni Lev WDEV_ENTRY 31574ee3e063SBeni Lev __field(u64, cookie) 31584ee3e063SBeni Lev __field(bool, ack) 31594ee3e063SBeni Lev ), 31604ee3e063SBeni Lev TP_fast_assign( 31614ee3e063SBeni Lev WDEV_ASSIGN; 31624ee3e063SBeni Lev __entry->cookie = cookie; 31634ee3e063SBeni Lev __entry->ack = ack; 31644ee3e063SBeni Lev ), 31654ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 31664ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 31674ee3e063SBeni Lev ); 31684ee3e063SBeni Lev 3169dca9ca2dSMarkus Theil TRACE_EVENT(cfg80211_control_port_tx_status, 3170dca9ca2dSMarkus Theil TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 3171dca9ca2dSMarkus Theil TP_ARGS(wdev, cookie, ack), 3172dca9ca2dSMarkus Theil TP_STRUCT__entry( 3173dca9ca2dSMarkus Theil WDEV_ENTRY 3174dca9ca2dSMarkus Theil __field(u64, cookie) 3175dca9ca2dSMarkus Theil __field(bool, ack) 3176dca9ca2dSMarkus Theil ), 3177dca9ca2dSMarkus Theil TP_fast_assign( 3178dca9ca2dSMarkus Theil WDEV_ASSIGN; 3179dca9ca2dSMarkus Theil __entry->cookie = cookie; 3180dca9ca2dSMarkus Theil __entry->ack = ack; 3181dca9ca2dSMarkus Theil ), 3182dca9ca2dSMarkus Theil TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 3183dca9ca2dSMarkus Theil WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 3184dca9ca2dSMarkus Theil ); 3185dca9ca2dSMarkus Theil 31866a671a50SDenis Kenzior TRACE_EVENT(cfg80211_rx_control_port, 3187a948f713SDenis Kenzior TP_PROTO(struct net_device *netdev, struct sk_buff *skb, 31884c532321SJohannes Berg bool unencrypted, int link_id), 31894c532321SJohannes Berg TP_ARGS(netdev, skb, unencrypted, link_id), 31906a671a50SDenis Kenzior TP_STRUCT__entry( 31916a671a50SDenis Kenzior NETDEV_ENTRY 3192a948f713SDenis Kenzior __field(int, len) 3193a948f713SDenis Kenzior MAC_ENTRY(from) 31946a671a50SDenis Kenzior __field(u16, proto) 31956a671a50SDenis Kenzior __field(bool, unencrypted) 31964c532321SJohannes Berg __field(int, link_id) 31976a671a50SDenis Kenzior ), 31986a671a50SDenis Kenzior TP_fast_assign( 31996a671a50SDenis Kenzior NETDEV_ASSIGN; 3200a948f713SDenis Kenzior __entry->len = skb->len; 3201a948f713SDenis Kenzior MAC_ASSIGN(from, eth_hdr(skb)->h_source); 3202a948f713SDenis Kenzior __entry->proto = be16_to_cpu(skb->protocol); 32036a671a50SDenis Kenzior __entry->unencrypted = unencrypted; 32044c532321SJohannes Berg __entry->link_id = link_id; 32056a671a50SDenis Kenzior ), 32064c532321SJohannes Berg TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s, link: %d", 32073d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->len, __entry->from, 32084c532321SJohannes Berg __entry->proto, BOOL_TO_STR(__entry->unencrypted), 32094c532321SJohannes Berg __entry->link_id) 32106a671a50SDenis Kenzior ); 32116a671a50SDenis Kenzior 32124ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 32134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 3214bee427b8SAndrzej Zaborowski enum nl80211_cqm_rssi_threshold_event rssi_event, 3215bee427b8SAndrzej Zaborowski s32 rssi_level), 3216bee427b8SAndrzej Zaborowski TP_ARGS(netdev, rssi_event, rssi_level), 32174ee3e063SBeni Lev TP_STRUCT__entry( 32184ee3e063SBeni Lev NETDEV_ENTRY 32194ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 3220bee427b8SAndrzej Zaborowski __field(s32, rssi_level) 32214ee3e063SBeni Lev ), 32224ee3e063SBeni Lev TP_fast_assign( 32234ee3e063SBeni Lev NETDEV_ASSIGN; 32244ee3e063SBeni Lev __entry->rssi_event = rssi_event; 3225bee427b8SAndrzej Zaborowski __entry->rssi_level = rssi_level; 32264ee3e063SBeni Lev ), 3227bee427b8SAndrzej Zaborowski TP_printk(NETDEV_PR_FMT ", rssi event: %d, level: %d", 3228bee427b8SAndrzej Zaborowski NETDEV_PR_ARG, __entry->rssi_event, __entry->rssi_level) 32294ee3e063SBeni Lev ); 32304ee3e063SBeni Lev 3231683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 3232174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3233923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 3234923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 32354ee3e063SBeni Lev TP_STRUCT__entry( 32364ee3e063SBeni Lev WIPHY_ENTRY 3237683b6d3bSJohannes Berg CHAN_DEF_ENTRY 3238174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 3239923b352fSArik Nemtsov __field(bool, check_no_ir) 32404ee3e063SBeni Lev ), 32414ee3e063SBeni Lev TP_fast_assign( 32424ee3e063SBeni Lev WIPHY_ASSIGN; 3243683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 3244174e0cd2SIlan Peer __entry->iftype = iftype; 3245923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 32464ee3e063SBeni Lev ), 3247923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 3248923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 3249923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 32504ee3e063SBeni Lev ); 32514ee3e063SBeni Lev 325204f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 325304f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 325404f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 325504f39047SSimon Wunderlich TP_STRUCT__entry( 325604f39047SSimon Wunderlich WIPHY_ENTRY 325704f39047SSimon Wunderlich CHAN_DEF_ENTRY 325804f39047SSimon Wunderlich ), 325904f39047SSimon Wunderlich TP_fast_assign( 326004f39047SSimon Wunderlich WIPHY_ASSIGN; 326104f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 326204f39047SSimon Wunderlich ), 326304f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 326404f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 326504f39047SSimon Wunderlich ); 326604f39047SSimon Wunderlich 32674ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 3268683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 32697b0a0e3cSJohannes Berg struct cfg80211_chan_def *chandef, 3270b345f063SAloka Dixit unsigned int link_id, 3271b345f063SAloka Dixit u16 punct_bitmap), 3272b345f063SAloka Dixit TP_ARGS(netdev, chandef, link_id, punct_bitmap), 32734ee3e063SBeni Lev TP_STRUCT__entry( 32744ee3e063SBeni Lev NETDEV_ENTRY 3275683b6d3bSJohannes Berg CHAN_DEF_ENTRY 32767b0a0e3cSJohannes Berg __field(unsigned int, link_id) 3277b345f063SAloka Dixit __field(u16, punct_bitmap) 32784ee3e063SBeni Lev ), 32794ee3e063SBeni Lev TP_fast_assign( 32804ee3e063SBeni Lev NETDEV_ASSIGN; 3281683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 32827b0a0e3cSJohannes Berg __entry->link_id = link_id; 3283b345f063SAloka Dixit __entry->punct_bitmap = punct_bitmap; 32844ee3e063SBeni Lev ), 3285b345f063SAloka Dixit TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u", 3286b345f063SAloka Dixit NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id, 3287b345f063SAloka Dixit __entry->punct_bitmap) 32884ee3e063SBeni Lev ); 32894ee3e063SBeni Lev 3290f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 3291f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 3292b8c9024eSVeerendranath Jakkam struct cfg80211_chan_def *chandef, 3293b345f063SAloka Dixit unsigned int link_id, 3294b345f063SAloka Dixit u16 punct_bitmap), 3295b345f063SAloka Dixit TP_ARGS(netdev, chandef, link_id, punct_bitmap), 3296f8d7552eSLuciano Coelho TP_STRUCT__entry( 3297f8d7552eSLuciano Coelho NETDEV_ENTRY 3298f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 3299b8c9024eSVeerendranath Jakkam __field(unsigned int, link_id) 3300b345f063SAloka Dixit __field(u16, punct_bitmap) 3301f8d7552eSLuciano Coelho ), 3302f8d7552eSLuciano Coelho TP_fast_assign( 3303f8d7552eSLuciano Coelho NETDEV_ASSIGN; 3304f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 3305b8c9024eSVeerendranath Jakkam __entry->link_id = link_id; 3306b345f063SAloka Dixit __entry->punct_bitmap = punct_bitmap; 3307f8d7552eSLuciano Coelho ), 3308b345f063SAloka Dixit TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u", 3309b345f063SAloka Dixit NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id, 3310b345f063SAloka Dixit __entry->punct_bitmap) 3311f8d7552eSLuciano Coelho ); 3312f8d7552eSLuciano Coelho 331304f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 3314c47240cbSLorenzo Bianconi TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 3315c47240cbSLorenzo Bianconi bool offchan), 3316c47240cbSLorenzo Bianconi TP_ARGS(wiphy, chandef, offchan), 331704f39047SSimon Wunderlich TP_STRUCT__entry( 331804f39047SSimon Wunderlich WIPHY_ENTRY 331904f39047SSimon Wunderlich CHAN_DEF_ENTRY 3320c47240cbSLorenzo Bianconi __field(bool, offchan) 332104f39047SSimon Wunderlich ), 332204f39047SSimon Wunderlich TP_fast_assign( 332304f39047SSimon Wunderlich WIPHY_ASSIGN; 332404f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 3325c47240cbSLorenzo Bianconi __entry->offchan = offchan; 332604f39047SSimon Wunderlich ), 3327c47240cbSLorenzo Bianconi TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", offchan %d", 3328c47240cbSLorenzo Bianconi WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->offchan) 332904f39047SSimon Wunderlich ); 333004f39047SSimon Wunderlich 333104f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 333204f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 333304f39047SSimon Wunderlich TP_ARGS(netdev, evt), 333404f39047SSimon Wunderlich TP_STRUCT__entry( 333504f39047SSimon Wunderlich NETDEV_ENTRY 333604f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 333704f39047SSimon Wunderlich ), 333804f39047SSimon Wunderlich TP_fast_assign( 333904f39047SSimon Wunderlich NETDEV_ASSIGN; 334004f39047SSimon Wunderlich __entry->evt = evt; 334104f39047SSimon Wunderlich ), 334204f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 334304f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 334404f39047SSimon Wunderlich ); 334504f39047SSimon Wunderlich 33464ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 33474ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33484ee3e063SBeni Lev TP_ARGS(netdev, addr), 33494ee3e063SBeni Lev TP_STRUCT__entry( 33504ee3e063SBeni Lev NETDEV_ENTRY 33514ee3e063SBeni Lev MAC_ENTRY(addr) 33524ee3e063SBeni Lev ), 33534ee3e063SBeni Lev TP_fast_assign( 33544ee3e063SBeni Lev NETDEV_ASSIGN; 33554ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 33564ee3e063SBeni Lev ), 33573d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", %pM", NETDEV_PR_ARG, __entry->addr) 33584ee3e063SBeni Lev ); 33594ee3e063SBeni Lev 33604ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 33614ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33624ee3e063SBeni Lev TP_ARGS(netdev, addr) 33634ee3e063SBeni Lev ); 33644ee3e063SBeni Lev 33654ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 33664ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 33674ee3e063SBeni Lev TP_ARGS(netdev, addr) 33684ee3e063SBeni Lev ); 33694ee3e063SBeni Lev 3370fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 3371fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 3372fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 3373fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 3374fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 3375fe94f3a4SAntonio Quartulli NETDEV_ENTRY 3376fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 3377fe94f3a4SAntonio Quartulli CHAN_ENTRY 3378fe94f3a4SAntonio Quartulli ), 3379fe94f3a4SAntonio Quartulli TP_fast_assign( 3380fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 3381fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 3382fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 3383fe94f3a4SAntonio Quartulli ), 33843d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", bssid: %pM, " CHAN_PR_FMT, 33853d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->bssid, CHAN_PR_ARG) 3386fe94f3a4SAntonio Quartulli ); 3387fe94f3a4SAntonio Quartulli 33884ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 33894ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 33904ee3e063SBeni Lev bool acked), 33914ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 33924ee3e063SBeni Lev TP_STRUCT__entry( 33934ee3e063SBeni Lev NETDEV_ENTRY 33944ee3e063SBeni Lev MAC_ENTRY(addr) 33954ee3e063SBeni Lev __field(u64, cookie) 33964ee3e063SBeni Lev __field(bool, acked) 33974ee3e063SBeni Lev ), 33984ee3e063SBeni Lev TP_fast_assign( 33994ee3e063SBeni Lev NETDEV_ASSIGN; 34004ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 34014ee3e063SBeni Lev __entry->cookie = cookie; 34024ee3e063SBeni Lev __entry->acked = acked; 34034ee3e063SBeni Lev ), 34043d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:%pM, cookie: %llu, acked: %s", 34053d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->addr, __entry->cookie, 34064ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 34074ee3e063SBeni Lev ); 34084ee3e063SBeni Lev 34094ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 34104ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 34114ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 34124ee3e063SBeni Lev TP_STRUCT__entry( 34134ee3e063SBeni Lev NETDEV_ENTRY 34144ee3e063SBeni Lev MAC_ENTRY(peer) 34154ee3e063SBeni Lev __field(u32, num_packets) 34164ee3e063SBeni Lev ), 34174ee3e063SBeni Lev TP_fast_assign( 34184ee3e063SBeni Lev NETDEV_ASSIGN; 34194ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 34204ee3e063SBeni Lev __entry->num_packets = num_packets; 34214ee3e063SBeni Lev ), 34223d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", peer: %pM, num of lost packets: %u", 34233d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->peer, __entry->num_packets) 34244ee3e063SBeni Lev ); 34254ee3e063SBeni Lev 34264ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 34274ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 34284ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 34294ee3e063SBeni Lev ); 34304ee3e063SBeni Lev 34314ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 34324ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 34334ee3e063SBeni Lev bool preauth), 34344ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 34354ee3e063SBeni Lev TP_STRUCT__entry( 34364ee3e063SBeni Lev NETDEV_ENTRY 34374ee3e063SBeni Lev __field(int, index) 34384ee3e063SBeni Lev MAC_ENTRY(bssid) 34394ee3e063SBeni Lev __field(bool, preauth) 34404ee3e063SBeni Lev ), 34414ee3e063SBeni Lev TP_fast_assign( 34424ee3e063SBeni Lev NETDEV_ASSIGN; 34434ee3e063SBeni Lev __entry->index = index; 34444ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 34454ee3e063SBeni Lev __entry->preauth = preauth; 34464ee3e063SBeni Lev ), 34473d9c3617SJohannes Berg TP_printk(NETDEV_PR_FMT ", index:%d, bssid: %pM, pre auth: %s", 34483d9c3617SJohannes Berg NETDEV_PR_ARG, __entry->index, __entry->bssid, 34494ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 34504ee3e063SBeni Lev ); 34514ee3e063SBeni Lev 34524ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 34534ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 34544ee3e063SBeni Lev int freq, int sig_dbm), 34554ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 34564ee3e063SBeni Lev TP_STRUCT__entry( 34574ee3e063SBeni Lev WIPHY_ENTRY 34584ee3e063SBeni Lev __field(int, freq) 34594ee3e063SBeni Lev __field(int, sig_dbm) 34604ee3e063SBeni Lev ), 34614ee3e063SBeni Lev TP_fast_assign( 34624ee3e063SBeni Lev WIPHY_ASSIGN; 34634ee3e063SBeni Lev __entry->freq = freq; 34644ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 34654ee3e063SBeni Lev ), 3466e76fede8SThomas Pedersen TP_printk(WIPHY_PR_FMT ", freq: "KHZ_F", sig_dbm: %d", 3467e76fede8SThomas Pedersen WIPHY_PR_ARG, PR_KHZ(__entry->freq), __entry->sig_dbm) 34684ee3e063SBeni Lev ); 34694ee3e063SBeni Lev 34703475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 34713475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 34723475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 34733475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 34743475b094SJouni Malinen TP_STRUCT__entry( 34753475b094SJouni Malinen WIPHY_ENTRY 34763475b094SJouni Malinen NETDEV_ENTRY 34773475b094SJouni Malinen MAC_ENTRY(peer) 34783475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 34793475b094SJouni Malinen __field(u16, reason_code) 34803475b094SJouni Malinen ), 34813475b094SJouni Malinen TP_fast_assign( 34823475b094SJouni Malinen WIPHY_ASSIGN; 34833475b094SJouni Malinen NETDEV_ASSIGN; 34843475b094SJouni Malinen MAC_ASSIGN(peer, peer); 34853475b094SJouni Malinen __entry->oper = oper; 34863475b094SJouni Malinen __entry->reason_code = reason_code; 34873475b094SJouni Malinen ), 34883d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, oper: %d, reason_code %u", 34893d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper, 34903475b094SJouni Malinen __entry->reason_code) 34913475b094SJouni Malinen ); 34923475b094SJouni Malinen 34934ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 34941d76250bSAvraham Stern TP_PROTO(struct cfg80211_scan_request *request, 34951d76250bSAvraham Stern struct cfg80211_scan_info *info), 34961d76250bSAvraham Stern TP_ARGS(request, info), 34974ee3e063SBeni Lev TP_STRUCT__entry( 34984ee3e063SBeni Lev __field(u32, n_channels) 34994ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 350057fbcce3SJohannes Berg __array(u32, rates, NUM_NL80211_BANDS) 35014ee3e063SBeni Lev __field(u32, wdev_id) 35024ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 35034ee3e063SBeni Lev __field(bool, no_cck) 35044ee3e063SBeni Lev __field(bool, aborted) 35051d76250bSAvraham Stern __field(u64, scan_start_tsf) 35061d76250bSAvraham Stern MAC_ENTRY(tsf_bssid) 35074ee3e063SBeni Lev ), 35084ee3e063SBeni Lev TP_fast_assign( 35094ee3e063SBeni Lev if (request) { 35104ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 35114ee3e063SBeni Lev request->ie_len); 35124ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 351357fbcce3SJohannes Berg NUM_NL80211_BANDS); 35144ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 35154ee3e063SBeni Lev request->wdev->identifier : 0; 35164ee3e063SBeni Lev if (request->wiphy) 35174ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 35184ee3e063SBeni Lev request->wiphy->perm_addr); 35194ee3e063SBeni Lev __entry->no_cck = request->no_cck; 35204ee3e063SBeni Lev } 35211d76250bSAvraham Stern if (info) { 35221d76250bSAvraham Stern __entry->aborted = info->aborted; 35231d76250bSAvraham Stern __entry->scan_start_tsf = info->scan_start_tsf; 35241d76250bSAvraham Stern MAC_ASSIGN(tsf_bssid, info->tsf_bssid); 35251d76250bSAvraham Stern } 35264ee3e063SBeni Lev ), 35273d9c3617SJohannes Berg TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: %pM", 35281d76250bSAvraham Stern BOOL_TO_STR(__entry->aborted), 35291d76250bSAvraham Stern (unsigned long long)__entry->scan_start_tsf, 35303d9c3617SJohannes Berg __entry->tsf_bssid) 35314ee3e063SBeni Lev ); 35324ee3e063SBeni Lev 3533b34939b9SArend Van Spriel DECLARE_EVENT_CLASS(wiphy_id_evt, 3534b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3535b34939b9SArend Van Spriel TP_ARGS(wiphy, id), 3536b34939b9SArend Van Spriel TP_STRUCT__entry( 3537b34939b9SArend Van Spriel WIPHY_ENTRY 3538b34939b9SArend Van Spriel __field(u64, id) 3539b34939b9SArend Van Spriel ), 3540b34939b9SArend Van Spriel TP_fast_assign( 3541b34939b9SArend Van Spriel WIPHY_ASSIGN; 3542b34939b9SArend Van Spriel __entry->id = id; 3543b34939b9SArend Van Spriel ), 3544b34939b9SArend Van Spriel TP_printk(WIPHY_PR_FMT ", id: %llu", WIPHY_PR_ARG, __entry->id) 35454ee3e063SBeni Lev ); 35464ee3e063SBeni Lev 3547b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_stopped, 3548b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3549b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 3550b34939b9SArend Van Spriel ); 3551b34939b9SArend Van Spriel 3552b34939b9SArend Van Spriel DEFINE_EVENT(wiphy_id_evt, cfg80211_sched_scan_results, 3553b34939b9SArend Van Spriel TP_PROTO(struct wiphy *wiphy, u64 id), 3554b34939b9SArend Van Spriel TP_ARGS(wiphy, id) 35554ee3e063SBeni Lev ); 35564ee3e063SBeni Lev 35574ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 35584ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 35594ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 35606eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 35616eb18137SDedy Lansky enum ieee80211_privacy privacy), 35626eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 35634ee3e063SBeni Lev TP_STRUCT__entry( 35644ee3e063SBeni Lev WIPHY_ENTRY 35654ee3e063SBeni Lev CHAN_ENTRY 35664ee3e063SBeni Lev MAC_ENTRY(bssid) 35674ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 35686eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 35696eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 35704ee3e063SBeni Lev ), 35714ee3e063SBeni Lev TP_fast_assign( 35724ee3e063SBeni Lev WIPHY_ASSIGN; 35734ee3e063SBeni Lev CHAN_ASSIGN(channel); 35744ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 35754ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 35766eb18137SDedy Lansky __entry->bss_type = bss_type; 35776eb18137SDedy Lansky __entry->privacy = privacy; 35784ee3e063SBeni Lev ), 35793d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", %pM" 35806eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 35813d9c3617SJohannes Berg WIPHY_PR_ARG, CHAN_PR_ARG, __entry->bssid, 35826eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 35836eb18137SDedy Lansky __entry->privacy) 35844ee3e063SBeni Lev ); 35854ee3e063SBeni Lev 35866e19bc4bSDmitry Shmidt TRACE_EVENT(cfg80211_inform_bss_frame, 35876e19bc4bSDmitry Shmidt TP_PROTO(struct wiphy *wiphy, struct cfg80211_inform_bss *data, 35886e19bc4bSDmitry Shmidt struct ieee80211_mgmt *mgmt, size_t len), 35896e19bc4bSDmitry Shmidt TP_ARGS(wiphy, data, mgmt, len), 35904ee3e063SBeni Lev TP_STRUCT__entry( 35914ee3e063SBeni Lev WIPHY_ENTRY 35924ee3e063SBeni Lev CHAN_ENTRY 3593dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 35944ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 35954ee3e063SBeni Lev __field(s32, signal) 35966e19bc4bSDmitry Shmidt __field(u64, ts_boottime) 35971d76250bSAvraham Stern __field(u64, parent_tsf) 35981d76250bSAvraham Stern MAC_ENTRY(parent_bssid) 35994ee3e063SBeni Lev ), 36004ee3e063SBeni Lev TP_fast_assign( 36014ee3e063SBeni Lev WIPHY_ASSIGN; 36026e19bc4bSDmitry Shmidt CHAN_ASSIGN(data->chan); 36036e19bc4bSDmitry Shmidt __entry->scan_width = data->scan_width; 36044ee3e063SBeni Lev if (mgmt) 36054ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 36066e19bc4bSDmitry Shmidt __entry->signal = data->signal; 36076e19bc4bSDmitry Shmidt __entry->ts_boottime = data->boottime_ns; 36081d76250bSAvraham Stern __entry->parent_tsf = data->parent_tsf; 36091d76250bSAvraham Stern MAC_ASSIGN(parent_bssid, data->parent_bssid); 36104ee3e063SBeni Lev ), 36111d76250bSAvraham Stern TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT 36123d9c3617SJohannes Berg "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: %pM", 36133d9c3617SJohannes Berg WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 36141d76250bSAvraham Stern __entry->signal, (unsigned long long)__entry->ts_boottime, 36151d76250bSAvraham Stern (unsigned long long)__entry->parent_tsf, 36163d9c3617SJohannes Berg __entry->parent_bssid) 36174ee3e063SBeni Lev ); 36184ee3e063SBeni Lev 36194ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 36204ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 36214ee3e063SBeni Lev TP_ARGS(pub), 36224ee3e063SBeni Lev TP_STRUCT__entry( 36234ee3e063SBeni Lev MAC_ENTRY(bssid) 36244ee3e063SBeni Lev CHAN_ENTRY 36254ee3e063SBeni Lev ), 36264ee3e063SBeni Lev TP_fast_assign( 36274ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 36284ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 36294ee3e063SBeni Lev ), 36303d9c3617SJohannes Berg TP_printk("%pM, " CHAN_PR_FMT, __entry->bssid, CHAN_PR_ARG) 36314ee3e063SBeni Lev ); 36324ee3e063SBeni Lev 36334ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 36344ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 36354ee3e063SBeni Lev TP_ARGS(pub) 36364ee3e063SBeni Lev ); 36374ee3e063SBeni Lev 36384ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 36394ee3e063SBeni Lev TP_PROTO(unsigned int ret), 36404ee3e063SBeni Lev TP_ARGS(ret), 36414ee3e063SBeni Lev TP_STRUCT__entry( 36424ee3e063SBeni Lev __field(unsigned int, ret) 36434ee3e063SBeni Lev ), 36444ee3e063SBeni Lev TP_fast_assign( 36454ee3e063SBeni Lev __entry->ret = ret; 36464ee3e063SBeni Lev ), 36474ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 36484ee3e063SBeni Lev ); 36494ee3e063SBeni Lev 36504ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 36514ee3e063SBeni Lev TP_PROTO(u32 ret), 36524ee3e063SBeni Lev TP_ARGS(ret), 36534ee3e063SBeni Lev TP_STRUCT__entry( 36544ee3e063SBeni Lev __field(u32, ret) 36554ee3e063SBeni Lev ), 36564ee3e063SBeni Lev TP_fast_assign( 36574ee3e063SBeni Lev __entry->ret = ret; 36584ee3e063SBeni Lev ), 36594ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 36604ee3e063SBeni Lev ); 36614ee3e063SBeni Lev 3662cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 3663cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 3664cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 3665cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 3666cd8f7cb4SJohannes Berg TP_STRUCT__entry( 3667cd8f7cb4SJohannes Berg WIPHY_ENTRY 3668cd8f7cb4SJohannes Berg WDEV_ENTRY 3669a92eecbbSJohannes Berg __field(bool, non_wireless) 3670cd8f7cb4SJohannes Berg __field(bool, disconnect) 3671cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 3672cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 3673cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 3674cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 3675cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 3676cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 3677cd8f7cb4SJohannes Berg __field(u32, packet_len) 3678a92eecbbSJohannes Berg __dynamic_array(u8, packet, 3679a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 3680cd8f7cb4SJohannes Berg ), 3681cd8f7cb4SJohannes Berg TP_fast_assign( 3682cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 3683cd8f7cb4SJohannes Berg WDEV_ASSIGN; 3684a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 3685a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 3686a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 3687a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 3688a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 3689a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 3690a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 3691a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 3692a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 3693a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 3694cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 3695cd8f7cb4SJohannes Berg wakeup->packet_present_len); 3696cd8f7cb4SJohannes Berg ), 3697cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 3698cd8f7cb4SJohannes Berg ); 3699cd8f7cb4SJohannes Berg 3700355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 3701355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3702355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 3703355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 3704355199e0SJouni Malinen TP_STRUCT__entry( 3705355199e0SJouni Malinen WIPHY_ENTRY 3706355199e0SJouni Malinen NETDEV_ENTRY 3707355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 3708355199e0SJouni Malinen MAC_ENTRY(target_ap) 3709355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 3710355199e0SJouni Malinen ), 3711355199e0SJouni Malinen TP_fast_assign( 3712355199e0SJouni Malinen WIPHY_ASSIGN; 3713355199e0SJouni Malinen NETDEV_ASSIGN; 3714355199e0SJouni Malinen if (ft_event->ies) 3715355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 3716355199e0SJouni Malinen ft_event->ies_len); 3717355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 3718355199e0SJouni Malinen if (ft_event->ric_ies) 3719355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 3720355199e0SJouni Malinen ft_event->ric_ies_len); 3721355199e0SJouni Malinen ), 37223d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: %pM", 37233d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->target_ap) 3724355199e0SJouni Malinen ); 3725355199e0SJouni Malinen 3726f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 3727f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 3728f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 3729f04c2203SMichal Kazior TP_STRUCT__entry( 3730f04c2203SMichal Kazior WIPHY_ENTRY 3731f04c2203SMichal Kazior WDEV_ENTRY 3732f04c2203SMichal Kazior ), 3733f04c2203SMichal Kazior TP_fast_assign( 3734f04c2203SMichal Kazior WIPHY_ASSIGN; 3735f04c2203SMichal Kazior WDEV_ASSIGN; 3736f04c2203SMichal Kazior ), 3737f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 3738f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 3739f04c2203SMichal Kazior ); 37409bb7e0f2SJohannes Berg 37419bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_report, 37429bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 37439bb7e0f2SJohannes Berg u64 cookie, const u8 *addr), 37449bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie, addr), 37459bb7e0f2SJohannes Berg TP_STRUCT__entry( 37469bb7e0f2SJohannes Berg WIPHY_ENTRY 37479bb7e0f2SJohannes Berg WDEV_ENTRY 37489bb7e0f2SJohannes Berg __field(u64, cookie) 37499bb7e0f2SJohannes Berg MAC_ENTRY(addr) 37509bb7e0f2SJohannes Berg ), 37519bb7e0f2SJohannes Berg TP_fast_assign( 37529bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37539bb7e0f2SJohannes Berg WDEV_ASSIGN; 37549bb7e0f2SJohannes Berg __entry->cookie = cookie; 37559bb7e0f2SJohannes Berg MAC_ASSIGN(addr, addr); 37569bb7e0f2SJohannes Berg ), 37573d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, %pM", 37589bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37599bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie, 37603d9c3617SJohannes Berg __entry->addr) 37619bb7e0f2SJohannes Berg ); 37629bb7e0f2SJohannes Berg 37639bb7e0f2SJohannes Berg TRACE_EVENT(cfg80211_pmsr_complete, 37649bb7e0f2SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 37659bb7e0f2SJohannes Berg TP_ARGS(wiphy, wdev, cookie), 37669bb7e0f2SJohannes Berg TP_STRUCT__entry( 37679bb7e0f2SJohannes Berg WIPHY_ENTRY 37689bb7e0f2SJohannes Berg WDEV_ENTRY 37699bb7e0f2SJohannes Berg __field(u64, cookie) 37709bb7e0f2SJohannes Berg ), 37719bb7e0f2SJohannes Berg TP_fast_assign( 37729bb7e0f2SJohannes Berg WIPHY_ASSIGN; 37739bb7e0f2SJohannes Berg WDEV_ASSIGN; 37749bb7e0f2SJohannes Berg __entry->cookie = cookie; 37759bb7e0f2SJohannes Berg ), 37769bb7e0f2SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld", 37779bb7e0f2SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, 37789bb7e0f2SJohannes Berg (unsigned long long)__entry->cookie) 37799bb7e0f2SJohannes Berg ); 3780cb74e977SSunil Dutt 3781cb74e977SSunil Dutt TRACE_EVENT(cfg80211_update_owe_info_event, 3782cb74e977SSunil Dutt TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3783cb74e977SSunil Dutt struct cfg80211_update_owe_info *owe_info), 3784cb74e977SSunil Dutt TP_ARGS(wiphy, netdev, owe_info), 37858bb588d9SVeerendranath Jakkam TP_STRUCT__entry( 37868bb588d9SVeerendranath Jakkam WIPHY_ENTRY 3787cb74e977SSunil Dutt NETDEV_ENTRY 3788cb74e977SSunil Dutt MAC_ENTRY(peer) 37898bb588d9SVeerendranath Jakkam __dynamic_array(u8, ie, owe_info->ie_len) 37908bb588d9SVeerendranath Jakkam __field(int, assoc_link_id) 37918bb588d9SVeerendranath Jakkam MAC_ENTRY(peer_mld_addr) 37928bb588d9SVeerendranath Jakkam ), 37938bb588d9SVeerendranath Jakkam TP_fast_assign( 37948bb588d9SVeerendranath Jakkam WIPHY_ASSIGN; 3795cb74e977SSunil Dutt NETDEV_ASSIGN; 3796cb74e977SSunil Dutt MAC_ASSIGN(peer, owe_info->peer); 3797cb74e977SSunil Dutt memcpy(__get_dynamic_array(ie), owe_info->ie, 37988bb588d9SVeerendranath Jakkam owe_info->ie_len); 37998bb588d9SVeerendranath Jakkam __entry->assoc_link_id = owe_info->assoc_link_id; 38008bb588d9SVeerendranath Jakkam MAC_ASSIGN(peer_mld_addr, owe_info->peer_mld_addr); 38018bb588d9SVeerendranath Jakkam ), 38028bb588d9SVeerendranath Jakkam TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM," 38038bb588d9SVeerendranath Jakkam " assoc_link_id: %d, peer_mld_addr: %pM", 38048bb588d9SVeerendranath Jakkam WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, 38058bb588d9SVeerendranath Jakkam __entry->assoc_link_id, __entry->peer_mld_addr) 3806cb74e977SSunil Dutt ); 3807cb74e977SSunil Dutt 38080d2ab3aeSJohn Crispin TRACE_EVENT(cfg80211_bss_color_notify, 38090d2ab3aeSJohn Crispin TP_PROTO(struct net_device *netdev, 38100d2ab3aeSJohn Crispin enum nl80211_commands cmd, 38110d2ab3aeSJohn Crispin u8 count, u64 color_bitmap), 38120d2ab3aeSJohn Crispin TP_ARGS(netdev, cmd, count, color_bitmap), 38130d2ab3aeSJohn Crispin TP_STRUCT__entry( 38140d2ab3aeSJohn Crispin NETDEV_ENTRY 3815c448f0fdSJohannes Berg __field(u32, cmd) 38160d2ab3aeSJohn Crispin __field(u8, count) 38170d2ab3aeSJohn Crispin __field(u64, color_bitmap) 38180d2ab3aeSJohn Crispin ), 38190d2ab3aeSJohn Crispin TP_fast_assign( 38200d2ab3aeSJohn Crispin NETDEV_ASSIGN; 38210d2ab3aeSJohn Crispin __entry->cmd = cmd; 38220d2ab3aeSJohn Crispin __entry->count = count; 38230d2ab3aeSJohn Crispin __entry->color_bitmap = color_bitmap; 38240d2ab3aeSJohn Crispin ), 38250d2ab3aeSJohn Crispin TP_printk(NETDEV_PR_FMT ", cmd: %x, count: %u, bitmap: %llx", 38260d2ab3aeSJohn Crispin NETDEV_PR_ARG, __entry->cmd, __entry->count, 38270d2ab3aeSJohn Crispin __entry->color_bitmap) 38280d2ab3aeSJohn Crispin ); 38290d2ab3aeSJohn Crispin 3830a083ee8aSIlan Peer TRACE_EVENT(cfg80211_assoc_comeback, 3831e69dac88SJohannes Berg TP_PROTO(struct wireless_dev *wdev, const u8 *ap_addr, u32 timeout), 3832e69dac88SJohannes Berg TP_ARGS(wdev, ap_addr, timeout), 3833a083ee8aSIlan Peer TP_STRUCT__entry( 3834a083ee8aSIlan Peer WDEV_ENTRY 3835e69dac88SJohannes Berg MAC_ENTRY(ap_addr) 3836a083ee8aSIlan Peer __field(u32, timeout) 3837a083ee8aSIlan Peer ), 3838a083ee8aSIlan Peer TP_fast_assign( 3839a083ee8aSIlan Peer WDEV_ASSIGN; 3840e69dac88SJohannes Berg MAC_ASSIGN(ap_addr, ap_addr); 3841a083ee8aSIlan Peer __entry->timeout = timeout; 3842a083ee8aSIlan Peer ), 38433d9c3617SJohannes Berg TP_printk(WDEV_PR_FMT ", %pM, timeout: %u TUs", 38443d9c3617SJohannes Berg WDEV_PR_ARG, __entry->ap_addr, __entry->timeout) 3845a083ee8aSIlan Peer ); 3846a083ee8aSIlan Peer 3847577e5b8cSShaul Triebitz DECLARE_EVENT_CLASS(link_station_add_mod, 3848577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3849577e5b8cSShaul Triebitz struct link_station_parameters *params), 3850577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3851577e5b8cSShaul Triebitz TP_STRUCT__entry( 3852577e5b8cSShaul Triebitz WIPHY_ENTRY 3853577e5b8cSShaul Triebitz NETDEV_ENTRY 3854577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3855577e5b8cSShaul Triebitz __array(u8, link_mac, 6) 3856577e5b8cSShaul Triebitz __field(u32, link_id) 3857577e5b8cSShaul Triebitz __dynamic_array(u8, supported_rates, 3858577e5b8cSShaul Triebitz params->supported_rates_len) 3859577e5b8cSShaul Triebitz __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 3860577e5b8cSShaul Triebitz __array(u8, vht_capa, (int)sizeof(struct ieee80211_vht_cap)) 3861577e5b8cSShaul Triebitz __field(u8, opmode_notif) 3862577e5b8cSShaul Triebitz __field(bool, opmode_notif_used) 3863577e5b8cSShaul Triebitz __dynamic_array(u8, he_capa, params->he_capa_len) 3864577e5b8cSShaul Triebitz __array(u8, he_6ghz_capa, (int)sizeof(struct ieee80211_he_6ghz_capa)) 3865577e5b8cSShaul Triebitz __dynamic_array(u8, eht_capa, params->eht_capa_len) 3866577e5b8cSShaul Triebitz ), 3867577e5b8cSShaul Triebitz TP_fast_assign( 3868577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3869577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3870577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3871577e5b8cSShaul Triebitz memset(__entry->link_mac, 0, 6); 3872577e5b8cSShaul Triebitz if (params->mld_mac) 3873577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3874577e5b8cSShaul Triebitz if (params->link_mac) 3875577e5b8cSShaul Triebitz memcpy(__entry->link_mac, params->link_mac, 6); 3876577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3877577e5b8cSShaul Triebitz if (params->supported_rates && params->supported_rates_len) 3878577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(supported_rates), 3879577e5b8cSShaul Triebitz params->supported_rates, 3880577e5b8cSShaul Triebitz params->supported_rates_len); 3881577e5b8cSShaul Triebitz memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 3882577e5b8cSShaul Triebitz if (params->ht_capa) 3883577e5b8cSShaul Triebitz memcpy(__entry->ht_capa, params->ht_capa, 3884577e5b8cSShaul Triebitz sizeof(struct ieee80211_ht_cap)); 3885577e5b8cSShaul Triebitz memset(__entry->vht_capa, 0, sizeof(struct ieee80211_vht_cap)); 3886577e5b8cSShaul Triebitz if (params->vht_capa) 3887577e5b8cSShaul Triebitz memcpy(__entry->vht_capa, params->vht_capa, 3888577e5b8cSShaul Triebitz sizeof(struct ieee80211_vht_cap)); 3889577e5b8cSShaul Triebitz __entry->opmode_notif = params->opmode_notif; 3890577e5b8cSShaul Triebitz __entry->opmode_notif_used = params->opmode_notif_used; 3891577e5b8cSShaul Triebitz if (params->he_capa && params->he_capa_len) 3892577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(he_capa), params->he_capa, 3893577e5b8cSShaul Triebitz params->he_capa_len); 3894577e5b8cSShaul Triebitz memset(__entry->he_6ghz_capa, 0, sizeof(struct ieee80211_he_6ghz_capa)); 3895577e5b8cSShaul Triebitz if (params->he_6ghz_capa) 3896577e5b8cSShaul Triebitz memcpy(__entry->he_6ghz_capa, params->he_6ghz_capa, 3897577e5b8cSShaul Triebitz sizeof(struct ieee80211_he_6ghz_capa)); 3898577e5b8cSShaul Triebitz if (params->eht_capa && params->eht_capa_len) 3899577e5b8cSShaul Triebitz memcpy(__get_dynamic_array(eht_capa), params->eht_capa, 3900577e5b8cSShaul Triebitz params->eht_capa_len); 3901577e5b8cSShaul Triebitz ), 39023d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM" 39033d9c3617SJohannes Berg ", link mac: %pM, link id: %u", 39043d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac, 39053d9c3617SJohannes Berg __entry->link_mac, __entry->link_id) 3906577e5b8cSShaul Triebitz ); 3907577e5b8cSShaul Triebitz 3908577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_add_link_station, 3909577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3910577e5b8cSShaul Triebitz struct link_station_parameters *params), 3911577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3912577e5b8cSShaul Triebitz ); 3913577e5b8cSShaul Triebitz 3914577e5b8cSShaul Triebitz DEFINE_EVENT(link_station_add_mod, rdev_mod_link_station, 3915577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3916577e5b8cSShaul Triebitz struct link_station_parameters *params), 3917577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params) 3918577e5b8cSShaul Triebitz ); 3919577e5b8cSShaul Triebitz 3920577e5b8cSShaul Triebitz TRACE_EVENT(rdev_del_link_station, 3921577e5b8cSShaul Triebitz TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3922577e5b8cSShaul Triebitz struct link_station_del_parameters *params), 3923577e5b8cSShaul Triebitz TP_ARGS(wiphy, netdev, params), 3924577e5b8cSShaul Triebitz TP_STRUCT__entry( 3925577e5b8cSShaul Triebitz WIPHY_ENTRY 3926577e5b8cSShaul Triebitz NETDEV_ENTRY 3927577e5b8cSShaul Triebitz __array(u8, mld_mac, 6) 3928577e5b8cSShaul Triebitz __field(u32, link_id) 3929577e5b8cSShaul Triebitz ), 3930577e5b8cSShaul Triebitz TP_fast_assign( 3931577e5b8cSShaul Triebitz WIPHY_ASSIGN; 3932577e5b8cSShaul Triebitz NETDEV_ASSIGN; 3933577e5b8cSShaul Triebitz memset(__entry->mld_mac, 0, 6); 3934577e5b8cSShaul Triebitz if (params->mld_mac) 3935577e5b8cSShaul Triebitz memcpy(__entry->mld_mac, params->mld_mac, 6); 3936577e5b8cSShaul Triebitz __entry->link_id = params->link_id; 3937577e5b8cSShaul Triebitz ), 39383d9c3617SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM" 3939577e5b8cSShaul Triebitz ", link id: %u", 39403d9c3617SJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac, 3941577e5b8cSShaul Triebitz __entry->link_id) 3942577e5b8cSShaul Triebitz ); 3943577e5b8cSShaul Triebitz 3944cbbaf2bbSAvraham Stern TRACE_EVENT(rdev_set_hw_timestamp, 3945cbbaf2bbSAvraham Stern TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 3946cbbaf2bbSAvraham Stern struct cfg80211_set_hw_timestamp *hwts), 3947cbbaf2bbSAvraham Stern 3948cbbaf2bbSAvraham Stern TP_ARGS(wiphy, netdev, hwts), 3949cbbaf2bbSAvraham Stern 3950cbbaf2bbSAvraham Stern TP_STRUCT__entry( 3951cbbaf2bbSAvraham Stern WIPHY_ENTRY 3952cbbaf2bbSAvraham Stern NETDEV_ENTRY 3953cbbaf2bbSAvraham Stern MAC_ENTRY(macaddr) 3954cbbaf2bbSAvraham Stern __field(bool, enable) 3955cbbaf2bbSAvraham Stern ), 3956cbbaf2bbSAvraham Stern 3957cbbaf2bbSAvraham Stern TP_fast_assign( 3958cbbaf2bbSAvraham Stern WIPHY_ASSIGN; 3959cbbaf2bbSAvraham Stern NETDEV_ASSIGN; 3960cbbaf2bbSAvraham Stern MAC_ASSIGN(macaddr, hwts->macaddr); 3961cbbaf2bbSAvraham Stern __entry->enable = hwts->enable; 3962cbbaf2bbSAvraham Stern ), 3963cbbaf2bbSAvraham Stern 3964cbbaf2bbSAvraham Stern TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac %pM, enable: %u", 3965cbbaf2bbSAvraham Stern WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->macaddr, 3966cbbaf2bbSAvraham Stern __entry->enable) 3967cbbaf2bbSAvraham Stern ); 3968cbbaf2bbSAvraham Stern 3969065563b2SVeerendranath Jakkam TRACE_EVENT(cfg80211_links_removed, 3970065563b2SVeerendranath Jakkam TP_PROTO(struct net_device *netdev, u16 link_mask), 3971065563b2SVeerendranath Jakkam TP_ARGS(netdev, link_mask), 3972065563b2SVeerendranath Jakkam TP_STRUCT__entry( 3973065563b2SVeerendranath Jakkam NETDEV_ENTRY 3974065563b2SVeerendranath Jakkam __field(u16, link_mask) 3975065563b2SVeerendranath Jakkam ), 3976065563b2SVeerendranath Jakkam TP_fast_assign( 3977065563b2SVeerendranath Jakkam NETDEV_ASSIGN; 3978065563b2SVeerendranath Jakkam __entry->link_mask = link_mask; 3979065563b2SVeerendranath Jakkam ), 3980065563b2SVeerendranath Jakkam TP_printk(NETDEV_PR_FMT ", link_mask:%u", NETDEV_PR_ARG, 3981065563b2SVeerendranath Jakkam __entry->link_mask) 3982065563b2SVeerendranath Jakkam ); 3983065563b2SVeerendranath Jakkam 398414e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 398514e8a3c4SBeni Lev 398614e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 398714e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 398814e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 398914e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 399014e8a3c4SBeni Lev #include <trace/define_trace.h> 3991