summaryrefslogtreecommitdiffstats
path: root/src/spdk/test/vhost/initiator/json_config.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/spdk/test/vhost/initiator/json_config.sh')
-rwxr-xr-xsrc/spdk/test/vhost/initiator/json_config.sh64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/spdk/test/vhost/initiator/json_config.sh b/src/spdk/test/vhost/initiator/json_config.sh
new file mode 100755
index 00000000..86078c9a
--- /dev/null
+++ b/src/spdk/test/vhost/initiator/json_config.sh
@@ -0,0 +1,64 @@
+#!/usr/bin/env bash
+set -ex
+INITIATOR_JSON_DIR=$(readlink -f $(dirname $0))
+. $INITIATOR_JSON_DIR/../../json_config/common.sh
+
+# Load spdk_tgt with controllers used by virtio initiator
+# Test also virtio_pci bdevs
+function construct_vhost_devices() {
+ $rpc_py construct_split_vbdev Nvme0n1 4
+ $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p0.0
+ $rpc_py construct_vhost_scsi_controller naa.Nvme0n1p1.1
+ $rpc_py add_vhost_scsi_lun naa.Nvme0n1p0.0 0 Nvme0n1p0
+ $rpc_py add_vhost_scsi_lun naa.Nvme0n1p1.1 0 Nvme0n1p1
+ $rpc_py construct_vhost_blk_controller naa.Nvme0n1p2.0 Nvme0n1p2
+ $rpc_py construct_vhost_blk_controller naa.Nvme0n1p3.1 Nvme0n1p3
+ pci_scsi=$(lspci -nn -D | grep '1af4:1004' | head -1 | awk '{print $1;}')
+ pci_blk=$(lspci -nn -D | grep '1af4:1001' | head -1 | awk '{print $1;}')
+ if [ ! -z $pci_scsi ]; then
+ $rpc_py construct_virtio_dev -t pci -a $pci_scsi -d scsi Virtio0
+ fi
+ if [ ! -z $pci_blk ]; then
+ $rpc_py construct_virtio_dev -t pci -a $pci_blk -d blk Virtio1
+ fi
+}
+
+# Load virtio initiator with bdevs
+function connect_to_vhost_devices_from_initiator() {
+ $rpc_py construct_virtio_dev -t user -a naa.Nvme0n1p0.0 -d scsi Nvme0n1p0
+ $rpc_py construct_virtio_dev -t user -a naa.Nvme0n1p2.0 -d blk Nvme0n1p2
+}
+
+function disconnect_and_clear_vhost_devices() {
+ $clear_config_py clear_config
+}
+
+function test_subsystems() {
+ run_spdk_tgt
+ rootdir=$(readlink -f $INITIATOR_JSON_DIR/../../..)
+
+ rpc_py="$spdk_rpc_py"
+ clear_config_py="$spdk_clear_config_py"
+ load_nvme
+
+ construct_vhost_devices
+ test_json_config
+ run_initiator
+ rpc_py="$initiator_rpc_py"
+ clear_config_py="$initiator_clear_config_py"
+ $rpc_py start_subsystem_init
+ connect_to_vhost_devices_from_initiator
+ test_json_config
+ disconnect_and_clear_vhost_devices
+ test_global_params "virtio_initiator"
+ clear_config_py="$spdk_clear_config_py"
+ $clear_config_py clear_config
+ kill_targets
+}
+
+trap 'on_error_exit "${FUNCNAME}" "${LINENO}"' ERR
+timing_enter json_config_virtio_initiator
+
+test_subsystems
+timing_exit json_config_virtio_initiator
+report_test_completion json_config_virtio_initiator