3 function nbd_start_disks
() {
9 for ((i
= 0; i
< ${#nbd_list[@]}; i
++)); do
10 $rootdir/scripts
/rpc.py
-s $rpc_server nbd_start_disk
${bdev_list[$i]} ${nbd_list[$i]}
11 # Wait for nbd device ready
12 waitfornbd $
(basename ${nbd_list[$i]})
16 function nbd_start_disks_without_nbd_idx
() {
22 for ((i
= 0; i
< ${#bdev_list[@]}; i
++)); do
23 nbd_device
=$
($rootdir/scripts
/rpc.py
-s $rpc_server nbd_start_disk
${bdev_list[$i]})
24 # Wait for nbd device ready
25 waitfornbd $
(basename ${nbd_device})
29 function waitfornbd_exit
() {
32 for ((i
= 1; i
<= 20; i
++)); do
33 if grep -q -w $nbd_name /proc
/partitions
; then
43 function nbd_stop_disks
() {
48 for i
in "${nbd_list[@]}"; do
49 $rootdir/scripts
/rpc.py
-s $rpc_server nbd_stop_disk
$i
50 waitfornbd_exit $
(basename $i)
54 function nbd_get_count
() {
55 # return = count of spdk nbd devices
58 nbd_disks_json
=$
($rootdir/scripts
/rpc.py
-s $rpc_server nbd_get_disks
)
59 nbd_disks_name
=$
(echo "${nbd_disks_json}" | jq
-r '.[] | .nbd_device')
60 count
=$
(echo "${nbd_disks_name}" |
grep -c /dev
/nbd || true
)
64 function nbd_dd_data_verify
() {
67 local tmp_file
=$SPDK_TEST_STORAGE/nbdrandtest
69 if [ "$operation" = "write" ]; then
71 dd if=/dev
/urandom of
=$tmp_file bs
=4096 count
=256
72 for i
in "${nbd_list[@]}"; do
73 dd if=$tmp_file of
=$i bs
=4096 count
=256 oflag
=direct
75 elif [ "$operation" = "verify" ]; then
76 # data read and verify
77 for i
in "${nbd_list[@]}"; do
78 cmp -b -n 1M
$tmp_file $i
84 function nbd_rpc_data_verify
() {
89 nbd_start_disks
$rpc_server "${bdev_list[*]}" "${nbd_list[*]}"
90 count
=$
(nbd_get_count
$rpc_server)
91 if [ $count -ne ${#nbd_list[@]} ]; then
95 nbd_dd_data_verify
"${nbd_list[*]}" "write"
96 nbd_dd_data_verify
"${nbd_list[*]}" "verify"
98 nbd_stop_disks
$rpc_server "${nbd_list[*]}"
99 count
=$
(nbd_get_count
$rpc_server)
100 if [ $count -ne 0 ]; then
107 function nbd_rpc_start_stop_verify
() {
111 nbd_start_disks_without_nbd_idx
$rpc_server "${bdev_list[*]}"
113 nbd_disks_json
=$
($rootdir/scripts
/rpc.py
-s $rpc_server nbd_get_disks
)
114 nbd_disks_name
=($
(echo "${nbd_disks_json}" | jq
-r '.[] | .nbd_device'))
115 nbd_stop_disks
$rpc_server "${nbd_disks_name[*]}"
117 count
=$
(nbd_get_count
$rpc_server)
118 if [ $count -ne 0 ]; then