From: Gnanesh <gpalanethra@marvell.com>
To: <dts@dpdk.org>, <probb@iol.unh.edu>, <ccheng@iol.unh.edu>
Cc: <gpalanethra@marvell.com>, <njogarao@marvell.com>,
<brajendra@marvell.com>
Subject: [PATCH v2 1/1] tests/TestSuite_crypto_perf_cryptodev_perf:Marvell
Date: Fri, 15 Nov 2024 00:59:39 +0530 [thread overview]
Message-ID: <20241114192939.3682606-1-gpalanethra@marvell.com> (raw)
In-Reply-To: <CAJvnSUAKXwXtPe3SMwW_7iAcf1E6qj4bmz2M4+S_a+N0jfu4kw@mail.gmail.com>
Changes included in this patch:
New TestCases are added for marvell Cn10K Hardware crypto accelerator
when Testing newly added Testcases it is found Necessary to make Below Changes
tests/cryptodev_common.py
bind_qat_device function is updated to generate VFs for the given crypto_dev_id
added New function bind_mrvl_devices to accept list of PCI Ids and bind it to vfio_pci driver.
framework/crb.py
updated pci_devices_information_uncached_linux Method to handle additional Nic Speeds for Cavium,
as it was restricting only to 1 GIG NIC speed
framework/settings.py
Changed the default Cavium NIC driver to rvu_nicpf.
nics/net_device.py
added Missing expect object
conf/crypto_perf_cryptodev_perf.cfg
added Marvell Cn10K configs for crypto_perf_cryptodev_perf
framework/ssh_pexpect.py
output.replace command's output is not set before returning from get_output_all method
hence Unnecessarily returning Prompt along with the output
tests/TestSuite_crypto_perf_cryptodev_perf.py
added Marvell CN10K Testcases
Updated Below Private functions
_run_crypto_func() --> receives additional KW arguments
_run_crypto_perf() --> receives additional KW arguments
_parse_output() ---> Updated to handle Marvell Cn10K app command output
_run_crypto_perf_throughput() --> receives additional KW arguments
Signed-off-by: Gnanesh <gpalanethra@marvell.com>
---
v2:
* crb.py: Removed the check for link speed restriction for cavium nics (Discussed with the Team)
* reverted to generate_sriov_vfs() from generate_sriov_vfs_linux() in bind_qat_device() function
* bind_qat_device() renamed to bind_hardware_device(), handled for all crypto testcases
conf/crypto_perf_cryptodev_perf.cfg | 851 ++++++++++++++++++
framework/crb.py | 13 +-
framework/settings.py | 4 +-
framework/ssh_pexpect.py | 2 +-
nics/net_device.py | 3 +
tests/TestSuite_crypto_perf_cryptodev_perf.py | 322 ++++++-
tests/TestSuite_fips_cryptodev.py | 2 +-
tests/TestSuite_ipsec_gw_cryptodev_func.py | 2 +-
tests/TestSuite_l2fwd_cryptodev_func.py | 2 +-
tests/TestSuite_virtio_perf_cryptodev_func.py | 2 +-
tests/cryptodev_common.py | 27 +-
11 files changed, 1190 insertions(+), 40 deletions(-)
diff --git a/conf/crypto_perf_cryptodev_perf.cfg b/conf/crypto_perf_cryptodev_perf.cfg
index f0c86a45..d586ab82 100644
--- a/conf/crypto_perf_cryptodev_perf.cfg
+++ b/conf/crypto_perf_cryptodev_perf.cfg
@@ -3,6 +3,7 @@
l="9,10"
total-ops=30000000
buffer-sz="64,128,256,512,1024,2048"
+devtype="crypto_cn10k"
[test_verify_aesni_mb]
ptest="verify"
@@ -365,3 +366,853 @@ auth-op="generate"
auth-key-sz=16
auth-iv-sz=16
digest-sz=4
+
+# Marvell Cn10K configs
+[test_perf_mrvl_aes_cbc]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_gcm_encrypt]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="aead"
+aead-algo="aes-gcm"
+aead-op="encrypt"
+aead-key-sz="16"
+aead-iv-sz="12"
+aead-aad-sz="16"
+digest-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_cbc_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="32"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_sha2_256_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="32"
+cipher-iv-sz="16"
+auth-algo="sha2-256"
+auth-op="generate"
+auth-key-sz="0"
+digest-sz="32"
+csv-friendly="True"
+
+[test_perf_mrvl_zuc_eea3_cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="zuc-eea3"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_zuc_eia3_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="zuc-eia3"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_gmac_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="aes-gmac"
+auth-op="generate"
+auth-key-sz="32"
+auth-iv-sz="12"
+digest-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_null_cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="null"
+cipher-op="encrypt"
+cipher-key-sz="0"
+cipher-iv-sz="0"
+csv-friendly="True"
+
+[test_perf_mrvl_snow3g_uea2_cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="snow3g-uea2"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_kasumi_f8_cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="kasumi-f8"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="8"
+csv-friendly="True"
+
+[test_perf_mrvl_snow3g_uia2_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="snow3g-uia2"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_kasumi_f9_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="kasumi-f9"
+auth-op="generate"
+auth-key-sz="16"
+aead-aad-sz="0"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_sha1_hmac_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+aead-aad-sz="0"
+digest-sz="20"
+csv-friendly="True"
+
+[test_perf_mrvl_sha1_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha1"
+auth-op="generate"
+auth-key-sz="0"
+aead-aad-sz="0"
+digest-sz="20"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_ctr_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_perf_mrvl_3des_cbc_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="3des-cbc"
+cipher-op="encrypt"
+cipher-key-sz="24"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_perf_mrvl_sha1_hmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="3des-cbc"
+cipher-op="encrypt"
+cipher-key-sz="24"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_224_hmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha2-224-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="28"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_256_hmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha2-256-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="32"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_384_hmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha2-384-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="48"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_cmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="snow3g-uea2"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="aes-cmac"
+auth-op="generate"
+auth-key-sz="16"
+aead-iv-sz="0"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_ctr_snow_3g_uia2_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="snow3g-uia2"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_ctr_zuc_eia3_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="zuc-eia3"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_ctr_aes_cmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="aes-cmac"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="0"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_zuc_eea3_snow3g_uia2_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="zuc-eea3"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="snow3g-uia2"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_zuc_eea3_zuc_eia3_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="zuc-eea3"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="zuc-eia3"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_zuc_eea3_aes_cmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="zuc-eea3"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="aes-cmac"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="0"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_snow3g_uea2_snow3g_uia2_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="snow3g-uea2"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="snow3g-uia2"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_snow3g_uea2_zuc_eia3_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="snow3g-uea2"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="zuc-eia3"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_snow3g_uea2_aes_cmac_cipher_then_auth]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="1000000"
+burst-sz="32"
+buffer-sz="64"
+optype="auth-then-cipher"
+cipher-algo="snow3g-uea2"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="aes-cmac"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="0"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_md5_hmac_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="md5-hmac"
+auth-op="generate"
+auth-key-sz="64"
+aead-aad-sz="0"
+digest-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_ctr_cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="aes-ctr"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_3des_cbc_cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="3des-cbc"
+cipher-op="encrypt"
+cipher-key-sz="24"
+cipher-iv-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_224_hmac_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-224-hmac"
+auth-op="generate"
+auth-key-sz="64"
+aead-aad-sz="0"
+digest-sz="28"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_256_hmac_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-256-hmac"
+auth-op="generate"
+auth-key-sz="64"
+aead-aad-sz="0"
+digest-sz="32"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_384_hmac_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-384-hmac"
+auth-op="generate"
+auth-key-sz="64"
+aead-aad-sz="0"
+digest-sz="48"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_512_hmac_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-512-hmac"
+auth-op="generate"
+auth-key-sz="64"
+aead-aad-sz="0"
+digest-sz="64"
+csv-friendly="True"
+
+[test_perf_mrvl_aes_xts__cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="aes-xts"
+cipher-op="encrypt"
+cipher-key-sz="64"
+cipher-iv-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_des_cbc_cipher_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="des-cbc"
+cipher-op="encrypt"
+cipher-key-sz="8"
+cipher-iv-sz="8"
+csv-friendly="True"
+
+[test_perf_mrvl_md5_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="md5"
+auth-op="generate"
+auth-key-sz="0"
+aead-aad-sz="0"
+digest-sz="16"
+csv-friendly="True"
+
+[test_perf_mrvl_sha512_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-512"
+auth-op="generate"
+auth-key-sz="0"
+aead-aad-sz="0"
+digest-sz="64"
+csv-friendly="True"
+
+[test_perf_mrvl_sha384_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-384"
+auth-op="generate"
+auth-key-sz="0"
+aead-aad-sz="0"
+digest-sz="48"
+csv-friendly="True"
+
+[test_perf_mrvl_sha256_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-256"
+auth-op="generate"
+auth-key-sz="0"
+aead-aad-sz="0"
+digest-sz="32"
+csv-friendly="True"
+
+[test_perf_mrvl_sha224_auth_only]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-only"
+auth-algo="sha2-224"
+auth-op="generate"
+auth-key-sz="0"
+aead-aad-sz="0"
+digest-sz="28"
+csv-friendly="True"
+
+[test_perf_mrvl_snow3g_uea2_snow3g_uia2]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="auth-then-cipher"
+cipher-algo="snow3g-uea2"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="snow3g-uia2"
+auth-op="generate"
+auth-key-sz="16"
+auth-iv-sz="16"
+digest-sz="4"
+csv-friendly="True"
+
+[test_perf_mrvl_sha1_hmac_armv8]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_perf_mrvl_sha2_hmac_armv8]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha2-256-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_mrvl_buffer]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+# buffer-sz="[64,128,256,512,1024,1280,2048,4096,8192,16384]"
+buffer-sz="64,128,256,512,1024,1280,2048,4096,8192,16384"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="32"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_mrvl_chacha20_poly1305_aead]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="aead"
+aead-algo="chacha20-poly1305"
+aead-op="encrypt"
+aead-key-sz="32"
+aead-iv-sz="12"
+aead-aad-sz="32"
+digest-sz="16"
+csv-friendly="True"
+
+[test_mrvl_crypto_sha2_hmac_armv8]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha2-256-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_mrvl_devtype]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-only"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+csv-friendly="True"
+
+[test_mrvl_crypto_sha1_hmac_armv8]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="16"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_mrvl_ptest]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="32"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
+
+[test_mrvl_burst]
+silent="True"
+ptest="throughput"
+pool-sz="16384"
+total-ops="10000000"
+burst-sz="16, 24, 32"
+optype="cipher-then-auth"
+cipher-algo="aes-cbc"
+cipher-op="encrypt"
+cipher-key-sz="32"
+cipher-iv-sz="16"
+auth-algo="sha1-hmac"
+auth-op="generate"
+auth-key-sz="64"
+digest-sz="20"
+csv-friendly="True"
diff --git a/framework/crb.py b/framework/crb.py
index 9e3b0a58..323c6bcd 100644
--- a/framework/crb.py
+++ b/framework/crb.py
@@ -374,18 +374,7 @@ class Crb(object):
pass
for i in range(len(match)):
- # check if device is cavium and check its linkspeed, append only if it is 10G
- if "177d:" in match[i][1]:
- linkspeed = "10000"
- nic_linkspeed = self.send_expect(
- "cat /sys/bus/pci/devices/%s/net/*/speed" % match[i][0],
- "# ",
- alt_session=True,
- )
- if nic_linkspeed.split()[0] == linkspeed:
- self.pci_devices_info.append((match[i][0], match[i][1]))
- else:
- self.pci_devices_info.append((match[i][0], match[i][1]))
+ self.pci_devices_info.append((match[i][0], match[i][1]))
def pci_devices_information_uncached_freebsd(self):
"""
diff --git a/framework/settings.py b/framework/settings.py
index 1a561dda..b2c371f8 100644
--- a/framework/settings.py
+++ b/framework/settings.py
@@ -166,8 +166,8 @@ DRIVERS = {
"cavium_a034": "thunder-nicvf",
"cavium_0011": "thunder-nicvf",
"IXGBE_10G-X550EM_X_SFP": "ixgbe",
- "cavium_a063": "octeontx2-nicpf",
- "cavium_a064": "octeontx2-nicvf",
+ "cavium_a063": "rvu_nicpf",
+ "cavium_a064": "rvu_nicvf",
"ICE_100G-E810C_QSFP": "ice",
"ICE_25G-E810C_SFP": "ice",
"ICE_25G-E823C_QSFP": "ice",
diff --git a/framework/ssh_pexpect.py b/framework/ssh_pexpect.py
index 2132c066..a96087d2 100644
--- a/framework/ssh_pexpect.py
+++ b/framework/ssh_pexpect.py
@@ -186,7 +186,7 @@ class SSHPexpect:
def get_output_all(self):
output = self.session.before
- output.replace("[PEXPECT]", "")
+ output = output.replace("[PEXPECT]#", "")
return output
def close(self, force=False):
diff --git a/nics/net_device.py b/nics/net_device.py
index 0f9c1af4..dd0d0e92 100644
--- a/nics/net_device.py
+++ b/nics/net_device.py
@@ -43,6 +43,7 @@ class NetDevice(object):
if not isinstance(crb, Crb):
raise Exception(" Please input the instance of Crb!!!")
self.crb = crb
+ self.__send_expect = self.crb.send_expect
self.domain_id = domain_id
self.bus_id = bus_id
self.devfun_id = devfun_id
@@ -727,6 +728,8 @@ class NetDevice(object):
"/sys/bus/pci/devices/%s:%s:%s" % (domain_id, bus_id, devfun_id),
vf_reg_file,
)
+ self.__send_expect("echo 0 > %s" %
+ (vf_reg_path), "# ")
self.__send_expect("echo %d > %s" % (int(vf_num), vf_reg_path), "# ")
def generate_sriov_vfs_linux_igb_uio(self, domain_id, bus_id, devfun_id, vf_num):
diff --git a/tests/TestSuite_crypto_perf_cryptodev_perf.py b/tests/TestSuite_crypto_perf_cryptodev_perf.py
index a3f48eee..8ac605d0 100644
--- a/tests/TestSuite_crypto_perf_cryptodev_perf.py
+++ b/tests/TestSuite_crypto_perf_cryptodev_perf.py
@@ -59,14 +59,74 @@ class TestCryptoPerfCryptodevPerf(TestCase):
"# ",
5,
)
-
- cc.bind_qat_device(self, "vfio-pci")
+ if self.nic == "cavium_a063":
+ count = len(self.get_suite_cfg().get('l').split(",")) - 1
+ cc.bind_hardware_device(self, "vfio-pci", generate_vfs=True, vf_count=count)
+ else:
+ cc.bind_hardware_device(self, "vfio-pci")
src_files = ["dep/test_aes_cbc.data", "dep/test_aes_gcm.data"]
self.dut_file_dir = "/tmp"
for file in src_files:
self.dut.session.copy_file_to(file, self.dut_file_dir)
def tear_down_all(self):
+ if self.nic == "cavium_a063":
+ cc.bind_hardware_device(self, "vfio-pci", generate_vfs=True,
+ vf_count=2)
+ import pandas as pd
+ tuples = [('TestCase',), ('performance', 'failed_enq'),
+ ('performance', 'failed_deq'),
+ ('performance', 'throughput_mops'),
+ ('performance', 'cycle_buf'),
+ ('performance', 'throughput', 'value'),
+ ('performance', 'throughput', 'delta'),
+ ('parameters', 'core_num/thread_num'),
+ ('parameters', 'frame_size'),
+ ('parameters', 'burst_size'),
+ ('parameters', 'total_ops'), ('status',)]
+ mindex = pd.MultiIndex.from_tuples(tuples)
+ index = 0
+ df = pd.DataFrame([], columns=mindex)
+ for tname, data in self._perf_result.items():
+ for dt in data:
+ for key, value in dt.items():
+ df.loc[index, 'TestCase'] = tname
+ if key == 'status':
+ df.loc[index, (key)] = value
+ continue
+ for item in value:
+ if item['name'] == 'throughput':
+ df.loc[index, (key, item['name'], 'value')] = item['value']
+ df.loc[index, (key, item['name'], 'delta')] = item['delta']
+ else:
+ df.loc[index, (key, item['name'])] = item['value']
+ index += 1
+ perf_xl = self.logger.log_path + "/" + "perf_cryptodev_result.xls"
+ writer = pd.ExcelWriter(perf_xl, engine='xlsxwriter')
+ wb = writer.book
+ df.to_excel(writer, sheet_name='Sheet1')
+ ws = writer.sheets["Sheet1"]
+ merge_format = wb.add_format({"bold": 1,"border": 1,"align": "center",
+ "valign": "vcenter"})
+ ws.merge_range('B1:B3', "TestCase", merge_format)
+ ws.merge_range('C2:C3', "failed_enq", merge_format)
+ ws.merge_range('D2:D3', "failed_deq", merge_format)
+ ws.merge_range('E2:E3', "throughput_mops", merge_format)
+ ws.merge_range('F2:F3', "throughput_mops", merge_format)
+ ws.merge_range('I2:I3', "core_num/thread_num", merge_format)
+ ws.merge_range('J2:J3', "frame_size", merge_format)
+ ws.merge_range('K2:K3', "burst_size", merge_format)
+ ws.merge_range('L2:L3', "total_ops", merge_format)
+ ws.merge_range('M1:M3', "status", merge_format)
+
+ format1 = wb.add_format({"bg_color": "#C6EFCE", "font_color": "#006100", "border": 1})
+ format2 = wb.add_format({"bg_color": "#FFC7CE", "font_color": "#9C0006"})
+ ws.conditional_format("B1:M3", {"type": "cell", "criteria": ">=", "value": 0 , 'format': format2})
+ condition = 'B5:M%s'%(5+len(df)-1)
+ ws.conditional_format(condition, {'type': 'no_blanks', 'format':format1})
+ ws.autofit()
+
+ wb.close()
if self._perf_result:
with open(
self.logger.log_path + "/" + "perf_cryptodev_result.json", "a"
@@ -175,12 +235,197 @@ class TestCryptoPerfCryptodevPerf(TestCase):
def test_scheduler_zuc(self):
self._run_crypto_perf_throughput()
+ # Marvell CN10K Testcases
+ def _crypto_func_cn10k(self):
+ """Functional tests Helper
+ Returns:
+ None
+ """
+ self._run_crypto_func()
+
+ def _crypto_perf_cn10k(self):
+ """Perf tests Helper function
+ Returns:
+ None
+ """
+ self._run_crypto_perf_throughput(expected="# ",
+ trim_whitespace=False)
+ def test_perf_mrvl_aes_cbc(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_gcm_encrypt(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_cbc_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_sha2_256_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_zuc_eea3_cipher_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_zuc_eia3_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_gmac_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_null_cipher_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_snow3g_uea2_cipher_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_kasumi_f8_cipher_only(self):
+ self._crypto_perf_cn10k() #F
+
+ def test_perf_mrvl_snow3g_uia2_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_kasumi_f9_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha1_hmac_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha1_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_ctr_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_ctr_snow_3g_uia2_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_cmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_3des_cbc_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha1_hmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_224_hmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_256_hmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_384_hmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_ctr_snow_3g_uia2_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_ctr_zuc_eia3_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_ctr_aes_cmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_zuc_eea3_snow3g_uia2_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_zuc_eea3_zuc_eia3_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_zuc_eea3_aes_cmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_snow3g_uea2_snow3g_uia2_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_snow3g_uea2_zuc_eia3_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_snow3g_uea2_aes_cmac_cipher_then_auth(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_md5_hmac_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_ctr_cipher_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_3des_cbc_cipher_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_224_hmac_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_256_hmac_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_384_hmac_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_512_hmac_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_aes_xts__cipher_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_des_cbc_cipher_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_md5_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha512_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha384_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha256_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha224_auth_only(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_snow3g_uea2_snow3g_uia2(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha1_hmac_armv8(self):
+ self._crypto_perf_cn10k()
+
+ def test_perf_mrvl_sha2_hmac_armv8(self):
+ self._crypto_perf_cn10k()
+
+ def test_mrvl_ptest(self):
+ self._crypto_func_cn10k()
+
+ def test_mrvl_burst(self):
+ self._crypto_func_cn10k()
+
+ def test_mrvl_devtype(self):
+ self._crypto_func_cn10k()
+
+ def test_mrvl_crypto_sha1_hmac_armv8(self):
+ self._crypto_func_cn10k()
+
+ def test_mrvl_chacha20_poly1305_aead(self):
+ self._crypto_func_cn10k()
+
+ def test_mrvl_crypto_sha2_hmac_armv8(self):
+ self._crypto_func_cn10k()
+
+ def test_mrvl_buffer(self):
+ self._crypto_func_cn10k()
+
# Private functions
def _run_crypto_func(self):
+ """ Runs Crypto functional test.
+ Returns:
+ None
+ """
+
if cc.is_test_skip(self):
return
-
- cores = ",".join(self.dut.get_core_list("1S/2C/1T"))
+ core_list = self.get_suite_cfg().get('core_list',"1S/2C/1T")
+ cores = ",".join(self.dut.get_core_list(core_list))
config = {"l": cores}
devices = self._get_crypto_device(1)
if not devices:
@@ -206,12 +451,22 @@ class TestCryptoPerfCryptodevPerf(TestCase):
out = self.dut.send_command(
"cat %s/%s.txt" % (self.dut_file_dir, self.running_case), 30
- )
-
+ ).strip()
self.verify("Error" not in out, "Test function failed")
self.verify("failed" not in out, "Test function failed")
-
- def _run_crypto_perf(self):
+ assert (out != ""), "No output"
+
+ def _run_crypto_perf(self, **kwargs):
+ """ Runs Crypto Performance test.
+ Args:
+ **kwargs:
+ expected: send_expect match prompt
+ trim_whitespace: trime whitespace from command output
+ Returns:
+ None
+ """
+ expected = kwargs.get("expected", "#")
+ trim_whitespace = kwargs.get("trim_whitespace", True)
if cc.is_test_skip(self):
return "skip"
@@ -222,13 +477,14 @@ class TestCryptoPerfCryptodevPerf(TestCase):
return "skip"
eal_opt_str = cc.get_eal_opt_str(self, devices)
- crypto_perf_opt_str = self._get_crypto_perf_opt_str()
+ crypto_perf_opt_str = self._get_crypto_perf_opt_str(**kwargs)
cmd_str = cc.get_dpdk_app_cmd_str(
self._app_path, eal_opt_str, crypto_perf_opt_str
)
try:
- out = self.dut.send_expect(cmd_str, "#", 600)
+ out = self.dut.send_expect(cmd_str, expected, 600,
+ trim_whitespace=trim_whitespace)
except Exception as ex:
self.logger.error(ex)
raise ex
@@ -237,25 +493,44 @@ class TestCryptoPerfCryptodevPerf(TestCase):
return results
- def _get_crypto_perf_opt_str(self, override_crypto_perf_opts={}):
+ def _get_crypto_perf_opt_str(self, **kwargs):
+ """get crypto perf app option string
+ args:
+ **kwargs:
+ override_crypto_perf_opts- Suite/Case specfic perf
+ app config to overwrite defaults
+ Returns:
+ crypto perf option string
+ """
+ override_crypto_perf_opts = kwargs.get("override_crypto_perf_opts", {})
return cc.get_opt_str(
self, self._default_crypto_perf_opts, override_crypto_perf_opts
)
def _parse_output(self, output):
try:
+ dtype = self.get_case_cfg().get('devtype')
+ match_str = r" lcore id|#lcore id"
lines = output.split("\r\n")
line_nb = len(lines)
self.logger.debug("Total output lines: " + str(line_nb))
for line_index in range(line_nb):
- if lines[line_index].startswith(" lcore id"):
+ if re.match(match_str, lines[line_index]):
self.logger.debug("data output line from: " + str(line_index))
break
- data_line = line_index - 1
+ if dtype == 'crypto_cn10k':
+ data_line = line_index + 2
+ else:
+ data_line = line_index - 1
+
+ if len(lines[data_line].split(","))>1:
+ pattern = re.compile(r',')
+ else:
+ pattern = re.compile(r'\s+')
results = []
- pattern = re.compile(r"\s+")
+
for line in lines[data_line:-1]:
print(line)
result = {}
@@ -334,9 +609,15 @@ class TestCryptoPerfCryptodevPerf(TestCase):
cpu_info[key] = value.strip()
core, thread = 0, 0
lcores = self.get_case_cfg()["l"].split(",")
+ if 'Core(s) per cluster' in out:
+ cl_soc1 = 'Core(s) per cluster'
+ cl_soc2 = 'Cluster(s)'
+ else:
+ cl_soc1 = 'Core(s) per socket'
+ cl_soc2 = 'Socket(s)'
for lcore in lcores[1:]:
- if int(lcore.strip()) < int(cpu_info["Core(s) per socket"]) * int(
- cpu_info["Socket(s)"]
+ if int(lcore.strip()) < int(cpu_info[cl_soc1]) * int(
+ cpu_info[cl_soc2]
):
core += 1
thread += 1
@@ -362,6 +643,11 @@ class TestCryptoPerfCryptodevPerf(TestCase):
dev = "crypto_snow3g"
elif self.get_case_cfg()["devtype"] == "crypto_zuc":
dev = "crypto_zuc"
+ elif self.get_case_cfg()["devtype"] == "crypto_cn10k":
+ dev = "crypto_cn10k"
+ vf = cc.get_qat_devices(self, cpm_num=1, num=num)
+ device["a"] = ' -a '.join(vf)
+ device["vdev"] = None
elif self.get_case_cfg()["devtype"] == "crypto_scheduler":
dev = "crypto_scheduler"
w = cc.get_qat_devices(self, cpm_num=3, num=num * 3)
@@ -388,8 +674,8 @@ class TestCryptoPerfCryptodevPerf(TestCase):
return device
- def _run_crypto_perf_throughput(self):
- results = self._run_crypto_perf()
+ def _run_crypto_perf_throughput(self, **kwargs):
+ results = self._run_crypto_perf(**kwargs)
if results == "skip":
return
self.verify(results, "test results is none, Test Failed")
diff --git a/tests/TestSuite_fips_cryptodev.py b/tests/TestSuite_fips_cryptodev.py
index eb8ffc30..f8ec1ba3 100644
--- a/tests/TestSuite_fips_cryptodev.py
+++ b/tests/TestSuite_fips_cryptodev.py
@@ -15,7 +15,7 @@ class TestFipsCryptodev(TestCase):
self.verify("Error" not in out, "Compilation error")
self.verify("No such" not in out, "Compilation error")
self.vf_driver = self.get_suite_cfg()["vf_driver"]
- cc.bind_qat_device(self, "vfio-pci")
+ cc.bind_hardware_device(self, "vfio-pci")
self._app_path = self.dut.apps_name["fips_validation"]
self._default_fips_opts = {
"req-file": None,
diff --git a/tests/TestSuite_ipsec_gw_cryptodev_func.py b/tests/TestSuite_ipsec_gw_cryptodev_func.py
index d9f6f626..d91adb01 100644
--- a/tests/TestSuite_ipsec_gw_cryptodev_func.py
+++ b/tests/TestSuite_ipsec_gw_cryptodev_func.py
@@ -53,7 +53,7 @@ class TestIPsecGwCryptodevFunc(TestCase):
self.verify("Error" not in out, "Compilation error")
self.verify("No such" not in out, "Compilation error")
- cc.bind_qat_device(self, self.drivername)
+ cc.bind_hardware_device(self, self.drivername)
self._default_ipsec_gw_opts = {
"config": '"(0,0,%s),(1,0,%s)"' % tuple(self.core_list[-2:]),
diff --git a/tests/TestSuite_l2fwd_cryptodev_func.py b/tests/TestSuite_l2fwd_cryptodev_func.py
index a1f562ab..f2e60c17 100644
--- a/tests/TestSuite_l2fwd_cryptodev_func.py
+++ b/tests/TestSuite_l2fwd_cryptodev_func.py
@@ -61,7 +61,7 @@ class TestL2fwdCryptodevFunc(TestCase):
self.verify("Error" not in out, "Compilation error")
self.verify("No such" not in out, "Compilation error")
- cc.bind_qat_device(self, self.drivername)
+ cc.bind_hardware_device(self, self.drivername)
def set_up(self):
pass
diff --git a/tests/TestSuite_virtio_perf_cryptodev_func.py b/tests/TestSuite_virtio_perf_cryptodev_func.py
index 83bcf813..89ab8e45 100644
--- a/tests/TestSuite_virtio_perf_cryptodev_func.py
+++ b/tests/TestSuite_virtio_perf_cryptodev_func.py
@@ -59,7 +59,7 @@ class TestVirtioPerfCryptodevFunc(TestCase):
self.mem_channel = self.dut.get_memory_channels()
self.dut.build_dpdk_apps("./examples/vhost_crypto")
- cc.bind_qat_device(self, self.drivername)
+ cc.bind_hardware_device(self, self.drivername)
self.vf_assign_method = "vfio-pci"
self.dut.setup_modules(None, self.vf_assign_method, None)
diff --git a/tests/cryptodev_common.py b/tests/cryptodev_common.py
index b550b468..1e65fc2c 100644
--- a/tests/cryptodev_common.py
+++ b/tests/cryptodev_common.py
@@ -8,7 +8,21 @@ from nics.net_device import GetNicObj
conf = SuiteConf("cryptodev_sample")
-def bind_qat_device(test_case, driver="igb_uio"):
+def bind_hardware_device(test_case, driver="igb_uio", generate_vfs=False, vf_count=2):
+ """bind Hardware devices to specific driver. generate VFs if required
+ Args:
+ test_case:
+ framework testcase object
+ driver:
+ name of the driver
+ generate_vfs:
+ default to False
+ vf_count:
+ no of VFs to generate
+ Returns:
+ None
+ """
+
if driver == "vfio-pci":
test_case.dut.send_expect("modprobe vfio", "#", 10)
test_case.dut.send_expect("modprobe vfio-pci", "#", 10)
@@ -16,7 +30,7 @@ def bind_qat_device(test_case, driver="igb_uio"):
if "crypto_dev_id" in conf.suite_cfg:
dev_id = conf.suite_cfg["crypto_dev_id"]
test_case.logger.info(
- "specified the qat hardware device id in cfg: {}".format(dev_id)
+ "specified the hardware device id in cfg: {}".format(dev_id)
)
out = test_case.dut.send_expect(
"lspci -D -d:{}|awk '{{print $1}}'".format(dev_id), "# ", 10
@@ -38,6 +52,8 @@ def bind_qat_device(test_case, driver="igb_uio"):
devfun_id = addr_array[2]
pf_port = GetNicObj(test_case.dut, domain_id, bus_id, devfun_id)
+ if generate_vfs:
+ pf_port.generate_sriov_vfs(vf_count)
sriov_vfs_pci = pf_port.get_sriov_vfs_pci()
if not sriov_vfs_pci:
raise Exception("can not get vf pci")
@@ -47,10 +63,15 @@ def bind_qat_device(test_case, driver="igb_uio"):
test_case.dut.bind_eventdev_port(driver, " ".join(sriov_vfs_pci))
if not dev:
- raise Exception("can not find qat device")
+ raise Exception("can not find hardware device")
test_case.dev = dev
+def bind_mrvl_devices(test_case, driver='vfio-pci', **kwargs):
+ pci_list = kwargs.get("pci_list").split()
+ for pci in pci_list:
+ test_case.dut.bind_eventdev_port(driver, pci)
+ return pci_list
def get_qat_devices(test_case, cpm_num=None, num=1):
if not cpm_num:
--
2.25.1
prev parent reply other threads:[~2024-11-14 19:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-30 16:44 [PATCH 1/1] Cn10K crypto Tests: Added Marvell Cn10K specific crypto Tests to TestCryptoPerfCryptodevPerf Gnanesh
2024-10-31 10:09 ` David Marchand
2024-10-31 22:15 ` Patrick Robb
2024-11-14 19:22 ` [EXTERNAL] " Gnanesh Kambalu Palanethra
2024-11-14 19:29 ` Gnanesh [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241114192939.3682606-1-gpalanethra@marvell.com \
--to=gpalanethra@marvell.com \
--cc=brajendra@marvell.com \
--cc=ccheng@iol.unh.edu \
--cc=dts@dpdk.org \
--cc=njogarao@marvell.com \
--cc=probb@iol.unh.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).