1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2020 Marvell International Ltd. 3 */ 4 5 #ifndef CRYPTODEV_TRACE_H 6 #define CRYPTODEV_TRACE_H 7 8 /** 9 * @file 10 * 11 * API for cryptodev trace support 12 */ 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 #include <rte_trace_point.h> 19 20 #include "rte_cryptodev.h" 21 22 RTE_TRACE_POINT( 23 rte_cryptodev_trace_configure, 24 RTE_TRACE_POINT_ARGS(uint8_t dev_id, 25 struct rte_cryptodev_config *conf), 26 rte_trace_point_emit_u8(dev_id); 27 rte_trace_point_emit_u16(conf->nb_queue_pairs); 28 rte_trace_point_emit_i64(conf->ff_disable); 29 ) 30 31 RTE_TRACE_POINT( 32 rte_cryptodev_trace_start, 33 RTE_TRACE_POINT_ARGS(uint8_t dev_id, int rc), 34 rte_trace_point_emit_u8(dev_id); 35 rte_trace_point_emit_int(rc); 36 ) 37 38 RTE_TRACE_POINT( 39 rte_cryptodev_trace_stop, 40 RTE_TRACE_POINT_ARGS(uint8_t dev_id), 41 rte_trace_point_emit_u8(dev_id); 42 ) 43 44 RTE_TRACE_POINT( 45 rte_cryptodev_trace_close, 46 RTE_TRACE_POINT_ARGS(uint8_t dev_id, int rc), 47 rte_trace_point_emit_u8(dev_id); 48 rte_trace_point_emit_int(rc); 49 ) 50 51 RTE_TRACE_POINT( 52 rte_cryptodev_trace_queue_pair_setup, 53 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t queue_pair_id, 54 const struct rte_cryptodev_qp_conf *conf), 55 rte_trace_point_emit_u8(dev_id); 56 rte_trace_point_emit_u16(queue_pair_id); 57 rte_trace_point_emit_u32(conf->nb_descriptors); 58 rte_trace_point_emit_ptr(conf->mp_session); 59 ) 60 61 RTE_TRACE_POINT( 62 rte_cryptodev_trace_sym_session_pool_create, 63 RTE_TRACE_POINT_ARGS(const char *name, uint32_t nb_elts, 64 uint32_t elt_size, uint32_t cache_size, 65 uint16_t user_data_size, void *mempool), 66 rte_trace_point_emit_string(name); 67 rte_trace_point_emit_u32(nb_elts); 68 rte_trace_point_emit_u32(elt_size); 69 rte_trace_point_emit_u32(cache_size); 70 rte_trace_point_emit_u16(user_data_size); 71 rte_trace_point_emit_ptr(mempool); 72 ) 73 74 RTE_TRACE_POINT( 75 rte_cryptodev_trace_sym_session_create, 76 RTE_TRACE_POINT_ARGS(uint8_t dev_id, void *sess, void *xforms, 77 void *mempool), 78 rte_trace_point_emit_u8(dev_id); 79 rte_trace_point_emit_ptr(sess); 80 rte_trace_point_emit_ptr(xforms); 81 rte_trace_point_emit_ptr(mempool); 82 ) 83 84 RTE_TRACE_POINT( 85 rte_cryptodev_trace_asym_session_pool_create, 86 RTE_TRACE_POINT_ARGS(const char *name, uint32_t nb_elts, 87 uint16_t user_data_size, uint32_t cache_size, void *mempool), 88 rte_trace_point_emit_string(name); 89 rte_trace_point_emit_u32(nb_elts); 90 rte_trace_point_emit_u16(user_data_size); 91 rte_trace_point_emit_u32(cache_size); 92 rte_trace_point_emit_ptr(mempool); 93 ) 94 95 RTE_TRACE_POINT( 96 rte_cryptodev_trace_asym_session_create, 97 RTE_TRACE_POINT_ARGS(uint8_t dev_id, void *xforms, void *mempool, 98 void *sess), 99 rte_trace_point_emit_u8(dev_id); 100 rte_trace_point_emit_ptr(xforms); 101 rte_trace_point_emit_ptr(mempool); 102 rte_trace_point_emit_ptr(sess); 103 ) 104 105 RTE_TRACE_POINT( 106 rte_cryptodev_trace_sym_session_free, 107 RTE_TRACE_POINT_ARGS(uint8_t dev_id, void *sess), 108 rte_trace_point_emit_u8(dev_id); 109 rte_trace_point_emit_ptr(sess); 110 ) 111 112 RTE_TRACE_POINT( 113 rte_cryptodev_trace_asym_session_free, 114 RTE_TRACE_POINT_ARGS(uint8_t dev_id, void *sess), 115 rte_trace_point_emit_u8(dev_id); 116 rte_trace_point_emit_ptr(sess); 117 ) 118 119 RTE_TRACE_POINT( 120 rte_cryptodev_trace_callback_register, 121 RTE_TRACE_POINT_ARGS(uint8_t dev_id, 122 enum rte_cryptodev_event_type event, const void *cb_fn), 123 rte_trace_point_emit_u8(dev_id); 124 rte_trace_point_emit_int(event); 125 rte_trace_point_emit_ptr(cb_fn); 126 ) 127 128 RTE_TRACE_POINT( 129 rte_cryptodev_trace_callback_unregister, 130 RTE_TRACE_POINT_ARGS(uint8_t dev_id, 131 enum rte_cryptodev_event_type event, const void *cb_fn), 132 rte_trace_point_emit_u8(dev_id); 133 rte_trace_point_emit_int(event); 134 rte_trace_point_emit_ptr(cb_fn); 135 ) 136 137 RTE_TRACE_POINT( 138 rte_cryptodev_trace_device_count_by_driver, 139 RTE_TRACE_POINT_ARGS(uint8_t driver_id, uint8_t dev_count), 140 rte_trace_point_emit_u8(driver_id); 141 rte_trace_point_emit_u8(dev_count); 142 ) 143 144 RTE_TRACE_POINT( 145 rte_cryptodev_trace_devices_get, 146 RTE_TRACE_POINT_ARGS(const char *driver_name, uint8_t count), 147 rte_trace_point_emit_string(driver_name); 148 rte_trace_point_emit_u8(count); 149 ) 150 151 RTE_TRACE_POINT( 152 rte_cryptodev_trace_driver_id_get, 153 RTE_TRACE_POINT_ARGS(const char *name, int driver_id), 154 rte_trace_point_emit_string(name); 155 rte_trace_point_emit_int(driver_id); 156 ) 157 158 RTE_TRACE_POINT( 159 rte_cryptodev_trace_driver_name_get, 160 RTE_TRACE_POINT_ARGS(uint8_t driver_id, const char *name), 161 rte_trace_point_emit_u8(driver_id); 162 rte_trace_point_emit_string(name); 163 ) 164 165 RTE_TRACE_POINT( 166 rte_cryptodev_trace_get_aead_algo_enum, 167 RTE_TRACE_POINT_ARGS(const char *algo_string, 168 enum rte_crypto_aead_algorithm algo_enum, int ret), 169 rte_trace_point_emit_string(algo_string); 170 rte_trace_point_emit_int(algo_enum); 171 rte_trace_point_emit_int(ret); 172 ) 173 174 RTE_TRACE_POINT( 175 rte_cryptodev_trace_get_auth_algo_enum, 176 RTE_TRACE_POINT_ARGS(const char *algo_string, 177 enum rte_crypto_auth_algorithm algo_enum, int ret), 178 rte_trace_point_emit_string(algo_string); 179 rte_trace_point_emit_int(algo_enum); 180 rte_trace_point_emit_int(ret); 181 ) 182 183 RTE_TRACE_POINT( 184 rte_cryptodev_trace_get_cipher_algo_enum, 185 RTE_TRACE_POINT_ARGS(const char *algo_string, 186 enum rte_crypto_cipher_algorithm algo_enum, int ret), 187 rte_trace_point_emit_string(algo_string); 188 rte_trace_point_emit_int(algo_enum); 189 rte_trace_point_emit_int(ret); 190 ) 191 192 RTE_TRACE_POINT( 193 rte_cryptodev_trace_get_aead_algo_string, 194 RTE_TRACE_POINT_ARGS(enum rte_crypto_aead_algorithm algo_enum, 195 const char *algo_string), 196 rte_trace_point_emit_int(algo_enum); 197 rte_trace_point_emit_string(algo_string); 198 ) 199 200 RTE_TRACE_POINT( 201 rte_cryptodev_trace_get_auth_algo_string, 202 RTE_TRACE_POINT_ARGS(enum rte_crypto_auth_algorithm algo_enum, 203 const char *algo_string), 204 rte_trace_point_emit_int(algo_enum); 205 rte_trace_point_emit_string(algo_string); 206 ) 207 208 RTE_TRACE_POINT( 209 rte_cryptodev_trace_get_cipher_algo_string, 210 RTE_TRACE_POINT_ARGS(enum rte_crypto_cipher_algorithm algo_enum, 211 const char *algo_string), 212 rte_trace_point_emit_int(algo_enum); 213 rte_trace_point_emit_string(algo_string); 214 ) 215 216 RTE_TRACE_POINT( 217 rte_cryptodev_trace_get_dev_id, 218 RTE_TRACE_POINT_ARGS(const char *name, int ret), 219 rte_trace_point_emit_string(name); 220 rte_trace_point_emit_int(ret); 221 ) 222 223 RTE_TRACE_POINT( 224 rte_cryptodev_trace_get_feature_name, 225 RTE_TRACE_POINT_ARGS(uint64_t flag), 226 rte_trace_point_emit_u64(flag); 227 ) 228 229 RTE_TRACE_POINT( 230 rte_cryptodev_trace_get_sec_ctx, 231 RTE_TRACE_POINT_ARGS(uint8_t dev_id, const void *sec_ctx), 232 rte_trace_point_emit_u8(dev_id); 233 rte_trace_point_emit_ptr(sec_ctx); 234 ) 235 236 RTE_TRACE_POINT( 237 rte_cryptodev_trace_info_get, 238 RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *driver_name), 239 rte_trace_point_emit_u8(dev_id); 240 rte_trace_point_emit_string(driver_name); 241 ) 242 243 RTE_TRACE_POINT( 244 rte_cryptodev_trace_is_valid_dev, 245 RTE_TRACE_POINT_ARGS(uint8_t dev_id, unsigned int ret), 246 rte_trace_point_emit_u8(dev_id); 247 rte_trace_point_emit_u32(ret); 248 ) 249 250 RTE_TRACE_POINT( 251 rte_cryptodev_trace_name_get, 252 RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *name), 253 rte_trace_point_emit_u8(dev_id); 254 rte_trace_point_emit_string(name); 255 ) 256 257 RTE_TRACE_POINT( 258 rte_cryptodev_trace_queue_pair_count, 259 RTE_TRACE_POINT_ARGS(const void *dev, const char *name, 260 uint8_t socket_id, uint8_t dev_id, uint16_t nb_queue_pairs), 261 rte_trace_point_emit_ptr(dev); 262 rte_trace_point_emit_string(name); 263 rte_trace_point_emit_u8(socket_id); 264 rte_trace_point_emit_u8(dev_id); 265 rte_trace_point_emit_u16(nb_queue_pairs); 266 ) 267 268 RTE_TRACE_POINT( 269 rte_cryptodev_trace_socket_id, 270 RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *name, int socket_id), 271 rte_trace_point_emit_u8(dev_id); 272 rte_trace_point_emit_string(name); 273 rte_trace_point_emit_int(socket_id); 274 ) 275 276 RTE_TRACE_POINT( 277 rte_cryptodev_trace_stats_get, 278 RTE_TRACE_POINT_ARGS(uint8_t dev_id, 279 const struct rte_cryptodev_stats *stats), 280 rte_trace_point_emit_u8(dev_id); 281 rte_trace_point_emit_u64(stats->enqueued_count); 282 rte_trace_point_emit_u64(stats->dequeued_count); 283 rte_trace_point_emit_u64(stats->enqueue_err_count); 284 rte_trace_point_emit_u64(stats->dequeue_err_count); 285 ) 286 287 RTE_TRACE_POINT( 288 rte_cryptodev_trace_stats_reset, 289 RTE_TRACE_POINT_ARGS(uint8_t dev_id), 290 rte_trace_point_emit_u8(dev_id); 291 ) 292 293 RTE_TRACE_POINT( 294 rte_cryptodev_trace_sym_capability_check_aead, 295 RTE_TRACE_POINT_ARGS( 296 const struct rte_cryptodev_symmetric_capability *capability, 297 uint16_t key_size, uint16_t digest_size, uint16_t aad_size, 298 uint16_t iv_size, int ret), 299 rte_trace_point_emit_ptr(capability); 300 rte_trace_point_emit_int(capability->xform_type); 301 rte_trace_point_emit_u16(key_size); 302 rte_trace_point_emit_u16(digest_size); 303 rte_trace_point_emit_u16(aad_size); 304 rte_trace_point_emit_u16(iv_size); 305 rte_trace_point_emit_int(ret); 306 ) 307 308 RTE_TRACE_POINT( 309 rte_cryptodev_trace_sym_capability_check_auth, 310 RTE_TRACE_POINT_ARGS( 311 const struct rte_cryptodev_symmetric_capability *capability, 312 uint16_t key_size, uint16_t digest_size, uint16_t iv_size, 313 int ret), 314 rte_trace_point_emit_ptr(capability); 315 rte_trace_point_emit_int(capability->xform_type); 316 rte_trace_point_emit_u16(key_size); 317 rte_trace_point_emit_u16(digest_size); 318 rte_trace_point_emit_u16(iv_size); 319 rte_trace_point_emit_int(ret); 320 ) 321 322 RTE_TRACE_POINT( 323 rte_cryptodev_trace_sym_capability_check_cipher, 324 RTE_TRACE_POINT_ARGS( 325 const struct rte_cryptodev_symmetric_capability *capability, 326 uint16_t key_size, uint16_t iv_size, int ret), 327 rte_trace_point_emit_ptr(capability); 328 rte_trace_point_emit_int(capability->xform_type); 329 rte_trace_point_emit_u16(key_size); 330 rte_trace_point_emit_u16(iv_size); 331 rte_trace_point_emit_int(ret); 332 ) 333 334 RTE_TRACE_POINT( 335 rte_cryptodev_trace_sym_capability_get, 336 RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *driver_name, 337 uint8_t driver_id, int idx_type, const void *sym_capability), 338 rte_trace_point_emit_u8(dev_id); 339 rte_trace_point_emit_string(driver_name); 340 rte_trace_point_emit_u8(driver_id); 341 rte_trace_point_emit_int(idx_type); 342 rte_trace_point_emit_ptr(sym_capability); 343 ) 344 345 RTE_TRACE_POINT( 346 rte_cryptodev_trace_sym_get_private_session_size, 347 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint32_t priv_sess_size), 348 rte_trace_point_emit_u8(dev_id); 349 rte_trace_point_emit_u32(priv_sess_size); 350 ) 351 352 RTE_TRACE_POINT( 353 rte_cryptodev_trace_asym_capability_get, 354 RTE_TRACE_POINT_ARGS(const char *driver_name, uint8_t driver_id, 355 int idx_type, const void *asym_cap), 356 rte_trace_point_emit_string(driver_name); 357 rte_trace_point_emit_u8(driver_id); 358 rte_trace_point_emit_int(idx_type); 359 rte_trace_point_emit_ptr(asym_cap); 360 ) 361 362 RTE_TRACE_POINT( 363 rte_cryptodev_trace_asym_get_private_session_size, 364 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint32_t priv_sess_size), 365 rte_trace_point_emit_u8(dev_id); 366 rte_trace_point_emit_u32(priv_sess_size); 367 ) 368 369 RTE_TRACE_POINT( 370 rte_cryptodev_trace_asym_get_xform_enum, 371 RTE_TRACE_POINT_ARGS(const char *xform_string, 372 enum rte_crypto_asym_xform_type xform_enum, int ret), 373 rte_trace_point_emit_string(xform_string); 374 rte_trace_point_emit_int(xform_enum); 375 rte_trace_point_emit_int(ret); 376 ) 377 378 RTE_TRACE_POINT( 379 rte_cryptodev_trace_asym_get_xform_string, 380 RTE_TRACE_POINT_ARGS(enum rte_crypto_asym_xform_type xform_enum, 381 const char *xform_string), 382 rte_trace_point_emit_int(xform_enum); 383 rte_trace_point_emit_string(xform_string); 384 ) 385 386 RTE_TRACE_POINT( 387 rte_cryptodev_trace_asym_xform_capability_check_modlen, 388 RTE_TRACE_POINT_ARGS(const void *capability, uint16_t modlen, int ret), 389 rte_trace_point_emit_ptr(capability); 390 rte_trace_point_emit_u16(modlen); 391 rte_trace_point_emit_int(ret); 392 ) 393 394 RTE_TRACE_POINT( 395 rte_cryptodev_trace_sym_cpu_crypto_process, 396 RTE_TRACE_POINT_ARGS(uint8_t dev_id, const void *sess), 397 rte_trace_point_emit_u8(dev_id); 398 rte_trace_point_emit_ptr(sess); 399 ) 400 401 RTE_TRACE_POINT( 402 rte_cryptodev_trace_sym_session_get_user_data, 403 RTE_TRACE_POINT_ARGS(const void *sess, const void *data), 404 rte_trace_point_emit_ptr(sess); 405 rte_trace_point_emit_ptr(data); 406 ) 407 408 RTE_TRACE_POINT( 409 rte_cryptodev_trace_sym_session_set_user_data, 410 RTE_TRACE_POINT_ARGS(const void *sess, const void *data, uint16_t size), 411 rte_trace_point_emit_ptr(sess); 412 rte_trace_point_emit_ptr(data); 413 rte_trace_point_emit_u16(size); 414 ) 415 416 RTE_TRACE_POINT( 417 rte_cryptodev_trace_get_qp_status, 418 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t queue_pair_id, int ret), 419 rte_trace_point_emit_u8(dev_id); 420 rte_trace_point_emit_u16(queue_pair_id); 421 rte_trace_point_emit_int(ret); 422 ) 423 424 RTE_TRACE_POINT( 425 rte_cryptodev_trace_configure_raw_dp_ctx, 426 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, int sess_type), 427 rte_trace_point_emit_u8(dev_id); 428 rte_trace_point_emit_u16(qp_id); 429 rte_trace_point_emit_int(sess_type); 430 ) 431 432 RTE_TRACE_POINT( 433 rte_cryptodev_trace_get_raw_dp_ctx_size, 434 RTE_TRACE_POINT_ARGS(uint8_t dev_id), 435 rte_trace_point_emit_u8(dev_id); 436 ) 437 438 RTE_TRACE_POINT( 439 rte_cryptodev_trace_add_deq_callback, 440 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *cb_fn), 441 rte_trace_point_emit_u8(dev_id); 442 rte_trace_point_emit_u16(qp_id); 443 rte_trace_point_emit_ptr(cb_fn); 444 ) 445 446 RTE_TRACE_POINT( 447 rte_cryptodev_trace_add_enq_callback, 448 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *cb_fn), 449 rte_trace_point_emit_u8(dev_id); 450 rte_trace_point_emit_u16(qp_id); 451 rte_trace_point_emit_ptr(cb_fn); 452 ) 453 454 RTE_TRACE_POINT( 455 rte_cryptodev_trace_remove_deq_callback, 456 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *fn), 457 rte_trace_point_emit_u8(dev_id); 458 rte_trace_point_emit_u16(qp_id); 459 rte_trace_point_emit_ptr(fn); 460 ) 461 462 RTE_TRACE_POINT( 463 rte_cryptodev_trace_remove_enq_callback, 464 RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *fn), 465 rte_trace_point_emit_u8(dev_id); 466 rte_trace_point_emit_u16(qp_id); 467 rte_trace_point_emit_ptr(fn); 468 ) 469 470 RTE_TRACE_POINT( 471 rte_cryptodev_trace_asym_session_get_user_data, 472 RTE_TRACE_POINT_ARGS(const void *sess, const void *data), 473 rte_trace_point_emit_ptr(sess); 474 rte_trace_point_emit_ptr(data); 475 ) 476 477 RTE_TRACE_POINT( 478 rte_cryptodev_trace_asym_session_set_user_data, 479 RTE_TRACE_POINT_ARGS(const void *sess, const void *data, uint16_t size), 480 rte_trace_point_emit_ptr(sess); 481 rte_trace_point_emit_ptr(data); 482 rte_trace_point_emit_u16(size); 483 ) 484 485 RTE_TRACE_POINT( 486 rte_cryptodev_trace_session_event_mdata_set, 487 RTE_TRACE_POINT_ARGS(uint8_t dev_id, const void *sess, int op_type, 488 int sess_type, const void *ev_mdata, uint16_t size), 489 rte_trace_point_emit_u8(dev_id); 490 rte_trace_point_emit_ptr(sess); 491 rte_trace_point_emit_int(op_type); 492 rte_trace_point_emit_int(sess_type); 493 rte_trace_point_emit_ptr(ev_mdata); 494 rte_trace_point_emit_u16(size); 495 ) 496 497 RTE_TRACE_POINT( 498 rte_cryptodev_trace_allocate_driver, 499 RTE_TRACE_POINT_ARGS(const char *name), 500 rte_trace_point_emit_string(name); 501 ) 502 503 RTE_TRACE_POINT( 504 rte_cryptodev_trace_op_pool_create, 505 RTE_TRACE_POINT_ARGS(const char *name, int socket_id, int type, 506 uint32_t nb_elts, const void *mp), 507 rte_trace_point_emit_string(name); 508 rte_trace_point_emit_int(socket_id); 509 rte_trace_point_emit_int(type); 510 rte_trace_point_emit_u32(nb_elts); 511 rte_trace_point_emit_ptr(mp); 512 ) 513 514 RTE_TRACE_POINT( 515 rte_cryptodev_trace_asym_xform_capability_check_optype, 516 RTE_TRACE_POINT_ARGS(uint32_t op_types, 517 enum rte_crypto_asym_op_type op_type, int ret), 518 rte_trace_point_emit_u32(op_types); 519 rte_trace_point_emit_int(op_type); 520 rte_trace_point_emit_int(ret); 521 ) 522 523 RTE_TRACE_POINT( 524 rte_cryptodev_trace_asym_xform_capability_check_hash, 525 RTE_TRACE_POINT_ARGS(uint64_t hash_algos, 526 enum rte_crypto_auth_algorithm hash, int ret), 527 rte_trace_point_emit_u64(hash_algos); 528 rte_trace_point_emit_int(hash); 529 rte_trace_point_emit_int(ret); 530 ) 531 532 RTE_TRACE_POINT( 533 rte_cryptodev_trace_count, 534 RTE_TRACE_POINT_ARGS(uint8_t nb_devs), 535 rte_trace_point_emit_u8(nb_devs); 536 ) 537 538 #ifdef __cplusplus 539 } 540 #endif 541 542 #endif /* CRYPTODEV_TRACE_H */ 543