Commit 9bbf1203 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

test/nvmf: add test for tcp_connect_timeout_ms



Change-Id: If12d6d90723168e29ce4ea2e1fb6291b9c9821ad
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/25947


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: default avatarMichal Berger <michal.berger@nutanix.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
parent 53011dca
Loading
Loading
Loading
Loading
+46 −1
Original line number Diff line number Diff line
@@ -138,8 +138,53 @@ rm -f $testdir/trace.txt

killprocess $bdevperf_pid

if [[ $TEST_TRANSPORT != tcp ]]; then
	$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1
	trap - SIGINT SIGTERM EXIT

	nvmftestfini
	exit 0
fi

# Case 4 test tcp_connect_timeout_ms is respected in case of packets are droped
ipts -I OUTPUT 1 -d $NVMF_FIRST_TARGET_IP -p tcp --dport 4420 -j DROP

$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT

$rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w randread -t 10 &
bdevperf_pid=$!

waitforlisten $bdevperf_pid $bdevperf_rpc_sock

$rpc_py -s $bdevperf_rpc_sock bdev_nvme_set_options -r -1 --tcp-connect-timeout-ms 100
time_s=$(NOT timing_cmd $rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT \
	-a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1) time_s=${time_s%.*}
if ((time_s > 1)); then
	echo "bdev_nvme_attach_controller was blocked for ~${time_s}s, whereas it should be below 1s."
	exit 1
fi

ipts -D OUTPUT 1

# Case 5 test tcp_connect_timeout_ms is respected in case of link down
"${NVMF_TARGET_NS_CMD[@]}" ip link set $NVMF_TARGET_INTERFACE down

time_s=$(NOT timing_cmd $rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT \
	-a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1) time_s=${time_s%.*}
if ((time_s > 1)); then
	echo "bdev_nvme_attach_controller was blocked for ~${time_s}s, whereas it should be below 1s."
	exit 1
fi

"${NVMF_TARGET_NS_CMD[@]}" ip link set $NVMF_TARGET_INTERFACE up

# check if we can actually connect
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP \
	-s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1

killprocess $bdevperf_pid

$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1
trap - SIGINT SIGTERM EXIT

nvmftestfini