Introduction
-------------
Linux target framework (tgt) aims to simplify various SCSI target
driver (iSCSI, Fibre Channel, SRP, etc) creation and maintenance.

Tgt consists of kernel modules, user-space daemon, and user-space
tools. Some target drivers uses all of them and some use only
user-space daemon and tools (i.e. they completely runs in user space).

Currently, tgt supports three target drivers:

- IBM VIO server (ibmvstgt)
- iSCSI
- Xen vscsifront/back

Note that tgt is under active development. Don't play with important
data.

The code is under the GNU General Public License version 2.


Preparation
-------------
The iSCSI target driver can works with the 2.6.X kernels. It requires
OpenSSL library (libssl-dev for debian, openssl-devel for Fedora).

host:~/tgt/usr$ make ISCSI=1

If you want IBM VIO target driver, get kernel version 2.6.20, rebuild
the kernel, and reboot with the new kernel. Note you need to enable
SCSI_TGT, SCSI_SRP, and SCSI_IBMVSCSIS kernel options.

host:~/tgt/usr$ make KERNELSRC=<kernel-src-directory> IBMVIO=1

Make sure that everything is built successfully.

Now you can run tgt. Target drivers have their own ways for
configuration. So find an appropriate documentation in the doc
directory.


Developer Notes
-------------
The central resource for tgt development is the mailing list
(stgt-devel@lists.berlios.de).

First, please read the following documents (in short, follow Linux
kernel development rules):

http://lxr.linux.no/source/Documentation/CodingStyle
http://lxr.linux.no/source/Documentation/SubmittingPatches

Then, check your patches with the patch style checker prior to
submission (scripts/checkpatch.pl) like the following example.

fujita@arbre:~/git/tgt$ ./scripts/checkpatch.pl ~/0001-add-bidi-support.patch
Your patch has no obvious style problems and is ready for submission.
