common/sfc_efx/base: add NIC magic check on BAR lookup
[dpdk.git] / app / test / test_cryptodev.c
index 42e4705..153d001 100644 (file)
@@ -631,7 +631,7 @@ testsuite_teardown(void)
 }
 
 static int
-ut_setup(void)
+dev_configure_and_start(uint64_t ff_disable)
 {
        struct crypto_testsuite_params *ts_params = &testsuite_params;
        struct crypto_unittest_params *ut_params = &unittest_params;
@@ -643,7 +643,7 @@ ut_setup(void)
 
        /* Reconfigure device to default parameters */
        ts_params->conf.socket_id = SOCKET_ID_ANY;
-       ts_params->conf.ff_disable = RTE_CRYPTODEV_FF_SECURITY;
+       ts_params->conf.ff_disable = ff_disable;
        ts_params->qp_conf.nb_descriptors = MAX_NUM_OPS_INFLIGHT;
        ts_params->qp_conf.mp_session = ts_params->session_mpool;
        ts_params->qp_conf.mp_session_private = ts_params->session_priv_mpool;
@@ -673,6 +673,20 @@ ut_setup(void)
        return TEST_SUCCESS;
 }
 
+static int
+ut_setup(void)
+{
+       /* Configure and start the device with security feature disabled */
+       return dev_configure_and_start(RTE_CRYPTODEV_FF_SECURITY);
+}
+
+static int
+ut_setup_security(void)
+{
+       /* Configure and start the device with no features disabled */
+       return dev_configure_and_start(0);
+}
+
 static void
 ut_teardown(void)
 {
@@ -7073,7 +7087,8 @@ test_authenticated_encryption(const struct aead_test_data *tdata)
 
 #ifdef RTE_LIBRTE_SECURITY
 static int
-security_proto_supported(enum rte_security_session_protocol proto)
+security_proto_supported(enum rte_security_session_action_type action,
+       enum rte_security_session_protocol proto)
 {
        struct crypto_testsuite_params *ts_params = &testsuite_params;
 
@@ -7093,7 +7108,8 @@ security_proto_supported(enum rte_security_session_protocol proto)
 
        while ((capability = &capabilities[i++])->action !=
                        RTE_SECURITY_ACTION_TYPE_NONE) {
-               if (capability->protocol == proto)
+               if (capability->action == action &&
+                               capability->protocol == proto)
                        return 0;
        }
 
@@ -7125,7 +7141,7 @@ test_pdcp_proto(int i, int oop,
        /* Verify the capabilities */
        struct rte_security_capability_idx sec_cap_idx;
 
-       sec_cap_idx.action = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
+       sec_cap_idx.action = ut_params->type;
        sec_cap_idx.protocol = RTE_SECURITY_PROTOCOL_PDCP;
        sec_cap_idx.pdcp.domain = pdcp_test_params[i].domain;
        if (rte_security_capability_get(ctx, &sec_cap_idx) == NULL)
@@ -7151,9 +7167,6 @@ test_pdcp_proto(int i, int oop,
                rte_pktmbuf_append(ut_params->obuf, output_vec_len);
        }
 
-       /* Set crypto type as IPSEC */
-       ut_params->type = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
-
        /* Setup Cipher Parameters */
        ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
        ut_params->cipher_xform.cipher.algo = pdcp_test_params[i].cipher_alg;
@@ -7181,7 +7194,7 @@ test_pdcp_proto(int i, int oop,
        }
 
        struct rte_security_session_conf sess_conf = {
-               .action_type = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL,
+               .action_type = ut_params->type,
                .protocol = RTE_SECURITY_PROTOCOL_PDCP,
                {.pdcp = {
                        .bearer = pdcp_test_bearer[i],
@@ -7315,7 +7328,7 @@ test_pdcp_proto_SGL(int i, int oop,
        /* Verify the capabilities */
        struct rte_security_capability_idx sec_cap_idx;
 
-       sec_cap_idx.action = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
+       sec_cap_idx.action = ut_params->type;
        sec_cap_idx.protocol = RTE_SECURITY_PROTOCOL_PDCP;
        sec_cap_idx.pdcp.domain = pdcp_test_params[i].domain;
        if (rte_security_capability_get(ctx, &sec_cap_idx) == NULL)
@@ -7425,8 +7438,6 @@ test_pdcp_proto_SGL(int i, int oop,
                ut_params->obuf->nb_segs = segs;
        }
 
-       ut_params->type = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
-
        /* Setup Cipher Parameters */
        ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
        ut_params->cipher_xform.cipher.algo = pdcp_test_params[i].cipher_alg;
@@ -7452,7 +7463,7 @@ test_pdcp_proto_SGL(int i, int oop,
        }
 
        struct rte_security_session_conf sess_conf = {
-               .action_type = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL,
+               .action_type = ut_params->type,
                .protocol = RTE_SECURITY_PROTOCOL_PDCP,
                {.pdcp = {
                        .bearer = pdcp_test_bearer[i],
@@ -7711,6 +7722,7 @@ static int
 test_PDCP_PROTO_all(void)
 {
        struct crypto_testsuite_params *ts_params = &testsuite_params;
+       struct crypto_unittest_params *ut_params = &unittest_params;
        struct rte_cryptodev_info dev_info;
        int status;
 
@@ -7720,7 +7732,13 @@ test_PDCP_PROTO_all(void)
        if (!(feat_flags & RTE_CRYPTODEV_FF_SECURITY))
                return -ENOTSUP;
 
-       if (security_proto_supported(RTE_SECURITY_PROTOCOL_PDCP) < 0)
+       /* Set action type */
+       ut_params->type = gbl_action_type == RTE_SECURITY_ACTION_TYPE_NONE ?
+               RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL :
+               gbl_action_type;
+
+       if (security_proto_supported(ut_params->type,
+                       RTE_SECURITY_PROTOCOL_PDCP) < 0)
                return -ENOTSUP;
 
        status = test_PDCP_PROTO_cplane_encap_all();
@@ -7760,7 +7778,7 @@ test_docsis_proto_uplink(int i, struct docsis_test_data *d_td)
        const struct rte_cryptodev_symmetric_capability *sym_cap;
        int j = 0;
 
-       sec_cap_idx.action = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
+       sec_cap_idx.action = ut_params->type;
        sec_cap_idx.protocol = RTE_SECURITY_PROTOCOL_DOCSIS;
        sec_cap_idx.docsis.direction = RTE_SECURITY_DOCSIS_UPLINK;
 
@@ -7796,9 +7814,6 @@ test_docsis_proto_uplink(int i, struct docsis_test_data *d_td)
 
        memcpy(ciphertext, d_td->ciphertext.data, d_td->ciphertext.len);
 
-       /* Set session action type */
-       ut_params->type = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
-
        /* Setup cipher session parameters */
        ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
        ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI;
@@ -7938,7 +7953,7 @@ test_docsis_proto_downlink(int i, struct docsis_test_data *d_td)
        const struct rte_cryptodev_symmetric_capability *sym_cap;
        int j = 0;
 
-       sec_cap_idx.action = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
+       sec_cap_idx.action = ut_params->type;
        sec_cap_idx.protocol = RTE_SECURITY_PROTOCOL_DOCSIS;
        sec_cap_idx.docsis.direction = RTE_SECURITY_DOCSIS_DOWNLINK;
 
@@ -7974,9 +7989,6 @@ test_docsis_proto_downlink(int i, struct docsis_test_data *d_td)
 
        memcpy(plaintext, d_td->plaintext.data, d_td->plaintext.len);
 
-       /* Set session action type */
-       ut_params->type = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL;
-
        /* Setup cipher session parameters */
        ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
        ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI;
@@ -8192,6 +8204,7 @@ static int
 test_DOCSIS_PROTO_all(void)
 {
        struct crypto_testsuite_params *ts_params = &testsuite_params;
+       struct crypto_unittest_params *ut_params = &unittest_params;
        struct rte_cryptodev_info dev_info;
        int status;
 
@@ -8201,7 +8214,13 @@ test_DOCSIS_PROTO_all(void)
        if (!(feat_flags & RTE_CRYPTODEV_FF_SECURITY))
                return -ENOTSUP;
 
-       if (security_proto_supported(RTE_SECURITY_PROTOCOL_DOCSIS) < 0)
+       /* Set action type */
+       ut_params->type = gbl_action_type == RTE_SECURITY_ACTION_TYPE_NONE ?
+               RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL :
+               gbl_action_type;
+
+       if (security_proto_supported(ut_params->type,
+                       RTE_SECURITY_PROTOCOL_DOCSIS) < 0)
                return -ENOTSUP;
 
        status = test_DOCSIS_PROTO_uplink_all();
@@ -12533,9 +12552,9 @@ static struct unit_test_suite cryptodev_testsuite  = {
                        test_verify_auth_aes_cmac_cipher_null_test_case_1),
 
 #ifdef RTE_LIBRTE_SECURITY
-               TEST_CASE_ST(ut_setup, ut_teardown,
+               TEST_CASE_ST(ut_setup_security, ut_teardown,
                        test_PDCP_PROTO_all),
-               TEST_CASE_ST(ut_setup, ut_teardown,
+               TEST_CASE_ST(ut_setup_security, ut_teardown,
                        test_DOCSIS_PROTO_all),
 #endif
                TEST_CASES_END() /**< NULL terminate unit test array */
@@ -12669,9 +12688,7 @@ test_cryptodev_qat(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_QAT_SYM_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "QAT PMD must be loaded. Check that both "
-               "CONFIG_RTE_LIBRTE_PMD_QAT and CONFIG_RTE_LIBRTE_PMD_QAT_SYM "
-               "are enabled in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "QAT PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12685,9 +12702,7 @@ test_cryptodev_virtio(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_VIRTIO_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "VIRTIO PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "VIRTIO PMD must be loaded.\n");
                return TEST_FAILED;
        }
 
@@ -12701,9 +12716,7 @@ test_cryptodev_aesni_mb(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "AESNI MB PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_AESNI_MB is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "AESNI MB PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12720,9 +12733,7 @@ test_cryptodev_cpu_aesni_mb(void)
                        RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "AESNI MB PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_AESNI_MB is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "AESNI MB PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12740,9 +12751,7 @@ test_cryptodev_openssl(void)
                        RTE_STR(CRYPTODEV_NAME_OPENSSL_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "OPENSSL PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_OPENSSL is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "OPENSSL PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12756,9 +12765,7 @@ test_cryptodev_aesni_gcm(void)
                        RTE_STR(CRYPTODEV_NAME_AESNI_GCM_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "AESNI GCM PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_AESNI_GCM is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "AESNI GCM PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12775,9 +12782,7 @@ test_cryptodev_cpu_aesni_gcm(void)
                        RTE_STR(CRYPTODEV_NAME_AESNI_GCM_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "AESNI GCM PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_AESNI_GCM is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "AESNI GCM PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12795,9 +12800,7 @@ test_cryptodev_null(void)
                        RTE_STR(CRYPTODEV_NAME_NULL_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "NULL PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_NULL is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "NULL PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12811,9 +12814,7 @@ test_cryptodev_sw_snow3g(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_SNOW3G_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "SNOW3G PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_SNOW3G is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "SNOW3G PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12827,9 +12828,7 @@ test_cryptodev_sw_kasumi(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_KASUMI_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "ZUC PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_KASUMI is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "ZUC PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12843,9 +12842,7 @@ test_cryptodev_sw_zuc(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_ZUC_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "ZUC PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_ZUC is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "ZUC PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12859,9 +12856,7 @@ test_cryptodev_armv8(void)
                        RTE_STR(CRYPTODEV_NAME_ARMV8_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "ARMV8 PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_ARMV8 is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "ARMV8 PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12875,9 +12870,7 @@ test_cryptodev_mrvl(void)
                        RTE_STR(CRYPTODEV_NAME_MVSAM_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "MVSAM PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "MVSAM PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12893,16 +12886,13 @@ test_cryptodev_scheduler(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_SCHEDULER_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "SCHEDULER PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_SCHEDULER is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "SCHEDULER PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
        if (rte_cryptodev_driver_id_get(
                                RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD)) == -1) {
-               RTE_LOG(ERR, USER1, "CONFIG_RTE_LIBRTE_PMD_AESNI_MB must be"
-                       " enabled in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "AESNI MB PMD must be loaded.\n");
                return TEST_SKIPPED;
 }
        return unit_test_suite_runner(&cryptodev_scheduler_testsuite);
@@ -12919,9 +12909,7 @@ test_cryptodev_dpaa2_sec(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_DPAA2_SEC_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "DPAA2 SEC PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "DPAA2 SEC PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12935,9 +12923,7 @@ test_cryptodev_dpaa_sec(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_DPAA_SEC_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "DPAA SEC PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_DPAA_SEC is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "DPAA SEC PMD must be loaded.\n");
                return TEST_SKIPPED;
        }
 
@@ -12951,9 +12937,7 @@ test_cryptodev_ccp(void)
                        RTE_STR(CRYPTODEV_NAME_CCP_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "CCP PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_CCP is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "CCP PMD must be loaded.\n");
                return TEST_FAILED;
        }
 
@@ -12966,10 +12950,7 @@ test_cryptodev_octeontx(void)
        gbl_driver_id = rte_cryptodev_driver_id_get(
                        RTE_STR(CRYPTODEV_NAME_OCTEONTX_SYM_PMD));
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "OCTEONTX PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO is "
-                               "enabled in config file to run this "
-                               "testsuite.\n");
+               RTE_LOG(ERR, USER1, "OCTEONTX PMD must be loaded.\n");
                return TEST_FAILED;
        }
        return unit_test_suite_runner(&cryptodev_testsuite);
@@ -12981,10 +12962,7 @@ test_cryptodev_octeontx2(void)
        gbl_driver_id = rte_cryptodev_driver_id_get(
                        RTE_STR(CRYPTODEV_NAME_OCTEONTX2_PMD));
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "OCTEON TX2 PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO is "
-                               "enabled in config file to run this "
-                               "testsuite.\n");
+               RTE_LOG(ERR, USER1, "OCTEON TX2 PMD must be loaded.\n");
                return TEST_FAILED;
        }
        return unit_test_suite_runner(&cryptodev_testsuite);
@@ -12997,9 +12975,7 @@ test_cryptodev_caam_jr(void /*argv __rte_unused, int argc __rte_unused*/)
                        RTE_STR(CRYPTODEV_NAME_CAAM_JR_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "CAAM_JR PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_CAAM_JR is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "CAAM_JR PMD must be loaded.\n");
                return TEST_FAILED;
        }
 
@@ -13013,9 +12989,7 @@ test_cryptodev_nitrox(void)
                        RTE_STR(CRYPTODEV_NAME_NITROX_PMD));
 
        if (gbl_driver_id == -1) {
-               RTE_LOG(ERR, USER1, "NITROX PMD must be loaded. Check if "
-                               "CONFIG_RTE_LIBRTE_PMD_NITROX is enabled "
-                               "in config file to run this testsuite.\n");
+               RTE_LOG(ERR, USER1, "NITROX PMD must be loaded.\n");
                return TEST_FAILED;
        }