From bef23a925c553bed4df02e1062cb85db7b3952a1 Mon Sep 17 00:00:00 2001 From: Xiaodong Liu Date: Thu, 4 Jan 2018 18:11:45 -0500 Subject: [PATCH] test/iscsi: add digests enabled test iscsi_tgt tests with different header and data digests configuration. Change-Id: I6e444eacccebccd66c099ea349be4bdeb063ba67 Signed-off-by: Xiaodong Liu Reviewed-on: https://review.gerrithub.io/393717 Tested-by: SPDK Automated Test System Reviewed-by: Ziye Yang Reviewed-by: Reviewed-by: Jim Harris --- test/iscsi_tgt/digests/digests.sh | 89 +++++++++++++++++++++++++++++++ test/iscsi_tgt/digests/iscsi.conf | 10 ++++ test/iscsi_tgt/iscsi_tgt.sh | 1 + 3 files changed, 100 insertions(+) create mode 100755 test/iscsi_tgt/digests/digests.sh create mode 100644 test/iscsi_tgt/digests/iscsi.conf diff --git a/test/iscsi_tgt/digests/digests.sh b/test/iscsi_tgt/digests/digests.sh new file mode 100755 index 000000000..b89fcbf0c --- /dev/null +++ b/test/iscsi_tgt/digests/digests.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash + +testdir=$(readlink -f $(dirname $0)) +rootdir=$(readlink -f $testdir/../../..) +source $rootdir/scripts/autotest_common.sh +source $rootdir/test/iscsi_tgt/common.sh + +function node_login_fio_logout() +{ + iscsiadm -m node --login -p $TARGET_IP:$PORT + sleep 1 + $fio_py 512 1 write 2 + $fio_py 512 1 read 2 + iscsiadm -m node --logout -p $TARGET_IP:$PORT + sleep 1 +} + +timing_enter digests + +# iSCSI target configuration +PORT=3260 +INITIATOR_TAG=2 +INITIATOR_NAME=ANY +NETMASK=$INITIATOR_IP/32 +MALLOC_BDEV_SIZE=64 +MALLOC_BLOCK_SIZE=512 + +rpc_py="python $rootdir/scripts/rpc.py" +fio_py="python $rootdir/scripts/fio.py" + +timing_enter start_iscsi_tgt + +$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK & +pid=$! +echo "Process pid: $pid" + +trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT + +waitforlisten $pid +echo "iscsi_tgt is listening. Running tests..." + +timing_exit start_iscsi_tgt + +$rpc_py add_portal_group 1 $TARGET_IP:$PORT +$rpc_py add_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK +$rpc_py construct_malloc_bdev $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE +# "Malloc0:0" ==> use Malloc0 blockdev for LUN0 +# "1:2" ==> map PortalGroup1 to InitiatorGroup2 +# "64" ==> iSCSI queue depth 64 +# "1 0 0 0" ==> disable CHAP authentication +$rpc_py construct_target_node Target3 Target3_alias 'Malloc0:0' '1:2' 64 1 0 0 0 +sleep 1 + +iscsiadm -m discovery -t sendtargets -p $TARGET_IP:$PORT + +# Only enable HeaderDigest to CRC32C +timing_enter HeaderDigest_enabled +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.HeaderDigest -v CRC32C +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.DataDigest -v None +node_login_fio_logout +timing_exit HeaderDigest_enabled + +# Only enable DataDigest to CRC32C +timing_enter DataDigest_enabled +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.HeaderDigest -v None +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.DataDigest -v CRC32C +node_login_fio_logout +timing_exit DataDigest_enabled + +# Let iscsi target to decide its preference on both +# HeaderDigest and DataDigest based on its capability. +timing_enter both_preferred +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.HeaderDigest -v CRC32C,None +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.DataDigest -v CRC32C,None +node_login_fio_logout +timing_exit both_preferred + +# Enable HeaderDigest and DataDigest both. +timing_enter both_enabled +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.HeaderDigest -v CRC32C +iscsiadm -m node -p $TARGET_IP:$PORT -o update -n node.conn[0].iscsi.DataDigest -v CRC32C +node_login_fio_logout +timing_exit both_enabled + +trap - SIGINT SIGTERM EXIT + +iscsicleanup +killprocess $pid +timing_exit digests diff --git a/test/iscsi_tgt/digests/iscsi.conf b/test/iscsi_tgt/digests/iscsi.conf new file mode 100644 index 000000000..432768819 --- /dev/null +++ b/test/iscsi_tgt/digests/iscsi.conf @@ -0,0 +1,10 @@ +[Global] + +[iSCSI] + NodeBase "iqn.2016-06.io.spdk" + AuthFile /usr/local/etc/spdk/auth.conf + Timeout 30 + DiscoveryAuthMethod Auto + MaxSessions 16 + ImmediateData Yes + ErrorRecoveryLevel 0 diff --git a/test/iscsi_tgt/iscsi_tgt.sh b/test/iscsi_tgt/iscsi_tgt.sh index 5e6f76bc0..0014888c7 100755 --- a/test/iscsi_tgt/iscsi_tgt.sh +++ b/test/iscsi_tgt/iscsi_tgt.sh @@ -40,6 +40,7 @@ if [ $RUN_NIGHTLY -eq 1 ]; then run_test ./test/iscsi_tgt/idle_migration/idle_migration.sh run_test ./test/iscsi_tgt/ip_migration/ip_migration.sh run_test ./test/iscsi_tgt/ext4test/ext4test.sh + run_test ./test/iscsi_tgt/digests/digests.sh fi if [ $SPDK_TEST_RBD -eq 1 ]; then run_test ./test/iscsi_tgt/rbd/rbd.sh