65 lines
2.1 KiB
Bash
65 lines
2.1 KiB
Bash
|
#!/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 $JSON_DIR/naa.Nvme0n1p0.0
|
||
|
$rpc_py construct_vhost_scsi_controller $JSON_DIR/naa.Nvme0n1p1.1
|
||
|
$rpc_py add_vhost_scsi_lun $JSON_DIR/naa.Nvme0n1p0.0 0 Nvme0n1p0
|
||
|
$rpc_py add_vhost_scsi_lun $JSON_DIR/naa.Nvme0n1p1.1 0 Nvme0n1p1
|
||
|
$rpc_py construct_vhost_blk_controller $JSON_DIR/naa.Nvme0n1p2.0 Nvme0n1p2
|
||
|
$rpc_py construct_vhost_blk_controller $JSON_DIR/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 $JSON_DIR/naa.Nvme0n1p0.0 -d scsi Nvme0n1p0
|
||
|
$rpc_py construct_virtio_dev -t user -a $JSON_DIR/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
|