File: tgt-core-test

package info (click to toggle)
tgt 1%3A1.0.85-1.3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,784 kB
  • sloc: ansic: 28,398; perl: 3,825; xml: 1,867; sh: 1,271; makefile: 301
file content (194 lines) | stat: -rwxr-xr-x 7,623 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#!/bin/bash

# Parent directory for data files..
HOME=/d/01

# Start tgtd if not running..
P=`ps -ef|grep -v grep|grep tgtd|wc -l`
if [ "X"$P == "X0" ]; then
	tgtd -d 1
	sleep 1
fi

if [ ! -d $HOME ]; then
	mkdir -p $HOME
fi

if [ ! -f $HOME/hd_block ]; then
	dd if=/dev/zero of=$HOME/hd_block bs=1M count=8
fi

set -x

###############################################################################
# Set up SBC HDD device
###############################################################################
TID=1

# Create Target ID 1..
tgtadm --lld iscsi --mode target --op new --tid $TID \
		-T iqn.2007-03:marks-vtl_tgt:`hostname`
sleep 1

# Create first LUN - Disk
LUN=1
tgtadm --lld iscsi --mode logicalunit --op new --tid $TID --lun $LUN -b $HOME/hd_block --device-type=disk

tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params scsi_sn=FRED00,scsi_id=Fred

tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params vendor_id=QUANTUM,product_id=HD100,product_rev=0010,removable=1,sense_format=0

#### Set up mode pages ####
# First try a couple of attempts with incorrect data..
# i.e. Expect the first two to fail!
# - Length too long & Incorrect value (300) as one if the params...
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=2:0:14:0x80:0x80:0:0xa:0:300:0:0:0:0:0:0:0:0:3
# - Length too short...
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=2:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0
#
# From here on - should work OK..
#

# Vendor Uniq - Mode page 0..
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0:0:0
# Disconnect page
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=2:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0:0
# Format mode page
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=3:0:22:0:0:0:0:0:0:0:0:1:0:2:0:0:0:0:0:0:0:0:13:0:0
# Geo mode page
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=4:0:22:0:0:0:0x40:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0x3a:0x98:0:0
# Caching Page
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=8:0:18:0x14:0:0xff:0xff:0:0:0xff:0xff:0xff:0xff:0x80:0x14:0:0:0:0:0:0
# ctrl mode page
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=10:0:10:2:0:0:0:0:0:0:0:2:0
# Informational Exceptions Control Mode Page
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0x1c:0:10:8:0:0:0:0:0:0:0:0:0


for LUN in 2 3 4; do
	if [ ! -f $HOME/cdrom$LUN ]; then
		dd if=/dev/zero of=$HOME/cdrom$LUN bs=1M count=8
	fi

	# Create LUN - CD/ROM
	tgtadm --lld iscsi --mode logicalunit --op new --tid $TID --lun $LUN -b $HOME/cdrom$LUN --device-type=cd
	tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
		--params vendor_id=VirtualCD,product_id=CD101,product_rev=0010,scsi_sn=XYZZY1$LUN,removable=1
	# Vendor Uniq - Mode page 0..
	tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
		--params mode_page=0:0:0
	# ctrl mode page
	tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
		--params mode_page=10:0:10:2:0:0:0:0:0:0:0:2:0
	# Informational Exceptions Control Mode Page
	tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
		--params mode_page=0x1c:0:10:8:0:0:0:0:0:0:0:0:0
done

###############################################################################
# Set up SMC Medium Changer
###############################################################################
LUN=5
if [ ! -f $HOME/smc ]; then
	dd if=/dev/zero of=$HOME/smc bs=1k count=1
fi

tgtadm --lld iscsi --mode logicalunit --op new --tid $TID --lun $LUN \
			-b $HOME/smc --device-type=changer

#### Set up mode pages ####
# From smc3-06.pdf
# Page 0x02: Disconnect/Reconnect SPC-3
# Page 0x0a: Control SPC-3
# Page 0x18: Protocol Specific LUN SPC-3
# Page 0x19: Protocol Specific Port SPC-3
# Page 0x1a: Power Condition SPC-3
# Page 0x1c: Informational Exceptions Control SPC-3
# Page 0x1d: Element Address Assignment SMC-3 7.3.4
# Page 0x1e: Transport Geometry Parameters SMC-3 7.3.5
# Page 0x1f: Device Capabilities SMC-3 7.3.2
# Page 0x1f/Subpage 0x41: Extended Device Capabilities SMC-3 7.3.3

# Dummy 'page 0'
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0:0:0
# Disconnect/Reconnect
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=2:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0:0
# Power Condition
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0x1a:0:18:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
# Informational Exceptions Control Mode Page
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0x1c:0:10:8:0:0:0:0:0:0:0:0:0
# Element Address Assignment - Setup afterwards.
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0x1d:0:0x12:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
# Transport Geometry Parameters
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0x1e:0:2:0:0
# Device Capabilities
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params mode_page=0x1f:0:0x12:0x0f:7:0x0f:0x0f:0x0f:0x0f:0:0:0:0:0x0f:0x0f:0x0f:0x0f:0:0:0:0

tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params vendor_id=STK,product_id=L700,product_rev=0010,scsi_sn=XYZZY_0,removable=1


## Add Data Transfer devices (3 drives)
# Define slot address for devices.
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=4,start_address=1,quantity=3
# Now define which device at each address.
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=4,address=1,tid=1,lun=2
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=4,address=2,tid=1,lun=3
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=4,address=3,tid=1,lun=4

# Medium Transport Elements (robot arm / picker)
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=1,start_address=16,quantity=1

## Storage Elements - 8 starting at addr 1024
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=2,start_address=1024,quantity=8
# Add 'media' to slots
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=2,address=1024,barcode=ABC123,sides=1
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=2,address=1026,barcode=ULT001L3,sides=1

# Import/Export Elements - 5 starting at addr 32
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params element_type=3,start_address=32,quantity=5

# define path to virtual media
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params media_home=/d/01/vtl

# Dump the list of configured slots to syslog...
tgtadm --lld iscsi --mode logicalunit --op update --tid $TID --lun $LUN \
	--params dump=1


# Allow ALL initiators to connect to this target
tgtadm --lld iscsi --mode target --op bind --tid $TID -I ALL


# Show all our good work.
tgtadm --lld iscsi --mode target --op show