]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
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/iscsi_tgt/common.sh | |
7 | ||
9f95a23c TL |
8 | # $1 = "iso" - triggers isolation mode (setting up required environment). |
9 | # $2 = test type posix or vpp. defaults to posix. | |
10 | iscsitestinit $1 $2 | |
11 | ||
11fdf7f2 TL |
12 | function node_login_fio_logout() { |
13 | for arg in "$@"; do | |
14 | iscsiadm -m node -p $TARGET_IP:$ISCSI_PORT -o update -n node.conn[0].iscsi.$arg | |
15 | done | |
16 | iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT | |
f67539c2 | 17 | waitforiscsidevices 1 |
9f95a23c TL |
18 | $fio_py -p iscsi -i 512 -d 1 -t write -r 2 |
19 | $fio_py -p iscsi -i 512 -d 1 -t read -r 2 | |
11fdf7f2 | 20 | iscsiadm -m node --logout -p $TARGET_IP:$ISCSI_PORT |
f67539c2 | 21 | waitforiscsidevices 0 |
11fdf7f2 TL |
22 | } |
23 | ||
24 | function iscsi_header_digest_test() { | |
25 | # Enable HeaderDigest to CRC32C | |
11fdf7f2 | 26 | node_login_fio_logout "HeaderDigest -v CRC32C" |
11fdf7f2 TL |
27 | |
28 | # Let iscsi target to decide its preference on | |
29 | # HeaderDigest based on its capability. | |
11fdf7f2 | 30 | node_login_fio_logout "HeaderDigest -v CRC32C,None" |
11fdf7f2 TL |
31 | } |
32 | ||
33 | function iscsi_header_data_digest_test() { | |
34 | # Only enable HeaderDigest to CRC32C | |
11fdf7f2 | 35 | node_login_fio_logout "HeaderDigest -v CRC32C" "DataDigest -v None" |
11fdf7f2 TL |
36 | |
37 | # Only enable DataDigest to CRC32C | |
11fdf7f2 | 38 | node_login_fio_logout "HeaderDigest -v None" "DataDigest -v CRC32C" |
11fdf7f2 TL |
39 | |
40 | # Let iscsi target to decide its preference on both | |
41 | # HeaderDigest and DataDigest based on its capability. | |
11fdf7f2 | 42 | node_login_fio_logout "HeaderDigest -v CRC32C,None" "DataDigest -v CRC32C,None" |
11fdf7f2 TL |
43 | |
44 | # Enable HeaderDigest and DataDigest both. | |
11fdf7f2 | 45 | node_login_fio_logout "HeaderDigest -v CRC32C" "DataDigest -v CRC32C" |
11fdf7f2 TL |
46 | } |
47 | ||
11fdf7f2 TL |
48 | MALLOC_BDEV_SIZE=64 |
49 | MALLOC_BLOCK_SIZE=512 | |
50 | ||
51 | rpc_py="$rootdir/scripts/rpc.py" | |
52 | fio_py="$rootdir/scripts/fio.py" | |
53 | ||
54 | timing_enter start_iscsi_tgt | |
55 | ||
f67539c2 | 56 | "${ISCSI_APP[@]}" -m $ISCSI_TEST_CORE_MASK --wait-for-rpc & |
11fdf7f2 TL |
57 | pid=$! |
58 | echo "Process pid: $pid" | |
59 | ||
f67539c2 | 60 | trap 'killprocess $pid; iscsitestfini $1 $2; exit 1' SIGINT SIGTERM EXIT |
11fdf7f2 TL |
61 | |
62 | waitforlisten $pid | |
f67539c2 TL |
63 | $rpc_py iscsi_set_options -o 30 -a 16 |
64 | $rpc_py framework_start_init | |
11fdf7f2 TL |
65 | echo "iscsi_tgt is listening. Running tests..." |
66 | ||
67 | timing_exit start_iscsi_tgt | |
68 | ||
f67539c2 TL |
69 | $rpc_py iscsi_create_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT |
70 | $rpc_py iscsi_create_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK | |
71 | $rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE | |
11fdf7f2 TL |
72 | # "Malloc0:0" ==> use Malloc0 blockdev for LUN0 |
73 | # "1:2" ==> map PortalGroup1 to InitiatorGroup2 | |
74 | # "64" ==> iSCSI queue depth 64 | |
75 | # "-d" ==> disable CHAP authentication | |
f67539c2 | 76 | $rpc_py iscsi_create_target_node Target3 Target3_alias 'Malloc0:0' $PORTAL_TAG:$INITIATOR_TAG 64 -d |
11fdf7f2 TL |
77 | sleep 1 |
78 | ||
79 | iscsiadm -m discovery -t sendtargets -p $TARGET_IP:$ISCSI_PORT | |
80 | ||
f67539c2 | 81 | # iscsiadm installed by some Fedora releases loses the ability to set DataDigest parameter. |
11fdf7f2 | 82 | # Check and avoid setting DataDigest. |
f67539c2 TL |
83 | DataDigestAbility=$(iscsiadm -m node -p $TARGET_IP:$ISCSI_PORT -o update -n node.conn[0].iscsi.DataDigest -v None 2>&1 || true) |
84 | if [ "$DataDigestAbility"x != x ]; then | |
85 | run_test "iscsi_tgt_digest" iscsi_header_digest_test | |
11fdf7f2 | 86 | else |
f67539c2 | 87 | run_test "iscsi_tgt_data_digest" iscsi_header_data_digest_test |
11fdf7f2 TL |
88 | fi |
89 | ||
90 | trap - SIGINT SIGTERM EXIT | |
91 | ||
92 | iscsicleanup | |
93 | killprocess $pid | |
9f95a23c | 94 | iscsitestfini $1 $2 |