http://cr.opensolaris.org/~pdunlap/iscsit-webrev/webrev/

The iSER project would like to have some members of the networking team 
review the networking code in our first project deliverable which is an 
iSCSI transport plugin for COMSTAR.

 From the COMSTAR project page 
(http://www.opensolaris.org/os/project/comstar):

"COMSTAR is a software framework that enables you to turn any 
OpenSolaris host into a SCSI target that can be accessed over the 
network by initiator hosts. COMSTAR breaks down the huge task of 
handling a SCSI target subsystem into independent functional modules. 
These modules are then glued together by the SCSI Target Mode Framework 
(STMF)."

COMSTAR currently provides FC transport and our project adds iSCSI 
transport capability.  We are using the sockfs kernel API, modeled after 
the code in the Solaris iSCSI initiator and the CIFS server.

Our project is trying to get into build 100 so this functionality can be 
in OpenSolaris 2008.11 (like everyone else right?)  It pains me to even 
ask this but I would like to get review feedback by Monday morning 9/22 
(preferably sooner) so that we can be ready for putback.  You are of 
course welcome to comment on any aspect of the webrev but with the short 
timeline we are trying to divide and conquer the review workload.  
Consequently I'm primarily looking to the networking community for 
feedback on our usage of the sockfs calls and other networking code.

Background:

The code that interacts with sockfs is contained within this file:

usr/src/uts/common/io/idm/idm_so.c

And the relevant wrapper functions are named:

idm_socreate
idm_soshutdown
idm_sodestroy
idm_get_ipaddr - Get list of IP addresses bound to NICs.  We need this for
the iSCSI "SendTargets" request
idm_sosend
idm_iov_sosend
idm_sorecv
idm_iov_sorecv
idm_sosendto

We used these wrappers partly to abstract the details of the sockfs calls
themselves and partly to make it easier to migrate to the Volo kernel
socket API when it is available.

Some more functions that might be interesting:

idm_so_svc_port_watcher - Kernel thread that waits in accept() for new
connections

idm_sorx_thread - Receives iSCSI PDU's from an established iSCSI connection
idm_sotx_thread - Process the send queue which can have either individual
iSCSI PDU's (idm_pdu_t) or regions of memory (idm_buf_t).

If there is additional clarification I can provide please let me know.  
I appreciate any review feedback you can provide.

-Peter

_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to