]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/test/vhost/initiator/json_config.sh
update download target update for octopus release
[ceph.git] / ceph / src / spdk / test / vhost / initiator / json_config.sh
CommitLineData
11fdf7f2
TL
1#!/usr/bin/env bash
2set -ex
3INITIATOR_JSON_DIR=$(readlink -f $(dirname $0))
4. $INITIATOR_JSON_DIR/../../json_config/common.sh
5
6# Load spdk_tgt with controllers used by virtio initiator
7# Test also virtio_pci bdevs
8function construct_vhost_devices() {
9 $rpc_py construct_split_vbdev Nvme0n1 4
10 $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p0.0
11 $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p1.1
12 $rpc_py add_vhost_scsi_lun naa.Nvme0n1p0.0 0 Nvme0n1p0
13 $rpc_py add_vhost_scsi_lun naa.Nvme0n1p1.1 0 Nvme0n1p1
14 $rpc_py construct_vhost_blk_controller naa.Nvme0n1p2.0 Nvme0n1p2
15 $rpc_py construct_vhost_blk_controller naa.Nvme0n1p3.1 Nvme0n1p3
16 pci_scsi=$(lspci -nn -D | grep '1af4:1004' | head -1 | awk '{print $1;}')
17 pci_blk=$(lspci -nn -D | grep '1af4:1001' | head -1 | awk '{print $1;}')
18 if [ ! -z $pci_scsi ]; then
19 $rpc_py construct_virtio_dev -t pci -a $pci_scsi -d scsi Virtio0
20 fi
21 if [ ! -z $pci_blk ]; then
22 $rpc_py construct_virtio_dev -t pci -a $pci_blk -d blk Virtio1
23 fi
24}
25
26# Load virtio initiator with bdevs
27function connect_to_vhost_devices_from_initiator() {
28 $rpc_py construct_virtio_dev -t user -a naa.Nvme0n1p0.0 -d scsi Nvme0n1p0
29 $rpc_py construct_virtio_dev -t user -a naa.Nvme0n1p2.0 -d blk Nvme0n1p2
30}
31
32function disconnect_and_clear_vhost_devices() {
33 $clear_config_py clear_config
34}
35
36function test_subsystems() {
37 run_spdk_tgt
38 rootdir=$(readlink -f $INITIATOR_JSON_DIR/../../..)
39
40 rpc_py="$spdk_rpc_py"
41 clear_config_py="$spdk_clear_config_py"
42 load_nvme
43
44 construct_vhost_devices
45 test_json_config
46 run_initiator
47 rpc_py="$initiator_rpc_py"
48 clear_config_py="$initiator_clear_config_py"
49 $rpc_py start_subsystem_init
50 connect_to_vhost_devices_from_initiator
51 test_json_config
52 disconnect_and_clear_vhost_devices
53 test_global_params "virtio_initiator"
54 clear_config_py="$spdk_clear_config_py"
55 $clear_config_py clear_config
56 kill_targets
57}
58
59trap 'on_error_exit "${FUNCNAME}" "${LINENO}"' ERR
60timing_enter json_config_virtio_initiator
61
62test_subsystems
63timing_exit json_config_virtio_initiator
64report_test_completion json_config_virtio_initiator