linux/net/mac802154/trace.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* Based on net/mac80211/trace.h */
   3
   4#undef TRACE_SYSTEM
   5#define TRACE_SYSTEM mac802154
   6
   7#if !defined(__MAC802154_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
   8#define __MAC802154_DRIVER_TRACE
   9
  10#include <linux/tracepoint.h>
  11
  12#include <net/mac802154.h>
  13#include "ieee802154_i.h"
  14
  15#define MAXNAME         32
  16#define LOCAL_ENTRY     __array(char, wpan_phy_name, MAXNAME)
  17#define LOCAL_ASSIGN    strlcpy(__entry->wpan_phy_name, \
  18                                wpan_phy_name(local->hw.phy), MAXNAME)
  19#define LOCAL_PR_FMT    "%s"
  20#define LOCAL_PR_ARG    __entry->wpan_phy_name
  21
  22#define CCA_ENTRY __field(enum nl802154_cca_modes, cca_mode) \
  23                  __field(enum nl802154_cca_opts, cca_opt)
  24#define CCA_ASSIGN \
  25        do {                                     \
  26                (__entry->cca_mode) = cca->mode; \
  27                (__entry->cca_opt) = cca->opt;   \
  28        } while (0)
  29#define CCA_PR_FMT "cca_mode: %d, cca_opt: %d"
  30#define CCA_PR_ARG __entry->cca_mode, __entry->cca_opt
  31
  32#define BOOL_TO_STR(bo) (bo) ? "true" : "false"
  33
  34/* Tracing for driver callbacks */
  35
  36DECLARE_EVENT_CLASS(local_only_evt4,
  37        TP_PROTO(struct ieee802154_local *local),
  38        TP_ARGS(local),
  39        TP_STRUCT__entry(
  40                LOCAL_ENTRY
  41        ),
  42        TP_fast_assign(
  43                LOCAL_ASSIGN;
  44        ),
  45        TP_printk(LOCAL_PR_FMT, LOCAL_PR_ARG)
  46);
  47
  48DEFINE_EVENT(local_only_evt4, 802154_drv_return_void,
  49        TP_PROTO(struct ieee802154_local *local),
  50        TP_ARGS(local)
  51);
  52
  53TRACE_EVENT(802154_drv_return_int,
  54        TP_PROTO(struct ieee802154_local *local, int ret),
  55        TP_ARGS(local, ret),
  56        TP_STRUCT__entry(
  57                LOCAL_ENTRY
  58                __field(int, ret)
  59        ),
  60        TP_fast_assign(
  61                LOCAL_ASSIGN;
  62                __entry->ret = ret;
  63        ),
  64        TP_printk(LOCAL_PR_FMT ", returned: %d", LOCAL_PR_ARG,
  65                  __entry->ret)
  66);
  67
  68DEFINE_EVENT(local_only_evt4, 802154_drv_start,
  69        TP_PROTO(struct ieee802154_local *local),
  70        TP_ARGS(local)
  71);
  72
  73DEFINE_EVENT(local_only_evt4, 802154_drv_stop,
  74        TP_PROTO(struct ieee802154_local *local),
  75        TP_ARGS(local)
  76);
  77
  78TRACE_EVENT(802154_drv_set_channel,
  79        TP_PROTO(struct ieee802154_local *local, u8 page, u8 channel),
  80        TP_ARGS(local, page, channel),
  81        TP_STRUCT__entry(
  82                LOCAL_ENTRY
  83                __field(u8, page)
  84                __field(u8, channel)
  85        ),
  86        TP_fast_assign(
  87                LOCAL_ASSIGN;
  88                __entry->page = page;
  89                __entry->channel = channel;
  90        ),
  91        TP_printk(LOCAL_PR_FMT ", page: %d, channel: %d", LOCAL_PR_ARG,
  92                  __entry->page, __entry->channel)
  93);
  94
  95TRACE_EVENT(802154_drv_set_cca_mode,
  96        TP_PROTO(struct ieee802154_local *local,
  97                 const struct wpan_phy_cca *cca),
  98        TP_ARGS(local, cca),
  99        TP_STRUCT__entry(
 100                LOCAL_ENTRY
 101                CCA_ENTRY
 102        ),
 103        TP_fast_assign(
 104                LOCAL_ASSIGN;
 105                CCA_ASSIGN;
 106        ),
 107        TP_printk(LOCAL_PR_FMT ", " CCA_PR_FMT, LOCAL_PR_ARG,
 108                  CCA_PR_ARG)
 109);
 110
 111TRACE_EVENT(802154_drv_set_cca_ed_level,
 112        TP_PROTO(struct ieee802154_local *local, s32 mbm),
 113        TP_ARGS(local, mbm),
 114        TP_STRUCT__entry(
 115                LOCAL_ENTRY
 116                __field(s32, mbm)
 117        ),
 118        TP_fast_assign(
 119                LOCAL_ASSIGN;
 120                __entry->mbm = mbm;
 121        ),
 122        TP_printk(LOCAL_PR_FMT ", ed level: %d", LOCAL_PR_ARG,
 123                  __entry->mbm)
 124);
 125
 126TRACE_EVENT(802154_drv_set_tx_power,
 127        TP_PROTO(struct ieee802154_local *local, s32 power),
 128        TP_ARGS(local, power),
 129        TP_STRUCT__entry(
 130                LOCAL_ENTRY
 131                __field(s32, power)
 132        ),
 133        TP_fast_assign(
 134                LOCAL_ASSIGN;
 135                __entry->power = power;
 136        ),
 137        TP_printk(LOCAL_PR_FMT ", mbm: %d", LOCAL_PR_ARG,
 138                 __entry->power)
 139);
 140
 141TRACE_EVENT(802154_drv_set_lbt_mode,
 142        TP_PROTO(struct ieee802154_local *local, bool mode),
 143        TP_ARGS(local, mode),
 144        TP_STRUCT__entry(
 145                LOCAL_ENTRY
 146                __field(bool, mode)
 147        ),
 148        TP_fast_assign(
 149                LOCAL_ASSIGN;
 150                __entry->mode = mode;
 151        ),
 152        TP_printk(LOCAL_PR_FMT ", lbt mode: %s", LOCAL_PR_ARG,
 153                  BOOL_TO_STR(__entry->mode))
 154);
 155
 156TRACE_EVENT(802154_drv_set_short_addr,
 157        TP_PROTO(struct ieee802154_local *local, __le16 short_addr),
 158        TP_ARGS(local, short_addr),
 159        TP_STRUCT__entry(
 160                LOCAL_ENTRY
 161                __field(__le16, short_addr)
 162        ),
 163        TP_fast_assign(
 164                LOCAL_ASSIGN;
 165                __entry->short_addr = short_addr;
 166        ),
 167        TP_printk(LOCAL_PR_FMT ", short addr: 0x%04x", LOCAL_PR_ARG,
 168                  le16_to_cpu(__entry->short_addr))
 169);
 170
 171TRACE_EVENT(802154_drv_set_pan_id,
 172        TP_PROTO(struct ieee802154_local *local, __le16 pan_id),
 173        TP_ARGS(local, pan_id),
 174        TP_STRUCT__entry(
 175                LOCAL_ENTRY
 176                __field(__le16, pan_id)
 177        ),
 178        TP_fast_assign(
 179                LOCAL_ASSIGN;
 180                __entry->pan_id = pan_id;
 181        ),
 182        TP_printk(LOCAL_PR_FMT ", pan id: 0x%04x", LOCAL_PR_ARG,
 183                  le16_to_cpu(__entry->pan_id))
 184);
 185
 186TRACE_EVENT(802154_drv_set_extended_addr,
 187        TP_PROTO(struct ieee802154_local *local, __le64 extended_addr),
 188        TP_ARGS(local, extended_addr),
 189        TP_STRUCT__entry(
 190                LOCAL_ENTRY
 191                __field(__le64, extended_addr)
 192        ),
 193        TP_fast_assign(
 194                LOCAL_ASSIGN;
 195                __entry->extended_addr = extended_addr;
 196        ),
 197        TP_printk(LOCAL_PR_FMT ", extended addr: 0x%llx", LOCAL_PR_ARG,
 198                  le64_to_cpu(__entry->extended_addr))
 199);
 200
 201TRACE_EVENT(802154_drv_set_pan_coord,
 202        TP_PROTO(struct ieee802154_local *local, bool is_coord),
 203        TP_ARGS(local, is_coord),
 204        TP_STRUCT__entry(
 205                LOCAL_ENTRY
 206                __field(bool, is_coord)
 207        ),
 208        TP_fast_assign(
 209                LOCAL_ASSIGN;
 210                __entry->is_coord = is_coord;
 211        ),
 212        TP_printk(LOCAL_PR_FMT ", is_coord: %s", LOCAL_PR_ARG,
 213                  BOOL_TO_STR(__entry->is_coord))
 214);
 215
 216TRACE_EVENT(802154_drv_set_csma_params,
 217        TP_PROTO(struct ieee802154_local *local, u8 min_be, u8 max_be,
 218                 u8 max_csma_backoffs),
 219        TP_ARGS(local, min_be, max_be, max_csma_backoffs),
 220        TP_STRUCT__entry(
 221                LOCAL_ENTRY
 222                __field(u8, min_be)
 223                __field(u8, max_be)
 224                __field(u8, max_csma_backoffs)
 225        ),
 226        TP_fast_assign(
 227                LOCAL_ASSIGN,
 228                __entry->min_be = min_be;
 229                __entry->max_be = max_be;
 230                __entry->max_csma_backoffs = max_csma_backoffs;
 231        ),
 232        TP_printk(LOCAL_PR_FMT ", min be: %d, max be: %d, max csma backoffs: %d",
 233                  LOCAL_PR_ARG, __entry->min_be, __entry->max_be,
 234                  __entry->max_csma_backoffs)
 235);
 236
 237TRACE_EVENT(802154_drv_set_max_frame_retries,
 238        TP_PROTO(struct ieee802154_local *local, s8 max_frame_retries),
 239        TP_ARGS(local, max_frame_retries),
 240        TP_STRUCT__entry(
 241                LOCAL_ENTRY
 242                __field(s8, max_frame_retries)
 243        ),
 244        TP_fast_assign(
 245                LOCAL_ASSIGN;
 246                __entry->max_frame_retries = max_frame_retries;
 247        ),
 248        TP_printk(LOCAL_PR_FMT ", max frame retries: %d", LOCAL_PR_ARG,
 249                  __entry->max_frame_retries)
 250);
 251
 252TRACE_EVENT(802154_drv_set_promiscuous_mode,
 253        TP_PROTO(struct ieee802154_local *local, bool on),
 254        TP_ARGS(local, on),
 255        TP_STRUCT__entry(
 256                LOCAL_ENTRY
 257                __field(bool, on)
 258        ),
 259        TP_fast_assign(
 260                LOCAL_ASSIGN;
 261                __entry->on = on;
 262        ),
 263        TP_printk(LOCAL_PR_FMT ", promiscuous mode: %s", LOCAL_PR_ARG,
 264                  BOOL_TO_STR(__entry->on))
 265);
 266
 267#endif /* !__MAC802154_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
 268
 269#undef TRACE_INCLUDE_PATH
 270#define TRACE_INCLUDE_PATH .
 271#undef TRACE_INCLUDE_FILE
 272#define TRACE_INCLUDE_FILE trace
 273#include <trace/define_trace.h>
 274