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> 1014e8a3c4SBeni Lev #include <net/cfg80211.h> 1114e8a3c4SBeni Lev #include "core.h" 1214e8a3c4SBeni Lev 1314e8a3c4SBeni Lev #define MAC_ENTRY(entry_mac) __array(u8, entry_mac, ETH_ALEN) 1414e8a3c4SBeni Lev #define MAC_ASSIGN(entry_mac, given_mac) do { \ 1514e8a3c4SBeni Lev if (given_mac) \ 1614e8a3c4SBeni Lev memcpy(__entry->entry_mac, given_mac, ETH_ALEN); \ 1714e8a3c4SBeni Lev else \ 1814e8a3c4SBeni Lev memset(__entry->entry_mac, 0, ETH_ALEN); \ 1914e8a3c4SBeni Lev } while (0) 2014e8a3c4SBeni Lev #define MAC_PR_FMT "%pM" 2114e8a3c4SBeni Lev #define MAC_PR_ARG(entry_mac) (__entry->entry_mac) 2214e8a3c4SBeni Lev 23ec816087SJohannes Berg #define MAXNAME 32 24ec816087SJohannes Berg #define WIPHY_ENTRY __array(char, wiphy_name, 32) 25ec816087SJohannes Berg #define WIPHY_ASSIGN strlcpy(__entry->wiphy_name, wiphy_name(wiphy), MAXNAME) 26ec816087SJohannes Berg #define WIPHY_PR_FMT "%s" 27ec816087SJohannes Berg #define WIPHY_PR_ARG __entry->wiphy_name 2814e8a3c4SBeni Lev 2914e8a3c4SBeni Lev #define WDEV_ENTRY __field(u32, id) 30ce1eaddaSJohannes Berg #define WDEV_ASSIGN (__entry->id) = (!IS_ERR_OR_NULL(wdev) \ 31ce1eaddaSJohannes Berg ? wdev->identifier : 0) 32ec816087SJohannes Berg #define WDEV_PR_FMT "wdev(%u)" 3314e8a3c4SBeni Lev #define WDEV_PR_ARG (__entry->id) 3414e8a3c4SBeni Lev 3514e8a3c4SBeni Lev #define NETDEV_ENTRY __array(char, name, IFNAMSIZ) \ 3614e8a3c4SBeni Lev __field(int, ifindex) 3714e8a3c4SBeni Lev #define NETDEV_ASSIGN \ 3814e8a3c4SBeni Lev do { \ 3914e8a3c4SBeni Lev memcpy(__entry->name, netdev->name, IFNAMSIZ); \ 4014e8a3c4SBeni Lev (__entry->ifindex) = (netdev->ifindex); \ 4114e8a3c4SBeni Lev } while (0) 42ec816087SJohannes Berg #define NETDEV_PR_FMT "netdev:%s(%d)" 43ec816087SJohannes Berg #define NETDEV_PR_ARG __entry->name, __entry->ifindex 4414e8a3c4SBeni Lev 4514e8a3c4SBeni Lev #define MESH_CFG_ENTRY __field(u16, dot11MeshRetryTimeout) \ 4614e8a3c4SBeni Lev __field(u16, dot11MeshConfirmTimeout) \ 4714e8a3c4SBeni Lev __field(u16, dot11MeshHoldingTimeout) \ 4814e8a3c4SBeni Lev __field(u16, dot11MeshMaxPeerLinks) \ 4914e8a3c4SBeni Lev __field(u8, dot11MeshMaxRetries) \ 5014e8a3c4SBeni Lev __field(u8, dot11MeshTTL) \ 5114e8a3c4SBeni Lev __field(u8, element_ttl) \ 5214e8a3c4SBeni Lev __field(bool, auto_open_plinks) \ 5314e8a3c4SBeni Lev __field(u32, dot11MeshNbrOffsetMaxNeighbor) \ 5414e8a3c4SBeni Lev __field(u8, dot11MeshHWMPmaxPREQretries) \ 5514e8a3c4SBeni Lev __field(u32, path_refresh_time) \ 5614e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathTimeout) \ 5714e8a3c4SBeni Lev __field(u16, min_discovery_timeout) \ 5814e8a3c4SBeni Lev __field(u16, dot11MeshHWMPpreqMinInterval) \ 5914e8a3c4SBeni Lev __field(u16, dot11MeshHWMPperrMinInterval) \ 6014e8a3c4SBeni Lev __field(u16, dot11MeshHWMPnetDiameterTraversalTime) \ 6114e8a3c4SBeni Lev __field(u8, dot11MeshHWMPRootMode) \ 6214e8a3c4SBeni Lev __field(u16, dot11MeshHWMPRannInterval) \ 6314e8a3c4SBeni Lev __field(bool, dot11MeshGateAnnouncementProtocol) \ 6414e8a3c4SBeni Lev __field(bool, dot11MeshForwarding) \ 6514e8a3c4SBeni Lev __field(s32, rssi_threshold) \ 6614e8a3c4SBeni Lev __field(u16, ht_opmode) \ 6714e8a3c4SBeni Lev __field(u32, dot11MeshHWMPactivePathToRootTimeout) \ 6814e8a3c4SBeni Lev __field(u16, dot11MeshHWMProotInterval) \ 6914e8a3c4SBeni Lev __field(u16, dot11MeshHWMPconfirmationInterval) 7014e8a3c4SBeni Lev #define MESH_CFG_ASSIGN \ 7114e8a3c4SBeni Lev do { \ 7214e8a3c4SBeni Lev __entry->dot11MeshRetryTimeout = conf->dot11MeshRetryTimeout; \ 7314e8a3c4SBeni Lev __entry->dot11MeshConfirmTimeout = \ 7414e8a3c4SBeni Lev conf->dot11MeshConfirmTimeout; \ 7514e8a3c4SBeni Lev __entry->dot11MeshHoldingTimeout = \ 7614e8a3c4SBeni Lev conf->dot11MeshHoldingTimeout; \ 7714e8a3c4SBeni Lev __entry->dot11MeshMaxPeerLinks = conf->dot11MeshMaxPeerLinks; \ 7814e8a3c4SBeni Lev __entry->dot11MeshMaxRetries = conf->dot11MeshMaxRetries; \ 7914e8a3c4SBeni Lev __entry->dot11MeshTTL = conf->dot11MeshTTL; \ 8014e8a3c4SBeni Lev __entry->element_ttl = conf->element_ttl; \ 8114e8a3c4SBeni Lev __entry->auto_open_plinks = conf->auto_open_plinks; \ 8214e8a3c4SBeni Lev __entry->dot11MeshNbrOffsetMaxNeighbor = \ 8314e8a3c4SBeni Lev conf->dot11MeshNbrOffsetMaxNeighbor; \ 8414e8a3c4SBeni Lev __entry->dot11MeshHWMPmaxPREQretries = \ 8514e8a3c4SBeni Lev conf->dot11MeshHWMPmaxPREQretries; \ 8614e8a3c4SBeni Lev __entry->path_refresh_time = conf->path_refresh_time; \ 8714e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathTimeout = \ 8814e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathTimeout; \ 8914e8a3c4SBeni Lev __entry->min_discovery_timeout = conf->min_discovery_timeout; \ 9014e8a3c4SBeni Lev __entry->dot11MeshHWMPpreqMinInterval = \ 9114e8a3c4SBeni Lev conf->dot11MeshHWMPpreqMinInterval; \ 9214e8a3c4SBeni Lev __entry->dot11MeshHWMPperrMinInterval = \ 9314e8a3c4SBeni Lev conf->dot11MeshHWMPperrMinInterval; \ 9414e8a3c4SBeni Lev __entry->dot11MeshHWMPnetDiameterTraversalTime = \ 9514e8a3c4SBeni Lev conf->dot11MeshHWMPnetDiameterTraversalTime; \ 9614e8a3c4SBeni Lev __entry->dot11MeshHWMPRootMode = conf->dot11MeshHWMPRootMode; \ 9714e8a3c4SBeni Lev __entry->dot11MeshHWMPRannInterval = \ 9814e8a3c4SBeni Lev conf->dot11MeshHWMPRannInterval; \ 9914e8a3c4SBeni Lev __entry->dot11MeshGateAnnouncementProtocol = \ 10014e8a3c4SBeni Lev conf->dot11MeshGateAnnouncementProtocol; \ 10114e8a3c4SBeni Lev __entry->dot11MeshForwarding = conf->dot11MeshForwarding; \ 10214e8a3c4SBeni Lev __entry->rssi_threshold = conf->rssi_threshold; \ 10314e8a3c4SBeni Lev __entry->ht_opmode = conf->ht_opmode; \ 10414e8a3c4SBeni Lev __entry->dot11MeshHWMPactivePathToRootTimeout = \ 10514e8a3c4SBeni Lev conf->dot11MeshHWMPactivePathToRootTimeout; \ 10614e8a3c4SBeni Lev __entry->dot11MeshHWMProotInterval = \ 10714e8a3c4SBeni Lev conf->dot11MeshHWMProotInterval; \ 10814e8a3c4SBeni Lev __entry->dot11MeshHWMPconfirmationInterval = \ 10914e8a3c4SBeni Lev conf->dot11MeshHWMPconfirmationInterval; \ 11014e8a3c4SBeni Lev } while (0) 11114e8a3c4SBeni Lev 11214e8a3c4SBeni Lev #define CHAN_ENTRY __field(enum ieee80211_band, band) \ 11314e8a3c4SBeni Lev __field(u16, center_freq) 11414e8a3c4SBeni Lev #define CHAN_ASSIGN(chan) \ 11514e8a3c4SBeni Lev do { \ 11614e8a3c4SBeni Lev if (chan) { \ 11714e8a3c4SBeni Lev __entry->band = chan->band; \ 11814e8a3c4SBeni Lev __entry->center_freq = chan->center_freq; \ 11914e8a3c4SBeni Lev } else { \ 12014e8a3c4SBeni Lev __entry->band = 0; \ 12114e8a3c4SBeni Lev __entry->center_freq = 0; \ 12214e8a3c4SBeni Lev } \ 12314e8a3c4SBeni Lev } while (0) 124ec816087SJohannes Berg #define CHAN_PR_FMT "band: %d, freq: %u" 12514e8a3c4SBeni Lev #define CHAN_PR_ARG __entry->band, __entry->center_freq 12614e8a3c4SBeni Lev 127683b6d3bSJohannes Berg #define CHAN_DEF_ENTRY __field(enum ieee80211_band, band) \ 1283d9d1d66SJohannes Berg __field(u32, control_freq) \ 1293d9d1d66SJohannes Berg __field(u32, width) \ 1303d9d1d66SJohannes Berg __field(u32, center_freq1) \ 1313d9d1d66SJohannes Berg __field(u32, center_freq2) 132683b6d3bSJohannes Berg #define CHAN_DEF_ASSIGN(chandef) \ 133683b6d3bSJohannes Berg do { \ 134683b6d3bSJohannes Berg if ((chandef) && (chandef)->chan) { \ 135683b6d3bSJohannes Berg __entry->band = (chandef)->chan->band; \ 1363d9d1d66SJohannes Berg __entry->control_freq = \ 137683b6d3bSJohannes Berg (chandef)->chan->center_freq; \ 1383d9d1d66SJohannes Berg __entry->width = (chandef)->width; \ 1393d9d1d66SJohannes Berg __entry->center_freq1 = (chandef)->center_freq1;\ 1403d9d1d66SJohannes Berg __entry->center_freq2 = (chandef)->center_freq2;\ 141683b6d3bSJohannes Berg } else { \ 142683b6d3bSJohannes Berg __entry->band = 0; \ 1433d9d1d66SJohannes Berg __entry->control_freq = 0; \ 1443d9d1d66SJohannes Berg __entry->width = 0; \ 1453d9d1d66SJohannes Berg __entry->center_freq1 = 0; \ 1463d9d1d66SJohannes Berg __entry->center_freq2 = 0; \ 147683b6d3bSJohannes Berg } \ 148683b6d3bSJohannes Berg } while (0) 1493d9d1d66SJohannes Berg #define CHAN_DEF_PR_FMT \ 150ec816087SJohannes Berg "band: %d, control freq: %u, width: %d, cf1: %u, cf2: %u" 1513d9d1d66SJohannes Berg #define CHAN_DEF_PR_ARG __entry->band, __entry->control_freq, \ 1523d9d1d66SJohannes Berg __entry->width, __entry->center_freq1, \ 1533d9d1d66SJohannes Berg __entry->center_freq2 154683b6d3bSJohannes Berg 15514e8a3c4SBeni Lev #define SINFO_ENTRY __field(int, generation) \ 15614e8a3c4SBeni Lev __field(u32, connected_time) \ 15714e8a3c4SBeni Lev __field(u32, inactive_time) \ 15814e8a3c4SBeni Lev __field(u32, rx_bytes) \ 15914e8a3c4SBeni Lev __field(u32, tx_bytes) \ 16014e8a3c4SBeni Lev __field(u32, rx_packets) \ 16114e8a3c4SBeni Lev __field(u32, tx_packets) \ 16214e8a3c4SBeni Lev __field(u32, tx_retries) \ 16314e8a3c4SBeni Lev __field(u32, tx_failed) \ 16414e8a3c4SBeni Lev __field(u32, rx_dropped_misc) \ 16514e8a3c4SBeni Lev __field(u32, beacon_loss_count) \ 16614e8a3c4SBeni Lev __field(u16, llid) \ 16714e8a3c4SBeni Lev __field(u16, plid) \ 16814e8a3c4SBeni Lev __field(u8, plink_state) 16914e8a3c4SBeni Lev #define SINFO_ASSIGN \ 17014e8a3c4SBeni Lev do { \ 17114e8a3c4SBeni Lev __entry->generation = sinfo->generation; \ 17214e8a3c4SBeni Lev __entry->connected_time = sinfo->connected_time; \ 17314e8a3c4SBeni Lev __entry->inactive_time = sinfo->inactive_time; \ 17414e8a3c4SBeni Lev __entry->rx_bytes = sinfo->rx_bytes; \ 17514e8a3c4SBeni Lev __entry->tx_bytes = sinfo->tx_bytes; \ 17614e8a3c4SBeni Lev __entry->rx_packets = sinfo->rx_packets; \ 17714e8a3c4SBeni Lev __entry->tx_packets = sinfo->tx_packets; \ 17814e8a3c4SBeni Lev __entry->tx_retries = sinfo->tx_retries; \ 17914e8a3c4SBeni Lev __entry->tx_failed = sinfo->tx_failed; \ 18014e8a3c4SBeni Lev __entry->rx_dropped_misc = sinfo->rx_dropped_misc; \ 18114e8a3c4SBeni Lev __entry->beacon_loss_count = sinfo->beacon_loss_count; \ 18214e8a3c4SBeni Lev __entry->llid = sinfo->llid; \ 18314e8a3c4SBeni Lev __entry->plid = sinfo->plid; \ 18414e8a3c4SBeni Lev __entry->plink_state = sinfo->plink_state; \ 18514e8a3c4SBeni Lev } while (0) 18614e8a3c4SBeni Lev 18714e8a3c4SBeni Lev #define BOOL_TO_STR(bo) (bo) ? "true" : "false" 18814e8a3c4SBeni Lev 189fa9ffc74SKyeyoon Park #define QOS_MAP_ENTRY __field(u8, num_des) \ 190fa9ffc74SKyeyoon Park __array(u8, dscp_exception, \ 191fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX) \ 192fa9ffc74SKyeyoon Park __array(u8, up, IEEE80211_QOS_MAP_LEN_MIN) 193fa9ffc74SKyeyoon Park #define QOS_MAP_ASSIGN(qos_map) \ 194fa9ffc74SKyeyoon Park do { \ 195fa9ffc74SKyeyoon Park if ((qos_map)) { \ 196fa9ffc74SKyeyoon Park __entry->num_des = (qos_map)->num_des; \ 197fa9ffc74SKyeyoon Park memcpy(__entry->dscp_exception, \ 198fa9ffc74SKyeyoon Park &(qos_map)->dscp_exception, \ 199fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 200fa9ffc74SKyeyoon Park memcpy(__entry->up, &(qos_map)->up, \ 201fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 202fa9ffc74SKyeyoon Park } else { \ 203fa9ffc74SKyeyoon Park __entry->num_des = 0; \ 204fa9ffc74SKyeyoon Park memset(__entry->dscp_exception, 0, \ 205fa9ffc74SKyeyoon Park 2 * IEEE80211_QOS_MAP_MAX_EX); \ 206fa9ffc74SKyeyoon Park memset(__entry->up, 0, \ 207fa9ffc74SKyeyoon Park IEEE80211_QOS_MAP_LEN_MIN); \ 208fa9ffc74SKyeyoon Park } \ 209fa9ffc74SKyeyoon Park } while (0) 210fa9ffc74SKyeyoon Park 21114e8a3c4SBeni Lev /************************************************************* 21214e8a3c4SBeni Lev * rdev->ops traces * 21314e8a3c4SBeni Lev *************************************************************/ 21414e8a3c4SBeni Lev 21514e8a3c4SBeni Lev TRACE_EVENT(rdev_suspend, 21614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_wowlan *wow), 21714e8a3c4SBeni Lev TP_ARGS(wiphy, wow), 21814e8a3c4SBeni Lev TP_STRUCT__entry( 21914e8a3c4SBeni Lev WIPHY_ENTRY 22014e8a3c4SBeni Lev __field(bool, any) 22114e8a3c4SBeni Lev __field(bool, disconnect) 22214e8a3c4SBeni Lev __field(bool, magic_pkt) 22314e8a3c4SBeni Lev __field(bool, gtk_rekey_failure) 22414e8a3c4SBeni Lev __field(bool, eap_identity_req) 22514e8a3c4SBeni Lev __field(bool, four_way_handshake) 22614e8a3c4SBeni Lev __field(bool, rfkill_release) 22714e8a3c4SBeni Lev __field(bool, valid_wow) 22814e8a3c4SBeni Lev ), 22914e8a3c4SBeni Lev TP_fast_assign( 23014e8a3c4SBeni Lev WIPHY_ASSIGN; 23114e8a3c4SBeni Lev if (wow) { 23214e8a3c4SBeni Lev __entry->any = wow->any; 23314e8a3c4SBeni Lev __entry->disconnect = wow->disconnect; 23414e8a3c4SBeni Lev __entry->magic_pkt = wow->magic_pkt; 23514e8a3c4SBeni Lev __entry->gtk_rekey_failure = wow->gtk_rekey_failure; 23614e8a3c4SBeni Lev __entry->eap_identity_req = wow->eap_identity_req; 23714e8a3c4SBeni Lev __entry->four_way_handshake = wow->four_way_handshake; 23814e8a3c4SBeni Lev __entry->rfkill_release = wow->rfkill_release; 23914e8a3c4SBeni Lev __entry->valid_wow = true; 24014e8a3c4SBeni Lev } else { 24114e8a3c4SBeni Lev __entry->valid_wow = false; 24214e8a3c4SBeni Lev } 24314e8a3c4SBeni Lev ), 24414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", wow%s - any: %d, disconnect: %d, " 24514e8a3c4SBeni Lev "magic pkt: %d, gtk rekey failure: %d, eap identify req: %d, " 24614e8a3c4SBeni Lev "four way handshake: %d, rfkill release: %d.", 24714e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->valid_wow ? "" : "(Not configured!)", 24814e8a3c4SBeni Lev __entry->any, __entry->disconnect, __entry->magic_pkt, 24914e8a3c4SBeni Lev __entry->gtk_rekey_failure, __entry->eap_identity_req, 25014e8a3c4SBeni Lev __entry->four_way_handshake, __entry->rfkill_release) 25114e8a3c4SBeni Lev ); 25214e8a3c4SBeni Lev 25314e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int, 25414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret), 25514e8a3c4SBeni Lev TP_ARGS(wiphy, ret), 25614e8a3c4SBeni Lev TP_STRUCT__entry( 25714e8a3c4SBeni Lev WIPHY_ENTRY 25814e8a3c4SBeni Lev __field(int, ret) 25914e8a3c4SBeni Lev ), 26014e8a3c4SBeni Lev TP_fast_assign( 26114e8a3c4SBeni Lev WIPHY_ASSIGN; 26214e8a3c4SBeni Lev __entry->ret = ret; 26314e8a3c4SBeni Lev ), 26414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", WIPHY_PR_ARG, __entry->ret) 26514e8a3c4SBeni Lev ); 26614e8a3c4SBeni Lev 26714e8a3c4SBeni Lev TRACE_EVENT(rdev_scan, 26814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct cfg80211_scan_request *request), 26914e8a3c4SBeni Lev TP_ARGS(wiphy, request), 27014e8a3c4SBeni Lev TP_STRUCT__entry( 27114e8a3c4SBeni Lev WIPHY_ENTRY 27214e8a3c4SBeni Lev ), 27314e8a3c4SBeni Lev TP_fast_assign( 27414e8a3c4SBeni Lev WIPHY_ASSIGN; 27514e8a3c4SBeni Lev ), 27614e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 27714e8a3c4SBeni Lev ); 27814e8a3c4SBeni Lev 27914e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_only_evt, 28014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 28114e8a3c4SBeni Lev TP_ARGS(wiphy), 28214e8a3c4SBeni Lev TP_STRUCT__entry( 28314e8a3c4SBeni Lev WIPHY_ENTRY 28414e8a3c4SBeni Lev ), 28514e8a3c4SBeni Lev TP_fast_assign( 28614e8a3c4SBeni Lev WIPHY_ASSIGN; 28714e8a3c4SBeni Lev ), 28814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 28914e8a3c4SBeni Lev ); 29014e8a3c4SBeni Lev 29114e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_resume, 29214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 29314e8a3c4SBeni Lev TP_ARGS(wiphy) 29414e8a3c4SBeni Lev ); 29514e8a3c4SBeni Lev 29614e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_return_void, 29714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 29814e8a3c4SBeni Lev TP_ARGS(wiphy) 29914e8a3c4SBeni Lev ); 30014e8a3c4SBeni Lev 30114e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_get_antenna, 30214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 30314e8a3c4SBeni Lev TP_ARGS(wiphy) 30414e8a3c4SBeni Lev ); 30514e8a3c4SBeni Lev 30614e8a3c4SBeni Lev DEFINE_EVENT(wiphy_only_evt, rdev_rfkill_poll, 30714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 30814e8a3c4SBeni Lev TP_ARGS(wiphy) 30914e8a3c4SBeni Lev ); 31014e8a3c4SBeni Lev 31114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_enabled_evt, 31214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 31314e8a3c4SBeni Lev TP_ARGS(wiphy, enabled), 31414e8a3c4SBeni Lev TP_STRUCT__entry( 31514e8a3c4SBeni Lev WIPHY_ENTRY 31614e8a3c4SBeni Lev __field(bool, enabled) 31714e8a3c4SBeni Lev ), 31814e8a3c4SBeni Lev TP_fast_assign( 31914e8a3c4SBeni Lev WIPHY_ASSIGN; 32014e8a3c4SBeni Lev __entry->enabled = enabled; 32114e8a3c4SBeni Lev ), 32214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", %senabled ", 32314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->enabled ? "" : "not ") 32414e8a3c4SBeni Lev ); 32514e8a3c4SBeni Lev 32614e8a3c4SBeni Lev DEFINE_EVENT(wiphy_enabled_evt, rdev_set_wakeup, 32714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, bool enabled), 32814e8a3c4SBeni Lev TP_ARGS(wiphy, enabled) 32914e8a3c4SBeni Lev ); 33014e8a3c4SBeni Lev 33114e8a3c4SBeni Lev TRACE_EVENT(rdev_add_virtual_intf, 33214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, char *name, enum nl80211_iftype type), 33314e8a3c4SBeni Lev TP_ARGS(wiphy, name, type), 33414e8a3c4SBeni Lev TP_STRUCT__entry( 33514e8a3c4SBeni Lev WIPHY_ENTRY 33614e8a3c4SBeni Lev __string(vir_intf_name, name ? name : "<noname>") 33714e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 33814e8a3c4SBeni Lev ), 33914e8a3c4SBeni Lev TP_fast_assign( 34014e8a3c4SBeni Lev WIPHY_ASSIGN; 34114e8a3c4SBeni Lev __assign_str(vir_intf_name, name ? name : "<noname>"); 34214e8a3c4SBeni Lev __entry->type = type; 34314e8a3c4SBeni Lev ), 34414e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d", 34514e8a3c4SBeni Lev WIPHY_PR_ARG, __get_str(vir_intf_name), __entry->type) 34614e8a3c4SBeni Lev ); 34714e8a3c4SBeni Lev 34814e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_wdev_evt, 34914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 35014e8a3c4SBeni Lev TP_ARGS(wiphy, wdev), 35114e8a3c4SBeni Lev TP_STRUCT__entry( 35214e8a3c4SBeni Lev WIPHY_ENTRY 35314e8a3c4SBeni Lev WDEV_ENTRY 35414e8a3c4SBeni Lev ), 35514e8a3c4SBeni Lev TP_fast_assign( 35614e8a3c4SBeni Lev WIPHY_ASSIGN; 35714e8a3c4SBeni Lev WDEV_ASSIGN; 35814e8a3c4SBeni Lev ), 359ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 36014e8a3c4SBeni Lev ); 36114e8a3c4SBeni Lev 36214e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_return_wdev, 36314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 36414e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 36514e8a3c4SBeni Lev ); 36614e8a3c4SBeni Lev 36714e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_del_virtual_intf, 36814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 36914e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 37014e8a3c4SBeni Lev ); 37114e8a3c4SBeni Lev 37214e8a3c4SBeni Lev TRACE_EVENT(rdev_change_virtual_intf, 37314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 37414e8a3c4SBeni Lev enum nl80211_iftype type), 37514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, type), 37614e8a3c4SBeni Lev TP_STRUCT__entry( 37714e8a3c4SBeni Lev WIPHY_ENTRY 37814e8a3c4SBeni Lev NETDEV_ENTRY 37914e8a3c4SBeni Lev __field(enum nl80211_iftype, type) 38014e8a3c4SBeni Lev ), 38114e8a3c4SBeni Lev TP_fast_assign( 38214e8a3c4SBeni Lev WIPHY_ASSIGN; 38314e8a3c4SBeni Lev NETDEV_ASSIGN; 38414e8a3c4SBeni Lev __entry->type = type; 38514e8a3c4SBeni Lev ), 386ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", type: %d", 38714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->type) 38814e8a3c4SBeni Lev ); 38914e8a3c4SBeni Lev 39014e8a3c4SBeni Lev DECLARE_EVENT_CLASS(key_handle, 39114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 39214e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 39314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr), 39414e8a3c4SBeni Lev TP_STRUCT__entry( 39514e8a3c4SBeni Lev WIPHY_ENTRY 39614e8a3c4SBeni Lev NETDEV_ENTRY 39714e8a3c4SBeni Lev MAC_ENTRY(mac_addr) 39814e8a3c4SBeni Lev __field(u8, key_index) 39914e8a3c4SBeni Lev __field(bool, pairwise) 40014e8a3c4SBeni Lev ), 40114e8a3c4SBeni Lev TP_fast_assign( 40214e8a3c4SBeni Lev WIPHY_ASSIGN; 40314e8a3c4SBeni Lev NETDEV_ASSIGN; 40414e8a3c4SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 40514e8a3c4SBeni Lev __entry->key_index = key_index; 40614e8a3c4SBeni Lev __entry->pairwise = pairwise; 40714e8a3c4SBeni Lev ), 408ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT, 40914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 41014e8a3c4SBeni Lev BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr)) 41114e8a3c4SBeni Lev ); 41214e8a3c4SBeni Lev 41314e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_add_key, 41414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 41514e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 41614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 41714e8a3c4SBeni Lev ); 41814e8a3c4SBeni Lev 41914e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_get_key, 42014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 42114e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 42214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 42314e8a3c4SBeni Lev ); 42414e8a3c4SBeni Lev 42514e8a3c4SBeni Lev DEFINE_EVENT(key_handle, rdev_del_key, 42614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 42714e8a3c4SBeni Lev bool pairwise, const u8 *mac_addr), 42814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, pairwise, mac_addr) 42914e8a3c4SBeni Lev ); 43014e8a3c4SBeni Lev 43114e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_key, 43214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, 43314e8a3c4SBeni Lev bool unicast, bool multicast), 43414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index, unicast, multicast), 43514e8a3c4SBeni Lev TP_STRUCT__entry( 43614e8a3c4SBeni Lev WIPHY_ENTRY 43714e8a3c4SBeni Lev NETDEV_ENTRY 43814e8a3c4SBeni Lev __field(u8, key_index) 43914e8a3c4SBeni Lev __field(bool, unicast) 44014e8a3c4SBeni Lev __field(bool, multicast) 44114e8a3c4SBeni Lev ), 44214e8a3c4SBeni Lev TP_fast_assign( 44314e8a3c4SBeni Lev WIPHY_ASSIGN; 44414e8a3c4SBeni Lev NETDEV_ASSIGN; 44514e8a3c4SBeni Lev __entry->key_index = key_index; 44614e8a3c4SBeni Lev __entry->unicast = unicast; 44714e8a3c4SBeni Lev __entry->multicast = multicast; 44814e8a3c4SBeni Lev ), 449ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u, unicast: %s, multicast: %s", 45014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index, 45114e8a3c4SBeni Lev BOOL_TO_STR(__entry->unicast), 45214e8a3c4SBeni Lev BOOL_TO_STR(__entry->multicast)) 45314e8a3c4SBeni Lev ); 45414e8a3c4SBeni Lev 45514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_default_mgmt_key, 45614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 key_index), 45714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, key_index), 45814e8a3c4SBeni Lev TP_STRUCT__entry( 45914e8a3c4SBeni Lev WIPHY_ENTRY 46014e8a3c4SBeni Lev NETDEV_ENTRY 46114e8a3c4SBeni Lev __field(u8, key_index) 46214e8a3c4SBeni Lev ), 46314e8a3c4SBeni Lev TP_fast_assign( 46414e8a3c4SBeni Lev WIPHY_ASSIGN; 46514e8a3c4SBeni Lev NETDEV_ASSIGN; 46614e8a3c4SBeni Lev __entry->key_index = key_index; 46714e8a3c4SBeni Lev ), 468ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", key index: %u", 46914e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->key_index) 47014e8a3c4SBeni Lev ); 47114e8a3c4SBeni Lev 47214e8a3c4SBeni Lev TRACE_EVENT(rdev_start_ap, 47314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 47414e8a3c4SBeni Lev struct cfg80211_ap_settings *settings), 47514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, settings), 47614e8a3c4SBeni Lev TP_STRUCT__entry( 47714e8a3c4SBeni Lev WIPHY_ENTRY 47814e8a3c4SBeni Lev NETDEV_ENTRY 479683b6d3bSJohannes Berg CHAN_DEF_ENTRY 48014e8a3c4SBeni Lev __field(int, beacon_interval) 48114e8a3c4SBeni Lev __field(int, dtim_period) 48214e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 48314e8a3c4SBeni Lev __field(enum nl80211_hidden_ssid, hidden_ssid) 48414e8a3c4SBeni Lev __field(u32, wpa_ver) 48514e8a3c4SBeni Lev __field(bool, privacy) 48614e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 48714e8a3c4SBeni Lev __field(int, inactivity_timeout) 48814e8a3c4SBeni Lev ), 48914e8a3c4SBeni Lev TP_fast_assign( 49014e8a3c4SBeni Lev WIPHY_ASSIGN; 49114e8a3c4SBeni Lev NETDEV_ASSIGN; 492683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(&settings->chandef); 49314e8a3c4SBeni Lev __entry->beacon_interval = settings->beacon_interval; 49414e8a3c4SBeni Lev __entry->dtim_period = settings->dtim_period; 49514e8a3c4SBeni Lev __entry->hidden_ssid = settings->hidden_ssid; 49614e8a3c4SBeni Lev __entry->wpa_ver = settings->crypto.wpa_versions; 49714e8a3c4SBeni Lev __entry->privacy = settings->privacy; 49814e8a3c4SBeni Lev __entry->auth_type = settings->auth_type; 49914e8a3c4SBeni Lev __entry->inactivity_timeout = settings->inactivity_timeout; 50014e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 50114e8a3c4SBeni Lev memcpy(__entry->ssid, settings->ssid, settings->ssid_len); 50214e8a3c4SBeni Lev ), 503ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " 504683b6d3bSJohannes Berg CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " 50514e8a3c4SBeni Lev "hidden ssid: %d, wpa versions: %u, privacy: %s, " 50614e8a3c4SBeni Lev "auth type: %d, inactivity timeout: %d", 507683b6d3bSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, 50814e8a3c4SBeni Lev __entry->beacon_interval, __entry->dtim_period, 50914e8a3c4SBeni Lev __entry->hidden_ssid, __entry->wpa_ver, 51014e8a3c4SBeni Lev BOOL_TO_STR(__entry->privacy), __entry->auth_type, 51114e8a3c4SBeni Lev __entry->inactivity_timeout) 51214e8a3c4SBeni Lev ); 51314e8a3c4SBeni Lev 51414e8a3c4SBeni Lev TRACE_EVENT(rdev_change_beacon, 51514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 51614e8a3c4SBeni Lev struct cfg80211_beacon_data *info), 51714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, info), 51814e8a3c4SBeni Lev TP_STRUCT__entry( 51914e8a3c4SBeni Lev WIPHY_ENTRY 52014e8a3c4SBeni Lev NETDEV_ENTRY 52114e8a3c4SBeni Lev __dynamic_array(u8, head, info ? info->head_len : 0) 52214e8a3c4SBeni Lev __dynamic_array(u8, tail, info ? info->tail_len : 0) 52314e8a3c4SBeni Lev __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) 52414e8a3c4SBeni Lev __dynamic_array(u8, proberesp_ies, 52514e8a3c4SBeni Lev info ? info->proberesp_ies_len : 0) 52614e8a3c4SBeni Lev __dynamic_array(u8, assocresp_ies, 52714e8a3c4SBeni Lev info ? info->assocresp_ies_len : 0) 52814e8a3c4SBeni Lev __dynamic_array(u8, probe_resp, info ? info->probe_resp_len : 0) 52914e8a3c4SBeni Lev ), 53014e8a3c4SBeni Lev TP_fast_assign( 53114e8a3c4SBeni Lev WIPHY_ASSIGN; 53214e8a3c4SBeni Lev NETDEV_ASSIGN; 53314e8a3c4SBeni Lev if (info) { 53414e8a3c4SBeni Lev if (info->head) 53514e8a3c4SBeni Lev memcpy(__get_dynamic_array(head), info->head, 53614e8a3c4SBeni Lev info->head_len); 53714e8a3c4SBeni Lev if (info->tail) 53814e8a3c4SBeni Lev memcpy(__get_dynamic_array(tail), info->tail, 53914e8a3c4SBeni Lev info->tail_len); 54014e8a3c4SBeni Lev if (info->beacon_ies) 54114e8a3c4SBeni Lev memcpy(__get_dynamic_array(beacon_ies), 54214e8a3c4SBeni Lev info->beacon_ies, info->beacon_ies_len); 54314e8a3c4SBeni Lev if (info->proberesp_ies) 54414e8a3c4SBeni Lev memcpy(__get_dynamic_array(proberesp_ies), 54514e8a3c4SBeni Lev info->proberesp_ies, 54614e8a3c4SBeni Lev info->proberesp_ies_len); 54714e8a3c4SBeni Lev if (info->assocresp_ies) 54814e8a3c4SBeni Lev memcpy(__get_dynamic_array(assocresp_ies), 54914e8a3c4SBeni Lev info->assocresp_ies, 55014e8a3c4SBeni Lev info->assocresp_ies_len); 55114e8a3c4SBeni Lev if (info->probe_resp) 55214e8a3c4SBeni Lev memcpy(__get_dynamic_array(probe_resp), 55314e8a3c4SBeni Lev info->probe_resp, info->probe_resp_len); 55414e8a3c4SBeni Lev } 55514e8a3c4SBeni Lev ), 556ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 55714e8a3c4SBeni Lev ); 55814e8a3c4SBeni Lev 55914e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_evt, 56014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 56114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev), 56214e8a3c4SBeni Lev TP_STRUCT__entry( 56314e8a3c4SBeni Lev WIPHY_ENTRY 56414e8a3c4SBeni Lev NETDEV_ENTRY 56514e8a3c4SBeni Lev ), 56614e8a3c4SBeni Lev TP_fast_assign( 56714e8a3c4SBeni Lev WIPHY_ASSIGN; 56814e8a3c4SBeni Lev NETDEV_ASSIGN; 56914e8a3c4SBeni Lev ), 570ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) 57114e8a3c4SBeni Lev ); 57214e8a3c4SBeni Lev 57314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_stop_ap, 57414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 57514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 57614e8a3c4SBeni Lev ); 57714e8a3c4SBeni Lev 57814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_sched_scan_stop, 57914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 58014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 58114e8a3c4SBeni Lev ); 58214e8a3c4SBeni Lev 58314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, 58414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 58514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 58614e8a3c4SBeni Lev ); 58714e8a3c4SBeni Lev 58814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_get_mesh_config, 58914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 59014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 59114e8a3c4SBeni Lev ); 59214e8a3c4SBeni Lev 59314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_mesh, 59414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 59514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 59614e8a3c4SBeni Lev ); 59714e8a3c4SBeni Lev 59814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ibss, 59914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 60014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 60114e8a3c4SBeni Lev ); 60214e8a3c4SBeni Lev 6036e0bd6c3SRostislav Lisovy DEFINE_EVENT(wiphy_netdev_evt, rdev_leave_ocb, 6046e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 6056e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev) 6066e0bd6c3SRostislav Lisovy ); 6076e0bd6c3SRostislav Lisovy 60814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_evt, rdev_flush_pmksa, 60914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), 61014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev) 61114e8a3c4SBeni Lev ); 61214e8a3c4SBeni Lev 61314e8a3c4SBeni Lev DECLARE_EVENT_CLASS(station_add_change, 61414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 61514e8a3c4SBeni Lev struct station_parameters *params), 61614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params), 61714e8a3c4SBeni Lev TP_STRUCT__entry( 61814e8a3c4SBeni Lev WIPHY_ENTRY 61914e8a3c4SBeni Lev NETDEV_ENTRY 62014e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 62114e8a3c4SBeni Lev __field(u32, sta_flags_mask) 62214e8a3c4SBeni Lev __field(u32, sta_flags_set) 62314e8a3c4SBeni Lev __field(u32, sta_modify_mask) 62414e8a3c4SBeni Lev __field(int, listen_interval) 62514e8a3c4SBeni Lev __field(u16, aid) 62614e8a3c4SBeni Lev __field(u8, plink_action) 62714e8a3c4SBeni Lev __field(u8, plink_state) 62814e8a3c4SBeni Lev __field(u8, uapsd_queues) 62914e8a3c4SBeni Lev __array(u8, ht_capa, (int)sizeof(struct ieee80211_ht_cap)) 63014e8a3c4SBeni Lev ), 63114e8a3c4SBeni Lev TP_fast_assign( 63214e8a3c4SBeni Lev WIPHY_ASSIGN; 63314e8a3c4SBeni Lev NETDEV_ASSIGN; 63414e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 63514e8a3c4SBeni Lev __entry->sta_flags_mask = params->sta_flags_mask; 63614e8a3c4SBeni Lev __entry->sta_flags_set = params->sta_flags_set; 63714e8a3c4SBeni Lev __entry->sta_modify_mask = params->sta_modify_mask; 63814e8a3c4SBeni Lev __entry->listen_interval = params->listen_interval; 63914e8a3c4SBeni Lev __entry->aid = params->aid; 64014e8a3c4SBeni Lev __entry->plink_action = params->plink_action; 64114e8a3c4SBeni Lev __entry->plink_state = params->plink_state; 64214e8a3c4SBeni Lev __entry->uapsd_queues = params->uapsd_queues; 64314e8a3c4SBeni Lev memset(__entry->ht_capa, 0, sizeof(struct ieee80211_ht_cap)); 64414e8a3c4SBeni Lev if (params->ht_capa) 64514e8a3c4SBeni Lev memcpy(__entry->ht_capa, params->ht_capa, 64614e8a3c4SBeni Lev sizeof(struct ieee80211_ht_cap)); 64714e8a3c4SBeni Lev ), 648ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 64914e8a3c4SBeni Lev ", station flags mask: %u, station flags set: %u, " 65014e8a3c4SBeni Lev "station modify mask: %u, listen interval: %d, aid: %u, " 65114e8a3c4SBeni Lev "plink action: %u, plink state: %u, uapsd queues: %u", 65214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 65314e8a3c4SBeni Lev __entry->sta_flags_mask, __entry->sta_flags_set, 65414e8a3c4SBeni Lev __entry->sta_modify_mask, __entry->listen_interval, 65514e8a3c4SBeni Lev __entry->aid, __entry->plink_action, __entry->plink_state, 65614e8a3c4SBeni Lev __entry->uapsd_queues) 65714e8a3c4SBeni Lev ); 65814e8a3c4SBeni Lev 65914e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_add_station, 66014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 66114e8a3c4SBeni Lev struct station_parameters *params), 66214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 66314e8a3c4SBeni Lev ); 66414e8a3c4SBeni Lev 66514e8a3c4SBeni Lev DEFINE_EVENT(station_add_change, rdev_change_station, 66614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *mac, 66714e8a3c4SBeni Lev struct station_parameters *params), 66814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac, params) 66914e8a3c4SBeni Lev ); 67014e8a3c4SBeni Lev 67114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(wiphy_netdev_mac_evt, 67214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 67314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac), 67414e8a3c4SBeni Lev TP_STRUCT__entry( 67514e8a3c4SBeni Lev WIPHY_ENTRY 67614e8a3c4SBeni Lev NETDEV_ENTRY 67714e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 67814e8a3c4SBeni Lev ), 67914e8a3c4SBeni Lev TP_fast_assign( 68014e8a3c4SBeni Lev WIPHY_ASSIGN; 68114e8a3c4SBeni Lev NETDEV_ASSIGN; 68214e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 68314e8a3c4SBeni Lev ), 684ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 68514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac)) 68614e8a3c4SBeni Lev ); 68714e8a3c4SBeni Lev 68889c771e5SJouni Malinen DECLARE_EVENT_CLASS(station_del, 68989c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 69089c771e5SJouni Malinen struct station_del_parameters *params), 69189c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params), 69289c771e5SJouni Malinen TP_STRUCT__entry( 69389c771e5SJouni Malinen WIPHY_ENTRY 69489c771e5SJouni Malinen NETDEV_ENTRY 69589c771e5SJouni Malinen MAC_ENTRY(sta_mac) 69698856866SJouni Malinen __field(u8, subtype) 69798856866SJouni Malinen __field(u16, reason_code) 69889c771e5SJouni Malinen ), 69989c771e5SJouni Malinen TP_fast_assign( 70089c771e5SJouni Malinen WIPHY_ASSIGN; 70189c771e5SJouni Malinen NETDEV_ASSIGN; 70289c771e5SJouni Malinen MAC_ASSIGN(sta_mac, params->mac); 70398856866SJouni Malinen __entry->subtype = params->subtype; 70498856866SJouni Malinen __entry->reason_code = params->reason_code; 70589c771e5SJouni Malinen ), 70698856866SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT 70798856866SJouni Malinen ", subtype: %u, reason_code: %u", 70898856866SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 70998856866SJouni Malinen __entry->subtype, __entry->reason_code) 71089c771e5SJouni Malinen ); 71189c771e5SJouni Malinen 71289c771e5SJouni Malinen DEFINE_EVENT(station_del, rdev_del_station, 71389c771e5SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 71489c771e5SJouni Malinen struct station_del_parameters *params), 71589c771e5SJouni Malinen TP_ARGS(wiphy, netdev, params) 71614e8a3c4SBeni Lev ); 71714e8a3c4SBeni Lev 71814e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_get_station, 71914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *mac), 72014e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mac) 72114e8a3c4SBeni Lev ); 72214e8a3c4SBeni Lev 72314e8a3c4SBeni Lev DEFINE_EVENT(wiphy_netdev_mac_evt, rdev_del_mpath, 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_set_wds_peer, 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 TRACE_EVENT(rdev_dump_station, 73414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx, 73514e8a3c4SBeni Lev u8 *mac), 73614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, idx, mac), 73714e8a3c4SBeni Lev TP_STRUCT__entry( 73814e8a3c4SBeni Lev WIPHY_ENTRY 73914e8a3c4SBeni Lev NETDEV_ENTRY 74014e8a3c4SBeni Lev MAC_ENTRY(sta_mac) 74114e8a3c4SBeni Lev __field(int, idx) 74214e8a3c4SBeni Lev ), 74314e8a3c4SBeni Lev TP_fast_assign( 74414e8a3c4SBeni Lev WIPHY_ASSIGN; 74514e8a3c4SBeni Lev NETDEV_ASSIGN; 74614e8a3c4SBeni Lev MAC_ASSIGN(sta_mac, mac); 74714e8a3c4SBeni Lev __entry->idx = idx; 74814e8a3c4SBeni Lev ), 749ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d", 75014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac), 75114e8a3c4SBeni Lev __entry->idx) 75214e8a3c4SBeni Lev ); 75314e8a3c4SBeni Lev 75414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_station_info, 75514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct station_info *sinfo), 75614e8a3c4SBeni Lev TP_ARGS(wiphy, ret, sinfo), 75714e8a3c4SBeni Lev TP_STRUCT__entry( 75814e8a3c4SBeni Lev WIPHY_ENTRY 75914e8a3c4SBeni Lev __field(int, ret) 76014e8a3c4SBeni Lev SINFO_ENTRY 76114e8a3c4SBeni Lev ), 76214e8a3c4SBeni Lev TP_fast_assign( 76314e8a3c4SBeni Lev WIPHY_ASSIGN; 76414e8a3c4SBeni Lev __entry->ret = ret; 76514e8a3c4SBeni Lev SINFO_ASSIGN; 76614e8a3c4SBeni Lev ), 76714e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d" , 76814e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 76914e8a3c4SBeni Lev ); 77014e8a3c4SBeni Lev 77114e8a3c4SBeni Lev DECLARE_EVENT_CLASS(mpath_evt, 77214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 77314e8a3c4SBeni Lev u8 *next_hop), 77414e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop), 77514e8a3c4SBeni Lev TP_STRUCT__entry( 77614e8a3c4SBeni Lev WIPHY_ENTRY 77714e8a3c4SBeni Lev NETDEV_ENTRY 77814e8a3c4SBeni Lev MAC_ENTRY(dst) 77914e8a3c4SBeni Lev MAC_ENTRY(next_hop) 78014e8a3c4SBeni Lev ), 78114e8a3c4SBeni Lev TP_fast_assign( 78214e8a3c4SBeni Lev WIPHY_ASSIGN; 78314e8a3c4SBeni Lev NETDEV_ASSIGN; 78414e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 78514e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 78614e8a3c4SBeni Lev ), 787ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT, 78814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst), 78914e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 79014e8a3c4SBeni Lev ); 79114e8a3c4SBeni Lev 79214e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_add_mpath, 79314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 79414e8a3c4SBeni Lev u8 *next_hop), 79514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 79614e8a3c4SBeni Lev ); 79714e8a3c4SBeni Lev 79814e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_change_mpath, 79914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 80014e8a3c4SBeni Lev u8 *next_hop), 80114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 80214e8a3c4SBeni Lev ); 80314e8a3c4SBeni Lev 80414e8a3c4SBeni Lev DEFINE_EVENT(mpath_evt, rdev_get_mpath, 80514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u8 *dst, 80614e8a3c4SBeni Lev u8 *next_hop), 80714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, dst, next_hop) 80814e8a3c4SBeni Lev ); 80914e8a3c4SBeni Lev 81014e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_mpath, 81114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx, 81214e8a3c4SBeni Lev u8 *dst, u8 *next_hop), 81314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, idx, dst, next_hop), 81414e8a3c4SBeni Lev TP_STRUCT__entry( 81514e8a3c4SBeni Lev WIPHY_ENTRY 81614e8a3c4SBeni Lev NETDEV_ENTRY 81714e8a3c4SBeni Lev MAC_ENTRY(dst) 81814e8a3c4SBeni Lev MAC_ENTRY(next_hop) 81914e8a3c4SBeni Lev __field(int, idx) 82014e8a3c4SBeni Lev ), 82114e8a3c4SBeni Lev TP_fast_assign( 82214e8a3c4SBeni Lev WIPHY_ASSIGN; 82314e8a3c4SBeni Lev NETDEV_ASSIGN; 82414e8a3c4SBeni Lev MAC_ASSIGN(dst, dst); 82514e8a3c4SBeni Lev MAC_ASSIGN(next_hop, next_hop); 82614e8a3c4SBeni Lev __entry->idx = idx; 82714e8a3c4SBeni Lev ), 828ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 82914e8a3c4SBeni Lev MAC_PR_FMT ", next hop: " MAC_PR_FMT, 83014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 83114e8a3c4SBeni Lev MAC_PR_ARG(next_hop)) 83214e8a3c4SBeni Lev ); 83314e8a3c4SBeni Lev 83466be7d2bSHenning Rogge TRACE_EVENT(rdev_get_mpp, 83566be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 83666be7d2bSHenning Rogge u8 *dst, u8 *mpp), 83766be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, dst, mpp), 83866be7d2bSHenning Rogge TP_STRUCT__entry( 83966be7d2bSHenning Rogge WIPHY_ENTRY 84066be7d2bSHenning Rogge NETDEV_ENTRY 84166be7d2bSHenning Rogge MAC_ENTRY(dst) 84266be7d2bSHenning Rogge MAC_ENTRY(mpp) 84366be7d2bSHenning Rogge ), 84466be7d2bSHenning Rogge TP_fast_assign( 84566be7d2bSHenning Rogge WIPHY_ASSIGN; 84666be7d2bSHenning Rogge NETDEV_ASSIGN; 84766be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 84866be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 84966be7d2bSHenning Rogge ), 85066be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT 85166be7d2bSHenning Rogge ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG, 85266be7d2bSHenning Rogge MAC_PR_ARG(dst), MAC_PR_ARG(mpp)) 85366be7d2bSHenning Rogge ); 85466be7d2bSHenning Rogge 85566be7d2bSHenning Rogge TRACE_EVENT(rdev_dump_mpp, 85666be7d2bSHenning Rogge TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx, 85766be7d2bSHenning Rogge u8 *dst, u8 *mpp), 85866be7d2bSHenning Rogge TP_ARGS(wiphy, netdev, idx, mpp, dst), 85966be7d2bSHenning Rogge TP_STRUCT__entry( 86066be7d2bSHenning Rogge WIPHY_ENTRY 86166be7d2bSHenning Rogge NETDEV_ENTRY 86266be7d2bSHenning Rogge MAC_ENTRY(dst) 86366be7d2bSHenning Rogge MAC_ENTRY(mpp) 86466be7d2bSHenning Rogge __field(int, idx) 86566be7d2bSHenning Rogge ), 86666be7d2bSHenning Rogge TP_fast_assign( 86766be7d2bSHenning Rogge WIPHY_ASSIGN; 86866be7d2bSHenning Rogge NETDEV_ASSIGN; 86966be7d2bSHenning Rogge MAC_ASSIGN(dst, dst); 87066be7d2bSHenning Rogge MAC_ASSIGN(mpp, mpp); 87166be7d2bSHenning Rogge __entry->idx = idx; 87266be7d2bSHenning Rogge ), 87366be7d2bSHenning Rogge TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: " 87466be7d2bSHenning Rogge MAC_PR_FMT ", mpp: " MAC_PR_FMT, 87566be7d2bSHenning Rogge WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst), 87666be7d2bSHenning Rogge MAC_PR_ARG(mpp)) 87766be7d2bSHenning Rogge ); 87866be7d2bSHenning Rogge 87914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mpath_info, 88014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mpath_info *pinfo), 88114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, pinfo), 88214e8a3c4SBeni Lev TP_STRUCT__entry( 88314e8a3c4SBeni Lev WIPHY_ENTRY 88414e8a3c4SBeni Lev __field(int, ret) 88514e8a3c4SBeni Lev __field(int, generation) 88614e8a3c4SBeni Lev __field(u32, filled) 88714e8a3c4SBeni Lev __field(u32, frame_qlen) 88814e8a3c4SBeni Lev __field(u32, sn) 88914e8a3c4SBeni Lev __field(u32, metric) 89014e8a3c4SBeni Lev __field(u32, exptime) 89114e8a3c4SBeni Lev __field(u32, discovery_timeout) 89214e8a3c4SBeni Lev __field(u8, discovery_retries) 89314e8a3c4SBeni Lev __field(u8, flags) 89414e8a3c4SBeni Lev ), 89514e8a3c4SBeni Lev TP_fast_assign( 89614e8a3c4SBeni Lev WIPHY_ASSIGN; 89714e8a3c4SBeni Lev __entry->ret = ret; 89814e8a3c4SBeni Lev __entry->generation = pinfo->generation; 89914e8a3c4SBeni Lev __entry->filled = pinfo->filled; 90014e8a3c4SBeni Lev __entry->frame_qlen = pinfo->frame_qlen; 90114e8a3c4SBeni Lev __entry->sn = pinfo->sn; 90214e8a3c4SBeni Lev __entry->metric = pinfo->metric; 90314e8a3c4SBeni Lev __entry->exptime = pinfo->exptime; 90414e8a3c4SBeni Lev __entry->discovery_timeout = pinfo->discovery_timeout; 90514e8a3c4SBeni Lev __entry->discovery_retries = pinfo->discovery_retries; 90614e8a3c4SBeni Lev __entry->flags = pinfo->flags; 90714e8a3c4SBeni Lev ), 90814e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d. mpath info - generation: %d, " 90914e8a3c4SBeni Lev "filled: %u, frame qlen: %u, sn: %u, metric: %u, exptime: %u," 91014e8a3c4SBeni Lev " discovery timeout: %u, discovery retries: %u, flags: %u", 91114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->generation, 91214e8a3c4SBeni Lev __entry->filled, __entry->frame_qlen, __entry->sn, 91314e8a3c4SBeni Lev __entry->metric, __entry->exptime, __entry->discovery_timeout, 91414e8a3c4SBeni Lev __entry->discovery_retries, __entry->flags) 91514e8a3c4SBeni Lev ); 91614e8a3c4SBeni Lev 91714e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_mesh_config, 91814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct mesh_config *conf), 91914e8a3c4SBeni Lev TP_ARGS(wiphy, ret, conf), 92014e8a3c4SBeni Lev TP_STRUCT__entry( 92114e8a3c4SBeni Lev WIPHY_ENTRY 92214e8a3c4SBeni Lev MESH_CFG_ENTRY 92314e8a3c4SBeni Lev __field(int, ret) 92414e8a3c4SBeni Lev ), 92514e8a3c4SBeni Lev TP_fast_assign( 92614e8a3c4SBeni Lev WIPHY_ASSIGN; 92714e8a3c4SBeni Lev MESH_CFG_ASSIGN; 92814e8a3c4SBeni Lev __entry->ret = ret; 92914e8a3c4SBeni Lev ), 93014e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d", 93114e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret) 93214e8a3c4SBeni Lev ); 93314e8a3c4SBeni Lev 93414e8a3c4SBeni Lev TRACE_EVENT(rdev_update_mesh_config, 93514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 mask, 93614e8a3c4SBeni Lev const struct mesh_config *conf), 93714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, mask, conf), 93814e8a3c4SBeni Lev TP_STRUCT__entry( 93914e8a3c4SBeni Lev WIPHY_ENTRY 94014e8a3c4SBeni Lev NETDEV_ENTRY 94114e8a3c4SBeni Lev MESH_CFG_ENTRY 94214e8a3c4SBeni Lev __field(u32, mask) 94314e8a3c4SBeni Lev ), 94414e8a3c4SBeni Lev TP_fast_assign( 94514e8a3c4SBeni Lev WIPHY_ASSIGN; 94614e8a3c4SBeni Lev NETDEV_ASSIGN; 94714e8a3c4SBeni Lev MESH_CFG_ASSIGN; 94814e8a3c4SBeni Lev __entry->mask = mask; 94914e8a3c4SBeni Lev ), 950ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mask: %u", 95114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mask) 95214e8a3c4SBeni Lev ); 95314e8a3c4SBeni Lev 95414e8a3c4SBeni Lev TRACE_EVENT(rdev_join_mesh, 95514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 95614e8a3c4SBeni Lev const struct mesh_config *conf, 95714e8a3c4SBeni Lev const struct mesh_setup *setup), 95814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, conf, setup), 95914e8a3c4SBeni Lev TP_STRUCT__entry( 96014e8a3c4SBeni Lev WIPHY_ENTRY 96114e8a3c4SBeni Lev NETDEV_ENTRY 96214e8a3c4SBeni Lev MESH_CFG_ENTRY 96314e8a3c4SBeni Lev ), 96414e8a3c4SBeni Lev TP_fast_assign( 96514e8a3c4SBeni Lev WIPHY_ASSIGN; 96614e8a3c4SBeni Lev NETDEV_ASSIGN; 96714e8a3c4SBeni Lev MESH_CFG_ASSIGN; 96814e8a3c4SBeni Lev ), 969ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 97014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 97114e8a3c4SBeni Lev ); 97214e8a3c4SBeni Lev 97314e8a3c4SBeni Lev TRACE_EVENT(rdev_change_bss, 97414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 97514e8a3c4SBeni Lev struct bss_parameters *params), 97614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 97714e8a3c4SBeni Lev TP_STRUCT__entry( 97814e8a3c4SBeni Lev WIPHY_ENTRY 97914e8a3c4SBeni Lev NETDEV_ENTRY 98014e8a3c4SBeni Lev __field(int, use_cts_prot) 98114e8a3c4SBeni Lev __field(int, use_short_preamble) 98214e8a3c4SBeni Lev __field(int, use_short_slot_time) 98314e8a3c4SBeni Lev __field(int, ap_isolate) 98414e8a3c4SBeni Lev __field(int, ht_opmode) 98514e8a3c4SBeni Lev ), 98614e8a3c4SBeni Lev TP_fast_assign( 98714e8a3c4SBeni Lev WIPHY_ASSIGN; 98814e8a3c4SBeni Lev NETDEV_ASSIGN; 98914e8a3c4SBeni Lev __entry->use_cts_prot = params->use_cts_prot; 99014e8a3c4SBeni Lev __entry->use_short_preamble = params->use_short_preamble; 99114e8a3c4SBeni Lev __entry->use_short_slot_time = params->use_short_slot_time; 99214e8a3c4SBeni Lev __entry->ap_isolate = params->ap_isolate; 99314e8a3c4SBeni Lev __entry->ht_opmode = params->ht_opmode; 99414e8a3c4SBeni Lev ), 995ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", use cts prot: %d, " 99614e8a3c4SBeni Lev "use short preamble: %d, use short slot time: %d, " 99714e8a3c4SBeni Lev "ap isolate: %d, ht opmode: %d", 99814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->use_cts_prot, 99914e8a3c4SBeni Lev __entry->use_short_preamble, __entry->use_short_slot_time, 100014e8a3c4SBeni Lev __entry->ap_isolate, __entry->ht_opmode) 100114e8a3c4SBeni Lev ); 100214e8a3c4SBeni Lev 100314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_txq_params, 100414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 100514e8a3c4SBeni Lev struct ieee80211_txq_params *params), 100614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 100714e8a3c4SBeni Lev TP_STRUCT__entry( 100814e8a3c4SBeni Lev WIPHY_ENTRY 100914e8a3c4SBeni Lev NETDEV_ENTRY 101014e8a3c4SBeni Lev __field(enum nl80211_ac, ac) 101114e8a3c4SBeni Lev __field(u16, txop) 101214e8a3c4SBeni Lev __field(u16, cwmin) 101314e8a3c4SBeni Lev __field(u16, cwmax) 101414e8a3c4SBeni Lev __field(u8, aifs) 101514e8a3c4SBeni Lev ), 101614e8a3c4SBeni Lev TP_fast_assign( 101714e8a3c4SBeni Lev WIPHY_ASSIGN; 101814e8a3c4SBeni Lev NETDEV_ASSIGN; 101914e8a3c4SBeni Lev __entry->ac = params->ac; 102014e8a3c4SBeni Lev __entry->txop = params->txop; 102114e8a3c4SBeni Lev __entry->cwmin = params->cwmin; 102214e8a3c4SBeni Lev __entry->cwmax = params->cwmax; 102314e8a3c4SBeni Lev __entry->aifs = params->aifs; 102414e8a3c4SBeni Lev ), 1025ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", ac: %d, txop: %u, cwmin: %u, cwmax: %u, aifs: %u", 102614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ac, __entry->txop, 102714e8a3c4SBeni Lev __entry->cwmin, __entry->cwmax, __entry->aifs) 102814e8a3c4SBeni Lev ); 102914e8a3c4SBeni Lev 103014e8a3c4SBeni Lev TRACE_EVENT(rdev_libertas_set_mesh_channel, 103114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 103214e8a3c4SBeni Lev struct ieee80211_channel *chan), 103314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, chan), 103414e8a3c4SBeni Lev TP_STRUCT__entry( 103514e8a3c4SBeni Lev WIPHY_ENTRY 103614e8a3c4SBeni Lev NETDEV_ENTRY 103714e8a3c4SBeni Lev CHAN_ENTRY 103814e8a3c4SBeni Lev ), 103914e8a3c4SBeni Lev TP_fast_assign( 104014e8a3c4SBeni Lev WIPHY_ASSIGN; 104114e8a3c4SBeni Lev NETDEV_ASSIGN; 104214e8a3c4SBeni Lev CHAN_ASSIGN(chan); 104314e8a3c4SBeni Lev ), 1044ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_PR_FMT, WIPHY_PR_ARG, 104514e8a3c4SBeni Lev NETDEV_PR_ARG, CHAN_PR_ARG) 104614e8a3c4SBeni Lev ); 104714e8a3c4SBeni Lev 104814e8a3c4SBeni Lev TRACE_EVENT(rdev_set_monitor_channel, 1049683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, 1050683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1051683b6d3bSJohannes Berg TP_ARGS(wiphy, chandef), 105214e8a3c4SBeni Lev TP_STRUCT__entry( 105314e8a3c4SBeni Lev WIPHY_ENTRY 1054683b6d3bSJohannes Berg CHAN_DEF_ENTRY 105514e8a3c4SBeni Lev ), 105614e8a3c4SBeni Lev TP_fast_assign( 105714e8a3c4SBeni Lev WIPHY_ASSIGN; 1058683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 105914e8a3c4SBeni Lev ), 1060ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 1061683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 106214e8a3c4SBeni Lev ); 106314e8a3c4SBeni Lev 106414e8a3c4SBeni Lev TRACE_EVENT(rdev_auth, 106514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 106614e8a3c4SBeni Lev struct cfg80211_auth_request *req), 106714e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 106814e8a3c4SBeni Lev TP_STRUCT__entry( 106914e8a3c4SBeni Lev WIPHY_ENTRY 107014e8a3c4SBeni Lev NETDEV_ENTRY 107114e8a3c4SBeni Lev MAC_ENTRY(bssid) 107214e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 107314e8a3c4SBeni Lev ), 107414e8a3c4SBeni Lev TP_fast_assign( 107514e8a3c4SBeni Lev WIPHY_ASSIGN; 107614e8a3c4SBeni Lev NETDEV_ASSIGN; 107714e8a3c4SBeni Lev if (req->bss) 107814e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 107914e8a3c4SBeni Lev else 108014e8a3c4SBeni Lev memset(__entry->bssid, 0, ETH_ALEN); 108114e8a3c4SBeni Lev __entry->auth_type = req->auth_type; 108214e8a3c4SBeni Lev ), 1083ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT, 108414e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type, 108514e8a3c4SBeni Lev MAC_PR_ARG(bssid)) 108614e8a3c4SBeni Lev ); 108714e8a3c4SBeni Lev 108814e8a3c4SBeni Lev TRACE_EVENT(rdev_assoc, 108914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 109014e8a3c4SBeni Lev struct cfg80211_assoc_request *req), 109114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 109214e8a3c4SBeni Lev TP_STRUCT__entry( 109314e8a3c4SBeni Lev WIPHY_ENTRY 109414e8a3c4SBeni Lev NETDEV_ENTRY 109514e8a3c4SBeni Lev MAC_ENTRY(bssid) 109614e8a3c4SBeni Lev MAC_ENTRY(prev_bssid) 109714e8a3c4SBeni Lev __field(bool, use_mfp) 109814e8a3c4SBeni Lev __field(u32, flags) 109914e8a3c4SBeni Lev ), 110014e8a3c4SBeni Lev TP_fast_assign( 110114e8a3c4SBeni Lev WIPHY_ASSIGN; 110214e8a3c4SBeni Lev NETDEV_ASSIGN; 110314e8a3c4SBeni Lev if (req->bss) 110414e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 110514e8a3c4SBeni Lev else 110614e8a3c4SBeni Lev memset(__entry->bssid, 0, ETH_ALEN); 110714e8a3c4SBeni Lev MAC_ASSIGN(prev_bssid, req->prev_bssid); 110814e8a3c4SBeni Lev __entry->use_mfp = req->use_mfp; 110914e8a3c4SBeni Lev __entry->flags = req->flags; 111014e8a3c4SBeni Lev ), 1111ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 111214e8a3c4SBeni Lev ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u", 111314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 111414e8a3c4SBeni Lev MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp), 111514e8a3c4SBeni Lev __entry->flags) 111614e8a3c4SBeni Lev ); 111714e8a3c4SBeni Lev 111814e8a3c4SBeni Lev TRACE_EVENT(rdev_deauth, 111914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 112014e8a3c4SBeni Lev struct cfg80211_deauth_request *req), 112114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 112214e8a3c4SBeni Lev TP_STRUCT__entry( 112314e8a3c4SBeni Lev WIPHY_ENTRY 112414e8a3c4SBeni Lev NETDEV_ENTRY 112514e8a3c4SBeni Lev MAC_ENTRY(bssid) 112614e8a3c4SBeni Lev __field(u16, reason_code) 112714e8a3c4SBeni Lev ), 112814e8a3c4SBeni Lev TP_fast_assign( 112914e8a3c4SBeni Lev WIPHY_ASSIGN; 113014e8a3c4SBeni Lev NETDEV_ASSIGN; 113114e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bssid); 113214e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 113314e8a3c4SBeni Lev ), 1134ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u", 113514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 113614e8a3c4SBeni Lev __entry->reason_code) 113714e8a3c4SBeni Lev ); 113814e8a3c4SBeni Lev 113914e8a3c4SBeni Lev TRACE_EVENT(rdev_disassoc, 114014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 114114e8a3c4SBeni Lev struct cfg80211_disassoc_request *req), 114214e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, req), 114314e8a3c4SBeni Lev TP_STRUCT__entry( 114414e8a3c4SBeni Lev WIPHY_ENTRY 114514e8a3c4SBeni Lev NETDEV_ENTRY 114614e8a3c4SBeni Lev MAC_ENTRY(bssid) 114714e8a3c4SBeni Lev __field(u16, reason_code) 114814e8a3c4SBeni Lev __field(bool, local_state_change) 114914e8a3c4SBeni Lev ), 115014e8a3c4SBeni Lev TP_fast_assign( 115114e8a3c4SBeni Lev WIPHY_ASSIGN; 115214e8a3c4SBeni Lev NETDEV_ASSIGN; 115314e8a3c4SBeni Lev if (req->bss) 115414e8a3c4SBeni Lev MAC_ASSIGN(bssid, req->bss->bssid); 115514e8a3c4SBeni Lev else 115614e8a3c4SBeni Lev memset(__entry->bssid, 0, ETH_ALEN); 115714e8a3c4SBeni Lev __entry->reason_code = req->reason_code; 115814e8a3c4SBeni Lev __entry->local_state_change = req->local_state_change; 115914e8a3c4SBeni Lev ), 1160ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 116114e8a3c4SBeni Lev ", reason: %u, local state change: %s", 116214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), 116314e8a3c4SBeni Lev __entry->reason_code, 116414e8a3c4SBeni Lev BOOL_TO_STR(__entry->local_state_change)) 116514e8a3c4SBeni Lev ); 116614e8a3c4SBeni Lev 116714e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx_cancel_wait, 116814e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 116914e8a3c4SBeni Lev struct wireless_dev *wdev, u64 cookie), 117014e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 117114e8a3c4SBeni Lev TP_STRUCT__entry( 117214e8a3c4SBeni Lev WIPHY_ENTRY 117314e8a3c4SBeni Lev WDEV_ENTRY 117414e8a3c4SBeni Lev __field(u64, cookie) 117514e8a3c4SBeni Lev ), 117614e8a3c4SBeni Lev TP_fast_assign( 117714e8a3c4SBeni Lev WIPHY_ASSIGN; 117814e8a3c4SBeni Lev WDEV_ASSIGN; 117914e8a3c4SBeni Lev __entry->cookie = cookie; 118014e8a3c4SBeni Lev ), 1181ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu ", 118214e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 118314e8a3c4SBeni Lev ); 118414e8a3c4SBeni Lev 118514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_power_mgmt, 118614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 118714e8a3c4SBeni Lev bool enabled, int timeout), 118814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, enabled, timeout), 118914e8a3c4SBeni Lev TP_STRUCT__entry( 119014e8a3c4SBeni Lev WIPHY_ENTRY 119114e8a3c4SBeni Lev NETDEV_ENTRY 119214e8a3c4SBeni Lev __field(bool, enabled) 119314e8a3c4SBeni Lev __field(int, timeout) 119414e8a3c4SBeni Lev ), 119514e8a3c4SBeni Lev TP_fast_assign( 119614e8a3c4SBeni Lev WIPHY_ASSIGN; 119714e8a3c4SBeni Lev NETDEV_ASSIGN; 119814e8a3c4SBeni Lev __entry->enabled = enabled; 119914e8a3c4SBeni Lev __entry->timeout = timeout; 120014e8a3c4SBeni Lev ), 1201ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %senabled, timeout: %d ", 120214e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 120314e8a3c4SBeni Lev __entry->enabled ? "" : "not ", __entry->timeout) 120414e8a3c4SBeni Lev ); 120514e8a3c4SBeni Lev 120614e8a3c4SBeni Lev TRACE_EVENT(rdev_connect, 120714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 120814e8a3c4SBeni Lev struct cfg80211_connect_params *sme), 120914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, sme), 121014e8a3c4SBeni Lev TP_STRUCT__entry( 121114e8a3c4SBeni Lev WIPHY_ENTRY 121214e8a3c4SBeni Lev NETDEV_ENTRY 121314e8a3c4SBeni Lev MAC_ENTRY(bssid) 121414e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 121514e8a3c4SBeni Lev __field(enum nl80211_auth_type, auth_type) 121614e8a3c4SBeni Lev __field(bool, privacy) 121714e8a3c4SBeni Lev __field(u32, wpa_versions) 121814e8a3c4SBeni Lev __field(u32, flags) 121914e8a3c4SBeni Lev ), 122014e8a3c4SBeni Lev TP_fast_assign( 122114e8a3c4SBeni Lev WIPHY_ASSIGN; 122214e8a3c4SBeni Lev NETDEV_ASSIGN; 122314e8a3c4SBeni Lev MAC_ASSIGN(bssid, sme->bssid); 122414e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 122514e8a3c4SBeni Lev memcpy(__entry->ssid, sme->ssid, sme->ssid_len); 122614e8a3c4SBeni Lev __entry->auth_type = sme->auth_type; 122714e8a3c4SBeni Lev __entry->privacy = sme->privacy; 122814e8a3c4SBeni Lev __entry->wpa_versions = sme->crypto.wpa_versions; 122914e8a3c4SBeni Lev __entry->flags = sme->flags; 123014e8a3c4SBeni Lev ), 1231ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT 123214e8a3c4SBeni Lev ", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, " 123314e8a3c4SBeni Lev "flags: %u", 123414e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid, 123514e8a3c4SBeni Lev __entry->auth_type, BOOL_TO_STR(__entry->privacy), 123614e8a3c4SBeni Lev __entry->wpa_versions, __entry->flags) 123714e8a3c4SBeni Lev ); 123814e8a3c4SBeni Lev 123914e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_rssi_config, 124014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, 124114e8a3c4SBeni Lev struct net_device *netdev, s32 rssi_thold, 124214e8a3c4SBeni Lev u32 rssi_hyst), 124314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rssi_thold, rssi_hyst), 124414e8a3c4SBeni Lev TP_STRUCT__entry( 124514e8a3c4SBeni Lev WIPHY_ENTRY 124614e8a3c4SBeni Lev NETDEV_ENTRY 124714e8a3c4SBeni Lev __field(s32, rssi_thold) 124814e8a3c4SBeni Lev __field(u32, rssi_hyst) 124914e8a3c4SBeni Lev ), 125014e8a3c4SBeni Lev TP_fast_assign( 125114e8a3c4SBeni Lev WIPHY_ASSIGN; 125214e8a3c4SBeni Lev NETDEV_ASSIGN; 125314e8a3c4SBeni Lev __entry->rssi_thold = rssi_thold; 125414e8a3c4SBeni Lev __entry->rssi_hyst = rssi_hyst; 125514e8a3c4SBeni Lev ), 1256ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT 125714e8a3c4SBeni Lev ", rssi_thold: %d, rssi_hyst: %u ", 125814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, 125914e8a3c4SBeni Lev __entry->rssi_thold, __entry->rssi_hyst) 126014e8a3c4SBeni Lev ); 126114e8a3c4SBeni Lev 126214e8a3c4SBeni Lev TRACE_EVENT(rdev_set_cqm_txe_config, 126314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, u32 rate, 126414e8a3c4SBeni Lev u32 pkts, u32 intvl), 126514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, rate, pkts, intvl), 126614e8a3c4SBeni Lev TP_STRUCT__entry( 126714e8a3c4SBeni Lev WIPHY_ENTRY 126814e8a3c4SBeni Lev NETDEV_ENTRY 126914e8a3c4SBeni Lev __field(u32, rate) 127014e8a3c4SBeni Lev __field(u32, pkts) 127114e8a3c4SBeni Lev __field(u32, intvl) 127214e8a3c4SBeni Lev ), 127314e8a3c4SBeni Lev TP_fast_assign( 127414e8a3c4SBeni Lev WIPHY_ASSIGN; 127514e8a3c4SBeni Lev NETDEV_ASSIGN; 127614e8a3c4SBeni Lev __entry->rate = rate; 127714e8a3c4SBeni Lev __entry->pkts = pkts; 127814e8a3c4SBeni Lev __entry->intvl = intvl; 127914e8a3c4SBeni Lev ), 1280ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", rate: %u, packets: %u, interval: %u", 128114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->rate, __entry->pkts, 128214e8a3c4SBeni Lev __entry->intvl) 128314e8a3c4SBeni Lev ); 128414e8a3c4SBeni Lev 128514e8a3c4SBeni Lev TRACE_EVENT(rdev_disconnect, 128614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 128714e8a3c4SBeni Lev u16 reason_code), 128814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, reason_code), 128914e8a3c4SBeni Lev TP_STRUCT__entry( 129014e8a3c4SBeni Lev WIPHY_ENTRY 129114e8a3c4SBeni Lev NETDEV_ENTRY 129214e8a3c4SBeni Lev __field(u16, reason_code) 129314e8a3c4SBeni Lev ), 129414e8a3c4SBeni Lev TP_fast_assign( 129514e8a3c4SBeni Lev WIPHY_ASSIGN; 129614e8a3c4SBeni Lev NETDEV_ASSIGN; 129714e8a3c4SBeni Lev __entry->reason_code = reason_code; 129814e8a3c4SBeni Lev ), 1299ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", reason code: %u", WIPHY_PR_ARG, 130014e8a3c4SBeni Lev NETDEV_PR_ARG, __entry->reason_code) 130114e8a3c4SBeni Lev ); 130214e8a3c4SBeni Lev 130314e8a3c4SBeni Lev TRACE_EVENT(rdev_join_ibss, 130414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 130514e8a3c4SBeni Lev struct cfg80211_ibss_params *params), 130614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, params), 130714e8a3c4SBeni Lev TP_STRUCT__entry( 130814e8a3c4SBeni Lev WIPHY_ENTRY 130914e8a3c4SBeni Lev NETDEV_ENTRY 131014e8a3c4SBeni Lev MAC_ENTRY(bssid) 131114e8a3c4SBeni Lev __array(char, ssid, IEEE80211_MAX_SSID_LEN + 1) 131214e8a3c4SBeni Lev ), 131314e8a3c4SBeni Lev TP_fast_assign( 131414e8a3c4SBeni Lev WIPHY_ASSIGN; 131514e8a3c4SBeni Lev NETDEV_ASSIGN; 131614e8a3c4SBeni Lev MAC_ASSIGN(bssid, params->bssid); 131714e8a3c4SBeni Lev memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); 131814e8a3c4SBeni Lev memcpy(__entry->ssid, params->ssid, params->ssid_len); 131914e8a3c4SBeni Lev ), 1320ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s", 132114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid) 132214e8a3c4SBeni Lev ); 132314e8a3c4SBeni Lev 13246e0bd6c3SRostislav Lisovy TRACE_EVENT(rdev_join_ocb, 13256e0bd6c3SRostislav Lisovy TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 13266e0bd6c3SRostislav Lisovy const struct ocb_setup *setup), 13276e0bd6c3SRostislav Lisovy TP_ARGS(wiphy, netdev, setup), 13286e0bd6c3SRostislav Lisovy TP_STRUCT__entry( 13296e0bd6c3SRostislav Lisovy WIPHY_ENTRY 13306e0bd6c3SRostislav Lisovy NETDEV_ENTRY 13316e0bd6c3SRostislav Lisovy ), 13326e0bd6c3SRostislav Lisovy TP_fast_assign( 13336e0bd6c3SRostislav Lisovy WIPHY_ASSIGN; 13346e0bd6c3SRostislav Lisovy NETDEV_ASSIGN; 13356e0bd6c3SRostislav Lisovy ), 13366e0bd6c3SRostislav Lisovy TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 13376e0bd6c3SRostislav Lisovy WIPHY_PR_ARG, NETDEV_PR_ARG) 13386e0bd6c3SRostislav Lisovy ); 13396e0bd6c3SRostislav Lisovy 134014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_wiphy_params, 134114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 changed), 134214e8a3c4SBeni Lev TP_ARGS(wiphy, changed), 134314e8a3c4SBeni Lev TP_STRUCT__entry( 134414e8a3c4SBeni Lev WIPHY_ENTRY 134514e8a3c4SBeni Lev __field(u32, changed) 134614e8a3c4SBeni Lev ), 134714e8a3c4SBeni Lev TP_fast_assign( 134814e8a3c4SBeni Lev WIPHY_ASSIGN; 134914e8a3c4SBeni Lev __entry->changed = changed; 135014e8a3c4SBeni Lev ), 135114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", changed: %u", 135214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->changed) 135314e8a3c4SBeni Lev ); 135414e8a3c4SBeni Lev 1355c8442118SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_get_tx_power, 1356c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1357c8442118SJohannes Berg TP_ARGS(wiphy, wdev) 1358c8442118SJohannes Berg ); 1359c8442118SJohannes Berg 136014e8a3c4SBeni Lev TRACE_EVENT(rdev_set_tx_power, 1361c8442118SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1362c8442118SJohannes Berg enum nl80211_tx_power_setting type, int mbm), 1363c8442118SJohannes Berg TP_ARGS(wiphy, wdev, type, mbm), 136414e8a3c4SBeni Lev TP_STRUCT__entry( 136514e8a3c4SBeni Lev WIPHY_ENTRY 1366c8442118SJohannes Berg WDEV_ENTRY 136714e8a3c4SBeni Lev __field(enum nl80211_tx_power_setting, type) 136814e8a3c4SBeni Lev __field(int, mbm) 136914e8a3c4SBeni Lev ), 137014e8a3c4SBeni Lev TP_fast_assign( 137114e8a3c4SBeni Lev WIPHY_ASSIGN; 1372c8442118SJohannes Berg WDEV_ASSIGN; 137314e8a3c4SBeni Lev __entry->type = type; 137414e8a3c4SBeni Lev __entry->mbm = mbm; 137514e8a3c4SBeni Lev ), 1376ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", type: %u, mbm: %d", 1377c8442118SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG,__entry->type, __entry->mbm) 137814e8a3c4SBeni Lev ); 137914e8a3c4SBeni Lev 138014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_int, 138114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int func_ret, int func_fill), 138214e8a3c4SBeni Lev TP_ARGS(wiphy, func_ret, func_fill), 138314e8a3c4SBeni Lev TP_STRUCT__entry( 138414e8a3c4SBeni Lev WIPHY_ENTRY 138514e8a3c4SBeni Lev __field(int, func_ret) 138614e8a3c4SBeni Lev __field(int, func_fill) 138714e8a3c4SBeni Lev ), 138814e8a3c4SBeni Lev TP_fast_assign( 138914e8a3c4SBeni Lev WIPHY_ASSIGN; 139014e8a3c4SBeni Lev __entry->func_ret = func_ret; 139114e8a3c4SBeni Lev __entry->func_fill = func_fill; 139214e8a3c4SBeni Lev ), 139314e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", function returns: %d, function filled: %d", 139414e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->func_ret, __entry->func_fill) 139514e8a3c4SBeni Lev ); 139614e8a3c4SBeni Lev 139714e8a3c4SBeni Lev #ifdef CONFIG_NL80211_TESTMODE 139814e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_cmd, 1399fc73f11fSDavid Spinadel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1400fc73f11fSDavid Spinadel TP_ARGS(wiphy, wdev), 140114e8a3c4SBeni Lev TP_STRUCT__entry( 140214e8a3c4SBeni Lev WIPHY_ENTRY 1403fc73f11fSDavid Spinadel WDEV_ENTRY 140414e8a3c4SBeni Lev ), 140514e8a3c4SBeni Lev TP_fast_assign( 140614e8a3c4SBeni Lev WIPHY_ASSIGN; 1407fc73f11fSDavid Spinadel WDEV_ASSIGN; 140814e8a3c4SBeni Lev ), 1409fc73f11fSDavid Spinadel TP_printk(WIPHY_PR_FMT WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 141014e8a3c4SBeni Lev ); 141114e8a3c4SBeni Lev 141214e8a3c4SBeni Lev TRACE_EVENT(rdev_testmode_dump, 141314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy), 141414e8a3c4SBeni Lev TP_ARGS(wiphy), 141514e8a3c4SBeni Lev TP_STRUCT__entry( 141614e8a3c4SBeni Lev WIPHY_ENTRY 141714e8a3c4SBeni Lev ), 141814e8a3c4SBeni Lev TP_fast_assign( 141914e8a3c4SBeni Lev WIPHY_ASSIGN; 142014e8a3c4SBeni Lev ), 142114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT, WIPHY_PR_ARG) 142214e8a3c4SBeni Lev ); 142314e8a3c4SBeni Lev #endif /* CONFIG_NL80211_TESTMODE */ 142414e8a3c4SBeni Lev 142514e8a3c4SBeni Lev TRACE_EVENT(rdev_set_bitrate_mask, 142614e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 142714e8a3c4SBeni Lev const u8 *peer, const struct cfg80211_bitrate_mask *mask), 142814e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, mask), 142914e8a3c4SBeni Lev TP_STRUCT__entry( 143014e8a3c4SBeni Lev WIPHY_ENTRY 143114e8a3c4SBeni Lev NETDEV_ENTRY 143214e8a3c4SBeni Lev MAC_ENTRY(peer) 143314e8a3c4SBeni Lev ), 143414e8a3c4SBeni Lev TP_fast_assign( 143514e8a3c4SBeni Lev WIPHY_ASSIGN; 143614e8a3c4SBeni Lev NETDEV_ASSIGN; 143714e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 143814e8a3c4SBeni Lev ), 1439ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, 144014e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 144114e8a3c4SBeni Lev ); 144214e8a3c4SBeni Lev 144314e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_frame_register, 144414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 144514e8a3c4SBeni Lev u16 frame_type, bool reg), 144614e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, frame_type, reg), 144714e8a3c4SBeni Lev TP_STRUCT__entry( 144814e8a3c4SBeni Lev WIPHY_ENTRY 144914e8a3c4SBeni Lev WDEV_ENTRY 145014e8a3c4SBeni Lev __field(u16, frame_type) 145114e8a3c4SBeni Lev __field(bool, reg) 145214e8a3c4SBeni Lev ), 145314e8a3c4SBeni Lev TP_fast_assign( 145414e8a3c4SBeni Lev WIPHY_ASSIGN; 145514e8a3c4SBeni Lev WDEV_ASSIGN; 145614e8a3c4SBeni Lev __entry->frame_type = frame_type; 145714e8a3c4SBeni Lev __entry->reg = reg; 145814e8a3c4SBeni Lev ), 1459ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", frame_type: 0x%.2x, reg: %s ", 146014e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->frame_type, 146114e8a3c4SBeni Lev __entry->reg ? "true" : "false") 146214e8a3c4SBeni Lev ); 146314e8a3c4SBeni Lev 146414e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_tx_rx, 146514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u32 tx, u32 rx), 146614e8a3c4SBeni Lev TP_ARGS(wiphy, ret, tx, rx), 146714e8a3c4SBeni Lev TP_STRUCT__entry( 146814e8a3c4SBeni Lev WIPHY_ENTRY 146914e8a3c4SBeni Lev __field(int, ret) 147014e8a3c4SBeni Lev __field(u32, tx) 147114e8a3c4SBeni Lev __field(u32, rx) 147214e8a3c4SBeni Lev ), 147314e8a3c4SBeni Lev TP_fast_assign( 147414e8a3c4SBeni Lev WIPHY_ASSIGN; 147514e8a3c4SBeni Lev __entry->ret = ret; 147614e8a3c4SBeni Lev __entry->tx = tx; 147714e8a3c4SBeni Lev __entry->rx = rx; 147814e8a3c4SBeni Lev ), 147914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, tx: %u, rx: %u", 148014e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->tx, __entry->rx) 148114e8a3c4SBeni Lev ); 148214e8a3c4SBeni Lev 148314e8a3c4SBeni Lev TRACE_EVENT(rdev_return_void_tx_rx, 148414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 tx_max, 148514e8a3c4SBeni Lev u32 rx, u32 rx_max), 148614e8a3c4SBeni Lev TP_ARGS(wiphy, tx, tx_max, rx, rx_max), 148714e8a3c4SBeni Lev TP_STRUCT__entry( 148814e8a3c4SBeni Lev WIPHY_ENTRY 148914e8a3c4SBeni Lev __field(u32, tx) 149014e8a3c4SBeni Lev __field(u32, tx_max) 149114e8a3c4SBeni Lev __field(u32, rx) 149214e8a3c4SBeni Lev __field(u32, rx_max) 149314e8a3c4SBeni Lev ), 149414e8a3c4SBeni Lev TP_fast_assign( 149514e8a3c4SBeni Lev WIPHY_ASSIGN; 149614e8a3c4SBeni Lev __entry->tx = tx; 149714e8a3c4SBeni Lev __entry->tx_max = tx_max; 149814e8a3c4SBeni Lev __entry->rx = rx; 149914e8a3c4SBeni Lev __entry->rx_max = rx_max; 150014e8a3c4SBeni Lev ), 150114e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, tx_max: %u, rx: %u, rx_max: %u ", 150214e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->tx_max, __entry->rx, 150314e8a3c4SBeni Lev __entry->rx_max) 150414e8a3c4SBeni Lev ); 150514e8a3c4SBeni Lev 150614e8a3c4SBeni Lev DECLARE_EVENT_CLASS(tx_rx_evt, 150714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 150814e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx), 150914e8a3c4SBeni Lev TP_STRUCT__entry( 151014e8a3c4SBeni Lev WIPHY_ENTRY 151114e8a3c4SBeni Lev __field(u32, tx) 151214e8a3c4SBeni Lev __field(u32, rx) 151314e8a3c4SBeni Lev ), 151414e8a3c4SBeni Lev TP_fast_assign( 151514e8a3c4SBeni Lev WIPHY_ASSIGN; 151614e8a3c4SBeni Lev __entry->tx = tx; 151714e8a3c4SBeni Lev __entry->rx = rx; 151814e8a3c4SBeni Lev ), 151914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", tx: %u, rx: %u ", 152014e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->tx, __entry->rx) 152114e8a3c4SBeni Lev ); 152214e8a3c4SBeni Lev 152314e8a3c4SBeni Lev DEFINE_EVENT(tx_rx_evt, rdev_set_antenna, 152414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, u32 tx, u32 rx), 152514e8a3c4SBeni Lev TP_ARGS(wiphy, rx, tx) 152614e8a3c4SBeni Lev ); 152714e8a3c4SBeni Lev 152814e8a3c4SBeni Lev TRACE_EVENT(rdev_sched_scan_start, 152914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 153014e8a3c4SBeni Lev struct cfg80211_sched_scan_request *request), 153114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, request), 153214e8a3c4SBeni Lev TP_STRUCT__entry( 153314e8a3c4SBeni Lev WIPHY_ENTRY 153414e8a3c4SBeni Lev NETDEV_ENTRY 153514e8a3c4SBeni Lev ), 153614e8a3c4SBeni Lev TP_fast_assign( 153714e8a3c4SBeni Lev WIPHY_ASSIGN; 153814e8a3c4SBeni Lev NETDEV_ASSIGN; 153914e8a3c4SBeni Lev ), 1540ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, 154114e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG) 154214e8a3c4SBeni Lev ); 154314e8a3c4SBeni Lev 154414e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_mgmt, 154514e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 154614e8a3c4SBeni Lev u8 *peer, u8 action_code, u8 dialog_token, 1547df942e7bSSunil Dutt Undekari u16 status_code, u32 peer_capability, 154831fa97c5SArik Nemtsov bool initiator, const u8 *buf, size_t len), 154914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, action_code, dialog_token, status_code, 155031fa97c5SArik Nemtsov peer_capability, initiator, buf, len), 155114e8a3c4SBeni Lev TP_STRUCT__entry( 155214e8a3c4SBeni Lev WIPHY_ENTRY 155314e8a3c4SBeni Lev NETDEV_ENTRY 155414e8a3c4SBeni Lev MAC_ENTRY(peer) 155514e8a3c4SBeni Lev __field(u8, action_code) 155614e8a3c4SBeni Lev __field(u8, dialog_token) 155714e8a3c4SBeni Lev __field(u16, status_code) 1558df942e7bSSunil Dutt Undekari __field(u32, peer_capability) 155931fa97c5SArik Nemtsov __field(bool, initiator) 156014e8a3c4SBeni Lev __dynamic_array(u8, buf, len) 156114e8a3c4SBeni Lev ), 156214e8a3c4SBeni Lev TP_fast_assign( 156314e8a3c4SBeni Lev WIPHY_ASSIGN; 156414e8a3c4SBeni Lev NETDEV_ASSIGN; 156514e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 156614e8a3c4SBeni Lev __entry->action_code = action_code; 156714e8a3c4SBeni Lev __entry->dialog_token = dialog_token; 156814e8a3c4SBeni Lev __entry->status_code = status_code; 1569df942e7bSSunil Dutt Undekari __entry->peer_capability = peer_capability; 157031fa97c5SArik Nemtsov __entry->initiator = initiator; 157114e8a3c4SBeni Lev memcpy(__get_dynamic_array(buf), buf, len); 157214e8a3c4SBeni Lev ), 1573ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, " 157431fa97c5SArik Nemtsov "dialog_token: %u, status_code: %u, peer_capability: %u " 157531fa97c5SArik Nemtsov "initiator: %s buf: %#.2x ", 157614e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 157714e8a3c4SBeni Lev __entry->action_code, __entry->dialog_token, 1578df942e7bSSunil Dutt Undekari __entry->status_code, __entry->peer_capability, 157931fa97c5SArik Nemtsov BOOL_TO_STR(__entry->initiator), 1580df942e7bSSunil Dutt Undekari ((u8 *)__get_dynamic_array(buf))[0]) 158114e8a3c4SBeni Lev ); 158214e8a3c4SBeni Lev 158314e8a3c4SBeni Lev TRACE_EVENT(rdev_dump_survey, 158414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, int idx), 158514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, idx), 158614e8a3c4SBeni Lev TP_STRUCT__entry( 158714e8a3c4SBeni Lev WIPHY_ENTRY 158814e8a3c4SBeni Lev NETDEV_ENTRY 158914e8a3c4SBeni Lev __field(int, idx) 159014e8a3c4SBeni Lev ), 159114e8a3c4SBeni Lev TP_fast_assign( 159214e8a3c4SBeni Lev WIPHY_ASSIGN; 159314e8a3c4SBeni Lev NETDEV_ASSIGN; 159414e8a3c4SBeni Lev __entry->idx = idx; 159514e8a3c4SBeni Lev ), 1596ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d", 159714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx) 159814e8a3c4SBeni Lev ); 159914e8a3c4SBeni Lev 160014e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_survey_info, 160114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, struct survey_info *info), 160214e8a3c4SBeni Lev TP_ARGS(wiphy, ret, info), 160314e8a3c4SBeni Lev TP_STRUCT__entry( 160414e8a3c4SBeni Lev WIPHY_ENTRY 160514e8a3c4SBeni Lev CHAN_ENTRY 160614e8a3c4SBeni Lev __field(int, ret) 16074ed20bebSJohannes Berg __field(u64, time) 16084ed20bebSJohannes Berg __field(u64, time_busy) 16094ed20bebSJohannes Berg __field(u64, time_ext_busy) 16104ed20bebSJohannes Berg __field(u64, time_rx) 16114ed20bebSJohannes Berg __field(u64, time_tx) 1612052536abSJohannes Berg __field(u64, time_scan) 161314e8a3c4SBeni Lev __field(u32, filled) 161414e8a3c4SBeni Lev __field(s8, noise) 161514e8a3c4SBeni Lev ), 161614e8a3c4SBeni Lev TP_fast_assign( 161714e8a3c4SBeni Lev WIPHY_ASSIGN; 161814e8a3c4SBeni Lev CHAN_ASSIGN(info->channel); 161914e8a3c4SBeni Lev __entry->ret = ret; 16204ed20bebSJohannes Berg __entry->time = info->time; 16214ed20bebSJohannes Berg __entry->time_busy = info->time_busy; 16224ed20bebSJohannes Berg __entry->time_ext_busy = info->time_ext_busy; 16234ed20bebSJohannes Berg __entry->time_rx = info->time_rx; 16244ed20bebSJohannes Berg __entry->time_tx = info->time_tx; 1625052536abSJohannes Berg __entry->time_scan = info->time_scan; 162614e8a3c4SBeni Lev __entry->filled = info->filled; 162714e8a3c4SBeni Lev __entry->noise = info->noise; 162814e8a3c4SBeni Lev ), 162914e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned: %d, " CHAN_PR_FMT 163014e8a3c4SBeni Lev ", channel time: %llu, channel time busy: %llu, " 163114e8a3c4SBeni Lev "channel time extension busy: %llu, channel time rx: %llu, " 1632052536abSJohannes Berg "channel time tx: %llu, scan time: %llu, filled: %u, noise: %d", 163314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, CHAN_PR_ARG, 16344ed20bebSJohannes Berg __entry->time, __entry->time_busy, 16354ed20bebSJohannes Berg __entry->time_ext_busy, __entry->time_rx, 1636052536abSJohannes Berg __entry->time_tx, __entry->time_scan, 1637052536abSJohannes Berg __entry->filled, __entry->noise) 163814e8a3c4SBeni Lev ); 163914e8a3c4SBeni Lev 164014e8a3c4SBeni Lev TRACE_EVENT(rdev_tdls_oper, 164114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 164214e8a3c4SBeni Lev u8 *peer, enum nl80211_tdls_operation oper), 164314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer, oper), 164414e8a3c4SBeni Lev TP_STRUCT__entry( 164514e8a3c4SBeni Lev WIPHY_ENTRY 164614e8a3c4SBeni Lev NETDEV_ENTRY 164714e8a3c4SBeni Lev MAC_ENTRY(peer) 164814e8a3c4SBeni Lev __field(enum nl80211_tdls_operation, oper) 164914e8a3c4SBeni Lev ), 165014e8a3c4SBeni Lev TP_fast_assign( 165114e8a3c4SBeni Lev WIPHY_ASSIGN; 165214e8a3c4SBeni Lev NETDEV_ASSIGN; 165314e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 165414e8a3c4SBeni Lev __entry->oper = oper; 165514e8a3c4SBeni Lev ), 1656ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d", 165714e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper) 165814e8a3c4SBeni Lev ); 165914e8a3c4SBeni Lev 166014e8a3c4SBeni Lev DECLARE_EVENT_CLASS(rdev_pmksa, 166114e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 166214e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 166314e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa), 166414e8a3c4SBeni Lev TP_STRUCT__entry( 166514e8a3c4SBeni Lev WIPHY_ENTRY 166614e8a3c4SBeni Lev NETDEV_ENTRY 166714e8a3c4SBeni Lev MAC_ENTRY(bssid) 166814e8a3c4SBeni Lev ), 166914e8a3c4SBeni Lev TP_fast_assign( 167014e8a3c4SBeni Lev WIPHY_ASSIGN; 167114e8a3c4SBeni Lev NETDEV_ASSIGN; 167214e8a3c4SBeni Lev MAC_ASSIGN(bssid, pmksa->bssid); 167314e8a3c4SBeni Lev ), 1674ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT, 167514e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid)) 167614e8a3c4SBeni Lev ); 167714e8a3c4SBeni Lev 167814e8a3c4SBeni Lev TRACE_EVENT(rdev_probe_client, 167914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 168014e8a3c4SBeni Lev const u8 *peer), 168114e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, peer), 168214e8a3c4SBeni Lev TP_STRUCT__entry( 168314e8a3c4SBeni Lev WIPHY_ENTRY 168414e8a3c4SBeni Lev NETDEV_ENTRY 168514e8a3c4SBeni Lev MAC_ENTRY(peer) 168614e8a3c4SBeni Lev ), 168714e8a3c4SBeni Lev TP_fast_assign( 168814e8a3c4SBeni Lev WIPHY_ASSIGN; 168914e8a3c4SBeni Lev NETDEV_ASSIGN; 169014e8a3c4SBeni Lev MAC_ASSIGN(peer, peer); 169114e8a3c4SBeni Lev ), 1692ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 169314e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) 169414e8a3c4SBeni Lev ); 169514e8a3c4SBeni Lev 169614e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa, 169714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 169814e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 169914e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 170014e8a3c4SBeni Lev ); 170114e8a3c4SBeni Lev 170214e8a3c4SBeni Lev DEFINE_EVENT(rdev_pmksa, rdev_del_pmksa, 170314e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 170414e8a3c4SBeni Lev struct cfg80211_pmksa *pmksa), 170514e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, pmksa) 170614e8a3c4SBeni Lev ); 170714e8a3c4SBeni Lev 170814e8a3c4SBeni Lev TRACE_EVENT(rdev_remain_on_channel, 170914e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 171014e8a3c4SBeni Lev struct ieee80211_channel *chan, 171142d97a59SJohannes Berg unsigned int duration), 171242d97a59SJohannes Berg TP_ARGS(wiphy, wdev, chan, duration), 171314e8a3c4SBeni Lev TP_STRUCT__entry( 171414e8a3c4SBeni Lev WIPHY_ENTRY 171514e8a3c4SBeni Lev WDEV_ENTRY 171614e8a3c4SBeni Lev CHAN_ENTRY 171714e8a3c4SBeni Lev __field(unsigned int, duration) 171814e8a3c4SBeni Lev ), 171914e8a3c4SBeni Lev TP_fast_assign( 172014e8a3c4SBeni Lev WIPHY_ASSIGN; 172114e8a3c4SBeni Lev WDEV_ASSIGN; 172214e8a3c4SBeni Lev CHAN_ASSIGN(chan); 172314e8a3c4SBeni Lev __entry->duration = duration; 172414e8a3c4SBeni Lev ), 1725ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", duration: %u", 172642d97a59SJohannes Berg WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, __entry->duration) 172714e8a3c4SBeni Lev ); 172814e8a3c4SBeni Lev 172914e8a3c4SBeni Lev TRACE_EVENT(rdev_return_int_cookie, 173014e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, int ret, u64 cookie), 173114e8a3c4SBeni Lev TP_ARGS(wiphy, ret, cookie), 173214e8a3c4SBeni Lev TP_STRUCT__entry( 173314e8a3c4SBeni Lev WIPHY_ENTRY 173414e8a3c4SBeni Lev __field(int, ret) 173514e8a3c4SBeni Lev __field(u64, cookie) 173614e8a3c4SBeni Lev ), 173714e8a3c4SBeni Lev TP_fast_assign( 173814e8a3c4SBeni Lev WIPHY_ASSIGN; 173914e8a3c4SBeni Lev __entry->ret = ret; 174014e8a3c4SBeni Lev __entry->cookie = cookie; 174114e8a3c4SBeni Lev ), 174214e8a3c4SBeni Lev TP_printk(WIPHY_PR_FMT ", returned %d, cookie: %llu", 174314e8a3c4SBeni Lev WIPHY_PR_ARG, __entry->ret, __entry->cookie) 174414e8a3c4SBeni Lev ); 174514e8a3c4SBeni Lev 174614e8a3c4SBeni Lev TRACE_EVENT(rdev_cancel_remain_on_channel, 174714e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie), 174814e8a3c4SBeni Lev TP_ARGS(wiphy, wdev, cookie), 174914e8a3c4SBeni Lev TP_STRUCT__entry( 175014e8a3c4SBeni Lev WIPHY_ENTRY 175114e8a3c4SBeni Lev WDEV_ENTRY 175214e8a3c4SBeni Lev __field(u64, cookie) 175314e8a3c4SBeni Lev ), 175414e8a3c4SBeni Lev TP_fast_assign( 175514e8a3c4SBeni Lev WIPHY_ASSIGN; 175614e8a3c4SBeni Lev WDEV_ASSIGN; 175714e8a3c4SBeni Lev __entry->cookie = cookie; 175814e8a3c4SBeni Lev ), 1759ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie: %llu", 176014e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, __entry->cookie) 176114e8a3c4SBeni Lev ); 176214e8a3c4SBeni Lev 176314e8a3c4SBeni Lev TRACE_EVENT(rdev_mgmt_tx, 176414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 1765b176e629SAndrei Otcheretianski struct cfg80211_mgmt_tx_params *params), 1766b176e629SAndrei Otcheretianski TP_ARGS(wiphy, wdev, params), 176714e8a3c4SBeni Lev TP_STRUCT__entry( 176814e8a3c4SBeni Lev WIPHY_ENTRY 176914e8a3c4SBeni Lev WDEV_ENTRY 177014e8a3c4SBeni Lev CHAN_ENTRY 177114e8a3c4SBeni Lev __field(bool, offchan) 177214e8a3c4SBeni Lev __field(unsigned int, wait) 177314e8a3c4SBeni Lev __field(bool, no_cck) 177414e8a3c4SBeni Lev __field(bool, dont_wait_for_ack) 177514e8a3c4SBeni Lev ), 177614e8a3c4SBeni Lev TP_fast_assign( 177714e8a3c4SBeni Lev WIPHY_ASSIGN; 177814e8a3c4SBeni Lev WDEV_ASSIGN; 1779b176e629SAndrei Otcheretianski CHAN_ASSIGN(params->chan); 1780b176e629SAndrei Otcheretianski __entry->offchan = params->offchan; 1781b176e629SAndrei Otcheretianski __entry->wait = params->wait; 1782b176e629SAndrei Otcheretianski __entry->no_cck = params->no_cck; 1783b176e629SAndrei Otcheretianski __entry->dont_wait_for_ack = params->dont_wait_for_ack; 178414e8a3c4SBeni Lev ), 1785ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", " CHAN_PR_FMT ", offchan: %s," 178642d97a59SJohannes Berg " wait: %u, no cck: %s, dont wait for ack: %s", 178714e8a3c4SBeni Lev WIPHY_PR_ARG, WDEV_PR_ARG, CHAN_PR_ARG, 178842d97a59SJohannes Berg BOOL_TO_STR(__entry->offchan), __entry->wait, 178914e8a3c4SBeni Lev BOOL_TO_STR(__entry->no_cck), 179014e8a3c4SBeni Lev BOOL_TO_STR(__entry->dont_wait_for_ack)) 179114e8a3c4SBeni Lev ); 179214e8a3c4SBeni Lev 179314e8a3c4SBeni Lev TRACE_EVENT(rdev_set_noack_map, 179414e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 179514e8a3c4SBeni Lev u16 noack_map), 179614e8a3c4SBeni Lev TP_ARGS(wiphy, netdev, noack_map), 179714e8a3c4SBeni Lev TP_STRUCT__entry( 179814e8a3c4SBeni Lev WIPHY_ENTRY 179914e8a3c4SBeni Lev NETDEV_ENTRY 180014e8a3c4SBeni Lev __field(u16, noack_map) 180114e8a3c4SBeni Lev ), 180214e8a3c4SBeni Lev TP_fast_assign( 180314e8a3c4SBeni Lev WIPHY_ASSIGN; 180414e8a3c4SBeni Lev NETDEV_ASSIGN; 180514e8a3c4SBeni Lev __entry->noack_map = noack_map; 180614e8a3c4SBeni Lev ), 1807ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", noack_map: %u", 180814e8a3c4SBeni Lev WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) 180914e8a3c4SBeni Lev ); 181014e8a3c4SBeni Lev 181114e8a3c4SBeni Lev DEFINE_EVENT(wiphy_wdev_evt, rdev_get_channel, 181214e8a3c4SBeni Lev TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 181314e8a3c4SBeni Lev TP_ARGS(wiphy, wdev) 181414e8a3c4SBeni Lev ); 181514e8a3c4SBeni Lev 1816683b6d3bSJohannes Berg TRACE_EVENT(rdev_return_chandef, 1817683b6d3bSJohannes Berg TP_PROTO(struct wiphy *wiphy, int ret, 1818683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 1819683b6d3bSJohannes Berg TP_ARGS(wiphy, ret, chandef), 182014e8a3c4SBeni Lev TP_STRUCT__entry( 182114e8a3c4SBeni Lev WIPHY_ENTRY 1822683b6d3bSJohannes Berg __field(int, ret) 1823683b6d3bSJohannes Berg CHAN_DEF_ENTRY 182414e8a3c4SBeni Lev ), 182514e8a3c4SBeni Lev TP_fast_assign( 182614e8a3c4SBeni Lev WIPHY_ASSIGN; 1827683b6d3bSJohannes Berg if (ret == 0) 1828683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 1829683b6d3bSJohannes Berg else 1830683b6d3bSJohannes Berg CHAN_DEF_ASSIGN((struct cfg80211_chan_def *)NULL); 1831683b6d3bSJohannes Berg __entry->ret = ret; 183214e8a3c4SBeni Lev ), 1833ec816087SJohannes Berg TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", ret: %d", 1834683b6d3bSJohannes Berg WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->ret) 183514e8a3c4SBeni Lev ); 183614e8a3c4SBeni Lev 1837eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_start_p2p_device, 1838eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1839eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 1840eeb126e9SJohannes Berg ); 1841eeb126e9SJohannes Berg 1842eeb126e9SJohannes Berg DEFINE_EVENT(wiphy_wdev_evt, rdev_stop_p2p_device, 1843eeb126e9SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 1844eeb126e9SJohannes Berg TP_ARGS(wiphy, wdev) 1845eeb126e9SJohannes Berg ); 1846eeb126e9SJohannes Berg 184777765eafSVasanthakumar Thiagarajan TRACE_EVENT(rdev_set_mac_acl, 184877765eafSVasanthakumar Thiagarajan TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 184977765eafSVasanthakumar Thiagarajan struct cfg80211_acl_data *params), 185077765eafSVasanthakumar Thiagarajan TP_ARGS(wiphy, netdev, params), 185177765eafSVasanthakumar Thiagarajan TP_STRUCT__entry( 185277765eafSVasanthakumar Thiagarajan WIPHY_ENTRY 185377765eafSVasanthakumar Thiagarajan NETDEV_ENTRY 185477765eafSVasanthakumar Thiagarajan __field(u32, acl_policy) 185577765eafSVasanthakumar Thiagarajan ), 185677765eafSVasanthakumar Thiagarajan TP_fast_assign( 185777765eafSVasanthakumar Thiagarajan WIPHY_ASSIGN; 1858021fcdc1SVladimir Kondratiev NETDEV_ASSIGN; 185977765eafSVasanthakumar Thiagarajan __entry->acl_policy = params->acl_policy; 186077765eafSVasanthakumar Thiagarajan ), 186177765eafSVasanthakumar Thiagarajan TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", acl policy: %d", 186277765eafSVasanthakumar Thiagarajan WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->acl_policy) 186377765eafSVasanthakumar Thiagarajan ); 186477765eafSVasanthakumar Thiagarajan 1865355199e0SJouni Malinen TRACE_EVENT(rdev_update_ft_ies, 1866355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1867355199e0SJouni Malinen struct cfg80211_update_ft_ies_params *ftie), 1868355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ftie), 1869355199e0SJouni Malinen TP_STRUCT__entry( 1870355199e0SJouni Malinen WIPHY_ENTRY 1871355199e0SJouni Malinen NETDEV_ENTRY 1872355199e0SJouni Malinen __field(u16, md) 1873355199e0SJouni Malinen __dynamic_array(u8, ie, ftie->ie_len) 1874355199e0SJouni Malinen ), 1875355199e0SJouni Malinen TP_fast_assign( 1876355199e0SJouni Malinen WIPHY_ASSIGN; 1877355199e0SJouni Malinen NETDEV_ASSIGN; 1878355199e0SJouni Malinen __entry->md = ftie->md; 1879355199e0SJouni Malinen memcpy(__get_dynamic_array(ie), ftie->ie, ftie->ie_len); 1880355199e0SJouni Malinen ), 1881355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", md: 0x%x", 1882355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->md) 1883355199e0SJouni Malinen ); 1884355199e0SJouni Malinen 18855de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_start, 18865de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 18875de17984SArend van Spriel enum nl80211_crit_proto_id protocol, u16 duration), 18885de17984SArend van Spriel TP_ARGS(wiphy, wdev, protocol, duration), 18895de17984SArend van Spriel TP_STRUCT__entry( 18905de17984SArend van Spriel WIPHY_ENTRY 18915de17984SArend van Spriel WDEV_ENTRY 18925de17984SArend van Spriel __field(u16, proto) 18935de17984SArend van Spriel __field(u16, duration) 18945de17984SArend van Spriel ), 18955de17984SArend van Spriel TP_fast_assign( 18965de17984SArend van Spriel WIPHY_ASSIGN; 18975de17984SArend van Spriel WDEV_ASSIGN; 18985de17984SArend van Spriel __entry->proto = protocol; 18995de17984SArend van Spriel __entry->duration = duration; 19005de17984SArend van Spriel ), 19015de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", proto=%x, duration=%u", 19025de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG, __entry->proto, __entry->duration) 19035de17984SArend van Spriel ); 19045de17984SArend van Spriel 19055de17984SArend van Spriel TRACE_EVENT(rdev_crit_proto_stop, 19065de17984SArend van Spriel TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 19075de17984SArend van Spriel TP_ARGS(wiphy, wdev), 19085de17984SArend van Spriel TP_STRUCT__entry( 19095de17984SArend van Spriel WIPHY_ENTRY 19105de17984SArend van Spriel WDEV_ENTRY 19115de17984SArend van Spriel ), 19125de17984SArend van Spriel TP_fast_assign( 19135de17984SArend van Spriel WIPHY_ASSIGN; 19145de17984SArend van Spriel WDEV_ASSIGN; 19155de17984SArend van Spriel ), 19165de17984SArend van Spriel TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 19175de17984SArend van Spriel WIPHY_PR_ARG, WDEV_PR_ARG) 19185de17984SArend van Spriel ); 19195de17984SArend van Spriel 192016ef1fe2SSimon Wunderlich TRACE_EVENT(rdev_channel_switch, 192116ef1fe2SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 192216ef1fe2SSimon Wunderlich struct cfg80211_csa_settings *params), 192316ef1fe2SSimon Wunderlich TP_ARGS(wiphy, netdev, params), 192416ef1fe2SSimon Wunderlich TP_STRUCT__entry( 192516ef1fe2SSimon Wunderlich WIPHY_ENTRY 192616ef1fe2SSimon Wunderlich NETDEV_ENTRY 192716ef1fe2SSimon Wunderlich CHAN_DEF_ENTRY 192816ef1fe2SSimon Wunderlich __field(bool, radar_required) 192916ef1fe2SSimon Wunderlich __field(bool, block_tx) 193016ef1fe2SSimon Wunderlich __field(u8, count) 19319a774c78SAndrei Otcheretianski __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) 19329a774c78SAndrei Otcheretianski __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) 193316ef1fe2SSimon Wunderlich ), 193416ef1fe2SSimon Wunderlich TP_fast_assign( 193516ef1fe2SSimon Wunderlich WIPHY_ASSIGN; 193616ef1fe2SSimon Wunderlich NETDEV_ASSIGN; 193716ef1fe2SSimon Wunderlich CHAN_DEF_ASSIGN(¶ms->chandef); 193816ef1fe2SSimon Wunderlich __entry->radar_required = params->radar_required; 193916ef1fe2SSimon Wunderlich __entry->block_tx = params->block_tx; 194016ef1fe2SSimon Wunderlich __entry->count = params->count; 19419a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(bcn_ofs), 19429a774c78SAndrei Otcheretianski params->counter_offsets_beacon, 19439a774c78SAndrei Otcheretianski params->n_counter_offsets_beacon * sizeof(u16)); 19449a774c78SAndrei Otcheretianski 19459a774c78SAndrei Otcheretianski /* probe response offsets are optional */ 19469a774c78SAndrei Otcheretianski if (params->n_counter_offsets_presp) 19479a774c78SAndrei Otcheretianski memcpy(__get_dynamic_array(pres_ofs), 19489a774c78SAndrei Otcheretianski params->counter_offsets_presp, 19499a774c78SAndrei Otcheretianski params->n_counter_offsets_presp * sizeof(u16)); 195016ef1fe2SSimon Wunderlich ), 195116ef1fe2SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT 19529a774c78SAndrei Otcheretianski ", block_tx: %d, count: %u, radar_required: %d", 195316ef1fe2SSimon Wunderlich WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, 19549a774c78SAndrei Otcheretianski __entry->block_tx, __entry->count, __entry->radar_required) 195516ef1fe2SSimon Wunderlich ); 195616ef1fe2SSimon Wunderlich 1957fa9ffc74SKyeyoon Park TRACE_EVENT(rdev_set_qos_map, 1958fa9ffc74SKyeyoon Park TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1959fa9ffc74SKyeyoon Park struct cfg80211_qos_map *qos_map), 1960fa9ffc74SKyeyoon Park TP_ARGS(wiphy, netdev, qos_map), 1961fa9ffc74SKyeyoon Park TP_STRUCT__entry( 1962fa9ffc74SKyeyoon Park WIPHY_ENTRY 1963fa9ffc74SKyeyoon Park NETDEV_ENTRY 1964fa9ffc74SKyeyoon Park QOS_MAP_ENTRY 1965fa9ffc74SKyeyoon Park ), 1966fa9ffc74SKyeyoon Park TP_fast_assign( 1967fa9ffc74SKyeyoon Park WIPHY_ASSIGN; 1968fa9ffc74SKyeyoon Park NETDEV_ASSIGN; 1969fa9ffc74SKyeyoon Park QOS_MAP_ASSIGN(qos_map); 1970fa9ffc74SKyeyoon Park ), 1971fa9ffc74SKyeyoon Park TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", num_des: %u", 1972fa9ffc74SKyeyoon Park WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->num_des) 1973fa9ffc74SKyeyoon Park ); 1974fa9ffc74SKyeyoon Park 1975e16821bcSJouni Malinen TRACE_EVENT(rdev_set_ap_chanwidth, 1976e16821bcSJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1977e16821bcSJouni Malinen struct cfg80211_chan_def *chandef), 1978e16821bcSJouni Malinen TP_ARGS(wiphy, netdev, chandef), 1979e16821bcSJouni Malinen TP_STRUCT__entry( 1980e16821bcSJouni Malinen WIPHY_ENTRY 1981e16821bcSJouni Malinen NETDEV_ENTRY 1982e16821bcSJouni Malinen CHAN_DEF_ENTRY 1983e16821bcSJouni Malinen ), 1984e16821bcSJouni Malinen TP_fast_assign( 1985e16821bcSJouni Malinen WIPHY_ASSIGN; 1986e16821bcSJouni Malinen NETDEV_ASSIGN; 1987e16821bcSJouni Malinen CHAN_DEF_ASSIGN(chandef); 1988e16821bcSJouni Malinen ), 1989e16821bcSJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 1990e16821bcSJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 1991e16821bcSJouni Malinen ); 1992e16821bcSJouni Malinen 1993960d01acSJohannes Berg TRACE_EVENT(rdev_add_tx_ts, 1994960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 1995960d01acSJohannes Berg u8 tsid, const u8 *peer, u8 user_prio, u16 admitted_time), 1996960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer, user_prio, admitted_time), 1997960d01acSJohannes Berg TP_STRUCT__entry( 1998960d01acSJohannes Berg WIPHY_ENTRY 1999960d01acSJohannes Berg NETDEV_ENTRY 2000960d01acSJohannes Berg MAC_ENTRY(peer) 2001960d01acSJohannes Berg __field(u8, tsid) 2002960d01acSJohannes Berg __field(u8, user_prio) 2003960d01acSJohannes Berg __field(u16, admitted_time) 2004960d01acSJohannes Berg ), 2005960d01acSJohannes Berg TP_fast_assign( 2006960d01acSJohannes Berg WIPHY_ASSIGN; 2007960d01acSJohannes Berg NETDEV_ASSIGN; 2008960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2009960d01acSJohannes Berg __entry->tsid = tsid; 2010960d01acSJohannes Berg __entry->user_prio = user_prio; 2011960d01acSJohannes Berg __entry->admitted_time = admitted_time; 2012960d01acSJohannes Berg ), 2013960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d", 2014960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), 2015960d01acSJohannes Berg __entry->tsid, __entry->user_prio, __entry->admitted_time) 2016960d01acSJohannes Berg ); 2017960d01acSJohannes Berg 2018960d01acSJohannes Berg TRACE_EVENT(rdev_del_tx_ts, 2019960d01acSJohannes Berg TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2020960d01acSJohannes Berg u8 tsid, const u8 *peer), 2021960d01acSJohannes Berg TP_ARGS(wiphy, netdev, tsid, peer), 2022960d01acSJohannes Berg TP_STRUCT__entry( 2023960d01acSJohannes Berg WIPHY_ENTRY 2024960d01acSJohannes Berg NETDEV_ENTRY 2025960d01acSJohannes Berg MAC_ENTRY(peer) 2026960d01acSJohannes Berg __field(u8, tsid) 2027960d01acSJohannes Berg ), 2028960d01acSJohannes Berg TP_fast_assign( 2029960d01acSJohannes Berg WIPHY_ASSIGN; 2030960d01acSJohannes Berg NETDEV_ASSIGN; 2031960d01acSJohannes Berg MAC_ASSIGN(peer, peer); 2032960d01acSJohannes Berg __entry->tsid = tsid; 2033960d01acSJohannes Berg ), 2034960d01acSJohannes Berg TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d", 2035960d01acSJohannes Berg WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid) 2036960d01acSJohannes Berg ); 2037960d01acSJohannes Berg 20381057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_channel_switch, 20391057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20401057d35eSArik Nemtsov const u8 *addr, u8 oper_class, 20411057d35eSArik Nemtsov struct cfg80211_chan_def *chandef), 20421057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr, oper_class, chandef), 20431057d35eSArik Nemtsov TP_STRUCT__entry( 20441057d35eSArik Nemtsov WIPHY_ENTRY 20451057d35eSArik Nemtsov NETDEV_ENTRY 20461057d35eSArik Nemtsov MAC_ENTRY(addr) 20471057d35eSArik Nemtsov __field(u8, oper_class) 20481057d35eSArik Nemtsov CHAN_DEF_ENTRY 20491057d35eSArik Nemtsov ), 20501057d35eSArik Nemtsov TP_fast_assign( 20511057d35eSArik Nemtsov WIPHY_ASSIGN; 20521057d35eSArik Nemtsov NETDEV_ASSIGN; 20531057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 20541057d35eSArik Nemtsov CHAN_DEF_ASSIGN(chandef); 20551057d35eSArik Nemtsov ), 20561057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT 20571057d35eSArik Nemtsov " oper class %d, " CHAN_DEF_PR_FMT, 20581057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr), 20591057d35eSArik Nemtsov __entry->oper_class, CHAN_DEF_PR_ARG) 20601057d35eSArik Nemtsov ); 20611057d35eSArik Nemtsov 20621057d35eSArik Nemtsov TRACE_EVENT(rdev_tdls_cancel_channel_switch, 20631057d35eSArik Nemtsov TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 20641057d35eSArik Nemtsov const u8 *addr), 20651057d35eSArik Nemtsov TP_ARGS(wiphy, netdev, addr), 20661057d35eSArik Nemtsov TP_STRUCT__entry( 20671057d35eSArik Nemtsov WIPHY_ENTRY 20681057d35eSArik Nemtsov NETDEV_ENTRY 20691057d35eSArik Nemtsov MAC_ENTRY(addr) 20701057d35eSArik Nemtsov ), 20711057d35eSArik Nemtsov TP_fast_assign( 20721057d35eSArik Nemtsov WIPHY_ASSIGN; 20731057d35eSArik Nemtsov NETDEV_ASSIGN; 20741057d35eSArik Nemtsov MAC_ASSIGN(addr, addr); 20751057d35eSArik Nemtsov ), 20761057d35eSArik Nemtsov TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT, 20771057d35eSArik Nemtsov WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 20781057d35eSArik Nemtsov ); 20791057d35eSArik Nemtsov 20804ee3e063SBeni Lev /************************************************************* 20814ee3e063SBeni Lev * cfg80211 exported functions traces * 20824ee3e063SBeni Lev *************************************************************/ 20834ee3e063SBeni Lev 20844ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_bool, 20854ee3e063SBeni Lev TP_PROTO(bool ret), 20864ee3e063SBeni Lev TP_ARGS(ret), 20874ee3e063SBeni Lev TP_STRUCT__entry( 20884ee3e063SBeni Lev __field(bool, ret) 20894ee3e063SBeni Lev ), 20904ee3e063SBeni Lev TP_fast_assign( 20914ee3e063SBeni Lev __entry->ret = ret; 20924ee3e063SBeni Lev ), 20934ee3e063SBeni Lev TP_printk("returned %s", BOOL_TO_STR(__entry->ret)) 20944ee3e063SBeni Lev ); 20954ee3e063SBeni Lev 20964ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_netdev_mac_evt, 20974ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 20984ee3e063SBeni Lev TP_ARGS(netdev, macaddr), 20994ee3e063SBeni Lev TP_STRUCT__entry( 21004ee3e063SBeni Lev NETDEV_ENTRY 21014ee3e063SBeni Lev MAC_ENTRY(macaddr) 21024ee3e063SBeni Lev ), 21034ee3e063SBeni Lev TP_fast_assign( 21044ee3e063SBeni Lev NETDEV_ASSIGN; 21054ee3e063SBeni Lev MAC_ASSIGN(macaddr, macaddr); 21064ee3e063SBeni Lev ), 21074ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 21084ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(macaddr)) 21094ee3e063SBeni Lev ); 21104ee3e063SBeni Lev 21114ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate, 21124ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 21134ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 21144ee3e063SBeni Lev ); 21154ee3e063SBeni Lev 21164ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_evt_only, 21174ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 21184ee3e063SBeni Lev TP_ARGS(netdev), 21194ee3e063SBeni Lev TP_STRUCT__entry( 21204ee3e063SBeni Lev NETDEV_ENTRY 21214ee3e063SBeni Lev ), 21224ee3e063SBeni Lev TP_fast_assign( 21234ee3e063SBeni Lev NETDEV_ASSIGN; 21244ee3e063SBeni Lev ), 21254ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT , NETDEV_PR_ARG) 21264ee3e063SBeni Lev ); 21274ee3e063SBeni Lev 21284ee3e063SBeni Lev DEFINE_EVENT(netdev_evt_only, cfg80211_send_rx_auth, 21294ee3e063SBeni Lev TP_PROTO(struct net_device *netdev), 21304ee3e063SBeni Lev TP_ARGS(netdev) 21314ee3e063SBeni Lev ); 21324ee3e063SBeni Lev 21334ee3e063SBeni Lev TRACE_EVENT(cfg80211_send_rx_assoc, 21344ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, struct cfg80211_bss *bss), 21354ee3e063SBeni Lev TP_ARGS(netdev, bss), 21364ee3e063SBeni Lev TP_STRUCT__entry( 21374ee3e063SBeni Lev NETDEV_ENTRY 21384ee3e063SBeni Lev MAC_ENTRY(bssid) 21394ee3e063SBeni Lev CHAN_ENTRY 21404ee3e063SBeni Lev ), 21414ee3e063SBeni Lev TP_fast_assign( 21424ee3e063SBeni Lev NETDEV_ASSIGN; 21434ee3e063SBeni Lev MAC_ASSIGN(bssid, bss->bssid); 21444ee3e063SBeni Lev CHAN_ASSIGN(bss->channel); 21454ee3e063SBeni Lev ), 2146ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", " CHAN_PR_FMT, 21474ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 21484ee3e063SBeni Lev ); 21494ee3e063SBeni Lev 21506ff57cf8SJohannes Berg DECLARE_EVENT_CLASS(netdev_frame_event, 21516ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 21526ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 21536ff57cf8SJohannes Berg TP_STRUCT__entry( 21546ff57cf8SJohannes Berg NETDEV_ENTRY 21556ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 21566ff57cf8SJohannes Berg ), 21576ff57cf8SJohannes Berg TP_fast_assign( 21586ff57cf8SJohannes Berg NETDEV_ASSIGN; 21596ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 21606ff57cf8SJohannes Berg ), 21616ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 21626ff57cf8SJohannes Berg NETDEV_PR_ARG, 21636ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 21644ee3e063SBeni Lev ); 21654ee3e063SBeni Lev 21666ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_unprot_mlme_mgmt, 21676ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 21686ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len) 21694ee3e063SBeni Lev ); 21704ee3e063SBeni Lev 21716ff57cf8SJohannes Berg DEFINE_EVENT(netdev_frame_event, cfg80211_rx_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 TRACE_EVENT(cfg80211_tx_mlme_mgmt, 21776ff57cf8SJohannes Berg TP_PROTO(struct net_device *netdev, const u8 *buf, int len), 21786ff57cf8SJohannes Berg TP_ARGS(netdev, buf, len), 21796ff57cf8SJohannes Berg TP_STRUCT__entry( 21806ff57cf8SJohannes Berg NETDEV_ENTRY 21816ff57cf8SJohannes Berg __dynamic_array(u8, frame, len) 21826ff57cf8SJohannes Berg ), 21836ff57cf8SJohannes Berg TP_fast_assign( 21846ff57cf8SJohannes Berg NETDEV_ASSIGN; 21856ff57cf8SJohannes Berg memcpy(__get_dynamic_array(frame), buf, len); 21866ff57cf8SJohannes Berg ), 21876ff57cf8SJohannes Berg TP_printk(NETDEV_PR_FMT ", ftype:0x%.2x", 21886ff57cf8SJohannes Berg NETDEV_PR_ARG, 21896ff57cf8SJohannes Berg le16_to_cpup((__le16 *)__get_dynamic_array(frame))) 21904ee3e063SBeni Lev ); 21914ee3e063SBeni Lev 21924ee3e063SBeni Lev DECLARE_EVENT_CLASS(netdev_mac_evt, 21934ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 21944ee3e063SBeni Lev TP_ARGS(netdev, mac), 21954ee3e063SBeni Lev TP_STRUCT__entry( 21964ee3e063SBeni Lev NETDEV_ENTRY 21974ee3e063SBeni Lev MAC_ENTRY(mac) 21984ee3e063SBeni Lev ), 21994ee3e063SBeni Lev TP_fast_assign( 22004ee3e063SBeni Lev NETDEV_ASSIGN; 22014ee3e063SBeni Lev MAC_ASSIGN(mac, mac) 22024ee3e063SBeni Lev ), 22034ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT, 22044ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac)) 22054ee3e063SBeni Lev ); 22064ee3e063SBeni Lev 22074ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout, 22084ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 22094ee3e063SBeni Lev TP_ARGS(netdev, mac) 22104ee3e063SBeni Lev ); 22114ee3e063SBeni Lev 22124ee3e063SBeni Lev DEFINE_EVENT(netdev_mac_evt, cfg80211_send_assoc_timeout, 22134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac), 22144ee3e063SBeni Lev TP_ARGS(netdev, mac) 22154ee3e063SBeni Lev ); 22164ee3e063SBeni Lev 22174ee3e063SBeni Lev TRACE_EVENT(cfg80211_michael_mic_failure, 22184ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, 22194ee3e063SBeni Lev enum nl80211_key_type key_type, int key_id, const u8 *tsc), 22204ee3e063SBeni Lev TP_ARGS(netdev, addr, key_type, key_id, tsc), 22214ee3e063SBeni Lev TP_STRUCT__entry( 22224ee3e063SBeni Lev NETDEV_ENTRY 22234ee3e063SBeni Lev MAC_ENTRY(addr) 22244ee3e063SBeni Lev __field(enum nl80211_key_type, key_type) 22254ee3e063SBeni Lev __field(int, key_id) 22264ee3e063SBeni Lev __array(u8, tsc, 6) 22274ee3e063SBeni Lev ), 22284ee3e063SBeni Lev TP_fast_assign( 22294ee3e063SBeni Lev NETDEV_ASSIGN; 22304ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 22314ee3e063SBeni Lev __entry->key_type = key_type; 22324ee3e063SBeni Lev __entry->key_id = key_id; 22338c26d458SEliad Peller if (tsc) 22344ee3e063SBeni Lev memcpy(__entry->tsc, tsc, 6); 22354ee3e063SBeni Lev ), 2236ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm", 22374ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type, 22384ee3e063SBeni Lev __entry->key_id, __entry->tsc) 22394ee3e063SBeni Lev ); 22404ee3e063SBeni Lev 22414ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel, 22424ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 22434ee3e063SBeni Lev struct ieee80211_channel *chan, 224442d97a59SJohannes Berg unsigned int duration), 224542d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan, duration), 22464ee3e063SBeni Lev TP_STRUCT__entry( 22474ee3e063SBeni Lev WDEV_ENTRY 22484ee3e063SBeni Lev __field(u64, cookie) 22494ee3e063SBeni Lev CHAN_ENTRY 22504ee3e063SBeni Lev __field(unsigned int, duration) 22514ee3e063SBeni Lev ), 22524ee3e063SBeni Lev TP_fast_assign( 22534ee3e063SBeni Lev WDEV_ASSIGN; 22544ee3e063SBeni Lev __entry->cookie = cookie; 22554ee3e063SBeni Lev CHAN_ASSIGN(chan); 22564ee3e063SBeni Lev __entry->duration = duration; 22574ee3e063SBeni Lev ), 225842d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT ", duration: %u", 22594ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG, 226042d97a59SJohannes Berg __entry->duration) 22614ee3e063SBeni Lev ); 22624ee3e063SBeni Lev 22634ee3e063SBeni Lev TRACE_EVENT(cfg80211_ready_on_channel_expired, 22644ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, 226542d97a59SJohannes Berg struct ieee80211_channel *chan), 226642d97a59SJohannes Berg TP_ARGS(wdev, cookie, chan), 22674ee3e063SBeni Lev TP_STRUCT__entry( 22684ee3e063SBeni Lev WDEV_ENTRY 22694ee3e063SBeni Lev __field(u64, cookie) 22704ee3e063SBeni Lev CHAN_ENTRY 22714ee3e063SBeni Lev ), 22724ee3e063SBeni Lev TP_fast_assign( 22734ee3e063SBeni Lev WDEV_ASSIGN; 22744ee3e063SBeni Lev __entry->cookie = cookie; 22754ee3e063SBeni Lev CHAN_ASSIGN(chan); 22764ee3e063SBeni Lev ), 227742d97a59SJohannes Berg TP_printk(WDEV_PR_FMT ", cookie: %llu, " CHAN_PR_FMT, 227842d97a59SJohannes Berg WDEV_PR_ARG, __entry->cookie, CHAN_PR_ARG) 22794ee3e063SBeni Lev ); 22804ee3e063SBeni Lev 22814ee3e063SBeni Lev TRACE_EVENT(cfg80211_new_sta, 22824ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *mac_addr, 22834ee3e063SBeni Lev struct station_info *sinfo), 22844ee3e063SBeni Lev TP_ARGS(netdev, mac_addr, sinfo), 22854ee3e063SBeni Lev TP_STRUCT__entry( 22864ee3e063SBeni Lev NETDEV_ENTRY 22874ee3e063SBeni Lev MAC_ENTRY(mac_addr) 22884ee3e063SBeni Lev SINFO_ENTRY 22894ee3e063SBeni Lev ), 22904ee3e063SBeni Lev TP_fast_assign( 22914ee3e063SBeni Lev NETDEV_ASSIGN; 22924ee3e063SBeni Lev MAC_ASSIGN(mac_addr, mac_addr); 22934ee3e063SBeni Lev SINFO_ASSIGN; 22944ee3e063SBeni Lev ), 2295ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, 22964ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(mac_addr)) 22974ee3e063SBeni Lev ); 22984ee3e063SBeni Lev 22994ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta, 23004ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 23014ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 23024ee3e063SBeni Lev ); 23034ee3e063SBeni Lev 23044ee3e063SBeni Lev TRACE_EVENT(cfg80211_rx_mgmt, 23054ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, int freq, int sig_mbm), 23064ee3e063SBeni Lev TP_ARGS(wdev, freq, sig_mbm), 23074ee3e063SBeni Lev TP_STRUCT__entry( 23084ee3e063SBeni Lev WDEV_ENTRY 23094ee3e063SBeni Lev __field(int, freq) 23104ee3e063SBeni Lev __field(int, sig_mbm) 23114ee3e063SBeni Lev ), 23124ee3e063SBeni Lev TP_fast_assign( 23134ee3e063SBeni Lev WDEV_ASSIGN; 23144ee3e063SBeni Lev __entry->freq = freq; 23154ee3e063SBeni Lev __entry->sig_mbm = sig_mbm; 23164ee3e063SBeni Lev ), 23174ee3e063SBeni Lev TP_printk(WDEV_PR_FMT ", freq: %d, sig mbm: %d", 23184ee3e063SBeni Lev WDEV_PR_ARG, __entry->freq, __entry->sig_mbm) 23194ee3e063SBeni Lev ); 23204ee3e063SBeni Lev 23214ee3e063SBeni Lev TRACE_EVENT(cfg80211_mgmt_tx_status, 23224ee3e063SBeni Lev TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), 23234ee3e063SBeni Lev TP_ARGS(wdev, cookie, ack), 23244ee3e063SBeni Lev TP_STRUCT__entry( 23254ee3e063SBeni Lev WDEV_ENTRY 23264ee3e063SBeni Lev __field(u64, cookie) 23274ee3e063SBeni Lev __field(bool, ack) 23284ee3e063SBeni Lev ), 23294ee3e063SBeni Lev TP_fast_assign( 23304ee3e063SBeni Lev WDEV_ASSIGN; 23314ee3e063SBeni Lev __entry->cookie = cookie; 23324ee3e063SBeni Lev __entry->ack = ack; 23334ee3e063SBeni Lev ), 23344ee3e063SBeni Lev TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", 23354ee3e063SBeni Lev WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) 23364ee3e063SBeni Lev ); 23374ee3e063SBeni Lev 23384ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_rssi_notify, 23394ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, 23404ee3e063SBeni Lev enum nl80211_cqm_rssi_threshold_event rssi_event), 23414ee3e063SBeni Lev TP_ARGS(netdev, rssi_event), 23424ee3e063SBeni Lev TP_STRUCT__entry( 23434ee3e063SBeni Lev NETDEV_ENTRY 23444ee3e063SBeni Lev __field(enum nl80211_cqm_rssi_threshold_event, rssi_event) 23454ee3e063SBeni Lev ), 23464ee3e063SBeni Lev TP_fast_assign( 23474ee3e063SBeni Lev NETDEV_ASSIGN; 23484ee3e063SBeni Lev __entry->rssi_event = rssi_event; 23494ee3e063SBeni Lev ), 23504ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", rssi event: %d", 23514ee3e063SBeni Lev NETDEV_PR_ARG, __entry->rssi_event) 23524ee3e063SBeni Lev ); 23534ee3e063SBeni Lev 2354683b6d3bSJohannes Berg TRACE_EVENT(cfg80211_reg_can_beacon, 2355174e0cd2SIlan Peer TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef, 2356174e0cd2SIlan Peer enum nl80211_iftype iftype), 2357174e0cd2SIlan Peer TP_ARGS(wiphy, chandef, iftype), 23584ee3e063SBeni Lev TP_STRUCT__entry( 23594ee3e063SBeni Lev WIPHY_ENTRY 2360683b6d3bSJohannes Berg CHAN_DEF_ENTRY 2361174e0cd2SIlan Peer __field(enum nl80211_iftype, iftype) 23624ee3e063SBeni Lev ), 23634ee3e063SBeni Lev TP_fast_assign( 23644ee3e063SBeni Lev WIPHY_ASSIGN; 2365683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 2366174e0cd2SIlan Peer __entry->iftype = iftype; 23674ee3e063SBeni Lev ), 2368174e0cd2SIlan Peer TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT ", iftype=%d", 2369174e0cd2SIlan Peer WIPHY_PR_ARG, CHAN_DEF_PR_ARG, __entry->iftype) 23704ee3e063SBeni Lev ); 23714ee3e063SBeni Lev 237204f39047SSimon Wunderlich TRACE_EVENT(cfg80211_chandef_dfs_required, 237304f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 237404f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 237504f39047SSimon Wunderlich TP_STRUCT__entry( 237604f39047SSimon Wunderlich WIPHY_ENTRY 237704f39047SSimon Wunderlich CHAN_DEF_ENTRY 237804f39047SSimon Wunderlich ), 237904f39047SSimon Wunderlich TP_fast_assign( 238004f39047SSimon Wunderlich WIPHY_ASSIGN; 238104f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 238204f39047SSimon Wunderlich ), 238304f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 238404f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 238504f39047SSimon Wunderlich ); 238604f39047SSimon Wunderlich 23874ee3e063SBeni Lev TRACE_EVENT(cfg80211_ch_switch_notify, 2388683b6d3bSJohannes Berg TP_PROTO(struct net_device *netdev, 2389683b6d3bSJohannes Berg struct cfg80211_chan_def *chandef), 2390683b6d3bSJohannes Berg TP_ARGS(netdev, chandef), 23914ee3e063SBeni Lev TP_STRUCT__entry( 23924ee3e063SBeni Lev NETDEV_ENTRY 2393683b6d3bSJohannes Berg CHAN_DEF_ENTRY 23944ee3e063SBeni Lev ), 23954ee3e063SBeni Lev TP_fast_assign( 23964ee3e063SBeni Lev NETDEV_ASSIGN; 2397683b6d3bSJohannes Berg CHAN_DEF_ASSIGN(chandef); 23984ee3e063SBeni Lev ), 2399ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 2400683b6d3bSJohannes Berg NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 24014ee3e063SBeni Lev ); 24024ee3e063SBeni Lev 2403f8d7552eSLuciano Coelho TRACE_EVENT(cfg80211_ch_switch_started_notify, 2404f8d7552eSLuciano Coelho TP_PROTO(struct net_device *netdev, 2405f8d7552eSLuciano Coelho struct cfg80211_chan_def *chandef), 2406f8d7552eSLuciano Coelho TP_ARGS(netdev, chandef), 2407f8d7552eSLuciano Coelho TP_STRUCT__entry( 2408f8d7552eSLuciano Coelho NETDEV_ENTRY 2409f8d7552eSLuciano Coelho CHAN_DEF_ENTRY 2410f8d7552eSLuciano Coelho ), 2411f8d7552eSLuciano Coelho TP_fast_assign( 2412f8d7552eSLuciano Coelho NETDEV_ASSIGN; 2413f8d7552eSLuciano Coelho CHAN_DEF_ASSIGN(chandef); 2414f8d7552eSLuciano Coelho ), 2415f8d7552eSLuciano Coelho TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, 2416f8d7552eSLuciano Coelho NETDEV_PR_ARG, CHAN_DEF_PR_ARG) 2417f8d7552eSLuciano Coelho ); 2418f8d7552eSLuciano Coelho 241904f39047SSimon Wunderlich TRACE_EVENT(cfg80211_radar_event, 242004f39047SSimon Wunderlich TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), 242104f39047SSimon Wunderlich TP_ARGS(wiphy, chandef), 242204f39047SSimon Wunderlich TP_STRUCT__entry( 242304f39047SSimon Wunderlich WIPHY_ENTRY 242404f39047SSimon Wunderlich CHAN_DEF_ENTRY 242504f39047SSimon Wunderlich ), 242604f39047SSimon Wunderlich TP_fast_assign( 242704f39047SSimon Wunderlich WIPHY_ASSIGN; 242804f39047SSimon Wunderlich CHAN_DEF_ASSIGN(chandef); 242904f39047SSimon Wunderlich ), 243004f39047SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_DEF_PR_FMT, 243104f39047SSimon Wunderlich WIPHY_PR_ARG, CHAN_DEF_PR_ARG) 243204f39047SSimon Wunderlich ); 243304f39047SSimon Wunderlich 243404f39047SSimon Wunderlich TRACE_EVENT(cfg80211_cac_event, 243504f39047SSimon Wunderlich TP_PROTO(struct net_device *netdev, enum nl80211_radar_event evt), 243604f39047SSimon Wunderlich TP_ARGS(netdev, evt), 243704f39047SSimon Wunderlich TP_STRUCT__entry( 243804f39047SSimon Wunderlich NETDEV_ENTRY 243904f39047SSimon Wunderlich __field(enum nl80211_radar_event, evt) 244004f39047SSimon Wunderlich ), 244104f39047SSimon Wunderlich TP_fast_assign( 244204f39047SSimon Wunderlich NETDEV_ASSIGN; 244304f39047SSimon Wunderlich __entry->evt = evt; 244404f39047SSimon Wunderlich ), 244504f39047SSimon Wunderlich TP_printk(NETDEV_PR_FMT ", event: %d", 244604f39047SSimon Wunderlich NETDEV_PR_ARG, __entry->evt) 244704f39047SSimon Wunderlich ); 244804f39047SSimon Wunderlich 24494ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_rx_evt, 24504ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 24514ee3e063SBeni Lev TP_ARGS(netdev, addr), 24524ee3e063SBeni Lev TP_STRUCT__entry( 24534ee3e063SBeni Lev NETDEV_ENTRY 24544ee3e063SBeni Lev MAC_ENTRY(addr) 24554ee3e063SBeni Lev ), 24564ee3e063SBeni Lev TP_fast_assign( 24574ee3e063SBeni Lev NETDEV_ASSIGN; 24584ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 24594ee3e063SBeni Lev ), 2460ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr)) 24614ee3e063SBeni Lev ); 24624ee3e063SBeni Lev 24634ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame, 24644ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 24654ee3e063SBeni Lev TP_ARGS(netdev, addr) 24664ee3e063SBeni Lev ); 24674ee3e063SBeni Lev 24684ee3e063SBeni Lev DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_unexpected_4addr_frame, 24694ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr), 24704ee3e063SBeni Lev TP_ARGS(netdev, addr) 24714ee3e063SBeni Lev ); 24724ee3e063SBeni Lev 2473fe94f3a4SAntonio Quartulli TRACE_EVENT(cfg80211_ibss_joined, 2474fe94f3a4SAntonio Quartulli TP_PROTO(struct net_device *netdev, const u8 *bssid, 2475fe94f3a4SAntonio Quartulli struct ieee80211_channel *channel), 2476fe94f3a4SAntonio Quartulli TP_ARGS(netdev, bssid, channel), 2477fe94f3a4SAntonio Quartulli TP_STRUCT__entry( 2478fe94f3a4SAntonio Quartulli NETDEV_ENTRY 2479fe94f3a4SAntonio Quartulli MAC_ENTRY(bssid) 2480fe94f3a4SAntonio Quartulli CHAN_ENTRY 2481fe94f3a4SAntonio Quartulli ), 2482fe94f3a4SAntonio Quartulli TP_fast_assign( 2483fe94f3a4SAntonio Quartulli NETDEV_ASSIGN; 2484fe94f3a4SAntonio Quartulli MAC_ASSIGN(bssid, bssid); 2485fe94f3a4SAntonio Quartulli CHAN_ASSIGN(channel); 2486fe94f3a4SAntonio Quartulli ), 2487fe94f3a4SAntonio Quartulli TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT, 2488fe94f3a4SAntonio Quartulli NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG) 2489fe94f3a4SAntonio Quartulli ); 2490fe94f3a4SAntonio Quartulli 24914ee3e063SBeni Lev TRACE_EVENT(cfg80211_probe_status, 24924ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *addr, u64 cookie, 24934ee3e063SBeni Lev bool acked), 24944ee3e063SBeni Lev TP_ARGS(netdev, addr, cookie, acked), 24954ee3e063SBeni Lev TP_STRUCT__entry( 24964ee3e063SBeni Lev NETDEV_ENTRY 24974ee3e063SBeni Lev MAC_ENTRY(addr) 24984ee3e063SBeni Lev __field(u64, cookie) 24994ee3e063SBeni Lev __field(bool, acked) 25004ee3e063SBeni Lev ), 25014ee3e063SBeni Lev TP_fast_assign( 25024ee3e063SBeni Lev NETDEV_ASSIGN; 25034ee3e063SBeni Lev MAC_ASSIGN(addr, addr); 25044ee3e063SBeni Lev __entry->cookie = cookie; 25054ee3e063SBeni Lev __entry->acked = acked; 25064ee3e063SBeni Lev ), 2507ec816087SJohannes Berg TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s", 25084ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie, 25094ee3e063SBeni Lev BOOL_TO_STR(__entry->acked)) 25104ee3e063SBeni Lev ); 25114ee3e063SBeni Lev 25124ee3e063SBeni Lev TRACE_EVENT(cfg80211_cqm_pktloss_notify, 25134ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *peer, u32 num_packets), 25144ee3e063SBeni Lev TP_ARGS(netdev, peer, num_packets), 25154ee3e063SBeni Lev TP_STRUCT__entry( 25164ee3e063SBeni Lev NETDEV_ENTRY 25174ee3e063SBeni Lev MAC_ENTRY(peer) 25184ee3e063SBeni Lev __field(u32, num_packets) 25194ee3e063SBeni Lev ), 25204ee3e063SBeni Lev TP_fast_assign( 25214ee3e063SBeni Lev NETDEV_ASSIGN; 25224ee3e063SBeni Lev MAC_ASSIGN(peer, peer); 25234ee3e063SBeni Lev __entry->num_packets = num_packets; 25244ee3e063SBeni Lev ), 25254ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u", 25264ee3e063SBeni Lev NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets) 25274ee3e063SBeni Lev ); 25284ee3e063SBeni Lev 25294ee3e063SBeni Lev DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify, 25304ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, const u8 *macaddr), 25314ee3e063SBeni Lev TP_ARGS(netdev, macaddr) 25324ee3e063SBeni Lev ); 25334ee3e063SBeni Lev 25344ee3e063SBeni Lev TRACE_EVENT(cfg80211_pmksa_candidate_notify, 25354ee3e063SBeni Lev TP_PROTO(struct net_device *netdev, int index, const u8 *bssid, 25364ee3e063SBeni Lev bool preauth), 25374ee3e063SBeni Lev TP_ARGS(netdev, index, bssid, preauth), 25384ee3e063SBeni Lev TP_STRUCT__entry( 25394ee3e063SBeni Lev NETDEV_ENTRY 25404ee3e063SBeni Lev __field(int, index) 25414ee3e063SBeni Lev MAC_ENTRY(bssid) 25424ee3e063SBeni Lev __field(bool, preauth) 25434ee3e063SBeni Lev ), 25444ee3e063SBeni Lev TP_fast_assign( 25454ee3e063SBeni Lev NETDEV_ASSIGN; 25464ee3e063SBeni Lev __entry->index = index; 25474ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 25484ee3e063SBeni Lev __entry->preauth = preauth; 25494ee3e063SBeni Lev ), 25504ee3e063SBeni Lev TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s", 25514ee3e063SBeni Lev NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid), 25524ee3e063SBeni Lev BOOL_TO_STR(__entry->preauth)) 25534ee3e063SBeni Lev ); 25544ee3e063SBeni Lev 25554ee3e063SBeni Lev TRACE_EVENT(cfg80211_report_obss_beacon, 25564ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, const u8 *frame, size_t len, 25574ee3e063SBeni Lev int freq, int sig_dbm), 25584ee3e063SBeni Lev TP_ARGS(wiphy, frame, len, freq, sig_dbm), 25594ee3e063SBeni Lev TP_STRUCT__entry( 25604ee3e063SBeni Lev WIPHY_ENTRY 25614ee3e063SBeni Lev __field(int, freq) 25624ee3e063SBeni Lev __field(int, sig_dbm) 25634ee3e063SBeni Lev ), 25644ee3e063SBeni Lev TP_fast_assign( 25654ee3e063SBeni Lev WIPHY_ASSIGN; 25664ee3e063SBeni Lev __entry->freq = freq; 25674ee3e063SBeni Lev __entry->sig_dbm = sig_dbm; 25684ee3e063SBeni Lev ), 25694ee3e063SBeni Lev TP_printk(WIPHY_PR_FMT ", freq: %d, sig_dbm: %d", 25704ee3e063SBeni Lev WIPHY_PR_ARG, __entry->freq, __entry->sig_dbm) 25714ee3e063SBeni Lev ); 25724ee3e063SBeni Lev 25733475b094SJouni Malinen TRACE_EVENT(cfg80211_tdls_oper_request, 25743475b094SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, const u8 *peer, 25753475b094SJouni Malinen enum nl80211_tdls_operation oper, u16 reason_code), 25763475b094SJouni Malinen TP_ARGS(wiphy, netdev, peer, oper, reason_code), 25773475b094SJouni Malinen TP_STRUCT__entry( 25783475b094SJouni Malinen WIPHY_ENTRY 25793475b094SJouni Malinen NETDEV_ENTRY 25803475b094SJouni Malinen MAC_ENTRY(peer) 25813475b094SJouni Malinen __field(enum nl80211_tdls_operation, oper) 25823475b094SJouni Malinen __field(u16, reason_code) 25833475b094SJouni Malinen ), 25843475b094SJouni Malinen TP_fast_assign( 25853475b094SJouni Malinen WIPHY_ASSIGN; 25863475b094SJouni Malinen NETDEV_ASSIGN; 25873475b094SJouni Malinen MAC_ASSIGN(peer, peer); 25883475b094SJouni Malinen __entry->oper = oper; 25893475b094SJouni Malinen __entry->reason_code = reason_code; 25903475b094SJouni Malinen ), 25913475b094SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u", 25923475b094SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper, 25933475b094SJouni Malinen __entry->reason_code) 25943475b094SJouni Malinen ); 25953475b094SJouni Malinen 25964ee3e063SBeni Lev TRACE_EVENT(cfg80211_scan_done, 25974ee3e063SBeni Lev TP_PROTO(struct cfg80211_scan_request *request, bool aborted), 25984ee3e063SBeni Lev TP_ARGS(request, aborted), 25994ee3e063SBeni Lev TP_STRUCT__entry( 26004ee3e063SBeni Lev __field(u32, n_channels) 26014ee3e063SBeni Lev __dynamic_array(u8, ie, request ? request->ie_len : 0) 26024ee3e063SBeni Lev __array(u32, rates, IEEE80211_NUM_BANDS) 26034ee3e063SBeni Lev __field(u32, wdev_id) 26044ee3e063SBeni Lev MAC_ENTRY(wiphy_mac) 26054ee3e063SBeni Lev __field(bool, no_cck) 26064ee3e063SBeni Lev __field(bool, aborted) 26074ee3e063SBeni Lev ), 26084ee3e063SBeni Lev TP_fast_assign( 26094ee3e063SBeni Lev if (request) { 26104ee3e063SBeni Lev memcpy(__get_dynamic_array(ie), request->ie, 26114ee3e063SBeni Lev request->ie_len); 26124ee3e063SBeni Lev memcpy(__entry->rates, request->rates, 26134ee3e063SBeni Lev IEEE80211_NUM_BANDS); 26144ee3e063SBeni Lev __entry->wdev_id = request->wdev ? 26154ee3e063SBeni Lev request->wdev->identifier : 0; 26164ee3e063SBeni Lev if (request->wiphy) 26174ee3e063SBeni Lev MAC_ASSIGN(wiphy_mac, 26184ee3e063SBeni Lev request->wiphy->perm_addr); 26194ee3e063SBeni Lev __entry->no_cck = request->no_cck; 26204ee3e063SBeni Lev } 26214ee3e063SBeni Lev __entry->aborted = aborted; 26224ee3e063SBeni Lev ), 26234ee3e063SBeni Lev TP_printk("aborted: %s", BOOL_TO_STR(__entry->aborted)) 26244ee3e063SBeni Lev ); 26254ee3e063SBeni Lev 26264ee3e063SBeni Lev DEFINE_EVENT(wiphy_only_evt, cfg80211_sched_scan_results, 26274ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy), 26284ee3e063SBeni Lev TP_ARGS(wiphy) 26294ee3e063SBeni Lev ); 26304ee3e063SBeni Lev 26314ee3e063SBeni Lev DEFINE_EVENT(wiphy_only_evt, cfg80211_sched_scan_stopped, 26324ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy), 26334ee3e063SBeni Lev TP_ARGS(wiphy) 26344ee3e063SBeni Lev ); 26354ee3e063SBeni Lev 26364ee3e063SBeni Lev TRACE_EVENT(cfg80211_get_bss, 26374ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 26384ee3e063SBeni Lev const u8 *bssid, const u8 *ssid, size_t ssid_len, 2639*6eb18137SDedy Lansky enum ieee80211_bss_type bss_type, 2640*6eb18137SDedy Lansky enum ieee80211_privacy privacy), 2641*6eb18137SDedy Lansky TP_ARGS(wiphy, channel, bssid, ssid, ssid_len, bss_type, privacy), 26424ee3e063SBeni Lev TP_STRUCT__entry( 26434ee3e063SBeni Lev WIPHY_ENTRY 26444ee3e063SBeni Lev CHAN_ENTRY 26454ee3e063SBeni Lev MAC_ENTRY(bssid) 26464ee3e063SBeni Lev __dynamic_array(u8, ssid, ssid_len) 2647*6eb18137SDedy Lansky __field(enum ieee80211_bss_type, bss_type) 2648*6eb18137SDedy Lansky __field(enum ieee80211_privacy, privacy) 26494ee3e063SBeni Lev ), 26504ee3e063SBeni Lev TP_fast_assign( 26514ee3e063SBeni Lev WIPHY_ASSIGN; 26524ee3e063SBeni Lev CHAN_ASSIGN(channel); 26534ee3e063SBeni Lev MAC_ASSIGN(bssid, bssid); 26544ee3e063SBeni Lev memcpy(__get_dynamic_array(ssid), ssid, ssid_len); 2655*6eb18137SDedy Lansky __entry->bss_type = bss_type; 2656*6eb18137SDedy Lansky __entry->privacy = privacy; 26574ee3e063SBeni Lev ), 2658*6eb18137SDedy Lansky TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT 2659*6eb18137SDedy Lansky ", buf: %#.2x, bss_type: %d, privacy: %d", 2660*6eb18137SDedy Lansky WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid), 2661*6eb18137SDedy Lansky ((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type, 2662*6eb18137SDedy Lansky __entry->privacy) 26634ee3e063SBeni Lev ); 26644ee3e063SBeni Lev 2665dcd6eac1SSimon Wunderlich TRACE_EVENT(cfg80211_inform_bss_width_frame, 26664ee3e063SBeni Lev TP_PROTO(struct wiphy *wiphy, struct ieee80211_channel *channel, 2667dcd6eac1SSimon Wunderlich enum nl80211_bss_scan_width scan_width, 26684ee3e063SBeni Lev struct ieee80211_mgmt *mgmt, size_t len, 26694ee3e063SBeni Lev s32 signal), 2670dcd6eac1SSimon Wunderlich TP_ARGS(wiphy, channel, scan_width, mgmt, len, signal), 26714ee3e063SBeni Lev TP_STRUCT__entry( 26724ee3e063SBeni Lev WIPHY_ENTRY 26734ee3e063SBeni Lev CHAN_ENTRY 2674dcd6eac1SSimon Wunderlich __field(enum nl80211_bss_scan_width, scan_width) 26754ee3e063SBeni Lev __dynamic_array(u8, mgmt, len) 26764ee3e063SBeni Lev __field(s32, signal) 26774ee3e063SBeni Lev ), 26784ee3e063SBeni Lev TP_fast_assign( 26794ee3e063SBeni Lev WIPHY_ASSIGN; 26804ee3e063SBeni Lev CHAN_ASSIGN(channel); 2681dcd6eac1SSimon Wunderlich __entry->scan_width = scan_width; 26824ee3e063SBeni Lev if (mgmt) 26834ee3e063SBeni Lev memcpy(__get_dynamic_array(mgmt), mgmt, len); 26844ee3e063SBeni Lev __entry->signal = signal; 26854ee3e063SBeni Lev ), 2686dcd6eac1SSimon Wunderlich TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT "(scan_width: %d) signal: %d", 2687dcd6eac1SSimon Wunderlich WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width, 2688dcd6eac1SSimon Wunderlich __entry->signal) 26894ee3e063SBeni Lev ); 26904ee3e063SBeni Lev 26914ee3e063SBeni Lev DECLARE_EVENT_CLASS(cfg80211_bss_evt, 26924ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 26934ee3e063SBeni Lev TP_ARGS(pub), 26944ee3e063SBeni Lev TP_STRUCT__entry( 26954ee3e063SBeni Lev MAC_ENTRY(bssid) 26964ee3e063SBeni Lev CHAN_ENTRY 26974ee3e063SBeni Lev ), 26984ee3e063SBeni Lev TP_fast_assign( 26994ee3e063SBeni Lev MAC_ASSIGN(bssid, pub->bssid); 27004ee3e063SBeni Lev CHAN_ASSIGN(pub->channel); 27014ee3e063SBeni Lev ), 2702ec816087SJohannes Berg TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG) 27034ee3e063SBeni Lev ); 27044ee3e063SBeni Lev 27054ee3e063SBeni Lev DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss, 27064ee3e063SBeni Lev TP_PROTO(struct cfg80211_bss *pub), 27074ee3e063SBeni Lev TP_ARGS(pub) 27084ee3e063SBeni Lev ); 27094ee3e063SBeni Lev 27104ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_uint, 27114ee3e063SBeni Lev TP_PROTO(unsigned int ret), 27124ee3e063SBeni Lev TP_ARGS(ret), 27134ee3e063SBeni Lev TP_STRUCT__entry( 27144ee3e063SBeni Lev __field(unsigned int, ret) 27154ee3e063SBeni Lev ), 27164ee3e063SBeni Lev TP_fast_assign( 27174ee3e063SBeni Lev __entry->ret = ret; 27184ee3e063SBeni Lev ), 27194ee3e063SBeni Lev TP_printk("ret: %d", __entry->ret) 27204ee3e063SBeni Lev ); 27214ee3e063SBeni Lev 27224ee3e063SBeni Lev TRACE_EVENT(cfg80211_return_u32, 27234ee3e063SBeni Lev TP_PROTO(u32 ret), 27244ee3e063SBeni Lev TP_ARGS(ret), 27254ee3e063SBeni Lev TP_STRUCT__entry( 27264ee3e063SBeni Lev __field(u32, ret) 27274ee3e063SBeni Lev ), 27284ee3e063SBeni Lev TP_fast_assign( 27294ee3e063SBeni Lev __entry->ret = ret; 27304ee3e063SBeni Lev ), 27314ee3e063SBeni Lev TP_printk("ret: %u", __entry->ret) 27324ee3e063SBeni Lev ); 27334ee3e063SBeni Lev 2734cd8f7cb4SJohannes Berg TRACE_EVENT(cfg80211_report_wowlan_wakeup, 2735cd8f7cb4SJohannes Berg TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, 2736cd8f7cb4SJohannes Berg struct cfg80211_wowlan_wakeup *wakeup), 2737cd8f7cb4SJohannes Berg TP_ARGS(wiphy, wdev, wakeup), 2738cd8f7cb4SJohannes Berg TP_STRUCT__entry( 2739cd8f7cb4SJohannes Berg WIPHY_ENTRY 2740cd8f7cb4SJohannes Berg WDEV_ENTRY 2741a92eecbbSJohannes Berg __field(bool, non_wireless) 2742cd8f7cb4SJohannes Berg __field(bool, disconnect) 2743cd8f7cb4SJohannes Berg __field(bool, magic_pkt) 2744cd8f7cb4SJohannes Berg __field(bool, gtk_rekey_failure) 2745cd8f7cb4SJohannes Berg __field(bool, eap_identity_req) 2746cd8f7cb4SJohannes Berg __field(bool, four_way_handshake) 2747cd8f7cb4SJohannes Berg __field(bool, rfkill_release) 2748cd8f7cb4SJohannes Berg __field(s32, pattern_idx) 2749cd8f7cb4SJohannes Berg __field(u32, packet_len) 2750a92eecbbSJohannes Berg __dynamic_array(u8, packet, 2751a92eecbbSJohannes Berg wakeup ? wakeup->packet_present_len : 0) 2752cd8f7cb4SJohannes Berg ), 2753cd8f7cb4SJohannes Berg TP_fast_assign( 2754cd8f7cb4SJohannes Berg WIPHY_ASSIGN; 2755cd8f7cb4SJohannes Berg WDEV_ASSIGN; 2756a92eecbbSJohannes Berg __entry->non_wireless = !wakeup; 2757a92eecbbSJohannes Berg __entry->disconnect = wakeup ? wakeup->disconnect : false; 2758a92eecbbSJohannes Berg __entry->magic_pkt = wakeup ? wakeup->magic_pkt : false; 2759a92eecbbSJohannes Berg __entry->gtk_rekey_failure = wakeup ? wakeup->gtk_rekey_failure : false; 2760a92eecbbSJohannes Berg __entry->eap_identity_req = wakeup ? wakeup->eap_identity_req : false; 2761a92eecbbSJohannes Berg __entry->four_way_handshake = wakeup ? wakeup->four_way_handshake : false; 2762a92eecbbSJohannes Berg __entry->rfkill_release = wakeup ? wakeup->rfkill_release : false; 2763a92eecbbSJohannes Berg __entry->pattern_idx = wakeup ? wakeup->pattern_idx : false; 2764a92eecbbSJohannes Berg __entry->packet_len = wakeup ? wakeup->packet_len : false; 2765a92eecbbSJohannes Berg if (wakeup && wakeup->packet && wakeup->packet_present_len) 2766cd8f7cb4SJohannes Berg memcpy(__get_dynamic_array(packet), wakeup->packet, 2767cd8f7cb4SJohannes Berg wakeup->packet_present_len); 2768cd8f7cb4SJohannes Berg ), 2769cd8f7cb4SJohannes Berg TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, WIPHY_PR_ARG, WDEV_PR_ARG) 2770cd8f7cb4SJohannes Berg ); 2771cd8f7cb4SJohannes Berg 2772355199e0SJouni Malinen TRACE_EVENT(cfg80211_ft_event, 2773355199e0SJouni Malinen TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, 2774355199e0SJouni Malinen struct cfg80211_ft_event_params *ft_event), 2775355199e0SJouni Malinen TP_ARGS(wiphy, netdev, ft_event), 2776355199e0SJouni Malinen TP_STRUCT__entry( 2777355199e0SJouni Malinen WIPHY_ENTRY 2778355199e0SJouni Malinen NETDEV_ENTRY 2779355199e0SJouni Malinen __dynamic_array(u8, ies, ft_event->ies_len) 2780355199e0SJouni Malinen MAC_ENTRY(target_ap) 2781355199e0SJouni Malinen __dynamic_array(u8, ric_ies, ft_event->ric_ies_len) 2782355199e0SJouni Malinen ), 2783355199e0SJouni Malinen TP_fast_assign( 2784355199e0SJouni Malinen WIPHY_ASSIGN; 2785355199e0SJouni Malinen NETDEV_ASSIGN; 2786355199e0SJouni Malinen if (ft_event->ies) 2787355199e0SJouni Malinen memcpy(__get_dynamic_array(ies), ft_event->ies, 2788355199e0SJouni Malinen ft_event->ies_len); 2789355199e0SJouni Malinen MAC_ASSIGN(target_ap, ft_event->target_ap); 2790355199e0SJouni Malinen if (ft_event->ric_ies) 2791355199e0SJouni Malinen memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies, 2792355199e0SJouni Malinen ft_event->ric_ies_len); 2793355199e0SJouni Malinen ), 2794355199e0SJouni Malinen TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT, 2795355199e0SJouni Malinen WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap)) 2796355199e0SJouni Malinen ); 2797355199e0SJouni Malinen 2798f04c2203SMichal Kazior TRACE_EVENT(cfg80211_stop_iface, 2799f04c2203SMichal Kazior TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), 2800f04c2203SMichal Kazior TP_ARGS(wiphy, wdev), 2801f04c2203SMichal Kazior TP_STRUCT__entry( 2802f04c2203SMichal Kazior WIPHY_ENTRY 2803f04c2203SMichal Kazior WDEV_ENTRY 2804f04c2203SMichal Kazior ), 2805f04c2203SMichal Kazior TP_fast_assign( 2806f04c2203SMichal Kazior WIPHY_ASSIGN; 2807f04c2203SMichal Kazior WDEV_ASSIGN; 2808f04c2203SMichal Kazior ), 2809f04c2203SMichal Kazior TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT, 2810f04c2203SMichal Kazior WIPHY_PR_ARG, WDEV_PR_ARG) 2811f04c2203SMichal Kazior ); 2812f04c2203SMichal Kazior 281314e8a3c4SBeni Lev #endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */ 281414e8a3c4SBeni Lev 281514e8a3c4SBeni Lev #undef TRACE_INCLUDE_PATH 281614e8a3c4SBeni Lev #define TRACE_INCLUDE_PATH . 281714e8a3c4SBeni Lev #undef TRACE_INCLUDE_FILE 281814e8a3c4SBeni Lev #define TRACE_INCLUDE_FILE trace 281914e8a3c4SBeni Lev #include <trace/define_trace.h> 2820