X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_event_crypto_adapter.c;h=a0169aa6cf959e574a3f4da9b036cdb80d11fbe7;hb=f1ae0b3590964c0e9931c20dd0a03cb1ab92e771;hp=a8561505b713627e61135435d3e0fca71a231fcf;hpb=b2196237eb8aaa0c318caf8cfab7b7b27df696a5;p=dpdk.git diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c index a8561505b7..a0169aa6cf 100644 --- a/app/test/test_event_crypto_adapter.c +++ b/app/test/test_event_crypto_adapter.c @@ -182,9 +182,7 @@ test_op_forward_mode(uint8_t session_less) /* Setup Cipher Parameters */ cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER; cipher_xform.next = NULL; - - cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC; - cipher_xform.cipher.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT; + cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_NULL; op = rte_crypto_op_alloc(params.op_mpool, RTE_CRYPTO_OP_TYPE_SYMMETRIC); @@ -203,8 +201,8 @@ test_op_forward_mode(uint8_t session_less) &cipher_xform, params.session_priv_mpool); TEST_ASSERT_SUCCESS(ret, "Failed to init session\n"); - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, - evdev, &cap); + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, + &cap); TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA) { @@ -290,12 +288,16 @@ test_sessionless_with_op_forward_mode(void) uint32_t cap; int ret; - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev, &cap); + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, &cap); TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD) && !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW)) map_adapter_service_core(); + else { + if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD)) + return TEST_SKIPPED; + } TEST_ASSERT_SUCCESS(rte_event_crypto_adapter_start(TEST_ADAPTER_ID), "Failed to start event crypto adapter"); @@ -311,12 +313,16 @@ test_session_with_op_forward_mode(void) uint32_t cap; int ret; - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev, &cap); + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, &cap); TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD) && !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW)) map_adapter_service_core(); + else { + if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD)) + return TEST_SKIPPED; + } TEST_ASSERT_SUCCESS(rte_event_crypto_adapter_start(TEST_ADAPTER_ID ), "Failed to start event crypto adapter"); @@ -375,9 +381,7 @@ test_op_new_mode(uint8_t session_less) /* Setup Cipher Parameters */ cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER; cipher_xform.next = NULL; - - cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC; - cipher_xform.cipher.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT; + cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_NULL; op = rte_crypto_op_alloc(params.op_mpool, RTE_CRYPTO_OP_TYPE_SYMMETRIC); @@ -390,8 +394,8 @@ test_op_new_mode(uint8_t session_less) params.session_mpool); TEST_ASSERT_NOT_NULL(sess, "Session creation failed\n"); - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, - evdev, &cap); + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, + &cap); TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA) { @@ -440,12 +444,16 @@ test_sessionless_with_op_new_mode(void) uint32_t cap; int ret; - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev, &cap); + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, &cap); TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD) && !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW)) map_adapter_service_core(); + else { + if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW)) + return TEST_SKIPPED; + } /* start the event crypto adapter */ TEST_ASSERT_SUCCESS(rte_event_crypto_adapter_start(TEST_ADAPTER_ID), @@ -462,12 +470,16 @@ test_session_with_op_new_mode(void) uint32_t cap; int ret; - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev, &cap); + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, &cap); TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD) && !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW)) map_adapter_service_core(); + else { + if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW)) + return TEST_SKIPPED; + } TEST_ASSERT_SUCCESS(rte_event_crypto_adapter_start(TEST_ADAPTER_ID), "Failed to start event crypto adapter"); @@ -536,7 +548,9 @@ configure_cryptodev(void) params.session_mpool = rte_cryptodev_sym_session_pool_create( "CRYPTO_ADAPTER_SESSION_MP", - MAX_NB_SESSIONS, 0, 0, 0, SOCKET_ID_ANY); + MAX_NB_SESSIONS, 0, 0, + sizeof(union rte_event_crypto_metadata), + SOCKET_ID_ANY); TEST_ASSERT_NOT_NULL(params.session_mpool, "session mempool allocation failed\n"); @@ -678,7 +692,7 @@ test_crypto_adapter_create(void) /* Create adapter with default port creation callback */ ret = rte_event_crypto_adapter_create(TEST_ADAPTER_ID, - TEST_CDEV_ID, + evdev, &conf, 0); TEST_ASSERT_SUCCESS(ret, "Failed to create event crypto adapter\n"); @@ -691,7 +705,7 @@ test_crypto_adapter_qp_add_del(void) uint32_t cap; int ret; - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev, &cap); + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, &cap); TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND) { @@ -722,15 +736,30 @@ configure_event_crypto_adapter(enum rte_event_crypto_adapter_mode mode) uint32_t cap; int ret; + ret = rte_event_crypto_adapter_caps_get(evdev, TEST_CDEV_ID, &cap); + TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); + + /* Skip mode and capability mismatch check for SW eventdev */ + if (!(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW) && + !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD) && + !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND)) + goto adapter_create; + + if ((mode == RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD) && + !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD)) + return -ENOTSUP; + + if ((mode == RTE_EVENT_CRYPTO_ADAPTER_OP_NEW) && + !(cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_NEW)) + return -ENOTSUP; + +adapter_create: /* Create adapter with default port creation callback */ ret = rte_event_crypto_adapter_create(TEST_ADAPTER_ID, - TEST_CDEV_ID, + evdev, &conf, mode); TEST_ASSERT_SUCCESS(ret, "Failed to create event crypto adapter\n"); - ret = rte_event_crypto_adapter_caps_get(TEST_ADAPTER_ID, evdev, &cap); - TEST_ASSERT_SUCCESS(ret, "Failed to get adapter capabilities\n"); - if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND) { ret = rte_event_crypto_adapter_queue_pair_add(TEST_ADAPTER_ID, TEST_CDEV_ID, TEST_CDEV_QP_ID, &response_info); @@ -785,6 +814,8 @@ test_crypto_adapter_conf(enum rte_event_crypto_adapter_mode mode) TEST_ASSERT(ret >= 0, "Failed to link queue %d " "port=%u\n", qid, params.crypto_event_port_id); + } else { + return ret; } crypto_adapter_setup_done = 1; } @@ -819,9 +850,8 @@ test_crypto_adapter_conf_op_forward_mode(void) enum rte_event_crypto_adapter_mode mode; mode = RTE_EVENT_CRYPTO_ADAPTER_OP_FORWARD; - test_crypto_adapter_conf(mode); - return TEST_SUCCESS; + return test_crypto_adapter_conf(mode); } static int @@ -830,8 +860,8 @@ test_crypto_adapter_conf_op_new_mode(void) enum rte_event_crypto_adapter_mode mode; mode = RTE_EVENT_CRYPTO_ADAPTER_OP_NEW; - test_crypto_adapter_conf(mode); - return TEST_SUCCESS; + + return test_crypto_adapter_conf(mode); } @@ -855,6 +885,27 @@ testsuite_setup(void) return TEST_SUCCESS; } +static void +crypto_adapter_teardown(void) +{ + int ret; + + ret = rte_event_crypto_adapter_stop(TEST_ADAPTER_ID); + if (ret < 0) + RTE_LOG(ERR, USER1, "Failed to stop adapter!"); + + ret = rte_event_crypto_adapter_queue_pair_del(TEST_ADAPTER_ID, + TEST_CDEV_ID, TEST_CDEV_QP_ID); + if (ret < 0) + RTE_LOG(ERR, USER1, "Failed to delete queue pair!"); + + ret = rte_event_crypto_adapter_free(TEST_ADAPTER_ID); + if (ret < 0) + RTE_LOG(ERR, USER1, "Failed to free adapter!"); + + crypto_adapter_setup_done = 0; +} + static void crypto_teardown(void) { @@ -874,6 +925,7 @@ crypto_teardown(void) params.session_mpool = NULL; } if (params.session_priv_mpool != NULL) { + rte_mempool_avail_count(params.session_priv_mpool); rte_mempool_free(params.session_priv_mpool); params.session_priv_mpool = NULL; } @@ -896,6 +948,7 @@ eventdev_teardown(void) static void testsuite_teardown(void) { + crypto_adapter_teardown(); crypto_teardown(); eventdev_teardown(); }