This is an old revision of the document!
Aim of this project is to create kernel-based iSCSI target and initiator. For the target, there are two main components:
* ctld(8), the userspace daemon, responsible for handling configuration, listening for incoming connections, performing authentication and iSCSI parameter negotiation, handling discovery sessions, and, for normal sessions, handing off connections to the kernel after the iSCSI Login phase finishes successfully,
* iSCSI frontend to CAM Target Layer, which handles Full Feature phase.
As for the initiator, there are three:
* iscsid(8), which performs connection, Login Phase, and discovery,
* iscsictl(8), administrative utility to add, show and remove iSCSI sessions; it also handles configuration file, the syntax is the same as with previous initiator (iscsi.conf(5)),
* iscsi(4), the kernel part, which handles Full Feature phase.
The code is being developed in Perforce, under “//depot/user/trasz/iscsi/…”. It's working and verified to interoperate correctly with FreeBSD, Linux (Open-iSCSI), Solaris, Windows and VMWare ESXi initiators. There is still a lot to do - from optimization, to RDMA support, to rewriting the iSCSI initiator.
The project is sponsored by the FreeBSD Foundation and expected to end late summer 2013.
(Mostly) current diff, against 10-HEAD, can be found here: http://people.freebsd.org/~trasz/cfiscsi-20130305.diff. Note that this is still highly experimental, and totally not optimized or profiled, so the performance is expected to suck.