[openib-general] Location for iser-target code

Mike Christie michaelc at cs.wisc.edu
Mon Apr 10 09:32:31 PDT 2006


Dan Bar Dov wrote:
> On 4/10/06, FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp> wrote:
>> The OLS abstract may be more informative.
>>
>> http://www.linuxsymposium.org/2006/view_abstract.php?content_key=19
> 
> Is the full document available as well?

The code is shorter than the paper.

> 
>> In short, tgt is the framework for SCSI target drivers. The
>> combination of tgt and the iSCSI target driver for NIC provides the
>> similar features that IET does.
> 
> SCSI targets are LLDs that sit below the mid-layer. iSCSI target on
> the other hand is a "network" protocol driver, that sits above SCSI
> (sd, st, sg, or directly over mid-layer). Seems like you'd need two
> different frameworks, no?
> 

tgt/stgt is probably two frameworks from your point of view. There is a 
kernel part for target LLDs to hook into. The kernel part is similar to 
scsi-ml, actually it builds onto it and uses some of the scsi-ml 
functions, and provides code to share for tasks like creating scatter 
lists and mapping commands between the kernel and userspace. The target 
LLD basically handles lower level issues like DMAing the data, transport 
issues, etc, pretty much what a scsi-ml initiator driver does. For 
iscsi, the tgt lld performs similar tasks as the initiator. It parses 
the iscsi PDUs or puts them on the interconnect, handles session and 
connection manamgement (this would be done like open-iscsi though), but 
then then passes the scsi command to tgt's kernel code.

The other part of the framework is the userspace component. The tgt 
kernel component basically passes scsi commands and task management 
functions to a userspace daemon. The daemon contains the scsi state 
machine and execute the IO. When it is done it informs the the kernel 
component which in turn maps the data into the kernel, forms scatter 
lists, and then passes them to the target LLD to send out.



More information about the general mailing list