]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | #!/usr/bin/env bash |
2 | set -ex | |
3 | INITIATOR_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 | |
8 | function 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 | |
27 | function 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 | ||
32 | function disconnect_and_clear_vhost_devices() { | |
33 | $clear_config_py clear_config | |
34 | } | |
35 | ||
36 | function 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 | ||
59 | trap 'on_error_exit "${FUNCNAME}" "${LINENO}"' ERR | |
60 | timing_enter json_config_virtio_initiator | |
61 | ||
62 | test_subsystems | |
63 | timing_exit json_config_virtio_initiator | |
64 | report_test_completion json_config_virtio_initiator |