114e8a3c4SBeni Lev #undef TRACE_SYSTEM 214e8a3c4SBeni Lev #define TRACE_SYSTEM cfg80211 314e8a3c4SBeni Lev 414e8a3c4SBeni Lev #if !defined(__RDEV_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ) 514e8a3c4SBeni Lev #define __RDEV_OPS_TRACE 614e8a3c4SBeni Lev 714e8a3c4SBeni Lev #include <linux/tracepoint.h> 814e8a3c4SBeni Lev 914e8a3c4SBeni Lev #include <linux/rtnetlink.h> 10d2beae10SJoe Perches #include <linux/etherdevice.h> 1114e8a3c4SBeni Lev #include <net/cfg80211.h> 1214e8a3c4SBeni Lev #include "core.h" 1314e8a3c4SBeni Lev 1414e8a3c4SBeni Lev #define MAC_ENTRY(entry_mac) __array(u8, entry_mac, ETH_ALEN) 1514e8a3c4SBeni Lev #define MAC_ASSIGN(entry_mac, given_mac) do { \ 1614e8a3c4SBeni Lev if (given_mac) \ 1714e8a3c4SBeni Lev memcpy(__entry->entry_mac, given_mac, ETH_ALEN); \ 1814e8a3c4SBeni Lev else \ 19d2beae10SJoe Perches eth_zero_addr(__entry->entry_mac); \ 2014e8a3c4SBeni Lev } while (0) 2114e8a3c4SBeni Lev #define MAC_PR_FMT "%pM" 2214e8a3c4SBeni Lev #define MAC_PR_ARG(entry_mac) (__entry->entry_mac) 2314e8a3c4SBeni Lev 24ec816087SJohannes Berg #define MAXNAME 32 25ec816087SJohannes Berg #define WIPHY_ENTRY __array(char, wiphy_name, 32) 26ec816087SJohannes Berg #define WIPHY_ASSIGN strlcpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME) 27ec816087SJohannes Berg #define WIPHY_PR_FMT "%s" 28ec816087SJohannes Berg #define WIPHY_PR_ARG __entry->wiphy_name 2914e8a3c4SBeni Lev 3014e8a3c4SBeni Lev #define WDEV_ENTRY __field(u32, id) 31ce1eaddaSJohannes Berg #define WDEV_ASSIGN (__entry->id) = (!IS_ERR_OR_NULL(wdev) \ 32ce1eaddaSJohannes Berg ? wdev->identifier : 0) 33ec816087SJohannes Berg #define WDEV_PR_FMT "wdev(%u)" 3414e8a3c4SBeni Lev #define WDEV_PR_ARG (__entry->id) 3514e8a3c4SBeni Lev 3614e8a3c4SBeni Lev #define NETDEV_ENTRY __array(char, name, IFNAMSIZ) \ 3714e8a3c4SBeni Lev __field(int, ifindex) 3814e8a3c4SBeni Lev #define NETDEV_ASSIGN \ 3914e8a3c4SBeni Lev do { \ 4014e8a3c4SBeni Lev memcpy(__entry->name, netdev->name, IFNAMSIZ); \ 4114e8a3c4SBeni Lev (__entry->ifindex) = (netdev->ifindex); \ 4214e8a3c4SBeni Lev } while (0) 43ec816087SJohannes Berg #define NETDEV_PR_FMT "netdev:%s(%d)" 44ec816087SJohannes Berg #define NETDEV_PR_ARG __entry->name, __entry->ifindex 4514e8a3c4SBeni Lev 4614e8a3c4SBeni Lev #define MESH_CFG_ENTRY __field(u16, dot11MeshRetryTimeout) \ 4714e8a3c4SBeni Lev __field(u16, dot11MeshConfirmTimeout) \ 4814e8a3c4SBeni Lev __field(u16, dot11MeshHoldingTimeout) \ 4914e8a3c4SBeni Lev __field(u16, dot11MeshMaxPeerLinks) \ 5014e8a3c4SBeni Lev __field(u8, dot11MeshMaxRetries) \ 5114e8a3c4SBeni Lev __field(u8, dot11MeshTTL) \ 5214e8a3c4SBeni Lev __field(u8, element_ttl) \ 5314e8a3c4SBeni Lev __field(bool, auto_open_plinks) \ 5414e8a3c4SBeni Lev __field(u32, dot11MeshNbrOffsetMaxNeighbor) \ 5514e8a3c4SBeni Lev __field(u8, dot11MeshHWMPmaxPREQretries) \ 5614e8a3c4SBeni Lev __field(u32, path_refresh_time) \ 5714e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathTimeout) \ 5814e8a3c4SBeni Lev __field(u16, min_discovery_timeout) \ 5914e8a3c4SBeni Lev __field(u16, dot11MeshHWMPpreqMinInterval) \ 6014e8a3c4SBeni Lev __field(u16, dot11MeshHWMPperrMinInterval) \ 6114e8a3c4SBeni Lev __field(u16, dot11MeshHWMPnetDiameterTraversalTime) \ 6214e8a3c4SBeni Lev __field(u8, dot11MeshHWMPRootMode) \ 6314e8a3c4SBeni Lev __field(u16, dot11MeshHWMPRannInterval) \ 6414e8a3c4SBeni Lev __field(bool, dot11MeshGateAnnouncementProtocol) \ 6514e8a3c4SBeni Lev __field(bool, dot11MeshForwarding) \ 6614e8a3c4SBeni Lev __field(s32, rssi_threshold) \ 6714e8a3c4SBeni Lev __field(u16, ht_opmode) \ 6814e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathToRootTimeout) \ 6914e8a3c4SBeni Lev __field(u16, dot11MeshHWMProotInterval) \ 7014e8a3c4SBeni Lev __field(u16, dot11MeshHWMPconfirmationInterval) 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; \ 11114e8a3c4SBeni Lev } while (0) 11214e8a3c4SBeni Lev 11314e8a3c4SBeni Lev #define CHAN_ENTRY __field(enum ieee80211_band, band) \ 11414e8a3c4SBeni Lev __field(u16, center_freq) 11514e8a3c4SBeni Lev #define CHAN_ASSIGN(chan) \ 11614e8a3c4SBeni Lev do { \ 11714e8a3c4SBeni Lev if (chan) { \ 11814e8a3c4SBeni Lev __entry->band = chan->band; \ 11914e8a3c4SBeni Lev __entry->center_freq = chan->center_freq; \ 12014e8a3c4SBeni Lev } else { \ 12114e8a3c4SBeni Lev __entry->band = 0; \ 12214e8a3c4SBeni Lev __entry->center_freq = 0; \ 12314e8a3c4SBeni Lev } \ 12414e8a3c4SBeni Lev } while (0) 125ec816087SJohannes Berg #define CHAN_PR_FMT "band: %d, freq: %u" 12614e8a3c4SBeni Lev #define CHAN_PR_ARG __entry->band, __entry->center_freq 12714e8a3c4SBeni Lev 128683b6d3bSJohannes Berg #define CHAN_DEF_ENTRY __field(enum ieee80211_band, band) \ 1293d9d1d66SJohannes Berg __field(u32, control_freq) \ 1303d9d1d66SJohannes Berg __field(u32, width) \ 1313d9d1d66SJohannes Berg __field(u32, center_freq1) \ 1323d9d1d66SJohannes Berg __field(u32, center_freq2) 133683b6d3bSJohannes Berg #define CHAN_DEF_ASSIGN(chandef) \ 134683b6d3bSJohannes Berg do { \ 135683b6d3bSJohannes Berg if ((chandef) && (chandef)->chan) { \ 136683b6d3bSJohannes Berg __entry->band = (chandef)->chan->band; \ 1373d9d1d66SJohannes Berg __entry->control_freq = \ 138683b6d3bSJohannes Berg (chandef)->chan->center_freq; \ 1393d9d1d66SJohannes Berg __entry->width = (chandef)->width; \ 1403d9d1d66SJohannes Berg __entry->center_freq1 = (chandef)->center_freq1;\ 1413d9d1d66SJohannes Berg __entry->center_freq2 = (chandef)->center_freq2;\ 142683b6d3bSJohannes Berg } else { \ 143683b6d3bSJohannes Berg __entry->band = 0; \ 1443d9d1d66SJohannes Berg __entry->control_freq = 0; \ 1453d9d1d66SJohannes Berg __entry->width = 0; \ 1463d9d1d66SJohannes Berg __entry->center_freq1 = 0; \ 1473d9d1d66SJohannes Berg __entry->center_freq2 = 0; \ 148683b6d3bSJohannes Berg } \ 149683b6d3bSJohannes Berg } while (0) 1503d9d1d66SJohannes Berg #define CHAN_DEF_PR_FMT \ 151ec816087SJohannes Berg "band: %d, control freq: %u, width: %d, cf1: %u, cf2: %u" 1523d9d1d66SJohannes Berg #define CHAN_DEF_PR_ARG __entry->band, __entry->control_freq, \ 1533d9d1d66SJohannes Berg __entry->width, __entry->center_freq1, \ 1543d9d1d66SJohannes Berg __entry->center_freq2 155683b6d3bSJohannes Berg 15614e8a3c4SBeni Lev #define SINFO_ENTRY __field(int, generation) \ 15714e8a3c4SBeni Lev __field(u32, connected_time) \ 15814e8a3c4SBeni Lev __field(u32, inactive_time) \ 15914e8a3c4SBeni Lev __field(u32, rx_bytes) \ 16014e8a3c4SBeni Lev __field(u32, tx_bytes) \ 16114e8a3c4SBeni Lev __field(u32, rx_packets) \ 16214e8a3c4SBeni Lev __field(u32, tx_packets) \ 16314e8a3c4SBeni Lev __field(u32, tx_retries) \ 16414e8a3c4SBeni Lev __field(u32, tx_failed) \ 16514e8a3c4SBeni Lev __field(u32, rx_dropped_misc) \ 16614e8a3c4SBeni Lev __field(u32, beacon_loss_count) \ 16714e8a3c4SBeni Lev __field(u16, llid) \ 16814e8a3c4SBeni Lev __field(u16, plid) \ 16914e8a3c4SBeni Lev __field(u8, plink_state) 17014e8a3c4SBeni Lev #define SINFO_ASSIGN \ 17114e8a3c4SBeni Lev do { \ 17214e8a3c4SBeni Lev __entry->generation = sinfo->generation; \ 17314e8a3c4SBeni Lev __entry->connected_time = sinfo->connected_time; \ 17414e8a3c4SBeni Lev __entry->inactive_time = sinfo->inactive_time; \ 17514e8a3c4SBeni Lev __entry->rx_bytes = sinfo->rx_bytes; \ 17614e8a3c4SBeni Lev __entry->tx_bytes = sinfo->tx_bytes; \ 17714e8a3c4SBeni Lev __entry->rx_packets = sinfo->rx_packets; \ 17814e8a3c4SBeni Lev __entry->tx_packets = sinfo->tx_packets; \ 17914e8a3c4SBeni Lev __entry->tx_retries = sinfo->tx_retries; \ 18014e8a3c4SBeni Lev __entry->tx_failed = sinfo->tx_failed; \ 18114e8a3c4SBeni Lev __entry->rx_dropped_misc = sinfo->rx_dropped_misc; \ 18214e8a3c4SBeni Lev __entry->beacon_loss_count = sinfo->beacon_loss_count; \ 18314e8a3c4SBeni Lev __entry->llid = sinfo->llid; \ 18414e8a3c4SBeni Lev __entry->plid = sinfo->plid; \ 18514e8a3c4SBeni Lev __entry->plink_state = sinfo->plink_state; \ 18614e8a3c4SBeni Lev } while (0) 18714e8a3c4SBeni Lev 18814e8a3c4SBeni Lev #define BOOL_TO_STR(bo) (bo) ? "true" : "false" 18914e8a3c4SBeni Lev 190fa9ffc74SKyeyoon Park #define QOS_MAP_ENTRY __field(u8, num_des) \ 191fa9ffc74SKyeyoon Park __array(u8, dscp_exception, \ 192fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX) \ 193fa9ffc74SKyeyoon Park __array(u8, up, IEEE80211_QOS_MAP_LEN_MIN) 194fa9ffc74SKyeyoon Park #define QOS_MAP_ASSIGN(qos_map) \ 195fa9ffc74SKyeyoon Park do { \ 196fa9ffc74SKyeyoon Park if ((qos_map)) { \ 197fa9ffc74SKyeyoon Park __entry->num_des = (qos_map)->num_des; \ 198fa9ffc74SKyeyoon Park memcpy(__entry->dscp_exception, \ 199fa9ffc74SKyeyoon Park &(qos_map)->dscp_exception, \ 200fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 201fa9ffc74SKyeyoon Park memcpy(__entry->up, &(qos_map)->up, \ 202fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 203fa9ffc74SKyeyoon Park } else { \ 204fa9ffc74SKyeyoon Park __entry->num_des = 0; \ 205fa9ffc74SKyeyoon Park memset(__entry->dscp_exception, 0, \ 206fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 207fa9ffc74SKyeyoon Park memset(__entry->up, 0, \ 208fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 209fa9ffc74SKyeyoon Park } \ 210fa9ffc74SKyeyoon Park } while (0) 211fa9ffc74SKyeyoon Park 21214e8a3c4SBeni Lev /************************************************************* 21314e8a3c4SBeni Lev * rdev->ops traces * 21414e8a3c4SBeni Lev *************************************************************/ 21514e8a3c4SBeni Lev 21614e8a3c4SBeni Lev TRACE_EVENT(rdev_suspend, 21714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_wowlan *wow), 21814e8a3c4SBeni Lev TP_ARGS(wiphy, wow), 21914e8a3c4SBeni Lev TP_STRUCT__entry( 22014e8a3c4SBeni Lev WIPHY_ENTRY 22114e8a3c4SBeni Lev __field(bool, any) 22214e8a3c4SBeni Lev __field(bool, disconnect) 22314e8a3c4SBeni Lev __field(bool, magic_pkt) 22414e8a3c4SBeni Lev __field(bool, gtk_rekey_failure) 22514e8a3c4SBeni Lev __field(bool, eap_identity_req) 22614e8a3c4SBeni Lev __field(bool, four_way_handshake) 22714e8a3c4SBeni Lev __field(bool, rfkill_release) 22814e8a3c4SBeni Lev __field(bool, valid_wow) 22914e8a3c4SBeni Lev ), 23014e8a3c4SBeni Lev TP_fast_assign( 23114e8a3c4SBeni Lev WIPHY_ASSIGN; 23214e8a3c4SBeni Lev if (wow) { 23314e8a3c4SBeni Lev __entry->any = wow->any; 23414e8a3c4SBeni Lev __entry->disconnect = wow->disconnect; 23514e8a3c4SBeni Lev __entry->magic_pkt = wow->magic_pkt; 23614e8a3c4SBeni Lev __entry->gtk_rekey_failure = wow->gtk_rekey_failure; 23714e8a3c4SBeni Lev __entry->eap_identity_req = wow->eap_identity_req; 23814e8a3c4SBeni Lev __entry->four_way_handshake = wow->four_way_handshake; 23914e8a3c4SBeni Lev __entry->rfkill_release = wow->rfkill_release; 24014e8a3c4SBeni Lev __entry->valid_wow = true; 24114e8a3c4SBeni Lev } else { 24214e8a3c4SBeni Lev __entry->valid_wow = false; 24314e8a3c4SBeni Lev } 24414e8a3c4SBeni Lev ), 24514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", wow%s - any: %d, disconnect: %d, " 24614e8a3c4SBeni Lev "magic pkt: %d, gtk rekey failure: %d, eap identify req: %d, " 24714e8a3c4SBeni Lev "four way handshake: %d, rfkill release: %d.", 24814e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->valid_wow ? "" : "(Not configured!)", 24914e8a3c4SBeni Lev __entry->any, __entry->disconnect, __entry->magic_pkt, 25014e8a3c4SBeni Lev __entry->gtk_rekey_failure, __entry->eap_identity_req, 25114e8a3c4SBeni Lev __entry->four_way_handshake, __entry->rfkill_release) 25214e8a3c4SBeni Lev ); 25314e8a3c4SBeni Lev 25414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int, 25514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret), 25614e8a3c4SBeni Lev TP_ARGS(wiphy, ret), 25714e8a3c4SBeni Lev TP_STRUCT__entry( 25814e8a3c4SBeni Lev WIPHY_ENTRY 25914e8a3c4SBeni Lev __field(int, ret) 26014e8a3c4SBeni Lev ), 26114e8a3c4SBeni Lev TP_fast_assign( 26214e8a3c4SBeni Lev WIPHY_ASSIGN; 26314e8a3c4SBeni Lev __entry->ret = ret; 26414e8a3c4SBeni Lev ), 26514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", WIPHY_PR_ARG, __entry->ret) 26614e8a3c4SBeni Lev ); 26714e8a3c4SBeni Lev 26814e8a3c4SBeni Lev TRACE_EVENT(rdev_scan, 26914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_scan_request *request), 27014e8a3c4SBeni Lev TP_ARGS(wiphy, request), 27114e8a3c4SBeni Lev TP_STRUCT__entry( 27214e8a3c4SBeni Lev WIPHY_ENTRY 27314e8a3c4SBeni Lev ), 27414e8a3c4SBeni Lev TP_fast_assign( 27514e8a3c4SBeni Lev WIPHY_ASSIGN; 27614e8a3c4SBeni Lev ), 27714e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 27814e8a3c4SBeni Lev ); 27914e8a3c4SBeni Lev 28014e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_only_evt, 28114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 28214e8a3c4SBeni Lev TP_ARGS(wiphy), 28314e8a3c4SBeni Lev TP_STRUCT__entry( 28414e8a3c4SBeni Lev WIPHY_ENTRY 28514e8a3c4SBeni Lev ), 28614e8a3c4SBeni Lev TP_fast_assign( 28714e8a3c4SBeni Lev WIPHY_ASSIGN; 28814e8a3c4SBeni Lev ), 28914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 29014e8a3c4SBeni Lev ); 29114e8a3c4SBeni Lev 29214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_resume, 29314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 29414e8a3c4SBeni Lev TP_ARGS(wiphy) 29514e8a3c4SBeni Lev ); 29614e8a3c4SBeni Lev 29714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_return_void, 29814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 29914e8a3c4SBeni Lev TP_ARGS(wiphy) 30014e8a3c4SBeni Lev ); 30114e8a3c4SBeni Lev 30214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_get_antenna, 30314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 30414e8a3c4SBeni Lev TP_ARGS(wiphy) 30514e8a3c4SBeni Lev ); 30614e8a3c4SBeni Lev 30714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_rfkill_poll, 30814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 30914e8a3c4SBeni Lev TP_ARGS(wiphy) 31014e8a3c4SBeni Lev ); 31114e8a3c4SBeni Lev 31214e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_enabled_evt, 31314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 31414e8a3c4SBeni Lev TP_ARGS(wiphy, enabled), 31514e8a3c4SBeni Lev TP_STRUCT__entry( 31614e8a3c4SBeni Lev WIPHY_ENTRY 31714e8a3c4SBeni Lev __field(bool, enabled) 31814e8a3c4SBeni Lev ), 31914e8a3c4SBeni Lev TP_fast_assign( 32014e8a3c4SBeni Lev WIPHY_ASSIGN; 32114e8a3c4SBeni Lev __entry->enabled = enabled; 32214e8a3c4SBeni Lev ), 32314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", %senabled ", 32414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->enabled ? "" : "not ") 32514e8a3c4SBeni Lev ); 32614e8a3c4SBeni Lev 32714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_enabled_evt, rdev_set_wakeup, 32814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 32914e8a3c4SBeni Lev TP_ARGS(wiphy, enabled) 33014e8a3c4SBeni Lev ); 33114e8a3c4SBeni Lev 33214e8a3c4SBeni Lev TRACE_EVENT(rdev_add_virtual_intf, 33314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, char *name, enum nl80211_iftype type), 33414e8a3c4SBeni Lev TP_ARGS(wiphy, name, type), 33514e8a3c4SBeni Lev TP_STRUCT__entry( 33614e8a3c4SBeni Lev WIPHY_ENTRY 33714e8a3c4SBeni Lev __string(vir_intf_name, name ? name : "<noname>") 33814e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 33914e8a3c4SBeni Lev ), 34014e8a3c4SBeni Lev TP_fast_assign( 34114e8a3c4SBeni Lev WIPHY_ASSIGN; 34214e8a3c4SBeni Lev __assign_str(vir_intf_name, name ? name : "<noname>"); 34314e8a3c4SBeni Lev __entry->type = type; 34414e8a3c4SBeni Lev ), 34514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d", 34614e8a3c4SBeni Lev WIPHY_PR_ARG, __get_str(vir_intf_name), __entry->type) 34714e8a3c4SBeni Lev ); 34814e8a3c4SBeni Lev 34914e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_wdev_evt, 35014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 35114e8a3c4SBeni Lev TP_ARGS(wiphy, wdev), 35214e8a3c4SBeni Lev TP_STRUCT__entry( 35314e8a3c4SBeni Lev WIPHY_ENTRY 35414e8a3c4SBeni Lev WDEV_ENTRY 35514e8a3c4SBeni Lev ), 35614e8a3c4SBeni Lev TP_fast_assign( 35714e8a3c4SBeni Lev WIPHY_ASSIGN; 35814e8a3c4SBeni Lev WDEV_ASSIGN; 35914e8a3c4SBeni Lev ), 360ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 36114e8a3c4SBeni Lev ); 36214e8a3c4SBeni Lev 36314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_return_wdev, 36414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 36514e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 36614e8a3c4SBeni Lev ); 36714e8a3c4SBeni Lev 36814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_del_virtual_intf, 36914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 37014e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 37114e8a3c4SBeni Lev ); 37214e8a3c4SBeni Lev 37314e8a3c4SBeni Lev TRACE_EVENT(rdev_change_virtual_intf, 37414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 37514e8a3c4SBeni Lev enum nl80211_iftype type), 37614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, type), 37714e8a3c4SBeni Lev TP_STRUCT__entry( 37814e8a3c4SBeni Lev WIPHY_ENTRY 37914e8a3c4SBeni Lev NETDEV_ENTRY 38014e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 38114e8a3c4SBeni Lev ), 38214e8a3c4SBeni Lev TP_fast_assign( 38314e8a3c4SBeni Lev WIPHY_ASSIGN; 38414e8a3c4SBeni Lev NETDEV_ASSIGN; 38514e8a3c4SBeni Lev __entry->type = type; 38614e8a3c4SBeni Lev ), 387ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", type: %d", 38814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->type) 38914e8a3c4SBeni Lev ); 39014e8a3c4SBeni Lev 39114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(key_handle, 39214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 39314e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 39414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr), 39514e8a3c4SBeni Lev TP_STRUCT__entry( 39614e8a3c4SBeni Lev WIPHY_ENTRY 39714e8a3c4SBeni Lev NETDEV_ENTRY 39814e8a3c4SBeni Lev MAC_ENTRY(mac_addr) 39914e8a3c4SBeni Lev __field(u8, key_index) 40014e8a3c4SBeni Lev __field(bool, pairwise) 40114e8a3c4SBeni Lev ), 40214e8a3c4SBeni Lev TP_fast_assign( 40314e8a3c4SBeni Lev WIPHY_ASSIGN; 40414e8a3c4SBeni Lev NETDEV_ASSIGN; 40514e8a3c4SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 40614e8a3c4SBeni Lev __entry->key_index = key_index; 40714e8a3c4SBeni Lev __entry->pairwise = pairwise; 40814e8a3c4SBeni Lev ), 409ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT, 41014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 41114e8a3c4SBeni Lev BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr)) 41214e8a3c4SBeni Lev ); 41314e8a3c4SBeni Lev 41414e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_add_key, 41514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 41614e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 41714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 41814e8a3c4SBeni Lev ); 41914e8a3c4SBeni Lev 42014e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_get_key, 42114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 42214e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 42314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 42414e8a3c4SBeni Lev ); 42514e8a3c4SBeni Lev 42614e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_del_key, 42714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 42814e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 42914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 43014e8a3c4SBeni Lev ); 43114e8a3c4SBeni Lev 43214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_key, 43314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 43414e8a3c4SBeni Lev bool unicast, bool multicast), 43514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, unicast, multicast), 43614e8a3c4SBeni Lev TP_STRUCT__entry( 43714e8a3c4SBeni Lev WIPHY_ENTRY 43814e8a3c4SBeni Lev NETDEV_ENTRY 43914e8a3c4SBeni Lev __field(u8, key_index) 44014e8a3c4SBeni Lev __field(bool, unicast) 44114e8a3c4SBeni Lev __field(bool, multicast) 44214e8a3c4SBeni Lev ), 44314e8a3c4SBeni Lev TP_fast_assign( 44414e8a3c4SBeni Lev WIPHY_ASSIGN; 44514e8a3c4SBeni Lev NETDEV_ASSIGN; 44614e8a3c4SBeni Lev __entry->key_index = key_index; 44714e8a3c4SBeni Lev __entry->unicast = unicast; 44814e8a3c4SBeni Lev __entry->multicast = multicast; 44914e8a3c4SBeni Lev ), 450ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u, unicast: %s, multicast: %s", 45114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 45214e8a3c4SBeni Lev BOOL_TO_STR(__entry->unicast), 45314e8a3c4SBeni Lev BOOL_TO_STR(__entry->multicast)) 45414e8a3c4SBeni Lev ); 45514e8a3c4SBeni Lev 45614e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_mgmt_key, 45714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index), 45814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index), 45914e8a3c4SBeni Lev TP_STRUCT__entry( 46014e8a3c4SBeni Lev WIPHY_ENTRY 46114e8a3c4SBeni Lev NETDEV_ENTRY 46214e8a3c4SBeni Lev __field(u8, key_index) 46314e8a3c4SBeni Lev ), 46414e8a3c4SBeni Lev TP_fast_assign( 46514e8a3c4SBeni Lev WIPHY_ASSIGN; 46614e8a3c4SBeni Lev NETDEV_ASSIGN; 46714e8a3c4SBeni Lev __entry->key_index = key_index; 46814e8a3c4SBeni Lev ), 469ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u", 47014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index) 47114e8a3c4SBeni Lev ); 47214e8a3c4SBeni Lev 47314e8a3c4SBeni Lev TRACE_EVENT(rdev_start_ap, 47414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 47514e8a3c4SBeni Lev struct cfg80211_ap_settings *settings), 47614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, settings), 47714e8a3c4SBeni Lev TP_STRUCT__entry( 47814e8a3c4SBeni Lev WIPHY_ENTRY 47914e8a3c4SBeni Lev NETDEV_ENTRY 480683b6d3bSJohannes Berg CHAN_DEF_ENTRY 48114e8a3c4SBeni Lev __field(int, beacon_interval) 48214e8a3c4SBeni Lev __field(int, dtim_period) 48314e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 48414e8a3c4SBeni Lev __field(enum nl80211_hidden_ssid, hidden_ssid) 48514e8a3c4SBeni Lev __field(u32, wpa_ver) 48614e8a3c4SBeni Lev __field(bool, privacy) 48714e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 48814e8a3c4SBeni Lev __field(int, inactivity_timeout) 48914e8a3c4SBeni Lev ), 49014e8a3c4SBeni Lev TP_fast_assign( 49114e8a3c4SBeni Lev WIPHY_ASSIGN; 49214e8a3c4SBeni Lev NETDEV_ASSIGN; 493683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(&settings->chandef); 49414e8a3c4SBeni Lev __entry->beacon_interval = settings->beacon_interval; 49514e8a3c4SBeni Lev __entry->dtim_period = settings->dtim_period; 49614e8a3c4SBeni Lev __entry->hidden_ssid = settings->hidden_ssid; 49714e8a3c4SBeni Lev __entry->wpa_ver = settings->crypto.wpa_versions; 49814e8a3c4SBeni Lev __entry->privacy = settings->privacy; 49914e8a3c4SBeni Lev __entry->auth_type = settings->auth_type; 50014e8a3c4SBeni Lev __entry->inactivity_timeout = settings->inactivity_timeout; 50114e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 50214e8a3c4SBeni Lev memcpy(__entry->ssid, settings->ssid, settings->ssid_len); 50314e8a3c4SBeni Lev ), 504ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " 505683b6d3bSJohannes Berg CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " 50614e8a3c4SBeni Lev "hidden ssid: %d, wpa versions: %u, privacy: %s, " 50714e8a3c4SBeni Lev "auth type: %d, inactivity timeout: %d", 508683b6d3bSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, 50914e8a3c4SBeni Lev __entry->beacon_interval, __entry->dtim_period, 51014e8a3c4SBeni Lev __entry->hidden_ssid, __entry->wpa_ver, 51114e8a3c4SBeni Lev BOOL_TO_STR(__entry->privacy), __entry->auth_type, 51214e8a3c4SBeni Lev __entry->inactivity_timeout) 51314e8a3c4SBeni Lev ); 51414e8a3c4SBeni Lev 51514e8a3c4SBeni Lev TRACE_EVENT(rdev_change_beacon, 51614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 51714e8a3c4SBeni Lev struct cfg80211_beacon_data *info), 51814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, info), 51914e8a3c4SBeni Lev TP_STRUCT__entry( 52014e8a3c4SBeni Lev WIPHY_ENTRY 52114e8a3c4SBeni Lev NETDEV_ENTRY 52214e8a3c4SBeni Lev __dynamic_array(u8, head, info ? info->head_len : 0) 52314e8a3c4SBeni Lev __dynamic_array(u8, tail, info ? info->tail_len : 0) 52414e8a3c4SBeni Lev __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) 52514e8a3c4SBeni Lev __dynamic_array(u8, proberesp_ies, 52614e8a3c4SBeni Lev info ? info->proberesp_ies_len : 0) 52714e8a3c4SBeni Lev __dynamic_array(u8, assocresp_ies, 52814e8a3c4SBeni Lev info ? info->assocresp_ies_len : 0) 52914e8a3c4SBeni Lev __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) 53014e8a3c4SBeni Lev ), 53114e8a3c4SBeni Lev TP_fast_assign( 53214e8a3c4SBeni Lev WIPHY_ASSIGN; 53314e8a3c4SBeni Lev NETDEV_ASSIGN; 53414e8a3c4SBeni Lev if (info) { 53514e8a3c4SBeni Lev if (info->head) 53614e8a3c4SBeni Lev memcpy(__get_dynamic_array(head), info->head, 53714e8a3c4SBeni Lev info->head_len); 53814e8a3c4SBeni Lev if (info->tail) 53914e8a3c4SBeni Lev memcpy(__get_dynamic_array(tail), info->tail, 54014e8a3c4SBeni Lev info->tail_len); 54114e8a3c4SBeni Lev if (info->beacon_ies) 54214e8a3c4SBeni Lev memcpy(__get_dynamic_array(beacon_ies), 54314e8a3c4SBeni Lev info->beacon_ies, info->beacon_ies_len); 54414e8a3c4SBeni Lev if (info->proberesp_ies) 54514e8a3c4SBeni Lev memcpy(__get_dynamic_array(proberesp_ies), 54614e8a3c4SBeni Lev info->proberesp_ies, 54714e8a3c4SBeni Lev info->proberesp_ies_len); 54814e8a3c4SBeni Lev if (info->assocresp_ies) 54914e8a3c4SBeni Lev memcpy(__get_dynamic_array(assocresp_ies), 55014e8a3c4SBeni Lev info->assocresp_ies, 55114e8a3c4SBeni Lev info->assocresp_ies_len); 55214e8a3c4SBeni Lev if (info->probe_resp) 55314e8a3c4SBeni Lev memcpy(__get_dynamic_array(probe_resp), 55414e8a3c4SBeni Lev info->probe_resp, info->probe_resp_len); 55514e8a3c4SBeni Lev } 55614e8a3c4SBeni Lev ), 557ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 55814e8a3c4SBeni Lev ); 55914e8a3c4SBeni Lev 56014e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_evt, 56114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 56214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev), 56314e8a3c4SBeni Lev TP_STRUCT__entry( 56414e8a3c4SBeni Lev WIPHY_ENTRY 56514e8a3c4SBeni Lev NETDEV_ENTRY 56614e8a3c4SBeni Lev ), 56714e8a3c4SBeni Lev TP_fast_assign( 56814e8a3c4SBeni Lev WIPHY_ASSIGN; 56914e8a3c4SBeni Lev NETDEV_ASSIGN; 57014e8a3c4SBeni Lev ), 571ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 57214e8a3c4SBeni Lev ); 57314e8a3c4SBeni Lev 57414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_stop_ap, 57514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 57614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 57714e8a3c4SBeni Lev ); 57814e8a3c4SBeni Lev 57914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_sched_scan_stop, 58014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 58114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 58214e8a3c4SBeni Lev ); 58314e8a3c4SBeni Lev 58414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, 58514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 58614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 58714e8a3c4SBeni Lev ); 58814e8a3c4SBeni Lev 58914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config, 59014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 59114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 59214e8a3c4SBeni Lev ); 59314e8a3c4SBeni Lev 59414e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh, 59514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 59614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 59714e8a3c4SBeni Lev ); 59814e8a3c4SBeni Lev 59914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss, 60014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 60114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 60214e8a3c4SBeni Lev ); 60314e8a3c4SBeni Lev 6046e0bd6c3SRostislav Lisovy DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb, 6056e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 6066e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev) 6076e0bd6c3SRostislav Lisovy ); 6086e0bd6c3SRostislav Lisovy 60914e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa, 61014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 61114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 61214e8a3c4SBeni Lev ); 61314e8a3c4SBeni Lev 61414e8a3c4SBeni Lev DECLARE_EVENT_CLASS(station_add_change, 61514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 61614e8a3c4SBeni Lev struct station_parameters *params), 61714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params), 61814e8a3c4SBeni Lev TP_STRUCT__entry( 61914e8a3c4SBeni Lev WIPHY_ENTRY 62014e8a3c4SBeni Lev NETDEV_ENTRY 62114e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 62214e8a3c4SBeni Lev __field(u32, sta_flags_mask) 62314e8a3c4SBeni Lev __field(u32, sta_flags_set) 62414e8a3c4SBeni Lev __field(u32, sta_modify_mask) 62514e8a3c4SBeni Lev __field(int, listen_interval) 62614e8a3c4SBeni Lev __field(u16, aid) 62714e8a3c4SBeni Lev __field(u8, plink_action) 62814e8a3c4SBeni Lev __field(u8, plink_state) 62914e8a3c4SBeni Lev __field(u8, uapsd_queues) 63014e8a3c4SBeni Lev __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 6315d8325ecSJohannes Berg __array(char, vlan, IFNAMSIZ) 63214e8a3c4SBeni Lev ), 63314e8a3c4SBeni Lev TP_fast_assign( 63414e8a3c4SBeni Lev WIPHY_ASSIGN; 63514e8a3c4SBeni Lev NETDEV_ASSIGN; 63614e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 63714e8a3c4SBeni Lev __entry->sta_flags_mask = params->sta_flags_mask; 63814e8a3c4SBeni Lev __entry->sta_flags_set = params->sta_flags_set; 63914e8a3c4SBeni Lev __entry->sta_modify_mask = params->sta_modify_mask; 64014e8a3c4SBeni Lev __entry->listen_interval = params->listen_interval; 64114e8a3c4SBeni Lev __entry->aid = params->aid; 64214e8a3c4SBeni Lev __entry->plink_action = params->plink_action; 64314e8a3c4SBeni Lev __entry->plink_state = params->plink_state; 64414e8a3c4SBeni Lev __entry->uapsd_queues = params->uapsd_queues; 64514e8a3c4SBeni Lev memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 64614e8a3c4SBeni Lev if (params->ht_capa) 64714e8a3c4SBeni Lev memcpy(__entry->ht_capa, params->ht_capa, 64814e8a3c4SBeni Lev sizeof(struct ieee80211_ht_cap)); 6495d8325ecSJohannes Berg memset(__entry->vlan, 0, sizeof(__entry->vlan)); 6505d8325ecSJohannes Berg if (params->vlan) 6515d8325ecSJohannes Berg memcpy(__entry->vlan, params->vlan->name, IFNAMSIZ); 65214e8a3c4SBeni Lev ), 653ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 65414e8a3c4SBeni Lev ", station flags mask: %u, station flags set: %u, " 65514e8a3c4SBeni Lev "station modify mask: %u, listen interval: %d, aid: %u, " 6565d8325ecSJohannes Berg "plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s", 65714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 65814e8a3c4SBeni Lev __entry->sta_flags_mask, __entry->sta_flags_set, 65914e8a3c4SBeni Lev __entry->sta_modify_mask, __entry->listen_interval, 66014e8a3c4SBeni Lev __entry->aid, __entry->plink_action, __entry->plink_state, 6615d8325ecSJohannes Berg __entry->uapsd_queues, __entry->vlan) 66214e8a3c4SBeni Lev ); 66314e8a3c4SBeni Lev 66414e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_add_station, 66514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 66614e8a3c4SBeni Lev struct station_parameters *params), 66714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 66814e8a3c4SBeni Lev ); 66914e8a3c4SBeni Lev 67014e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_change_station, 67114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 67214e8a3c4SBeni Lev struct station_parameters *params), 67314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 67414e8a3c4SBeni Lev ); 67514e8a3c4SBeni Lev 67614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt, 67714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 67814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac), 67914e8a3c4SBeni Lev TP_STRUCT__entry( 68014e8a3c4SBeni Lev WIPHY_ENTRY 68114e8a3c4SBeni Lev NETDEV_ENTRY 68214e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 68314e8a3c4SBeni Lev ), 68414e8a3c4SBeni Lev TP_fast_assign( 68514e8a3c4SBeni Lev WIPHY_ASSIGN; 68614e8a3c4SBeni Lev NETDEV_ASSIGN; 68714e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 68814e8a3c4SBeni Lev ), 689ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 69014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac)) 69114e8a3c4SBeni Lev ); 69214e8a3c4SBeni Lev 69389c771e5SJouni Malinen DECLARE_EVENT_CLASS(station_del, 69489c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 69589c771e5SJouni Malinen struct station_del_parameters *params), 69689c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params), 69789c771e5SJouni Malinen TP_STRUCT__entry( 69889c771e5SJouni Malinen WIPHY_ENTRY 69989c771e5SJouni Malinen NETDEV_ENTRY 70089c771e5SJouni Malinen MAC_ENTRY(sta_mac) 70198856866SJouni Malinen __field(u8, subtype) 70298856866SJouni Malinen __field(u16, reason_code) 70389c771e5SJouni Malinen ), 70489c771e5SJouni Malinen TP_fast_assign( 70589c771e5SJouni Malinen WIPHY_ASSIGN; 70689c771e5SJouni Malinen NETDEV_ASSIGN; 70789c771e5SJouni Malinen MAC_ASSIGN(sta_mac, params->mac); 70898856866SJouni Malinen __entry->subtype = params->subtype; 70998856866SJouni Malinen __entry->reason_code = params->reason_code; 71089c771e5SJouni Malinen ), 71198856866SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 71298856866SJouni Malinen ", subtype: %u, reason_code: %u", 71398856866SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 71498856866SJouni Malinen __entry->subtype, __entry->reason_code) 71589c771e5SJouni Malinen ); 71689c771e5SJouni Malinen 71789c771e5SJouni Malinen DEFINE_EVENT(station_del, rdev_del_station, 71889c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 71989c771e5SJouni Malinen struct station_del_parameters *params), 72089c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params) 72114e8a3c4SBeni Lev ); 72214e8a3c4SBeni Lev 72314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station, 72414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 72514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 72614e8a3c4SBeni Lev ); 72714e8a3c4SBeni Lev 72814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath, 72914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 73014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 73114e8a3c4SBeni Lev ); 73214e8a3c4SBeni Lev 73314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_set_wds_peer, 73414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 73514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 73614e8a3c4SBeni Lev ); 73714e8a3c4SBeni Lev 73814e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_station, 73914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx, 74014e8a3c4SBeni Lev u8 *mac), 74114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, idx, mac), 74214e8a3c4SBeni Lev TP_STRUCT__entry( 74314e8a3c4SBeni Lev WIPHY_ENTRY 74414e8a3c4SBeni Lev NETDEV_ENTRY 74514e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 74614e8a3c4SBeni Lev __field(int, idx) 74714e8a3c4SBeni Lev ), 74814e8a3c4SBeni Lev TP_fast_assign( 74914e8a3c4SBeni Lev WIPHY_ASSIGN; 75014e8a3c4SBeni Lev NETDEV_ASSIGN; 75114e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 75214e8a3c4SBeni Lev __entry->idx = idx; 75314e8a3c4SBeni Lev ), 754ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d", 75514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 75614e8a3c4SBeni Lev __entry->idx) 75714e8a3c4SBeni Lev ); 75814e8a3c4SBeni Lev 75914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_station_info, 76014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo), 76114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, sinfo), 76214e8a3c4SBeni Lev TP_STRUCT__entry( 76314e8a3c4SBeni Lev WIPHY_ENTRY 76414e8a3c4SBeni Lev __field(int, ret) 76514e8a3c4SBeni Lev SINFO_ENTRY 76614e8a3c4SBeni Lev ), 76714e8a3c4SBeni Lev TP_fast_assign( 76814e8a3c4SBeni Lev WIPHY_ASSIGN; 76914e8a3c4SBeni Lev __entry->ret = ret; 77014e8a3c4SBeni Lev SINFO_ASSIGN; 77114e8a3c4SBeni Lev ), 77214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d" , 77314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 77414e8a3c4SBeni Lev ); 77514e8a3c4SBeni Lev 77614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(mpath_evt, 77714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 77814e8a3c4SBeni Lev u8 *next_hop), 77914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop), 78014e8a3c4SBeni Lev TP_STRUCT__entry( 78114e8a3c4SBeni Lev WIPHY_ENTRY 78214e8a3c4SBeni Lev NETDEV_ENTRY 78314e8a3c4SBeni Lev MAC_ENTRY(dst) 78414e8a3c4SBeni Lev MAC_ENTRY(next_hop) 78514e8a3c4SBeni Lev ), 78614e8a3c4SBeni Lev TP_fast_assign( 78714e8a3c4SBeni Lev WIPHY_ASSIGN; 78814e8a3c4SBeni Lev NETDEV_ASSIGN; 78914e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 79014e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 79114e8a3c4SBeni Lev ), 792ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT, 79314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst), 79414e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 79514e8a3c4SBeni Lev ); 79614e8a3c4SBeni Lev 79714e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_add_mpath, 79814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 79914e8a3c4SBeni Lev u8 *next_hop), 80014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 80114e8a3c4SBeni Lev ); 80214e8a3c4SBeni Lev 80314e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_change_mpath, 80414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 80514e8a3c4SBeni Lev u8 *next_hop), 80614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 80714e8a3c4SBeni Lev ); 80814e8a3c4SBeni Lev 80914e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_get_mpath, 81014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 81114e8a3c4SBeni Lev u8 *next_hop), 81214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 81314e8a3c4SBeni Lev ); 81414e8a3c4SBeni Lev 81514e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_mpath, 81614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx, 81714e8a3c4SBeni Lev u8 *dst, u8 *next_hop), 81814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, idx, dst, next_hop), 81914e8a3c4SBeni Lev TP_STRUCT__entry( 82014e8a3c4SBeni Lev WIPHY_ENTRY 82114e8a3c4SBeni Lev NETDEV_ENTRY 82214e8a3c4SBeni Lev MAC_ENTRY(dst) 82314e8a3c4SBeni Lev MAC_ENTRY(next_hop) 82414e8a3c4SBeni Lev __field(int, idx) 82514e8a3c4SBeni Lev ), 82614e8a3c4SBeni Lev TP_fast_assign( 82714e8a3c4SBeni Lev WIPHY_ASSIGN; 82814e8a3c4SBeni Lev NETDEV_ASSIGN; 82914e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 83014e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 83114e8a3c4SBeni Lev __entry->idx = idx; 83214e8a3c4SBeni Lev ), 833ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 83414e8a3c4SBeni Lev MAC_PR_FMT ", next hop: " MAC_PR_FMT, 83514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 83614e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 83714e8a3c4SBeni Lev ); 83814e8a3c4SBeni Lev 83966be7d2bSHenning Rogge TRACE_EVENT(rdev_get_mpp, 84066be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 84166be7d2bSHenning Rogge u8 *dst, u8 *mpp), 84266be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, dst, mpp), 84366be7d2bSHenning Rogge TP_STRUCT__entry( 84466be7d2bSHenning Rogge WIPHY_ENTRY 84566be7d2bSHenning Rogge NETDEV_ENTRY 84666be7d2bSHenning Rogge MAC_ENTRY(dst) 84766be7d2bSHenning Rogge MAC_ENTRY(mpp) 84866be7d2bSHenning Rogge ), 84966be7d2bSHenning Rogge TP_fast_assign( 85066be7d2bSHenning Rogge WIPHY_ASSIGN; 85166be7d2bSHenning Rogge NETDEV_ASSIGN; 85266be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 85366be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 85466be7d2bSHenning Rogge ), 85566be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT 85666be7d2bSHenning Rogge ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG, 85766be7d2bSHenning Rogge MAC_PR_ARG(dst), MAC_PR_ARG(mpp)) 85866be7d2bSHenning Rogge ); 85966be7d2bSHenning Rogge 86066be7d2bSHenning Rogge TRACE_EVENT(rdev_dump_mpp, 86166be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx, 86266be7d2bSHenning Rogge u8 *dst, u8 *mpp), 86366be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, idx, mpp, dst), 86466be7d2bSHenning Rogge TP_STRUCT__entry( 86566be7d2bSHenning Rogge WIPHY_ENTRY 86666be7d2bSHenning Rogge NETDEV_ENTRY 86766be7d2bSHenning Rogge MAC_ENTRY(dst) 86866be7d2bSHenning Rogge MAC_ENTRY(mpp) 86966be7d2bSHenning Rogge __field(int, idx) 87066be7d2bSHenning Rogge ), 87166be7d2bSHenning Rogge TP_fast_assign( 87266be7d2bSHenning Rogge WIPHY_ASSIGN; 87366be7d2bSHenning Rogge NETDEV_ASSIGN; 87466be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 87566be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 87666be7d2bSHenning Rogge __entry->idx = idx; 87766be7d2bSHenning Rogge ), 87866be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 87966be7d2bSHenning Rogge MAC_PR_FMT ", mpp: " MAC_PR_FMT, 88066be7d2bSHenning Rogge WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 88166be7d2bSHenning Rogge MAC_PR_ARG(mpp)) 88266be7d2bSHenning Rogge ); 88366be7d2bSHenning Rogge 88414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mpath_info, 88514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo), 88614e8a3c4SBeni Lev TP_ARGS(wiphy, ret, pinfo), 88714e8a3c4SBeni Lev TP_STRUCT__entry( 88814e8a3c4SBeni Lev WIPHY_ENTRY 88914e8a3c4SBeni Lev __field(int, ret) 89014e8a3c4SBeni Lev __field(int, generation) 89114e8a3c4SBeni Lev __field(u32, filled) 89214e8a3c4SBeni Lev __field(u32, frame_qlen) 89314e8a3c4SBeni Lev __field(u32, sn) 89414e8a3c4SBeni Lev __field(u32, metric) 89514e8a3c4SBeni Lev __field(u32, exptime) 89614e8a3c4SBeni Lev __field(u32, discovery_timeout) 89714e8a3c4SBeni Lev __field(u8, discovery_retries) 89814e8a3c4SBeni Lev __field(u8, flags) 89914e8a3c4SBeni Lev ), 90014e8a3c4SBeni Lev TP_fast_assign( 90114e8a3c4SBeni Lev WIPHY_ASSIGN; 90214e8a3c4SBeni Lev __entry->ret = ret; 90314e8a3c4SBeni Lev __entry->generation = pinfo->generation; 90414e8a3c4SBeni Lev __entry->filled = pinfo->filled; 90514e8a3c4SBeni Lev __entry->frame_qlen = pinfo->frame_qlen; 90614e8a3c4SBeni Lev __entry->sn = pinfo->sn; 90714e8a3c4SBeni Lev __entry->metric = pinfo->metric; 90814e8a3c4SBeni Lev __entry->exptime = pinfo->exptime; 90914e8a3c4SBeni Lev __entry->discovery_timeout = pinfo->discovery_timeout; 91014e8a3c4SBeni Lev __entry->discovery_retries = pinfo->discovery_retries; 91114e8a3c4SBeni Lev __entry->flags = pinfo->flags; 91214e8a3c4SBeni Lev ), 91314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, " 91414e8a3c4SBeni Lev "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u," 91514e8a3c4SBeni Lev " discovery timeout: %u, discovery retries: %u, flags: %u", 91614e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->generation, 91714e8a3c4SBeni Lev __entry->filled, __entry->frame_qlen, __entry->sn, 91814e8a3c4SBeni Lev __entry->metric, __entry->exptime, __entry->discovery_timeout, 91914e8a3c4SBeni Lev __entry->discovery_retries, __entry->flags) 92014e8a3c4SBeni Lev ); 92114e8a3c4SBeni Lev 92214e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mesh_config, 92314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf), 92414e8a3c4SBeni Lev TP_ARGS(wiphy, ret, conf), 92514e8a3c4SBeni Lev TP_STRUCT__entry( 92614e8a3c4SBeni Lev WIPHY_ENTRY 92714e8a3c4SBeni Lev MESH_CFG_ENTRY 92814e8a3c4SBeni Lev __field(int, ret) 92914e8a3c4SBeni Lev ), 93014e8a3c4SBeni Lev TP_fast_assign( 93114e8a3c4SBeni Lev WIPHY_ASSIGN; 93214e8a3c4SBeni Lev MESH_CFG_ASSIGN; 93314e8a3c4SBeni Lev __entry->ret = ret; 93414e8a3c4SBeni Lev ), 93514e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", 93614e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 93714e8a3c4SBeni Lev ); 93814e8a3c4SBeni Lev 93914e8a3c4SBeni Lev TRACE_EVENT(rdev_update_mesh_config, 94014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask, 94114e8a3c4SBeni Lev const struct mesh_config *conf), 94214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mask, conf), 94314e8a3c4SBeni Lev TP_STRUCT__entry( 94414e8a3c4SBeni Lev WIPHY_ENTRY 94514e8a3c4SBeni Lev NETDEV_ENTRY 94614e8a3c4SBeni Lev MESH_CFG_ENTRY 94714e8a3c4SBeni Lev __field(u32, mask) 94814e8a3c4SBeni Lev ), 94914e8a3c4SBeni Lev TP_fast_assign( 95014e8a3c4SBeni Lev WIPHY_ASSIGN; 95114e8a3c4SBeni Lev NETDEV_ASSIGN; 95214e8a3c4SBeni Lev MESH_CFG_ASSIGN; 95314e8a3c4SBeni Lev __entry->mask = mask; 95414e8a3c4SBeni Lev ), 955ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u", 95614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask) 95714e8a3c4SBeni Lev ); 95814e8a3c4SBeni Lev 95914e8a3c4SBeni Lev TRACE_EVENT(rdev_join_mesh, 96014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 96114e8a3c4SBeni Lev const struct mesh_config *conf, 96214e8a3c4SBeni Lev const struct mesh_setup *setup), 96314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, conf, setup), 96414e8a3c4SBeni Lev TP_STRUCT__entry( 96514e8a3c4SBeni Lev WIPHY_ENTRY 96614e8a3c4SBeni Lev NETDEV_ENTRY 96714e8a3c4SBeni Lev MESH_CFG_ENTRY 96814e8a3c4SBeni Lev ), 96914e8a3c4SBeni Lev TP_fast_assign( 97014e8a3c4SBeni Lev WIPHY_ASSIGN; 97114e8a3c4SBeni Lev NETDEV_ASSIGN; 97214e8a3c4SBeni Lev MESH_CFG_ASSIGN; 97314e8a3c4SBeni Lev ), 974ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 97514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 97614e8a3c4SBeni Lev ); 97714e8a3c4SBeni Lev 97814e8a3c4SBeni Lev TRACE_EVENT(rdev_change_bss, 97914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 98014e8a3c4SBeni Lev struct bss_parameters *params), 98114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 98214e8a3c4SBeni Lev TP_STRUCT__entry( 98314e8a3c4SBeni Lev WIPHY_ENTRY 98414e8a3c4SBeni Lev NETDEV_ENTRY 98514e8a3c4SBeni Lev __field(int, use_cts_prot) 98614e8a3c4SBeni Lev __field(int, use_short_preamble) 98714e8a3c4SBeni Lev __field(int, use_short_slot_time) 98814e8a3c4SBeni Lev __field(int, ap_isolate) 98914e8a3c4SBeni Lev __field(int, ht_opmode) 99014e8a3c4SBeni Lev ), 99114e8a3c4SBeni Lev TP_fast_assign( 99214e8a3c4SBeni Lev WIPHY_ASSIGN; 99314e8a3c4SBeni Lev NETDEV_ASSIGN; 99414e8a3c4SBeni Lev __entry->use_cts_prot = params->use_cts_prot; 99514e8a3c4SBeni Lev __entry->use_short_preamble = params->use_short_preamble; 99614e8a3c4SBeni Lev __entry->use_short_slot_time = params->use_short_slot_time; 99714e8a3c4SBeni Lev __entry->ap_isolate = params->ap_isolate; 99814e8a3c4SBeni Lev __entry->ht_opmode = params->ht_opmode; 99914e8a3c4SBeni Lev ), 1000ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, " 100114e8a3c4SBeni Lev "use short preamble: %d, use short slot time: %d, " 100214e8a3c4SBeni Lev "ap isolate: %d, ht opmode: %d", 100314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot, 100414e8a3c4SBeni Lev __entry->use_short_preamble, __entry->use_short_slot_time, 100514e8a3c4SBeni Lev __entry->ap_isolate, __entry->ht_opmode) 100614e8a3c4SBeni Lev ); 100714e8a3c4SBeni Lev 100814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 100914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 101014e8a3c4SBeni Lev struct ieee80211_txq_params *params), 101114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 101214e8a3c4SBeni Lev TP_STRUCT__entry( 101314e8a3c4SBeni Lev WIPHY_ENTRY 101414e8a3c4SBeni Lev NETDEV_ENTRY 101514e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 101614e8a3c4SBeni Lev __field(u16, txop) 101714e8a3c4SBeni Lev __field(u16, cwmin) 101814e8a3c4SBeni Lev __field(u16, cwmax) 101914e8a3c4SBeni Lev __field(u8, aifs) 102014e8a3c4SBeni Lev ), 102114e8a3c4SBeni Lev TP_fast_assign( 102214e8a3c4SBeni Lev WIPHY_ASSIGN; 102314e8a3c4SBeni Lev NETDEV_ASSIGN; 102414e8a3c4SBeni Lev __entry->ac = params->ac; 102514e8a3c4SBeni Lev __entry->txop = params->txop; 102614e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 102714e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 102814e8a3c4SBeni Lev __entry->aifs = params->aifs; 102914e8a3c4SBeni Lev ), 1030ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 103114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 103214e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 103314e8a3c4SBeni Lev ); 103414e8a3c4SBeni Lev 103514e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 103614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 103714e8a3c4SBeni Lev struct ieee80211_channel *chan), 103814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 103914e8a3c4SBeni Lev TP_STRUCT__entry( 104014e8a3c4SBeni Lev WIPHY_ENTRY 104114e8a3c4SBeni Lev NETDEV_ENTRY 104214e8a3c4SBeni Lev CHAN_ENTRY 104314e8a3c4SBeni Lev ), 104414e8a3c4SBeni Lev TP_fast_assign( 104514e8a3c4SBeni Lev WIPHY_ASSIGN; 104614e8a3c4SBeni Lev NETDEV_ASSIGN; 104714e8a3c4SBeni Lev CHAN_ASSIGN(chan); 104814e8a3c4SBeni Lev ), 1049ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 105014e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 105114e8a3c4SBeni Lev ); 105214e8a3c4SBeni Lev 105314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1054683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1055683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1056683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 105714e8a3c4SBeni Lev TP_STRUCT__entry( 105814e8a3c4SBeni Lev WIPHY_ENTRY 1059683b6d3bSJohannes Berg CHAN_DEF_ENTRY 106014e8a3c4SBeni Lev ), 106114e8a3c4SBeni Lev TP_fast_assign( 106214e8a3c4SBeni Lev WIPHY_ASSIGN; 1063683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 106414e8a3c4SBeni Lev ), 1065ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1066683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 106714e8a3c4SBeni Lev ); 106814e8a3c4SBeni Lev 106914e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 107014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 107114e8a3c4SBeni Lev struct cfg80211_auth_request *req), 107214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 107314e8a3c4SBeni Lev TP_STRUCT__entry( 107414e8a3c4SBeni Lev WIPHY_ENTRY 107514e8a3c4SBeni Lev NETDEV_ENTRY 107614e8a3c4SBeni Lev MAC_ENTRY(bssid) 107714e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 107814e8a3c4SBeni Lev ), 107914e8a3c4SBeni Lev TP_fast_assign( 108014e8a3c4SBeni Lev WIPHY_ASSIGN; 108114e8a3c4SBeni Lev NETDEV_ASSIGN; 108214e8a3c4SBeni Lev if (req->bss) 108314e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 108414e8a3c4SBeni Lev else 1085d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 108614e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 108714e8a3c4SBeni Lev ), 1088ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT, 108914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 109014e8a3c4SBeni Lev MAC_PR_ARG(bssid)) 109114e8a3c4SBeni Lev ); 109214e8a3c4SBeni Lev 109314e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 109414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 109514e8a3c4SBeni Lev struct cfg80211_assoc_request *req), 109614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 109714e8a3c4SBeni Lev TP_STRUCT__entry( 109814e8a3c4SBeni Lev WIPHY_ENTRY 109914e8a3c4SBeni Lev NETDEV_ENTRY 110014e8a3c4SBeni Lev MAC_ENTRY(bssid) 110114e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 110214e8a3c4SBeni Lev __field(bool, use_mfp) 110314e8a3c4SBeni Lev __field(u32, flags) 110414e8a3c4SBeni Lev ), 110514e8a3c4SBeni Lev TP_fast_assign( 110614e8a3c4SBeni Lev WIPHY_ASSIGN; 110714e8a3c4SBeni Lev NETDEV_ASSIGN; 110814e8a3c4SBeni Lev if (req->bss) 110914e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 111014e8a3c4SBeni Lev else 1111d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 111214e8a3c4SBeni Lev MAC_ASSIGN(prev_bssid, req->prev_bssid); 111314e8a3c4SBeni Lev __entry->use_mfp = req->use_mfp; 111414e8a3c4SBeni Lev __entry->flags = req->flags; 111514e8a3c4SBeni Lev ), 1116ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 111714e8a3c4SBeni Lev ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u", 111814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 111914e8a3c4SBeni Lev MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp), 112014e8a3c4SBeni Lev __entry->flags) 112114e8a3c4SBeni Lev ); 112214e8a3c4SBeni Lev 112314e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 112414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 112514e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 112614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 112714e8a3c4SBeni Lev TP_STRUCT__entry( 112814e8a3c4SBeni Lev WIPHY_ENTRY 112914e8a3c4SBeni Lev NETDEV_ENTRY 113014e8a3c4SBeni Lev MAC_ENTRY(bssid) 113114e8a3c4SBeni Lev __field(u16, reason_code) 113214e8a3c4SBeni Lev ), 113314e8a3c4SBeni Lev TP_fast_assign( 113414e8a3c4SBeni Lev WIPHY_ASSIGN; 113514e8a3c4SBeni Lev NETDEV_ASSIGN; 113614e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 113714e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 113814e8a3c4SBeni Lev ), 1139ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u", 114014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 114114e8a3c4SBeni Lev __entry->reason_code) 114214e8a3c4SBeni Lev ); 114314e8a3c4SBeni Lev 114414e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 114514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 114614e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 114714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 114814e8a3c4SBeni Lev TP_STRUCT__entry( 114914e8a3c4SBeni Lev WIPHY_ENTRY 115014e8a3c4SBeni Lev NETDEV_ENTRY 115114e8a3c4SBeni Lev MAC_ENTRY(bssid) 115214e8a3c4SBeni Lev __field(u16, reason_code) 115314e8a3c4SBeni Lev __field(bool, local_state_change) 115414e8a3c4SBeni Lev ), 115514e8a3c4SBeni Lev TP_fast_assign( 115614e8a3c4SBeni Lev WIPHY_ASSIGN; 115714e8a3c4SBeni Lev NETDEV_ASSIGN; 115814e8a3c4SBeni Lev if (req->bss) 115914e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 116014e8a3c4SBeni Lev else 1161d2beae10SJoe Perches eth_zero_addr(__entry->bssid); 116214e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 116314e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 116414e8a3c4SBeni Lev ), 1165ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 116614e8a3c4SBeni Lev ", reason: %u, local state change: %s", 116714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 116814e8a3c4SBeni Lev __entry->reason_code, 116914e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 117014e8a3c4SBeni Lev ); 117114e8a3c4SBeni Lev 117214e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 117314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 117414e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 117514e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 117614e8a3c4SBeni Lev TP_STRUCT__entry( 117714e8a3c4SBeni Lev WIPHY_ENTRY 117814e8a3c4SBeni Lev WDEV_ENTRY 117914e8a3c4SBeni Lev __field(u64, cookie) 118014e8a3c4SBeni Lev ), 118114e8a3c4SBeni Lev TP_fast_assign( 118214e8a3c4SBeni Lev WIPHY_ASSIGN; 118314e8a3c4SBeni Lev WDEV_ASSIGN; 118414e8a3c4SBeni Lev __entry->cookie = cookie; 118514e8a3c4SBeni Lev ), 1186ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 118714e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 118814e8a3c4SBeni Lev ); 118914e8a3c4SBeni Lev 119014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 119114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 119214e8a3c4SBeni Lev bool enabled, int timeout), 119314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 119414e8a3c4SBeni Lev TP_STRUCT__entry( 119514e8a3c4SBeni Lev WIPHY_ENTRY 119614e8a3c4SBeni Lev NETDEV_ENTRY 119714e8a3c4SBeni Lev __field(bool, enabled) 119814e8a3c4SBeni Lev __field(int, timeout) 119914e8a3c4SBeni Lev ), 120014e8a3c4SBeni Lev TP_fast_assign( 120114e8a3c4SBeni Lev WIPHY_ASSIGN; 120214e8a3c4SBeni Lev NETDEV_ASSIGN; 120314e8a3c4SBeni Lev __entry->enabled = enabled; 120414e8a3c4SBeni Lev __entry->timeout = timeout; 120514e8a3c4SBeni Lev ), 1206ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 120714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 120814e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 120914e8a3c4SBeni Lev ); 121014e8a3c4SBeni Lev 121114e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 121214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 121314e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 121414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 121514e8a3c4SBeni Lev TP_STRUCT__entry( 121614e8a3c4SBeni Lev WIPHY_ENTRY 121714e8a3c4SBeni Lev NETDEV_ENTRY 121814e8a3c4SBeni Lev MAC_ENTRY(bssid) 121914e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 122014e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 122114e8a3c4SBeni Lev __field(bool, privacy) 122214e8a3c4SBeni Lev __field(u32, wpa_versions) 122314e8a3c4SBeni Lev __field(u32, flags) 122414e8a3c4SBeni Lev ), 122514e8a3c4SBeni Lev TP_fast_assign( 122614e8a3c4SBeni Lev WIPHY_ASSIGN; 122714e8a3c4SBeni Lev NETDEV_ASSIGN; 122814e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 122914e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 123014e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 123114e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 123214e8a3c4SBeni Lev __entry->privacy = sme->privacy; 123314e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 123414e8a3c4SBeni Lev __entry->flags = sme->flags; 123514e8a3c4SBeni Lev ), 1236ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 123714e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 123814e8a3c4SBeni Lev "flags: %u", 123914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid, 124014e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 124114e8a3c4SBeni Lev __entry->wpa_versions, __entry->flags) 124214e8a3c4SBeni Lev ); 124314e8a3c4SBeni Lev 124414e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 124514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 124614e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 124714e8a3c4SBeni Lev u32 rssi_hyst), 124814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 124914e8a3c4SBeni Lev TP_STRUCT__entry( 125014e8a3c4SBeni Lev WIPHY_ENTRY 125114e8a3c4SBeni Lev NETDEV_ENTRY 125214e8a3c4SBeni Lev __field(s32, rssi_thold) 125314e8a3c4SBeni Lev __field(u32, rssi_hyst) 125414e8a3c4SBeni Lev ), 125514e8a3c4SBeni Lev TP_fast_assign( 125614e8a3c4SBeni Lev WIPHY_ASSIGN; 125714e8a3c4SBeni Lev NETDEV_ASSIGN; 125814e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 125914e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 126014e8a3c4SBeni Lev ), 1261ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 126214e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 126314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 126414e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 126514e8a3c4SBeni Lev ); 126614e8a3c4SBeni Lev 126714e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 126814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 126914e8a3c4SBeni Lev u32 pkts, u32 intvl), 127014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 127114e8a3c4SBeni Lev TP_STRUCT__entry( 127214e8a3c4SBeni Lev WIPHY_ENTRY 127314e8a3c4SBeni Lev NETDEV_ENTRY 127414e8a3c4SBeni Lev __field(u32, rate) 127514e8a3c4SBeni Lev __field(u32, pkts) 127614e8a3c4SBeni Lev __field(u32, intvl) 127714e8a3c4SBeni Lev ), 127814e8a3c4SBeni Lev TP_fast_assign( 127914e8a3c4SBeni Lev WIPHY_ASSIGN; 128014e8a3c4SBeni Lev NETDEV_ASSIGN; 128114e8a3c4SBeni Lev __entry->rate = rate; 128214e8a3c4SBeni Lev __entry->pkts = pkts; 128314e8a3c4SBeni Lev __entry->intvl = intvl; 128414e8a3c4SBeni Lev ), 1285ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 128614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 128714e8a3c4SBeni Lev __entry->intvl) 128814e8a3c4SBeni Lev ); 128914e8a3c4SBeni Lev 129014e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 129114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 129214e8a3c4SBeni Lev u16 reason_code), 129314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 129414e8a3c4SBeni Lev TP_STRUCT__entry( 129514e8a3c4SBeni Lev WIPHY_ENTRY 129614e8a3c4SBeni Lev NETDEV_ENTRY 129714e8a3c4SBeni Lev __field(u16, reason_code) 129814e8a3c4SBeni Lev ), 129914e8a3c4SBeni Lev TP_fast_assign( 130014e8a3c4SBeni Lev WIPHY_ASSIGN; 130114e8a3c4SBeni Lev NETDEV_ASSIGN; 130214e8a3c4SBeni Lev __entry->reason_code = reason_code; 130314e8a3c4SBeni Lev ), 1304ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 130514e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 130614e8a3c4SBeni Lev ); 130714e8a3c4SBeni Lev 130814e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 130914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 131014e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 131114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 131214e8a3c4SBeni Lev TP_STRUCT__entry( 131314e8a3c4SBeni Lev WIPHY_ENTRY 131414e8a3c4SBeni Lev NETDEV_ENTRY 131514e8a3c4SBeni Lev MAC_ENTRY(bssid) 131614e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 131714e8a3c4SBeni Lev ), 131814e8a3c4SBeni Lev TP_fast_assign( 131914e8a3c4SBeni Lev WIPHY_ASSIGN; 132014e8a3c4SBeni Lev NETDEV_ASSIGN; 132114e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 132214e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 132314e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 132414e8a3c4SBeni Lev ), 1325ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s", 132614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid) 132714e8a3c4SBeni Lev ); 132814e8a3c4SBeni Lev 13296e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 13306e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 13316e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 13326e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 13336e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 13346e0bd6c3SRostislav Lisovy WIPHY_ENTRY 13356e0bd6c3SRostislav Lisovy NETDEV_ENTRY 13366e0bd6c3SRostislav Lisovy ), 13376e0bd6c3SRostislav Lisovy TP_fast_assign( 13386e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 13396e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 13406e0bd6c3SRostislav Lisovy ), 13416e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 13426e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 13436e0bd6c3SRostislav Lisovy ); 13446e0bd6c3SRostislav Lisovy 134514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 134614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 134714e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 134814e8a3c4SBeni Lev TP_STRUCT__entry( 134914e8a3c4SBeni Lev WIPHY_ENTRY 135014e8a3c4SBeni Lev __field(u32, changed) 135114e8a3c4SBeni Lev ), 135214e8a3c4SBeni Lev TP_fast_assign( 135314e8a3c4SBeni Lev WIPHY_ASSIGN; 135414e8a3c4SBeni Lev __entry->changed = changed; 135514e8a3c4SBeni Lev ), 135614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 135714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 135814e8a3c4SBeni Lev ); 135914e8a3c4SBeni Lev 1360c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1361c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1362c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1363c8442118SJohannes Berg ); 1364c8442118SJohannes Berg 136514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1366c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1367c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1368c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 136914e8a3c4SBeni Lev TP_STRUCT__entry( 137014e8a3c4SBeni Lev WIPHY_ENTRY 1371c8442118SJohannes Berg WDEV_ENTRY 137214e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 137314e8a3c4SBeni Lev __field(int, mbm) 137414e8a3c4SBeni Lev ), 137514e8a3c4SBeni Lev TP_fast_assign( 137614e8a3c4SBeni Lev WIPHY_ASSIGN; 1377c8442118SJohannes Berg WDEV_ASSIGN; 137814e8a3c4SBeni Lev __entry->type = type; 137914e8a3c4SBeni Lev __entry->mbm = mbm; 138014e8a3c4SBeni Lev ), 1381ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1382c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 138314e8a3c4SBeni Lev ); 138414e8a3c4SBeni Lev 138514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 138614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 138714e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 138814e8a3c4SBeni Lev TP_STRUCT__entry( 138914e8a3c4SBeni Lev WIPHY_ENTRY 139014e8a3c4SBeni Lev __field(int, func_ret) 139114e8a3c4SBeni Lev __field(int, func_fill) 139214e8a3c4SBeni Lev ), 139314e8a3c4SBeni Lev TP_fast_assign( 139414e8a3c4SBeni Lev WIPHY_ASSIGN; 139514e8a3c4SBeni Lev __entry->func_ret = func_ret; 139614e8a3c4SBeni Lev __entry->func_fill = func_fill; 139714e8a3c4SBeni Lev ), 139814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 139914e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 140014e8a3c4SBeni Lev ); 140114e8a3c4SBeni Lev 140214e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 140314e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1404fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1405fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 140614e8a3c4SBeni Lev TP_STRUCT__entry( 140714e8a3c4SBeni Lev WIPHY_ENTRY 1408fc73f11fSDavid Spinadel WDEV_ENTRY 140914e8a3c4SBeni Lev ), 141014e8a3c4SBeni Lev TP_fast_assign( 141114e8a3c4SBeni Lev WIPHY_ASSIGN; 1412fc73f11fSDavid Spinadel WDEV_ASSIGN; 141314e8a3c4SBeni Lev ), 1414fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 141514e8a3c4SBeni Lev ); 141614e8a3c4SBeni Lev 141714e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 141814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 141914e8a3c4SBeni Lev TP_ARGS(wiphy), 142014e8a3c4SBeni Lev TP_STRUCT__entry( 142114e8a3c4SBeni Lev WIPHY_ENTRY 142214e8a3c4SBeni Lev ), 142314e8a3c4SBeni Lev TP_fast_assign( 142414e8a3c4SBeni Lev WIPHY_ASSIGN; 142514e8a3c4SBeni Lev ), 142614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 142714e8a3c4SBeni Lev ); 142814e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 142914e8a3c4SBeni Lev 143014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 143114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 143214e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 143314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, mask), 143414e8a3c4SBeni Lev TP_STRUCT__entry( 143514e8a3c4SBeni Lev WIPHY_ENTRY 143614e8a3c4SBeni Lev NETDEV_ENTRY 143714e8a3c4SBeni Lev MAC_ENTRY(peer) 143814e8a3c4SBeni Lev ), 143914e8a3c4SBeni Lev TP_fast_assign( 144014e8a3c4SBeni Lev WIPHY_ASSIGN; 144114e8a3c4SBeni Lev NETDEV_ASSIGN; 144214e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 144314e8a3c4SBeni Lev ), 1444ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 144514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 144614e8a3c4SBeni Lev ); 144714e8a3c4SBeni Lev 144814e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_frame_register, 144914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 145014e8a3c4SBeni Lev u16 frame_type, bool reg), 145114e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, frame_type, reg), 145214e8a3c4SBeni Lev TP_STRUCT__entry( 145314e8a3c4SBeni Lev WIPHY_ENTRY 145414e8a3c4SBeni Lev WDEV_ENTRY 145514e8a3c4SBeni Lev __field(u16, frame_type) 145614e8a3c4SBeni Lev __field(bool, reg) 145714e8a3c4SBeni Lev ), 145814e8a3c4SBeni Lev TP_fast_assign( 145914e8a3c4SBeni Lev WIPHY_ASSIGN; 146014e8a3c4SBeni Lev WDEV_ASSIGN; 146114e8a3c4SBeni Lev __entry->frame_type = frame_type; 146214e8a3c4SBeni Lev __entry->reg = reg; 146314e8a3c4SBeni Lev ), 1464ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", frame_type: 0x%.2x, reg: %s ", 146514e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->frame_type, 146614e8a3c4SBeni Lev __entry->reg ? "true" : "false") 146714e8a3c4SBeni Lev ); 146814e8a3c4SBeni Lev 146914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 147014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 147114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 147214e8a3c4SBeni Lev TP_STRUCT__entry( 147314e8a3c4SBeni Lev WIPHY_ENTRY 147414e8a3c4SBeni Lev __field(int, ret) 147514e8a3c4SBeni Lev __field(u32, tx) 147614e8a3c4SBeni Lev __field(u32, rx) 147714e8a3c4SBeni Lev ), 147814e8a3c4SBeni Lev TP_fast_assign( 147914e8a3c4SBeni Lev WIPHY_ASSIGN; 148014e8a3c4SBeni Lev __entry->ret = ret; 148114e8a3c4SBeni Lev __entry->tx = tx; 148214e8a3c4SBeni Lev __entry->rx = rx; 148314e8a3c4SBeni Lev ), 148414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 148514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 148614e8a3c4SBeni Lev ); 148714e8a3c4SBeni Lev 148814e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 148914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 149014e8a3c4SBeni Lev u32 rx, u32 rx_max), 149114e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 149214e8a3c4SBeni Lev TP_STRUCT__entry( 149314e8a3c4SBeni Lev WIPHY_ENTRY 149414e8a3c4SBeni Lev __field(u32, tx) 149514e8a3c4SBeni Lev __field(u32, tx_max) 149614e8a3c4SBeni Lev __field(u32, rx) 149714e8a3c4SBeni Lev __field(u32, rx_max) 149814e8a3c4SBeni Lev ), 149914e8a3c4SBeni Lev TP_fast_assign( 150014e8a3c4SBeni Lev WIPHY_ASSIGN; 150114e8a3c4SBeni Lev __entry->tx = tx; 150214e8a3c4SBeni Lev __entry->tx_max = tx_max; 150314e8a3c4SBeni Lev __entry->rx = rx; 150414e8a3c4SBeni Lev __entry->rx_max = rx_max; 150514e8a3c4SBeni Lev ), 150614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 150714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 150814e8a3c4SBeni Lev __entry->rx_max) 150914e8a3c4SBeni Lev ); 151014e8a3c4SBeni Lev 151114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 151214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 151314e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 151414e8a3c4SBeni Lev TP_STRUCT__entry( 151514e8a3c4SBeni Lev WIPHY_ENTRY 151614e8a3c4SBeni Lev __field(u32, tx) 151714e8a3c4SBeni Lev __field(u32, rx) 151814e8a3c4SBeni Lev ), 151914e8a3c4SBeni Lev TP_fast_assign( 152014e8a3c4SBeni Lev WIPHY_ASSIGN; 152114e8a3c4SBeni Lev __entry->tx = tx; 152214e8a3c4SBeni Lev __entry->rx = rx; 152314e8a3c4SBeni Lev ), 152414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 152514e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 152614e8a3c4SBeni Lev ); 152714e8a3c4SBeni Lev 152814e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 152914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 153014e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 153114e8a3c4SBeni Lev ); 153214e8a3c4SBeni Lev 153314e8a3c4SBeni Lev TRACE_EVENT(rdev_sched_scan_start, 153414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 153514e8a3c4SBeni Lev struct cfg80211_sched_scan_request *request), 153614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, request), 153714e8a3c4SBeni Lev TP_STRUCT__entry( 153814e8a3c4SBeni Lev WIPHY_ENTRY 153914e8a3c4SBeni Lev NETDEV_ENTRY 154014e8a3c4SBeni Lev ), 154114e8a3c4SBeni Lev TP_fast_assign( 154214e8a3c4SBeni Lev WIPHY_ASSIGN; 154314e8a3c4SBeni Lev NETDEV_ASSIGN; 154414e8a3c4SBeni Lev ), 1545ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 154614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 154714e8a3c4SBeni Lev ); 154814e8a3c4SBeni Lev 154914e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 155014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 155114e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1552df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 155331fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 155414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 155531fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 155614e8a3c4SBeni Lev TP_STRUCT__entry( 155714e8a3c4SBeni Lev WIPHY_ENTRY 155814e8a3c4SBeni Lev NETDEV_ENTRY 155914e8a3c4SBeni Lev MAC_ENTRY(peer) 156014e8a3c4SBeni Lev __field(u8, action_code) 156114e8a3c4SBeni Lev __field(u8, dialog_token) 156214e8a3c4SBeni Lev __field(u16, status_code) 1563df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 156431fa97c5SArik Nemtsov __field(bool, initiator) 156514e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 156614e8a3c4SBeni Lev ), 156714e8a3c4SBeni Lev TP_fast_assign( 156814e8a3c4SBeni Lev WIPHY_ASSIGN; 156914e8a3c4SBeni Lev NETDEV_ASSIGN; 157014e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 157114e8a3c4SBeni Lev __entry->action_code = action_code; 157214e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 157314e8a3c4SBeni Lev __entry->status_code = status_code; 1574df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 157531fa97c5SArik Nemtsov __entry->initiator = initiator; 157614e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 157714e8a3c4SBeni Lev ), 1578ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, " 157931fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 158031fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 158114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 158214e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1583df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 158431fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1585df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 158614e8a3c4SBeni Lev ); 158714e8a3c4SBeni Lev 158814e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 158914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx), 159014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, idx), 159114e8a3c4SBeni Lev TP_STRUCT__entry( 159214e8a3c4SBeni Lev WIPHY_ENTRY 159314e8a3c4SBeni Lev NETDEV_ENTRY 159414e8a3c4SBeni Lev __field(int, idx) 159514e8a3c4SBeni Lev ), 159614e8a3c4SBeni Lev TP_fast_assign( 159714e8a3c4SBeni Lev WIPHY_ASSIGN; 159814e8a3c4SBeni Lev NETDEV_ASSIGN; 159914e8a3c4SBeni Lev __entry->idx = idx; 160014e8a3c4SBeni Lev ), 1601ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 160214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 160314e8a3c4SBeni Lev ); 160414e8a3c4SBeni Lev 160514e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 160614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 160714e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 160814e8a3c4SBeni Lev TP_STRUCT__entry( 160914e8a3c4SBeni Lev WIPHY_ENTRY 161014e8a3c4SBeni Lev CHAN_ENTRY 161114e8a3c4SBeni Lev __field(int, ret) 16124ed20bebSJohannes Berg __field(u64, time) 16134ed20bebSJohannes Berg __field(u64, time_busy) 16144ed20bebSJohannes Berg __field(u64, time_ext_busy) 16154ed20bebSJohannes Berg __field(u64, time_rx) 16164ed20bebSJohannes Berg __field(u64, time_tx) 1617052536abSJohannes Berg __field(u64, time_scan) 161814e8a3c4SBeni Lev __field(u32, filled) 161914e8a3c4SBeni Lev __field(s8, noise) 162014e8a3c4SBeni Lev ), 162114e8a3c4SBeni Lev TP_fast_assign( 162214e8a3c4SBeni Lev WIPHY_ASSIGN; 162314e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 162414e8a3c4SBeni Lev __entry->ret = ret; 16254ed20bebSJohannes Berg __entry->time = info->time; 16264ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 16274ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 16284ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 16294ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1630052536abSJohannes Berg __entry->time_scan = info->time_scan; 163114e8a3c4SBeni Lev __entry->filled = info->filled; 163214e8a3c4SBeni Lev __entry->noise = info->noise; 163314e8a3c4SBeni Lev ), 163414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 163514e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 163614e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1637052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 163814e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 16394ed20bebSJohannes Berg __entry->time, __entry->time_busy, 16404ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1641052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1642052536abSJohannes Berg __entry->filled, __entry->noise) 164314e8a3c4SBeni Lev ); 164414e8a3c4SBeni Lev 164514e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 164614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 164714e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 164814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 164914e8a3c4SBeni Lev TP_STRUCT__entry( 165014e8a3c4SBeni Lev WIPHY_ENTRY 165114e8a3c4SBeni Lev NETDEV_ENTRY 165214e8a3c4SBeni Lev MAC_ENTRY(peer) 165314e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 165414e8a3c4SBeni Lev ), 165514e8a3c4SBeni Lev TP_fast_assign( 165614e8a3c4SBeni Lev WIPHY_ASSIGN; 165714e8a3c4SBeni Lev NETDEV_ASSIGN; 165814e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 165914e8a3c4SBeni Lev __entry->oper = oper; 166014e8a3c4SBeni Lev ), 1661ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d", 166214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper) 166314e8a3c4SBeni Lev ); 166414e8a3c4SBeni Lev 166514e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 166614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 166714e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 166814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 166914e8a3c4SBeni Lev TP_STRUCT__entry( 167014e8a3c4SBeni Lev WIPHY_ENTRY 167114e8a3c4SBeni Lev NETDEV_ENTRY 167214e8a3c4SBeni Lev MAC_ENTRY(bssid) 167314e8a3c4SBeni Lev ), 167414e8a3c4SBeni Lev TP_fast_assign( 167514e8a3c4SBeni Lev WIPHY_ASSIGN; 167614e8a3c4SBeni Lev NETDEV_ASSIGN; 167714e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 167814e8a3c4SBeni Lev ), 1679ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT, 168014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid)) 168114e8a3c4SBeni Lev ); 168214e8a3c4SBeni Lev 168314e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 168414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 168514e8a3c4SBeni Lev const u8 *peer), 168614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 168714e8a3c4SBeni Lev TP_STRUCT__entry( 168814e8a3c4SBeni Lev WIPHY_ENTRY 168914e8a3c4SBeni Lev NETDEV_ENTRY 169014e8a3c4SBeni Lev MAC_ENTRY(peer) 169114e8a3c4SBeni Lev ), 169214e8a3c4SBeni Lev TP_fast_assign( 169314e8a3c4SBeni Lev WIPHY_ASSIGN; 169414e8a3c4SBeni Lev NETDEV_ASSIGN; 169514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 169614e8a3c4SBeni Lev ), 1697ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 169814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 169914e8a3c4SBeni Lev ); 170014e8a3c4SBeni Lev 170114e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 170214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 170314e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 170414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 170514e8a3c4SBeni Lev ); 170614e8a3c4SBeni Lev 170714e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 170814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 170914e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 171014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 171114e8a3c4SBeni Lev ); 171214e8a3c4SBeni Lev 171314e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 171414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 171514e8a3c4SBeni Lev struct ieee80211_channel *chan, 171642d97a59SJohannes Berg unsigned int duration), 171742d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 171814e8a3c4SBeni Lev TP_STRUCT__entry( 171914e8a3c4SBeni Lev WIPHY_ENTRY 172014e8a3c4SBeni Lev WDEV_ENTRY 172114e8a3c4SBeni Lev CHAN_ENTRY 172214e8a3c4SBeni Lev __field(unsigned int, duration) 172314e8a3c4SBeni Lev ), 172414e8a3c4SBeni Lev TP_fast_assign( 172514e8a3c4SBeni Lev WIPHY_ASSIGN; 172614e8a3c4SBeni Lev WDEV_ASSIGN; 172714e8a3c4SBeni Lev CHAN_ASSIGN(chan); 172814e8a3c4SBeni Lev __entry->duration = duration; 172914e8a3c4SBeni Lev ), 1730ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 173142d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 173214e8a3c4SBeni Lev ); 173314e8a3c4SBeni Lev 173414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 173514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 173614e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 173714e8a3c4SBeni Lev TP_STRUCT__entry( 173814e8a3c4SBeni Lev WIPHY_ENTRY 173914e8a3c4SBeni Lev __field(int, ret) 174014e8a3c4SBeni Lev __field(u64, cookie) 174114e8a3c4SBeni Lev ), 174214e8a3c4SBeni Lev TP_fast_assign( 174314e8a3c4SBeni Lev WIPHY_ASSIGN; 174414e8a3c4SBeni Lev __entry->ret = ret; 174514e8a3c4SBeni Lev __entry->cookie = cookie; 174614e8a3c4SBeni Lev ), 174714e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 174814e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 174914e8a3c4SBeni Lev ); 175014e8a3c4SBeni Lev 175114e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 175214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 175314e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 175414e8a3c4SBeni Lev TP_STRUCT__entry( 175514e8a3c4SBeni Lev WIPHY_ENTRY 175614e8a3c4SBeni Lev WDEV_ENTRY 175714e8a3c4SBeni Lev __field(u64, cookie) 175814e8a3c4SBeni Lev ), 175914e8a3c4SBeni Lev TP_fast_assign( 176014e8a3c4SBeni Lev WIPHY_ASSIGN; 176114e8a3c4SBeni Lev WDEV_ASSIGN; 176214e8a3c4SBeni Lev __entry->cookie = cookie; 176314e8a3c4SBeni Lev ), 1764ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 176514e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 176614e8a3c4SBeni Lev ); 176714e8a3c4SBeni Lev 176814e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 176914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1770b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 1771b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 177214e8a3c4SBeni Lev TP_STRUCT__entry( 177314e8a3c4SBeni Lev WIPHY_ENTRY 177414e8a3c4SBeni Lev WDEV_ENTRY 177514e8a3c4SBeni Lev CHAN_ENTRY 177614e8a3c4SBeni Lev __field(bool, offchan) 177714e8a3c4SBeni Lev __field(unsigned int, wait) 177814e8a3c4SBeni Lev __field(bool, no_cck) 177914e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 178014e8a3c4SBeni Lev ), 178114e8a3c4SBeni Lev TP_fast_assign( 178214e8a3c4SBeni Lev WIPHY_ASSIGN; 178314e8a3c4SBeni Lev WDEV_ASSIGN; 1784b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 1785b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 1786b176e629SAndrei Otcheretianski __entry->wait = params->wait; 1787b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 1788b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 178914e8a3c4SBeni Lev ), 1790ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 179142d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 179214e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 179342d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 179414e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 179514e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 179614e8a3c4SBeni Lev ); 179714e8a3c4SBeni Lev 179814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 179914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 180014e8a3c4SBeni Lev u16 noack_map), 180114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 180214e8a3c4SBeni Lev TP_STRUCT__entry( 180314e8a3c4SBeni Lev WIPHY_ENTRY 180414e8a3c4SBeni Lev NETDEV_ENTRY 180514e8a3c4SBeni Lev __field(u16, noack_map) 180614e8a3c4SBeni Lev ), 180714e8a3c4SBeni Lev TP_fast_assign( 180814e8a3c4SBeni Lev WIPHY_ASSIGN; 180914e8a3c4SBeni Lev NETDEV_ASSIGN; 181014e8a3c4SBeni Lev __entry->noack_map = noack_map; 181114e8a3c4SBeni Lev ), 1812ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 181314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 181414e8a3c4SBeni Lev ); 181514e8a3c4SBeni Lev 181614e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_get_channel, 181714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 181814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 181914e8a3c4SBeni Lev ); 182014e8a3c4SBeni Lev 1821683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 1822683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 1823683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1824683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 182514e8a3c4SBeni Lev TP_STRUCT__entry( 182614e8a3c4SBeni Lev WIPHY_ENTRY 1827683b6d3bSJohannes Berg __field(int, ret) 1828683b6d3bSJohannes Berg CHAN_DEF_ENTRY 182914e8a3c4SBeni Lev ), 183014e8a3c4SBeni Lev TP_fast_assign( 183114e8a3c4SBeni Lev WIPHY_ASSIGN; 1832683b6d3bSJohannes Berg if (ret == 0) 1833683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 1834683b6d3bSJohannes Berg else 1835683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 1836683b6d3bSJohannes Berg __entry->ret = ret; 183714e8a3c4SBeni Lev ), 1838ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 1839683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 184014e8a3c4SBeni Lev ); 184114e8a3c4SBeni Lev 1842eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 1843eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1844eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 1845eeb126e9SJohannes Berg ); 1846eeb126e9SJohannes Berg 1847eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 1848eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1849eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 1850eeb126e9SJohannes Berg ); 1851eeb126e9SJohannes Berg 185277765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 185377765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 185477765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 185577765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 185677765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 185777765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 185877765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 185977765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 186077765eafSVasanthakumar Thiagarajan ), 186177765eafSVasanthakumar Thiagarajan TP_fast_assign( 186277765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 1863021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 186477765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 186577765eafSVasanthakumar Thiagarajan ), 186677765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 186777765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 186877765eafSVasanthakumar Thiagarajan ); 186977765eafSVasanthakumar Thiagarajan 1870355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 1871355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1872355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 1873355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 1874355199e0SJouni Malinen TP_STRUCT__entry( 1875355199e0SJouni Malinen WIPHY_ENTRY 1876355199e0SJouni Malinen NETDEV_ENTRY 1877355199e0SJouni Malinen __field(u16, md) 1878355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 1879355199e0SJouni Malinen ), 1880355199e0SJouni Malinen TP_fast_assign( 1881355199e0SJouni Malinen WIPHY_ASSIGN; 1882355199e0SJouni Malinen NETDEV_ASSIGN; 1883355199e0SJouni Malinen __entry->md = ftie->md; 1884355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 1885355199e0SJouni Malinen ), 1886355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 1887355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 1888355199e0SJouni Malinen ); 1889355199e0SJouni Malinen 18905de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 18915de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 18925de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 18935de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 18945de17984SArend van Spriel TP_STRUCT__entry( 18955de17984SArend van Spriel WIPHY_ENTRY 18965de17984SArend van Spriel WDEV_ENTRY 18975de17984SArend van Spriel __field(u16, proto) 18985de17984SArend van Spriel __field(u16, duration) 18995de17984SArend van Spriel ), 19005de17984SArend van Spriel TP_fast_assign( 19015de17984SArend van Spriel WIPHY_ASSIGN; 19025de17984SArend van Spriel WDEV_ASSIGN; 19035de17984SArend van Spriel __entry->proto = protocol; 19045de17984SArend van Spriel __entry->duration = duration; 19055de17984SArend van Spriel ), 19065de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 19075de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 19085de17984SArend van Spriel ); 19095de17984SArend van Spriel 19105de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 19115de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 19125de17984SArend van Spriel TP_ARGS(wiphy, wdev), 19135de17984SArend van Spriel TP_STRUCT__entry( 19145de17984SArend van Spriel WIPHY_ENTRY 19155de17984SArend van Spriel WDEV_ENTRY 19165de17984SArend van Spriel ), 19175de17984SArend van Spriel TP_fast_assign( 19185de17984SArend van Spriel WIPHY_ASSIGN; 19195de17984SArend van Spriel WDEV_ASSIGN; 19205de17984SArend van Spriel ), 19215de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 19225de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 19235de17984SArend van Spriel ); 19245de17984SArend van Spriel 192516ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 192616ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192716ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 192816ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 192916ef1fe2SSimon Wunderlich TP_STRUCT__entry( 193016ef1fe2SSimon Wunderlich WIPHY_ENTRY 193116ef1fe2SSimon Wunderlich NETDEV_ENTRY 193216ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 193316ef1fe2SSimon Wunderlich __field(bool, radar_required) 193416ef1fe2SSimon Wunderlich __field(bool, block_tx) 193516ef1fe2SSimon Wunderlich __field(u8, count) 19369a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 19379a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 193816ef1fe2SSimon Wunderlich ), 193916ef1fe2SSimon Wunderlich TP_fast_assign( 194016ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 194116ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 194216ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 194316ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 194416ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 194516ef1fe2SSimon Wunderlich __entry->count = params->count; 19469a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 19479a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 19489a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 19499a774c78SAndrei Otcheretianski 19509a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 19519a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 19529a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 19539a774c78SAndrei Otcheretianski params->counter_offsets_presp, 19549a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 195516ef1fe2SSimon Wunderlich ), 195616ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 19579a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 195816ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 19599a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 196016ef1fe2SSimon Wunderlich ); 196116ef1fe2SSimon Wunderlich 1962fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 1963fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1964fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 1965fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 1966fa9ffc74SKyeyoon Park TP_STRUCT__entry( 1967fa9ffc74SKyeyoon Park WIPHY_ENTRY 1968fa9ffc74SKyeyoon Park NETDEV_ENTRY 1969fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 1970fa9ffc74SKyeyoon Park ), 1971fa9ffc74SKyeyoon Park TP_fast_assign( 1972fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 1973fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 1974fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 1975fa9ffc74SKyeyoon Park ), 1976fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 1977fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 1978fa9ffc74SKyeyoon Park ); 1979fa9ffc74SKyeyoon Park 1980e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 1981e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1982e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 1983e16821bcSJouni Malinen TP_ARGS(wiphy, netdev, chandef), 1984e16821bcSJouni Malinen TP_STRUCT__entry( 1985e16821bcSJouni Malinen WIPHY_ENTRY 1986e16821bcSJouni Malinen NETDEV_ENTRY 1987e16821bcSJouni Malinen CHAN_DEF_ENTRY 1988e16821bcSJouni Malinen ), 1989e16821bcSJouni Malinen TP_fast_assign( 1990e16821bcSJouni Malinen WIPHY_ASSIGN; 1991e16821bcSJouni Malinen NETDEV_ASSIGN; 1992e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 1993e16821bcSJouni Malinen ), 1994e16821bcSJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 1995e16821bcSJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 1996e16821bcSJouni Malinen ); 1997e16821bcSJouni Malinen 1998960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 1999960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2000960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 2001960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 2002960d01acSJohannes Berg TP_STRUCT__entry( 2003960d01acSJohannes Berg WIPHY_ENTRY 2004960d01acSJohannes Berg NETDEV_ENTRY 2005960d01acSJohannes Berg MAC_ENTRY(peer) 2006960d01acSJohannes Berg __field(u8, tsid) 2007960d01acSJohannes Berg __field(u8, user_prio) 2008960d01acSJohannes Berg __field(u16, admitted_time) 2009960d01acSJohannes Berg ), 2010960d01acSJohannes Berg TP_fast_assign( 2011960d01acSJohannes Berg WIPHY_ASSIGN; 2012960d01acSJohannes Berg NETDEV_ASSIGN; 2013960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2014960d01acSJohannes Berg __entry->tsid = tsid; 2015960d01acSJohannes Berg __entry->user_prio = user_prio; 2016960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2017960d01acSJohannes Berg ), 2018960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2019960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2020960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2021960d01acSJohannes Berg ); 2022960d01acSJohannes Berg 2023960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2024960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2025960d01acSJohannes Berg u8 tsid, const u8 *peer), 2026960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2027960d01acSJohannes Berg TP_STRUCT__entry( 2028960d01acSJohannes Berg WIPHY_ENTRY 2029960d01acSJohannes Berg NETDEV_ENTRY 2030960d01acSJohannes Berg MAC_ENTRY(peer) 2031960d01acSJohannes Berg __field(u8, tsid) 2032960d01acSJohannes Berg ), 2033960d01acSJohannes Berg TP_fast_assign( 2034960d01acSJohannes Berg WIPHY_ASSIGN; 2035960d01acSJohannes Berg NETDEV_ASSIGN; 2036960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2037960d01acSJohannes Berg __entry->tsid = tsid; 2038960d01acSJohannes Berg ), 2039960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2040960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2041960d01acSJohannes Berg ); 2042960d01acSJohannes Berg 20431057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 20441057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20451057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 20461057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 20471057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 20481057d35eSArik Nemtsov TP_STRUCT__entry( 20491057d35eSArik Nemtsov WIPHY_ENTRY 20501057d35eSArik Nemtsov NETDEV_ENTRY 20511057d35eSArik Nemtsov MAC_ENTRY(addr) 20521057d35eSArik Nemtsov __field(u8, oper_class) 20531057d35eSArik Nemtsov CHAN_DEF_ENTRY 20541057d35eSArik Nemtsov ), 20551057d35eSArik Nemtsov TP_fast_assign( 20561057d35eSArik Nemtsov WIPHY_ASSIGN; 20571057d35eSArik Nemtsov NETDEV_ASSIGN; 20581057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 20591057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 20601057d35eSArik Nemtsov ), 20611057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 20621057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 20631057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 20641057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 20651057d35eSArik Nemtsov ); 20661057d35eSArik Nemtsov 20671057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 20681057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20691057d35eSArik Nemtsov const u8 *addr), 20701057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 20711057d35eSArik Nemtsov TP_STRUCT__entry( 20721057d35eSArik Nemtsov WIPHY_ENTRY 20731057d35eSArik Nemtsov NETDEV_ENTRY 20741057d35eSArik Nemtsov MAC_ENTRY(addr) 20751057d35eSArik Nemtsov ), 20761057d35eSArik Nemtsov TP_fast_assign( 20771057d35eSArik Nemtsov WIPHY_ASSIGN; 20781057d35eSArik Nemtsov NETDEV_ASSIGN; 20791057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 20801057d35eSArik Nemtsov ), 20811057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 20821057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 20831057d35eSArik Nemtsov ); 20841057d35eSArik Nemtsov 20854ee3e063SBeni Lev /************************************************************* 20864ee3e063SBeni Lev * cfg80211 exported functions traces * 20874ee3e063SBeni Lev *************************************************************/ 20884ee3e063SBeni Lev 20894ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 20904ee3e063SBeni Lev TP_PROTO(bool ret), 20914ee3e063SBeni Lev TP_ARGS(ret), 20924ee3e063SBeni Lev TP_STRUCT__entry( 20934ee3e063SBeni Lev __field(bool, ret) 20944ee3e063SBeni Lev ), 20954ee3e063SBeni Lev TP_fast_assign( 20964ee3e063SBeni Lev __entry->ret = ret; 20974ee3e063SBeni Lev ), 20984ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 20994ee3e063SBeni Lev ); 21004ee3e063SBeni Lev 21014ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 21024ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 21034ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 21044ee3e063SBeni Lev TP_STRUCT__entry( 21054ee3e063SBeni Lev NETDEV_ENTRY 21064ee3e063SBeni Lev MAC_ENTRY(macaddr) 21074ee3e063SBeni Lev ), 21084ee3e063SBeni Lev TP_fast_assign( 21094ee3e063SBeni Lev NETDEV_ASSIGN; 21104ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 21114ee3e063SBeni Lev ), 21124ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 21134ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 21144ee3e063SBeni Lev ); 21154ee3e063SBeni Lev 21164ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 21174ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 21184ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 21194ee3e063SBeni Lev ); 21204ee3e063SBeni Lev 21214ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 21224ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 21234ee3e063SBeni Lev TP_ARGS(netdev), 21244ee3e063SBeni Lev TP_STRUCT__entry( 21254ee3e063SBeni Lev NETDEV_ENTRY 21264ee3e063SBeni Lev ), 21274ee3e063SBeni Lev TP_fast_assign( 21284ee3e063SBeni Lev NETDEV_ASSIGN; 21294ee3e063SBeni Lev ), 21304ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 21314ee3e063SBeni Lev ); 21324ee3e063SBeni Lev 21334ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 21344ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 21354ee3e063SBeni Lev TP_ARGS(netdev) 21364ee3e063SBeni Lev ); 21374ee3e063SBeni Lev 21384ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 21394ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss), 21404ee3e063SBeni Lev TP_ARGS(netdev, bss), 21414ee3e063SBeni Lev TP_STRUCT__entry( 21424ee3e063SBeni Lev NETDEV_ENTRY 21434ee3e063SBeni Lev MAC_ENTRY(bssid) 21444ee3e063SBeni Lev CHAN_ENTRY 21454ee3e063SBeni Lev ), 21464ee3e063SBeni Lev TP_fast_assign( 21474ee3e063SBeni Lev NETDEV_ASSIGN; 21484ee3e063SBeni Lev MAC_ASSIGN(bssid, bss->bssid); 21494ee3e063SBeni Lev CHAN_ASSIGN(bss->channel); 21504ee3e063SBeni Lev ), 2151ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT, 21524ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 21534ee3e063SBeni Lev ); 21544ee3e063SBeni Lev 21556ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 21566ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 21576ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 21586ff57cf8SJohannes Berg TP_STRUCT__entry( 21596ff57cf8SJohannes Berg NETDEV_ENTRY 21606ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 21616ff57cf8SJohannes Berg ), 21626ff57cf8SJohannes Berg TP_fast_assign( 21636ff57cf8SJohannes Berg NETDEV_ASSIGN; 21646ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 21656ff57cf8SJohannes Berg ), 21666ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 21676ff57cf8SJohannes Berg NETDEV_PR_ARG, 21686ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 21694ee3e063SBeni Lev ); 21704ee3e063SBeni Lev 21716ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 21726ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 21736ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 21744ee3e063SBeni Lev ); 21754ee3e063SBeni Lev 21766ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_mlme_mgmt, 21776ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 21786ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 21794ee3e063SBeni Lev ); 21804ee3e063SBeni Lev 21816ff57cf8SJohannes Berg TRACE_EVENT(cfg80211_tx_mlme_mgmt, 21826ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 21836ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 21846ff57cf8SJohannes Berg TP_STRUCT__entry( 21856ff57cf8SJohannes Berg NETDEV_ENTRY 21866ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 21876ff57cf8SJohannes Berg ), 21886ff57cf8SJohannes Berg TP_fast_assign( 21896ff57cf8SJohannes Berg NETDEV_ASSIGN; 21906ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 21916ff57cf8SJohannes Berg ), 21926ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 21936ff57cf8SJohannes Berg NETDEV_PR_ARG, 21946ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 21954ee3e063SBeni Lev ); 21964ee3e063SBeni Lev 21974ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 21984ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 21994ee3e063SBeni Lev TP_ARGS(netdev, mac), 22004ee3e063SBeni Lev TP_STRUCT__entry( 22014ee3e063SBeni Lev NETDEV_ENTRY 22024ee3e063SBeni Lev MAC_ENTRY(mac) 22034ee3e063SBeni Lev ), 22044ee3e063SBeni Lev TP_fast_assign( 22054ee3e063SBeni Lev NETDEV_ASSIGN; 22064ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 22074ee3e063SBeni Lev ), 22084ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 22094ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 22104ee3e063SBeni Lev ); 22114ee3e063SBeni Lev 22124ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 22134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 22144ee3e063SBeni Lev TP_ARGS(netdev, mac) 22154ee3e063SBeni Lev ); 22164ee3e063SBeni Lev 22174ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout, 22184ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 22194ee3e063SBeni Lev TP_ARGS(netdev, mac) 22204ee3e063SBeni Lev ); 22214ee3e063SBeni Lev 22224ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 22234ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 22244ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 22254ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 22264ee3e063SBeni Lev TP_STRUCT__entry( 22274ee3e063SBeni Lev NETDEV_ENTRY 22284ee3e063SBeni Lev MAC_ENTRY(addr) 22294ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 22304ee3e063SBeni Lev __field(int, key_id) 22314ee3e063SBeni Lev __array(u8, tsc, 6) 22324ee3e063SBeni Lev ), 22334ee3e063SBeni Lev TP_fast_assign( 22344ee3e063SBeni Lev NETDEV_ASSIGN; 22354ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 22364ee3e063SBeni Lev __entry->key_type = key_type; 22374ee3e063SBeni Lev __entry->key_id = key_id; 22388c26d458SEliad Peller if (tsc) 22394ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 22404ee3e063SBeni Lev ), 2241ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 22424ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 22434ee3e063SBeni Lev __entry->key_id, __entry->tsc) 22444ee3e063SBeni Lev ); 22454ee3e063SBeni Lev 22464ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 22474ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 22484ee3e063SBeni Lev struct ieee80211_channel *chan, 224942d97a59SJohannes Berg unsigned int duration), 225042d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 22514ee3e063SBeni Lev TP_STRUCT__entry( 22524ee3e063SBeni Lev WDEV_ENTRY 22534ee3e063SBeni Lev __field(u64, cookie) 22544ee3e063SBeni Lev CHAN_ENTRY 22554ee3e063SBeni Lev __field(unsigned int, duration) 22564ee3e063SBeni Lev ), 22574ee3e063SBeni Lev TP_fast_assign( 22584ee3e063SBeni Lev WDEV_ASSIGN; 22594ee3e063SBeni Lev __entry->cookie = cookie; 22604ee3e063SBeni Lev CHAN_ASSIGN(chan); 22614ee3e063SBeni Lev __entry->duration = duration; 22624ee3e063SBeni Lev ), 226342d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 22644ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 226542d97a59SJohannes Berg __entry->duration) 22664ee3e063SBeni Lev ); 22674ee3e063SBeni Lev 22684ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 22694ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 227042d97a59SJohannes Berg struct ieee80211_channel *chan), 227142d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 22724ee3e063SBeni Lev TP_STRUCT__entry( 22734ee3e063SBeni Lev WDEV_ENTRY 22744ee3e063SBeni Lev __field(u64, cookie) 22754ee3e063SBeni Lev CHAN_ENTRY 22764ee3e063SBeni Lev ), 22774ee3e063SBeni Lev TP_fast_assign( 22784ee3e063SBeni Lev WDEV_ASSIGN; 22794ee3e063SBeni Lev __entry->cookie = cookie; 22804ee3e063SBeni Lev CHAN_ASSIGN(chan); 22814ee3e063SBeni Lev ), 228242d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 228342d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 22844ee3e063SBeni Lev ); 22854ee3e063SBeni Lev 22864ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 22874ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 22884ee3e063SBeni Lev struct station_info *sinfo), 22894ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 22904ee3e063SBeni Lev TP_STRUCT__entry( 22914ee3e063SBeni Lev NETDEV_ENTRY 22924ee3e063SBeni Lev MAC_ENTRY(mac_addr) 22934ee3e063SBeni Lev SINFO_ENTRY 22944ee3e063SBeni Lev ), 22954ee3e063SBeni Lev TP_fast_assign( 22964ee3e063SBeni Lev NETDEV_ASSIGN; 22974ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 22984ee3e063SBeni Lev SINFO_ASSIGN; 22994ee3e063SBeni Lev ), 2300ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 23014ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 23024ee3e063SBeni Lev ); 23034ee3e063SBeni Lev 23044ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 23054ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 23064ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 23074ee3e063SBeni Lev ); 23084ee3e063SBeni Lev 23094ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 23104ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, int freq, int sig_mbm), 23114ee3e063SBeni Lev TP_ARGS(wdev, freq, sig_mbm), 23124ee3e063SBeni Lev TP_STRUCT__entry( 23134ee3e063SBeni Lev WDEV_ENTRY 23144ee3e063SBeni Lev __field(int, freq) 23154ee3e063SBeni Lev __field(int, sig_mbm) 23164ee3e063SBeni Lev ), 23174ee3e063SBeni Lev TP_fast_assign( 23184ee3e063SBeni Lev WDEV_ASSIGN; 23194ee3e063SBeni Lev __entry->freq = freq; 23204ee3e063SBeni Lev __entry->sig_mbm = sig_mbm; 23214ee3e063SBeni Lev ), 23224ee3e063SBeni Lev TP_printk(WDEV_PR_FMT ", freq: %d, sig mbm: %d", 23234ee3e063SBeni Lev WDEV_PR_ARG, __entry->freq, __entry->sig_mbm) 23244ee3e063SBeni Lev ); 23254ee3e063SBeni Lev 23264ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 23274ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 23284ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 23294ee3e063SBeni Lev TP_STRUCT__entry( 23304ee3e063SBeni Lev WDEV_ENTRY 23314ee3e063SBeni Lev __field(u64, cookie) 23324ee3e063SBeni Lev __field(bool, ack) 23334ee3e063SBeni Lev ), 23344ee3e063SBeni Lev TP_fast_assign( 23354ee3e063SBeni Lev WDEV_ASSIGN; 23364ee3e063SBeni Lev __entry->cookie = cookie; 23374ee3e063SBeni Lev __entry->ack = ack; 23384ee3e063SBeni Lev ), 23394ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 23404ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 23414ee3e063SBeni Lev ); 23424ee3e063SBeni Lev 23434ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 23444ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 23454ee3e063SBeni Lev enum nl80211_cqm_rssi_threshold_event rssi_event), 23464ee3e063SBeni Lev TP_ARGS(netdev, rssi_event), 23474ee3e063SBeni Lev TP_STRUCT__entry( 23484ee3e063SBeni Lev NETDEV_ENTRY 23494ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 23504ee3e063SBeni Lev ), 23514ee3e063SBeni Lev TP_fast_assign( 23524ee3e063SBeni Lev NETDEV_ASSIGN; 23534ee3e063SBeni Lev __entry->rssi_event = rssi_event; 23544ee3e063SBeni Lev ), 23554ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", rssi event: %d", 23564ee3e063SBeni Lev NETDEV_PR_ARG, __entry->rssi_event) 23574ee3e063SBeni Lev ); 23584ee3e063SBeni Lev 2359683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 2360174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 2361*923b352fSArik Nemtsov enum nl80211_iftype iftype, bool check_no_ir), 2362*923b352fSArik Nemtsov TP_ARGS(wiphy, chandef, iftype, check_no_ir), 23634ee3e063SBeni Lev TP_STRUCT__entry( 23644ee3e063SBeni Lev WIPHY_ENTRY 2365683b6d3bSJohannes Berg CHAN_DEF_ENTRY 2366174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 2367*923b352fSArik Nemtsov __field(bool, check_no_ir) 23684ee3e063SBeni Lev ), 23694ee3e063SBeni Lev TP_fast_assign( 23704ee3e063SBeni Lev WIPHY_ASSIGN; 2371683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2372174e0cd2SIlan Peer __entry->iftype = iftype; 2373*923b352fSArik Nemtsov __entry->check_no_ir = check_no_ir; 23744ee3e063SBeni Lev ), 2375*923b352fSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d check_no_ir=%s", 2376*923b352fSArik Nemtsov WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype, 2377*923b352fSArik Nemtsov BOOL_TO_STR(__entry->check_no_ir)) 23784ee3e063SBeni Lev ); 23794ee3e063SBeni Lev 238004f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 238104f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 238204f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 238304f39047SSimon Wunderlich TP_STRUCT__entry( 238404f39047SSimon Wunderlich WIPHY_ENTRY 238504f39047SSimon Wunderlich CHAN_DEF_ENTRY 238604f39047SSimon Wunderlich ), 238704f39047SSimon Wunderlich TP_fast_assign( 238804f39047SSimon Wunderlich WIPHY_ASSIGN; 238904f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 239004f39047SSimon Wunderlich ), 239104f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 239204f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 239304f39047SSimon Wunderlich ); 239404f39047SSimon Wunderlich 23954ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 2396683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 2397683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2398683b6d3bSJohannes Berg TP_ARGS(netdev, chandef), 23994ee3e063SBeni Lev TP_STRUCT__entry( 24004ee3e063SBeni Lev NETDEV_ENTRY 2401683b6d3bSJohannes Berg CHAN_DEF_ENTRY 24024ee3e063SBeni Lev ), 24034ee3e063SBeni Lev TP_fast_assign( 24044ee3e063SBeni Lev NETDEV_ASSIGN; 2405683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 24064ee3e063SBeni Lev ), 2407ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 2408683b6d3bSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 24094ee3e063SBeni Lev ); 24104ee3e063SBeni Lev 2411f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 2412f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 2413f8d7552eSLuciano Coelho struct cfg80211_chan_def *chandef), 2414f8d7552eSLuciano Coelho TP_ARGS(netdev, chandef), 2415f8d7552eSLuciano Coelho TP_STRUCT__entry( 2416f8d7552eSLuciano Coelho NETDEV_ENTRY 2417f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 2418f8d7552eSLuciano Coelho ), 2419f8d7552eSLuciano Coelho TP_fast_assign( 2420f8d7552eSLuciano Coelho NETDEV_ASSIGN; 2421f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 2422f8d7552eSLuciano Coelho ), 2423f8d7552eSLuciano Coelho TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 2424f8d7552eSLuciano Coelho NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 2425f8d7552eSLuciano Coelho ); 2426f8d7552eSLuciano Coelho 242704f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 242804f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 242904f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 243004f39047SSimon Wunderlich TP_STRUCT__entry( 243104f39047SSimon Wunderlich WIPHY_ENTRY 243204f39047SSimon Wunderlich CHAN_DEF_ENTRY 243304f39047SSimon Wunderlich ), 243404f39047SSimon Wunderlich TP_fast_assign( 243504f39047SSimon Wunderlich WIPHY_ASSIGN; 243604f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 243704f39047SSimon Wunderlich ), 243804f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 243904f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 244004f39047SSimon Wunderlich ); 244104f39047SSimon Wunderlich 244204f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 244304f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 244404f39047SSimon Wunderlich TP_ARGS(netdev, evt), 244504f39047SSimon Wunderlich TP_STRUCT__entry( 244604f39047SSimon Wunderlich NETDEV_ENTRY 244704f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 244804f39047SSimon Wunderlich ), 244904f39047SSimon Wunderlich TP_fast_assign( 245004f39047SSimon Wunderlich NETDEV_ASSIGN; 245104f39047SSimon Wunderlich __entry->evt = evt; 245204f39047SSimon Wunderlich ), 245304f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 245404f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 245504f39047SSimon Wunderlich ); 245604f39047SSimon Wunderlich 24574ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 24584ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 24594ee3e063SBeni Lev TP_ARGS(netdev, addr), 24604ee3e063SBeni Lev TP_STRUCT__entry( 24614ee3e063SBeni Lev NETDEV_ENTRY 24624ee3e063SBeni Lev MAC_ENTRY(addr) 24634ee3e063SBeni Lev ), 24644ee3e063SBeni Lev TP_fast_assign( 24654ee3e063SBeni Lev NETDEV_ASSIGN; 24664ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 24674ee3e063SBeni Lev ), 2468ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24694ee3e063SBeni Lev ); 24704ee3e063SBeni Lev 24714ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 24724ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 24734ee3e063SBeni Lev TP_ARGS(netdev, addr) 24744ee3e063SBeni Lev ); 24754ee3e063SBeni Lev 24764ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 24774ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 24784ee3e063SBeni Lev TP_ARGS(netdev, addr) 24794ee3e063SBeni Lev ); 24804ee3e063SBeni Lev 2481fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 2482fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 2483fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 2484fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 2485fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 2486fe94f3a4SAntonio Quartulli NETDEV_ENTRY 2487fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 2488fe94f3a4SAntonio Quartulli CHAN_ENTRY 2489fe94f3a4SAntonio Quartulli ), 2490fe94f3a4SAntonio Quartulli TP_fast_assign( 2491fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 2492fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 2493fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 2494fe94f3a4SAntonio Quartulli ), 2495fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 2496fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 2497fe94f3a4SAntonio Quartulli ); 2498fe94f3a4SAntonio Quartulli 24994ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 25004ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 25014ee3e063SBeni Lev bool acked), 25024ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 25034ee3e063SBeni Lev TP_STRUCT__entry( 25044ee3e063SBeni Lev NETDEV_ENTRY 25054ee3e063SBeni Lev MAC_ENTRY(addr) 25064ee3e063SBeni Lev __field(u64, cookie) 25074ee3e063SBeni Lev __field(bool, acked) 25084ee3e063SBeni Lev ), 25094ee3e063SBeni Lev TP_fast_assign( 25104ee3e063SBeni Lev NETDEV_ASSIGN; 25114ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 25124ee3e063SBeni Lev __entry->cookie = cookie; 25134ee3e063SBeni Lev __entry->acked = acked; 25144ee3e063SBeni Lev ), 2515ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 25164ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 25174ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 25184ee3e063SBeni Lev ); 25194ee3e063SBeni Lev 25204ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 25214ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 25224ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 25234ee3e063SBeni Lev TP_STRUCT__entry( 25244ee3e063SBeni Lev NETDEV_ENTRY 25254ee3e063SBeni Lev MAC_ENTRY(peer) 25264ee3e063SBeni Lev __field(u32, num_packets) 25274ee3e063SBeni Lev ), 25284ee3e063SBeni Lev TP_fast_assign( 25294ee3e063SBeni Lev NETDEV_ASSIGN; 25304ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 25314ee3e063SBeni Lev __entry->num_packets = num_packets; 25324ee3e063SBeni Lev ), 25334ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 25344ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 25354ee3e063SBeni Lev ); 25364ee3e063SBeni Lev 25374ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 25384ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 25394ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 25404ee3e063SBeni Lev ); 25414ee3e063SBeni Lev 25424ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 25434ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 25444ee3e063SBeni Lev bool preauth), 25454ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 25464ee3e063SBeni Lev TP_STRUCT__entry( 25474ee3e063SBeni Lev NETDEV_ENTRY 25484ee3e063SBeni Lev __field(int, index) 25494ee3e063SBeni Lev MAC_ENTRY(bssid) 25504ee3e063SBeni Lev __field(bool, preauth) 25514ee3e063SBeni Lev ), 25524ee3e063SBeni Lev TP_fast_assign( 25534ee3e063SBeni Lev NETDEV_ASSIGN; 25544ee3e063SBeni Lev __entry->index = index; 25554ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 25564ee3e063SBeni Lev __entry->preauth = preauth; 25574ee3e063SBeni Lev ), 25584ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 25594ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 25604ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 25614ee3e063SBeni Lev ); 25624ee3e063SBeni Lev 25634ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 25644ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 25654ee3e063SBeni Lev int freq, int sig_dbm), 25664ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 25674ee3e063SBeni Lev TP_STRUCT__entry( 25684ee3e063SBeni Lev WIPHY_ENTRY 25694ee3e063SBeni Lev __field(int, freq) 25704ee3e063SBeni Lev __field(int, sig_dbm) 25714ee3e063SBeni Lev ), 25724ee3e063SBeni Lev TP_fast_assign( 25734ee3e063SBeni Lev WIPHY_ASSIGN; 25744ee3e063SBeni Lev __entry->freq = freq; 25754ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 25764ee3e063SBeni Lev ), 25774ee3e063SBeni Lev TP_printk(WIPHY_PR_FMT ", freq: %d, sig_dbm: %d", 25784ee3e063SBeni Lev WIPHY_PR_ARG, __entry->freq, __entry->sig_dbm) 25794ee3e063SBeni Lev ); 25804ee3e063SBeni Lev 25813475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 25823475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 25833475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 25843475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 25853475b094SJouni Malinen TP_STRUCT__entry( 25863475b094SJouni Malinen WIPHY_ENTRY 25873475b094SJouni Malinen NETDEV_ENTRY 25883475b094SJouni Malinen MAC_ENTRY(peer) 25893475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 25903475b094SJouni Malinen __field(u16, reason_code) 25913475b094SJouni Malinen ), 25923475b094SJouni Malinen TP_fast_assign( 25933475b094SJouni Malinen WIPHY_ASSIGN; 25943475b094SJouni Malinen NETDEV_ASSIGN; 25953475b094SJouni Malinen MAC_ASSIGN(peer, peer); 25963475b094SJouni Malinen __entry->oper = oper; 25973475b094SJouni Malinen __entry->reason_code = reason_code; 25983475b094SJouni Malinen ), 25993475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 26003475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 26013475b094SJouni Malinen __entry->reason_code) 26023475b094SJouni Malinen ); 26033475b094SJouni Malinen 26044ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 26054ee3e063SBeni Lev TP_PROTO(struct cfg80211_scan_request *request, bool aborted), 26064ee3e063SBeni Lev TP_ARGS(request, aborted), 26074ee3e063SBeni Lev TP_STRUCT__entry( 26084ee3e063SBeni Lev __field(u32, n_channels) 26094ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 26104ee3e063SBeni Lev __array(u32, rates, IEEE80211_NUM_BANDS) 26114ee3e063SBeni Lev __field(u32, wdev_id) 26124ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 26134ee3e063SBeni Lev __field(bool, no_cck) 26144ee3e063SBeni Lev __field(bool, aborted) 26154ee3e063SBeni Lev ), 26164ee3e063SBeni Lev TP_fast_assign( 26174ee3e063SBeni Lev if (request) { 26184ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 26194ee3e063SBeni Lev request->ie_len); 26204ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 26214ee3e063SBeni Lev IEEE80211_NUM_BANDS); 26224ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 26234ee3e063SBeni Lev request->wdev->identifier : 0; 26244ee3e063SBeni Lev if (request->wiphy) 26254ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 26264ee3e063SBeni Lev request->wiphy->perm_addr); 26274ee3e063SBeni Lev __entry->no_cck = request->no_cck; 26284ee3e063SBeni Lev } 26294ee3e063SBeni Lev __entry->aborted = aborted; 26304ee3e063SBeni Lev ), 26314ee3e063SBeni Lev TP_printk("aborted: %s", BOOL_TO_STR(__entry->aborted)) 26324ee3e063SBeni Lev ); 26334ee3e063SBeni Lev 26344ee3e063SBeni Lev DEFINE_EVENT(wiphy_only_evt, cfg80211_sched_scan_results, 26354ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy), 26364ee3e063SBeni Lev TP_ARGS(wiphy) 26374ee3e063SBeni Lev ); 26384ee3e063SBeni Lev 26394ee3e063SBeni Lev DEFINE_EVENT(wiphy_only_evt, cfg80211_sched_scan_stopped, 26404ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy), 26414ee3e063SBeni Lev TP_ARGS(wiphy) 26424ee3e063SBeni Lev ); 26434ee3e063SBeni Lev 26444ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 26454ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 26464ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 26476eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 26486eb18137SDedy Lansky enum ieee80211_privacy privacy), 26496eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 26504ee3e063SBeni Lev TP_STRUCT__entry( 26514ee3e063SBeni Lev WIPHY_ENTRY 26524ee3e063SBeni Lev CHAN_ENTRY 26534ee3e063SBeni Lev MAC_ENTRY(bssid) 26544ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 26556eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 26566eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 26574ee3e063SBeni Lev ), 26584ee3e063SBeni Lev TP_fast_assign( 26594ee3e063SBeni Lev WIPHY_ASSIGN; 26604ee3e063SBeni Lev CHAN_ASSIGN(channel); 26614ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 26624ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 26636eb18137SDedy Lansky __entry->bss_type = bss_type; 26646eb18137SDedy Lansky __entry->privacy = privacy; 26654ee3e063SBeni Lev ), 26666eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 26676eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 26686eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 26696eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 26706eb18137SDedy Lansky __entry->privacy) 26714ee3e063SBeni Lev ); 26724ee3e063SBeni Lev 2673dcd6eac1SSimon Wunderlich TRACE_EVENT(cfg80211_inform_bss_width_frame, 26744ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 2675dcd6eac1SSimon Wunderlich enum nl80211_bss_scan_width scan_width, 26764ee3e063SBeni Lev struct ieee80211_mgmt *mgmt, size_t len, 26774ee3e063SBeni Lev s32 signal), 2678dcd6eac1SSimon Wunderlich TP_ARGS(wiphy, channel, scan_width, mgmt, len, signal), 26794ee3e063SBeni Lev TP_STRUCT__entry( 26804ee3e063SBeni Lev WIPHY_ENTRY 26814ee3e063SBeni Lev CHAN_ENTRY 2682dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 26834ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 26844ee3e063SBeni Lev __field(s32, signal) 26854ee3e063SBeni Lev ), 26864ee3e063SBeni Lev TP_fast_assign( 26874ee3e063SBeni Lev WIPHY_ASSIGN; 26884ee3e063SBeni Lev CHAN_ASSIGN(channel); 2689dcd6eac1SSimon Wunderlich __entry->scan_width = scan_width; 26904ee3e063SBeni Lev if (mgmt) 26914ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 26924ee3e063SBeni Lev __entry->signal = signal; 26934ee3e063SBeni Lev ), 2694dcd6eac1SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT "(scan_width: %d) signal: %d", 2695dcd6eac1SSimon Wunderlich WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 2696dcd6eac1SSimon Wunderlich __entry->signal) 26974ee3e063SBeni Lev ); 26984ee3e063SBeni Lev 26994ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 27004ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 27014ee3e063SBeni Lev TP_ARGS(pub), 27024ee3e063SBeni Lev TP_STRUCT__entry( 27034ee3e063SBeni Lev MAC_ENTRY(bssid) 27044ee3e063SBeni Lev CHAN_ENTRY 27054ee3e063SBeni Lev ), 27064ee3e063SBeni Lev TP_fast_assign( 27074ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 27084ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 27094ee3e063SBeni Lev ), 2710ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 27114ee3e063SBeni Lev ); 27124ee3e063SBeni Lev 27134ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 27144ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 27154ee3e063SBeni Lev TP_ARGS(pub) 27164ee3e063SBeni Lev ); 27174ee3e063SBeni Lev 27184ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 27194ee3e063SBeni Lev TP_PROTO(unsigned int ret), 27204ee3e063SBeni Lev TP_ARGS(ret), 27214ee3e063SBeni Lev TP_STRUCT__entry( 27224ee3e063SBeni Lev __field(unsigned int, ret) 27234ee3e063SBeni Lev ), 27244ee3e063SBeni Lev TP_fast_assign( 27254ee3e063SBeni Lev __entry->ret = ret; 27264ee3e063SBeni Lev ), 27274ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 27284ee3e063SBeni Lev ); 27294ee3e063SBeni Lev 27304ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 27314ee3e063SBeni Lev TP_PROTO(u32 ret), 27324ee3e063SBeni Lev TP_ARGS(ret), 27334ee3e063SBeni Lev TP_STRUCT__entry( 27344ee3e063SBeni Lev __field(u32, ret) 27354ee3e063SBeni Lev ), 27364ee3e063SBeni Lev TP_fast_assign( 27374ee3e063SBeni Lev __entry->ret = ret; 27384ee3e063SBeni Lev ), 27394ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 27404ee3e063SBeni Lev ); 27414ee3e063SBeni Lev 2742cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 2743cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2744cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 2745cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 2746cd8f7cb4SJohannes Berg TP_STRUCT__entry( 2747cd8f7cb4SJohannes Berg WIPHY_ENTRY 2748cd8f7cb4SJohannes Berg WDEV_ENTRY 2749a92eecbbSJohannes Berg __field(bool, non_wireless) 2750cd8f7cb4SJohannes Berg __field(bool, disconnect) 2751cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 2752cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 2753cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 2754cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 2755cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 2756cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 2757cd8f7cb4SJohannes Berg __field(u32, packet_len) 2758a92eecbbSJohannes Berg __dynamic_array(u8, packet, 2759a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 2760cd8f7cb4SJohannes Berg ), 2761cd8f7cb4SJohannes Berg TP_fast_assign( 2762cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 2763cd8f7cb4SJohannes Berg WDEV_ASSIGN; 2764a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 2765a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 2766a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 2767a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 2768a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 2769a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 2770a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 2771a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 2772a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 2773a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 2774cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 2775cd8f7cb4SJohannes Berg wakeup->packet_present_len); 2776cd8f7cb4SJohannes Berg ), 2777cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 2778cd8f7cb4SJohannes Berg ); 2779cd8f7cb4SJohannes Berg 2780355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 2781355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2782355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 2783355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 2784355199e0SJouni Malinen TP_STRUCT__entry( 2785355199e0SJouni Malinen WIPHY_ENTRY 2786355199e0SJouni Malinen NETDEV_ENTRY 2787355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 2788355199e0SJouni Malinen MAC_ENTRY(target_ap) 2789355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 2790355199e0SJouni Malinen ), 2791355199e0SJouni Malinen TP_fast_assign( 2792355199e0SJouni Malinen WIPHY_ASSIGN; 2793355199e0SJouni Malinen NETDEV_ASSIGN; 2794355199e0SJouni Malinen if (ft_event->ies) 2795355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 2796355199e0SJouni Malinen ft_event->ies_len); 2797355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 2798355199e0SJouni Malinen if (ft_event->ric_ies) 2799355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 2800355199e0SJouni Malinen ft_event->ric_ies_len); 2801355199e0SJouni Malinen ), 2802355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 2803355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 2804355199e0SJouni Malinen ); 2805355199e0SJouni Malinen 2806f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 2807f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2808f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 2809f04c2203SMichal Kazior TP_STRUCT__entry( 2810f04c2203SMichal Kazior WIPHY_ENTRY 2811f04c2203SMichal Kazior WDEV_ENTRY 2812f04c2203SMichal Kazior ), 2813f04c2203SMichal Kazior TP_fast_assign( 2814f04c2203SMichal Kazior WIPHY_ASSIGN; 2815f04c2203SMichal Kazior WDEV_ASSIGN; 2816f04c2203SMichal Kazior ), 2817f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 2818f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 2819f04c2203SMichal Kazior ); 2820f04c2203SMichal Kazior 282114e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 282214e8a3c4SBeni Lev 282314e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 282414e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 282514e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 282614e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 282714e8a3c4SBeni Lev #include <trace/define_trace.h> 2828