qla4xxx runs in session mode, so it looks more like a scsi/SPI driver
than a iscsi driver. For userspace open-iscsi tools, this means that we
do not completely hook in like how iser or tcp do. The HW card will log
in the target then notify userspace that a session is created. The card
will also log out and notify userspace of the session destruction.
qla4xxx does end up using the scanning, device online, and session
block/unblock code and in the future it will use a lot more userspace code.
Currently for userspace, I have the following commands working:
iscsiadm -m session
[displays all the running sessions, but for qla4xxx ones the recid field
is all zeros]
iscsiadm -m discovery -t st -a $host_no -p 192.168.0.10:3260
[performs discovery and logs in to sessions found]
iscsid
[can be started then you can load the qla4xxx module or you can load the
the module then run qla4xxx]
That is all I guess. It works though and you can use iscsi_tcp and
qla4xxx sessions at the same time. I need to do lots of cleanup to the
userspace code. I kinda cheated and added a utransport->hw_db flag
instead of abstracting everything nicely (I will fix that before merging).
These are the last major changes I have so do we have any more major
cleanup. We have to remove the ql4_attr.c file and do the sparse type
junk. That is all I can remember. Anyone???
These patches were made over Dougs tree and the get param patch
http://groups.google.com/group/open-iscsi/browse_thread/thread/d3b55e269a2c0ee8/15c902aaf53f65ae#15c902aaf53f65ae
and the target nr patch
Attached is the userspace changes need. It is as one big patch so it is
easier to distribute and test. When I have things more polished I will
break it up for review. But to run it today, just get the current svn,
compile and run with qla4xxx tree.