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