| 406 | } |
| 407 | |
| 408 | static int |
| 409 | testsuite_setup(void) |
| 410 | { |
| 411 | struct crypto_testsuite_params_asym *ts_params = &testsuite_params; |
| 412 | uint8_t valid_devs[RTE_CRYPTO_MAX_DEVS]; |
| 413 | struct rte_cryptodev_info info; |
| 414 | int ret, dev_id = -1; |
| 415 | uint32_t i, nb_devs; |
| 416 | uint16_t qp_id; |
| 417 | |
| 418 | memset(ts_params, 0, sizeof(*ts_params)); |
| 419 | |
| 420 | /* Device, op pool and session configuration for asymmetric crypto. 8< */ |
| 421 | ts_params->op_mpool = rte_crypto_op_pool_create( |
| 422 | "CRYPTO_ASYM_OP_POOL", |
| 423 | RTE_CRYPTO_OP_TYPE_ASYMMETRIC, |
| 424 | TEST_NUM_BUFS, 0, |
| 425 | 0, |
| 426 | rte_socket_id()); |
| 427 | if (ts_params->op_mpool == NULL) { |
| 428 | RTE_LOG(ERR, USER1, "Can't create ASYM_CRYPTO_OP_POOL\n"); |
| 429 | return TEST_FAILED; |
| 430 | } |
| 431 | |
| 432 | /* Create an OPENSSL device if required */ |
| 433 | if (gbl_driver_id == rte_cryptodev_driver_id_get( |
| 434 | RTE_STR(CRYPTODEV_NAME_OPENSSL_PMD))) { |
| 435 | nb_devs = rte_cryptodev_device_count_by_driver( |
| 436 | rte_cryptodev_driver_id_get( |
| 437 | RTE_STR(CRYPTODEV_NAME_OPENSSL_PMD))); |
| 438 | if (nb_devs < 1) { |
| 439 | ret = rte_vdev_init( |
| 440 | RTE_STR(CRYPTODEV_NAME_OPENSSL_PMD), |
| 441 | NULL); |
| 442 | |
| 443 | TEST_ASSERT(ret == 0, "Failed to create " |
| 444 | "instance of pmd : %s", |
| 445 | RTE_STR(CRYPTODEV_NAME_OPENSSL_PMD)); |
| 446 | } |
| 447 | } |
| 448 | |
| 449 | /* Get list of valid crypto devs */ |
| 450 | nb_devs = rte_cryptodev_devices_get( |
| 451 | rte_cryptodev_driver_name_get(gbl_driver_id), |
| 452 | valid_devs, RTE_CRYPTO_MAX_DEVS); |
| 453 | if (nb_devs < 1) { |
| 454 | RTE_LOG(ERR, USER1, "No crypto devices found?\n"); |
| 455 | return TEST_SKIPPED; |
| 456 | } |
| 457 | |
| 458 | /* |
| 459 | * Get first valid asymmetric device found in test suite param and |
| 460 | * break |
| 461 | */ |
| 462 | for (i = 0; i < nb_devs ; i++) { |
| 463 | rte_cryptodev_info_get(valid_devs[i], &info); |
| 464 | if (info.feature_flags & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) { |
| 465 | dev_id = ts_params->valid_devs[0] = valid_devs[i]; |
nothing calls this directly
no test coverage detected