test/bdev: Split crypto test and convert it to RPC calls

Split is done based on the crypto driver type:
  - crypto_aesni
  - crypto_qat

Change-Id: I47610eea7dd69defcbda9aa801a8bd8eeab820ee
Signed-off-by: Michal Berger <michalx.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1020
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Michal Berger 2020-02-26 12:35:23 +01:00 committed by Tomasz Zawadzki
parent 9fd5bccc97
commit 102731bd40
3 changed files with 29 additions and 42 deletions

View File

@ -290,7 +290,11 @@ if [ $SPDK_RUN_FUNCTIONAL_TEST -eq 1 ]; then
fi
if [ $SPDK_TEST_CRYPTO -eq 1 ]; then
run_test "blockdev_crypto" ./test/bdev/blockdev.sh "crypto"
run_test "blockdev_crypto_aesni" ./test/bdev/blockdev.sh "crypto_aesni"
# Proceed with the test only if QAT devices are in place
if [[ $(lspci -d:37c8) ]]; then
run_test "blockdev_crypto_qat" ./test/bdev/blockdev.sh "crypto_qat"
fi
fi
fi

View File

@ -107,13 +107,26 @@ function setup_gpt_conf() {
fi
}
function setup_crypto_conf() {
cat >$conf_file <<-EOF
[Malloc]
NumberOfLuns 3
LunSizeInMB 16
EOF
$testdir/gen_crypto.sh Malloc0 Malloc1 Malloc2 >> $conf_file
function setup_crypto_aesni_conf() {
# Malloc0 and Malloc1 use AESNI
"$rpc_py" <<-RPC
bdev_malloc_create -b Malloc0 16 512
bdev_malloc_create -b Malloc1 16 512
bdev_crypto_create Malloc0 crypto_ram crypto_aesni_mb 0123456789123456
bdev_crypto_create Malloc1 crypto_ram2 crypto_aesni_mb 9012345678912345
RPC
}
function setup_crypto_qat_conf() {
# Malloc0 will use QAT AES_CBC
# Malloc1 will use QAT AES_XTS
"$rpc_py" <<-RPC
bdev_malloc_create -b Malloc0 16 512
bdev_malloc_create -b Malloc1 16 512
bdev_crypto_create Malloc0 crypto_ram crypto_qat 0123456789123456
bdev_crypto_create -c AES_XTS -k2 0123456789123456 Malloc1 crypto_ram3 crypto_qat 0123456789123456
RPC
"$rpc_py" bdev_get_bdevs -b Malloc1
}
function setup_pmem_conf() {
@ -332,8 +345,10 @@ case "$test_type" in
start_spdk_tgt; setup_nvme_conf;;
gpt )
start_spdk_tgt; setup_gpt_conf;;
crypto )
setup_crypto_conf;;
crypto_aesni )
start_spdk_tgt; setup_crypto_aesni_conf;;
crypto_qat )
start_spdk_tgt; setup_crypto_qat_conf;;
pmem )
setup_pmem_conf;;
rbd )

View File

@ -1,32 +0,0 @@
#!/usr/bin/env bash
set -e
rootdir=$(readlink -f $(dirname $0))/../..
source "$rootdir/scripts/common.sh"
# base_bdev will use QAT AES_CBC if available, otherwise AESNI
# base_bdev2 will always use AESNI
# base_bdev3 will use QAT AES_XTS if available, otherwise not used
# This makes sure that AESNI always gets tested, even if QAT is available.
base_bdev=$1
base_bdev2=$2
base_bdev3=$3
echo
echo "[crypto]"
if [ -n "$base_bdev" ]; then
if [ $(lspci -d:37c8 | wc -l) -eq 0 ]; then
echo " CRY $base_bdev crypto_ram 0123456789123456 crypto_aesni_mb"
else
echo " CRY $base_bdev crypto_ram 0123456789123456 crypto_qat"
if [ -n "$base_bdev3" ]; then
echo " CRY $base_bdev3 crypto_ram3 0123456789123456 crypto_qat AES_XTS 0123456789123456"
fi
fi
fi
if [ -n "$base_bdev2" ]; then
echo " CRY $base_bdev2 crypto_ram2 9012345678912345 crypto_aesni_mb"
fi