]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/nvmf/host/identify_kernel_nvmf.sh
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / spdk / test / nvmf / host / identify_kernel_nvmf.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 set -e
9
10 RDMA_IP_LIST=$(get_available_rdma_ips)
11 NVMF_FIRST_TARGET_IP=$(echo "$RDMA_IP_LIST" | head -n 1)
12 if [ -z $NVMF_FIRST_TARGET_IP ]; then
13 echo "no NIC for nvmf test"
14 exit 0
15 fi
16
17 timing_enter identify_kernel_nvmf_tgt
18
19 subsystemname=nqn.2016-06.io.spdk:testnqn
20
21 modprobe null_blk nr_devices=1
22 modprobe nvmet
23 modprobe nvmet-rdma
24 modprobe nvmet-fc
25 modprobe lpfc
26
27 if [ ! -d /sys/kernel/config/nvmet/subsystems/$subsystemname ]; then
28 mkdir /sys/kernel/config/nvmet/subsystems/$subsystemname
29 fi
30 echo 1 > /sys/kernel/config/nvmet/subsystems/$subsystemname/attr_allow_any_host
31
32 if [ ! -d /sys/kernel/config/nvmet/subsystems/$subsystemname/namespaces/1 ]; then
33 mkdir /sys/kernel/config/nvmet/subsystems/$subsystemname/namespaces/1
34 fi
35
36 echo -n /dev/nullb0 > /sys/kernel/config/nvmet/subsystems/$subsystemname/namespaces/1/device_path
37 echo 1 > /sys/kernel/config/nvmet/subsystems/$subsystemname/namespaces/1/enable
38
39 if [ ! -d /sys/kernel/config/nvmet/ports/1 ]; then
40 mkdir /sys/kernel/config/nvmet/ports/1
41 fi
42
43 echo -n rdma > /sys/kernel/config/nvmet/ports/1/addr_trtype
44 echo -n ipv4 > /sys/kernel/config/nvmet/ports/1/addr_adrfam
45 echo -n $NVMF_FIRST_TARGET_IP > /sys/kernel/config/nvmet/ports/1/addr_traddr
46 echo -n $NVMF_PORT > /sys/kernel/config/nvmet/ports/1/addr_trsvcid
47
48 ln -s /sys/kernel/config/nvmet/subsystems/$subsystemname /sys/kernel/config/nvmet/ports/1/subsystems/$subsystemname
49
50 sleep 4
51
52 $rootdir/examples/nvme/identify/identify -r "\
53 trtype:RDMA \
54 adrfam:IPv4 \
55 traddr:$NVMF_FIRST_TARGET_IP \
56 trsvcid:$NVMF_PORT \
57 subnqn:nqn.2014-08.org.nvmexpress.discovery" -t all
58 $rootdir/examples/nvme/identify/identify -r "\
59 trtype:RDMA \
60 adrfam:IPv4 \
61 traddr:$NVMF_FIRST_TARGET_IP \
62 trsvcid:$NVMF_PORT \
63 subnqn:$subsystemname"
64
65 rm -rf /sys/kernel/config/nvmet/ports/1/subsystems/$subsystemname
66
67 echo 0 > /sys/kernel/config/nvmet/subsystems/$subsystemname/namespaces/1/enable
68 echo -n 0 > /sys/kernel/config/nvmet/subsystems/$subsystemname/namespaces/1/device_path
69
70 rmdir --ignore-fail-on-non-empty /sys/kernel/config/nvmet/subsystems/$subsystemname/namespaces/1
71 rmdir --ignore-fail-on-non-empty /sys/kernel/config/nvmet/subsystems/$subsystemname
72 rmdir --ignore-fail-on-non-empty /sys/kernel/config/nvmet/ports/1
73
74 rmmod lpfc
75 rmmod nvmet_fc
76 rmmod nvmet-rdma
77 rmmod null_blk
78 rmmod nvmet
79
80 timing_exit identify_kernel_nvmf_tgt