Preface
--------------
This show a simple example to set up some logical units (lu).
Please refer to README.iscsi on instructions to create logical unit(s).

tgtadm options
--------------
You are able to modify some logical unit parameters as well as
modify behaviour of SCSI Sense op code.

NOTE: It is not recommended to change these parameters after the
target/logical unit has been enabled to accept initiators.

It is currently possible to change/modify the following:

 Vendor Identification
 Product Identification
 Product Revision
 Format of returned 'sense data'
 Define if the lu is capable of supporting removable media
 Define/set if the lu is online / offline.
 Params are passed using the 'tgtadm' utility:

Format of options are:
 vendor_id="string"
 product_id="string"
 product_rev="string"
 removable=<0|1> - 0 = non-removable, 1 = removable media
 sense_format=<0|1> - 0 = Clasic sense format, 1 = Support descriptor format
 online=<0|1> - 0 == Unit offline, 1 == Unit Online

The options are passed to the logical unit via the "--params" switch to tgtadm

e.g.
tgtadm --lld iscsi --mode logicalunit --op update --tid <TID> --lun <LUN> \
            --params vendor_id=QUANTUM,product_id=HD100,product_rev=0010
tgtadm --lld iscsi --mode logicalunit --op update --tid <TID> --lun <LUN> \
            --params removable=1,sense_format=1,online=1

Or it can be performed in one go:
tgtadm --lld iscsi --mode logicalunit --op update --tid <TID> --lun <LUN> \
    --params vendor_id=QUANTUM,product_id=HD100,product_rev=0010,scsi_sn=FRED00,removable=1,sense_format=0,online=1


# sg_inq -v /dev/sg5
    inquiry cdb: 12 00 00 00 24 00
standard INQUIRY:
    inquiry cdb: 12 00 00 00 42 00
  PQual=0  Device_type=0  RMB=1  version=0x05  [SPC-3]
  [AERC=0]  [TrmTsk=1]  NormACA=0  HiSUP=0  Resp_data_format=2
  SCCS=0  ACC=0  TGPS=0  3PC=0  Protect=0  BQue=0
  EncServ=0  MultiP=0  [MChngr=0]  [ACKREQQ=0]  Addr16=0
  [RelAdr=0]  WBus16=0  Sync=0  Linked=0  [TranDis=0]  CmdQue=1
  Clocking=0x0  QAS=0  IUS=0
    length=66 (0x42)   Peripheral device type: disk
 Vendor identification: QUANTUM
 Product identification: HD100
 Product revision level: 0010
    inquiry cdb: 12 01 00 00 fc 00
    inquiry: requested 252 bytes but got 7 bytes
    inquiry cdb: 12 01 80 00 fc 00
    inquiry: requested 252 bytes but got 12 bytes
 Unit serial number: FRED00

As can be seen from above 'sg_inq' output, the RMB (removable) bit is set to 1.
The Unit serial number page updated with 'FRED00'

Mode Page Creation
------------------
Create mode page '2', subpage 0 and 14 bytes of data.
tgtadm --mode logicalunit --op update --tid 1 --lun 2 \
         --params mode_page=2:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0:0

Create mode page '3', subpage 0 and 22 bytes of data.
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 \
         --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

Create mode page '10', subpage 0 and 10 bytes of data.
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 \
         --params mode_page=10:0:10:2:0:0:0:0:0:0:0:2:0

Create mode page '0x1c', subpage 0 and 10 bytes of data.
tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 2 \
         --params mode_page=0x1c:0:10:8:0:0:0:0:0:0:0:0:0


SMC unique options
------------------

--params have several unique key=value pairs ontop of all other modules.
 - element_type=<1|2|3|4>
 - start_address=Number between 1 & 65535
 - quantity=Number between 1 & 65535
 - sides=1|2
 - address=Number between 1 & 65535
 - barcode="Char string up to 10 chars"
 - tid=<number>
 - lun=<number>
 - media_home=/path/to/virtual/media
   The 'barcode' of media is appended to this path specified in media_home and
   it is this file which is used for the backing store when reading/writing to
   DATA TRANSFER DEVICE at address 'tid=x lun=x'

Several of these parameters 'work together'

e.g. To add 'quantity' slots as 'element_type' starting at 'start_address'
 - element_type=<1|2|3|4>
 - start_address=Number between 1 & 65535
 - quantity=Number between 1 & 65535

Note: start_address + quantity should not overlap with any other slots..


While 'configuring slot 'address' of 'element_type':
 - Set barcode of meda (occupy slot)
 - If element type is DATA TRANSFER DEVICE, then define TID & LUN of device.

 - element_type=<1|2|3|4>
 - address=Number between 1 & 65535
 - barcode="String up to 10 chars"
 - sides=<1|2>
 - tid=<tid of device which belongs at this address>
 - lun=<lun of device which belongs at this address>


It is the responsibility of the user not to configure overlapping slots
of differing types.

Slot types:
 1 -> Medium Transport (picker arm)
 2 -> Storage Element
 3 -> Import/Export Element
 4 -> Data Transfer device (CD drive, tape drive, MO drive etc)

Please refer to scripts/tgt-core-test for a working example.

