This is the second major release of support for iSCSI Extensions for RDMA (iSER) to the existing STGT user space SCSI target. It uses OpenFabrics libraries and kernel drivers to act as a SCSI target over RDMA-capable devices. The code has been tested against the existing Linux iSER initiator over InfiniBand cards, but should be specification compliant and work generally. A bit of documentation is included, and a short technical report is available at http://www.osc.edu/~pw/papers/iser-snapi07.pdf . For performance, a single SCSI client using iSCSI over gigabit ethernet does 100 MB/s. iSCSI over IPoIB gets 200 MB/s, and iSER over native IB sees 500 MB/s (to a RAM disk). More information on STGT is available at http://stgt.berlios.de . The iSER patches can be downloaded from: git://git.osc.edu/tgt or browsed at: http://git.osc.edu/?p=tgt.git;a=summary New and modified files are distributed under a GPLv2 license. Following this mail are the individual patches to stgt-devel for review and eventual inclusion in STGT. Changes since previous series are as follows. Major rewrite and cleanup. Many error handling issues and corner cases were fixed. Also the patchset was split up even finer for easier review: 18 small patches instead of 7 big ones. Per-connection resource negotiation. Hooks in iscsid give the transport a chance to prepare itself before the transition to full-feature mode. This allows sizing buffers correctly; however, there are some issues with the open-iscsi initiator in this area still. It doesn't negotiate all the parameters. We'll get it patched up. All debug and error messages go through tgt log.c functions rather than appearing on stderr through iser-private debugging functions. Multiple RDMA devices in the target should work now, but have never been tested. The code is at least structured so it could function. IP-based ACLs work. There is a way to get an IP address out of an RDMA connection, and we use that to check the ACLs. Fixed RDMA data transfer size to be independent of [IT]RDSL as it should be. Tested with valgrind. Memory does not leak. Tested with open-iscsi regression script. All the tests pass, both for TCP and RDMA. Also, various linux kernels have minor iscsi and iser bugs. We're running on v2.6.22-rc5, which mostly works, but sometimes will oops. Certainly we'll get these fixed, but be careful on production machines. Thanks to everybody for suggestions and fixes, especially Alexander Nezhinsky and Erez Zilber. -- Pete |