]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/nvmf/target/nvme_cli.sh
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / test / nvmf / target / nvme_cli.sh
1 #!/usr/bin/env bash
2
3 testdir=$(readlink -f $(dirname $0))
4 rootdir=$(readlink -f $testdir/../../..)
5 source $rootdir/test/common/autotest_common.sh
6 source $rootdir/test/nvmf/common.sh
7
8 if [ -z "${DEPENDENCY_DIR}" ]; then
9 echo DEPENDENCY_DIR not defined!
10 exit 1
11 fi
12
13 MALLOC_BDEV_SIZE=64
14 MALLOC_BLOCK_SIZE=512
15
16 rpc_py="$rootdir/scripts/rpc.py"
17
18 nvmftestinit
19 nvmfappstart -m 0xF
20
21 $rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS -u 8192
22
23 $rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc0
24 $rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc1
25
26 $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s $NVMF_SERIAL -d SPDK_Controller1
27 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
28 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc1
29 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
30
31 nvme connect -t $TEST_TRANSPORT -n "nqn.2016-06.io.spdk:cnode1" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT"
32
33 waitforserial $NVMF_SERIAL 2
34 if ! get_nvme_devs print 2> /dev/null; then
35 echo "Could not find any nvme devices to work with, aborting the test" >&2
36 exit 1
37 fi
38
39 for ctrl in "${nvmes[@]}"; do
40 nvme id-ctrl $ctrl
41 nvme smart-log $ctrl
42 nvme_model=$(nvme id-ctrl $ctrl | grep -w mn | sed 's/^.*: //' | sed 's/ *$//')
43 if [ "$nvme_model" != "SPDK_Controller1" ]; then
44 echo "Wrong model number for controller" $nvme_model
45 exit 1
46 fi
47 done
48
49 for ns in "${nvmes[@]}"; do
50 nvme id-ns $ns
51 done
52
53 nvme disconnect -n "nqn.2016-06.io.spdk:cnode1"
54
55 # Test spdk/nvme-cli NVMe-oF commands: discover, connect and disconnect
56 nvme_cli_build
57 pushd "${DEPENDENCY_DIR}/nvme-cli"
58
59 sed -i 's/shm_id=.*/shm_id=-1/g' spdk.conf
60 ./nvme discover -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s "$NVMF_PORT"
61 nvme_num_before_connection=$(get_nvme_devs 2>&1 || echo 0)
62 ./nvme connect -t $TEST_TRANSPORT -n "nqn.2016-06.io.spdk:cnode1" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT"
63 sleep 1
64 nvme_num=$(get_nvme_devs 2>&1)
65 ./nvme disconnect -n "nqn.2016-06.io.spdk:cnode1"
66 if [ $nvme_num -le $nvme_num_before_connection ]; then
67 echo "spdk/nvme-cli connect target devices failed"
68 exit 1
69 fi
70 popd
71
72 $rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1
73 trap - SIGINT SIGTERM EXIT
74
75 nvmftestfini