1#!/usr/bin/env bash 2 3testdir=$(readlink -f $(dirname $0)) 4rootdir=$(readlink -f $testdir/../../..) 5 6source $rootdir/test/common/autotest_common.sh 7source $rootdir/test/nvmf/common.sh 8 9rpc_py="$rootdir/scripts/rpc.py" 10 11nvmftestinit 12nvmfappstart -m 0x2 --wait-for-rpc 13 14if [ "$TEST_TRANSPORT" != tcp ]; then 15 echo "Unsupported transport: $TEST_TRANSPORT" 16 exit 0 17fi 18 19$rpc_py sock_set_default_impl -i ssl 20 21# Check default TLS version 22version=$($rpc_py sock_impl_get_options -i ssl | jq -r .tls_version) 23if [[ "$version" != "0" ]]; then 24 echo "TLS version was not set correctly $version != 0" 25 exit 1 26fi 27 28# Check TLS version set to 13 29$rpc_py sock_impl_set_options -i ssl --tls-version 13 30version=$($rpc_py sock_impl_get_options -i ssl | jq -r .tls_version) 31if [[ "$version" != "13" ]]; then 32 echo "TLS version was not set correctly $version != 13" 33 exit 1 34fi 35 36# Check TLS version set to 12 37$rpc_py sock_impl_set_options -i ssl --tls-version 12 38version=$($rpc_py sock_impl_get_options -i ssl | jq -r .tls_version) 39if [[ "$version" != "12" ]]; then 40 echo "TLS version was not set correctly $version != 12" 41 exit 1 42fi 43 44# Check incorrect TLS version set to 7 45$rpc_py sock_impl_set_options -i ssl --tls-version 7 46version=$($rpc_py sock_impl_get_options -i ssl | jq -r .tls_version) 47if [[ "$version" != "7" ]]; then 48 echo "TLS version was not set correctly $version != 7" 49 exit 1 50fi 51 52# Check default KTLS is disabled 53ktls=$($rpc_py sock_impl_get_options -i ssl | jq -r .enable_ktls) 54if [[ "$ktls" != "false" ]]; then 55 echo "KTLS was not set correctly $ktls != false" 56 exit 1 57fi 58 59# Check KTLS enable 60$rpc_py sock_impl_set_options -i ssl --enable-ktls 61ktls=$($rpc_py sock_impl_get_options -i ssl | jq -r .enable_ktls) 62if [[ "$ktls" != "true" ]]; then 63 echo "KTLS was not set correctly $ktls != true" 64 exit 1 65fi 66 67# Check KTLS disable 68$rpc_py sock_impl_set_options -i ssl --disable-ktls 69ktls=$($rpc_py sock_impl_get_options -i ssl | jq -r .enable_ktls) 70if [[ "$ktls" != "false" ]]; then 71 echo "KTLS was not set correctly $ktls != false" 72 exit 1 73fi 74 75$rpc_py sock_impl_set_options -i ssl --tls-version 13 76$rpc_py framework_start_init 77$rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS 78$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 -m 10 79$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT \ 80 -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT 81$rpc_py bdev_malloc_create 32 4096 -b malloc0 82$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 malloc0 -n 1 83 84# Send IO 85"${NVMF_TARGET_NS_CMD[@]}" $SPDK_EXAMPLE_DIR/perf -S ssl -q 64 -o 4096 -w randrw -M 30 -t 10 \ 86 -r "trtype:${TEST_TRANSPORT} adrfam:IPv4 traddr:${NVMF_FIRST_TARGET_IP} trsvcid:${NVMF_PORT} \ 87subnqn:nqn.2016-06.io.spdk:cnode1" 88 89trap - SIGINT SIGTERM EXIT 90nvmftestfini 91