xref: /spdk/test/nvmf/target/nvmf_example.sh (revision 18c8b52afa69f39481ebb75711b2f30b11693f9d)
1#!/usr/bin/env bash
2
3testdir=$(readlink -f $(dirname $0))
4rootdir=$(readlink -f $testdir/../../..)
5source $rootdir/test/common/autotest_common.sh
6source $rootdir/test/nvmf/common.sh
7
8NVMF_EXAMPLE=("$SPDK_EXAMPLE_DIR/nvmf")
9
10MALLOC_BDEV_SIZE=64
11MALLOC_BLOCK_SIZE=512
12
13function build_nvmf_example_args() {
14	if [ $SPDK_RUN_NON_ROOT -eq 1 ]; then
15		NVMF_EXAMPLE=(sudo -u "$USER" "${NVMF_EXAMPLE[@]}")
16	fi
17	NVMF_EXAMPLE+=(-i "$NVMF_APP_SHM_ID" -g 10000)
18}
19
20build_nvmf_example_args
21
22function nvmfexamplestart() {
23	timing_enter start_nvmf_example
24
25	if [ "$TEST_TRANSPORT" == "tcp" ]; then
26		NVMF_EXAMPLE=("${NVMF_TARGET_NS_CMD[@]}" "${NVMF_EXAMPLE[@]}")
27	fi
28
29	"${NVMF_EXAMPLE[@]}" $1 &
30	nvmfpid=$!
31	trap 'process_shm --id $NVMF_APP_SHM_ID; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
32	waitforlisten $nvmfpid
33	timing_exit start_nvmf_example
34}
35
36timing_enter nvmf_example_test
37nvmftestinit
38nvmfexamplestart "-m 0xF"
39
40#create transport
41$rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS -u 8192
42#create malloc bdev
43malloc_bdevs="$($rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE) "
44#create subsystem
45$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001
46
47#add ns to subsystem
48for malloc_bdev in $malloc_bdevs; do
49	$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 "$malloc_bdev"
50done
51
52#add listener to subsystem
53$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
54
55perf="$SPDK_EXAMPLE_DIR/perf"
56
57$perf -q 64 -o 4096 -w randrw -M 30 -t 10 \
58	-r "trtype:${TEST_TRANSPORT} adrfam:IPv4 traddr:${NVMF_FIRST_TARGET_IP} trsvcid:${NVMF_PORT} \
59subnqn:nqn.2016-06.io.spdk:cnode1"
60
61trap - SIGINT SIGTERM EXIT
62nvmftestfini
63timing_exit nvmf_example_test
64