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