xref: /spdk/test/nvmf/target/nvme_cli.sh (revision 75bf61ffb7500316913a9c367726c636d31f4e31)
1bba25f4aSJim Harris#!/usr/bin/env bash
2eb53c232Spaul luse#  SPDX-License-Identifier: BSD-3-Clause
3eb53c232Spaul luse#  Copyright (C) 2016 Intel Corporation
4eb53c232Spaul luse#  All rights reserved.
5eb53c232Spaul luse#
6bba25f4aSJim Harristestdir=$(readlink -f $(dirname $0))
7bba25f4aSJim Harrisrootdir=$(readlink -f $testdir/../../..)
8bba25f4aSJim Harrissource $rootdir/test/common/autotest_common.sh
9bba25f4aSJim Harrissource $rootdir/test/nvmf/common.sh
10bba25f4aSJim Harris
11bba25f4aSJim HarrisMALLOC_BDEV_SIZE=64
12bba25f4aSJim HarrisMALLOC_BLOCK_SIZE=512
13bba25f4aSJim Harris
1470f7ea3eSMichal Bergerdevs=()
15bba25f4aSJim Harris
16913f5858SJim Harrisnvmftestinit
178cc72fe4SMichal Bergernvmfappstart -m 0xF
18bba25f4aSJim Harris
19015ef22aSSeth Howell$rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS -u 8192
20bba25f4aSJim Harris
217964f1dfSPawel Kaminski$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc0
227964f1dfSPawel Kaminski$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc1
23bba25f4aSJim Harris
24be6a01efSJonathan Teh$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s $NVMF_SERIAL -d SPDK_Controller1 -i 291
25bba25f4aSJim Harris$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
26bba25f4aSJim Harris$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc1
27aa7a1398SJim Harris$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
28d98c3749SJim Harris$rpc_py nvmf_subsystem_add_listener discovery -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
29bba25f4aSJim Harris
30*75bf61ffSMichal Bergernvme discover "${NVME_HOST[@]}" -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s "$NVMF_PORT"
3170f7ea3eSMichal Bergerdevs=($(get_nvme_devs)) nvme_num_before_connection=${#devs[@]}
32*75bf61ffSMichal Berger$NVME_CONNECT "${NVME_HOST[@]}" -t $TEST_TRANSPORT -n "nqn.2016-06.io.spdk:cnode1" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT"
33bba25f4aSJim Harris
3453147e0dSMaciej Wawrykwaitforserial $NVMF_SERIAL 2
3570f7ea3eSMichal Bergerif [[ -z $(get_nvme_devs) ]]; then
36f86e25c0SMichal Berger	echo "Could not find any nvme devices to work with, aborting the test" >&2
37f86e25c0SMichal Berger	exit 1
38f86e25c0SMichal Bergerfi
39bba25f4aSJim Harris
40f86e25c0SMichal Bergerfor ctrl in "${nvmes[@]}"; do
41bba25f4aSJim Harris	nvme id-ctrl $ctrl
42bba25f4aSJim Harris	nvme smart-log $ctrl
43178b06b4SJim Harris	nvme_model=$(nvme id-ctrl $ctrl | grep -w mn | sed 's/^.*: //' | sed 's/ *$//')
44bba25f4aSJim Harris	if [ "$nvme_model" != "SPDK_Controller1" ]; then
45bba25f4aSJim Harris		echo "Wrong model number for controller" $nvme_model
46bba25f4aSJim Harris		exit 1
47bba25f4aSJim Harris	fi
48be6a01efSJonathan Teh	nvme_cntlid=$(nvme id-ctrl $ctrl | grep -w cntlid | sed 's/^.*: //' | sed 's/ *$//')
49be6a01efSJonathan Teh	if [ "$nvme_cntlid" != "0x123" ]; then
50be6a01efSJonathan Teh		echo "Wrong controller ID for controller" $nvme_model
51be6a01efSJonathan Teh		exit 1
52be6a01efSJonathan Teh	fi
53bba25f4aSJim Harrisdone
54bba25f4aSJim Harris
55f86e25c0SMichal Bergerfor ns in "${nvmes[@]}"; do
56bba25f4aSJim Harris	nvme id-ns $ns
57bba25f4aSJim Harrisdone
58bba25f4aSJim Harris
5970f7ea3eSMichal Bergerdevs=($(get_nvme_devs)) nvme_num=${#devs[@]}
6024ad09baSMaciej Wawryknvme disconnect -n "nqn.2016-06.io.spdk:cnode1"
61bbd36d0dSBen Walkerwaitforserial_disconnect "$NVMF_SERIAL"
6270f7ea3eSMichal Bergerif ((nvme_num <= nvme_num_before_connection)); then
6324ad09baSMaciej Wawryk	echo "nvme-cli connect target devices failed"
64bba25f4aSJim Harris	exit 1
65bba25f4aSJim Harrisfi
66bba25f4aSJim Harris
6719baaa9aSMaciej Wawryk$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1
68bba25f4aSJim Harristrap - SIGINT SIGTERM EXIT
69bba25f4aSJim Harris
70913f5858SJim Harrisnvmftestfini
71