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]
