implemented for IPv6, but works fine for IPv4)
+ now poll any connections opened in the target. select is used if
poll is not available
+ remove ramdisk type of backing store, since it was never used, and
is of no use for our needs
+ bump version to 20060727
serve simultaneously to DEFAULT_TARGET_MAX_SESSIONS, add a -s argument to
iscsi-target(8) to specify the maximum number of sessions.
Also bump default from 4 to 16.
following Dan Carosone's suggestion of the uint64_t array.
Abstract a bit more from the HTOBE64() macro intrigue, for platforms
like Solaris/x86 which have fun in this part.
Tested only with little-endian initiators for now.
Bump version to 20060526.
initiator (used on Solaris 10 Update 1) - the initiator demands that a
UUID is returned, so give it one.
Add autoconf glue for that, and a compat uuid_create(3) and
uuid_to_string(3).
This still spews a lot of output via the target's syslog, but persevere,
since it does actually make the target work with the Solaris initiator:
solaris10# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c1d0 <DEFAULT cyl 29728 alt 2 hd 64 sec 63>
/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
1. c2t5d0 <DEFAULT cyl 96 alt 2 hd 64 sec 32>
/iscsi/disk@0000iqn.1994-04.org.netbsd.iscsi-target%3Atarget00001,0
Specify disk (enter its number): ^D
solaris10# df -k /mnt
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c2t5d0s0 91407 1041 81226 2% /mnt
solaris10# uname -a
SunOS solaris10 5.10 Generic_118844-26 i86pc i386 i86pc
solaris10#
Thanks to lint that caught this on big-endian arches. Little-endian
compiled, but I guess that converting your loop counter into
big-endian inside the loop is not exactly what you want to do.
+ Properly pad the names with spaces (with thanks to Bill Studenmund)
+ Use the official T10 vendor name, "NetBSD".
+ Minor cleanup in the INQUIRY command
+ Rather than just punting on the REPORT LUNs SCSI command, emulate it
properly. This change makes the target work with the Solaris initiator:
AVAILABLE DISK SELECTIONS:
0. c1d0 <DEFAULT cyl 29728 alt 2 hd 64 sec 63>
/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
1. c2t5d0 <DEFAULT cyl 97 alt 2 hd 64 sec 32>
/iscsi/disk@0000iqn.1994-04.org.netbsd.iscsi-target%3Atarget00001,0
Specify disk (enter its number): 1
Add some very crude hacks which allow the iscsi-target to work with IPv6:
Mar 5 23:43:45 sys3 iscsi-target: > Discovery login from iqn.1994-04.org.NetBSD.iscsi-initiator:agc on 7f00:1::1002:cbc
Mar 5 23:43:45 sys3 iscsi-target: < Discovery logout from iqn.1994-04.org.NetBSD.iscsi-initiator:agc on 7f00:1::1002:cbc
Mar 5 23:43:45 sys3 iscsi-target: > Normal login from iqn.1994-04.org.NetBSD.iscsi-initiator:agc on 7f00:1::1002:cbc
Mar 5 23:43:48 sys3 iscsi-target: < Normal logout from iqn.1994-04.org.NetBSD.iscsi-initiator:agc on 7f00:1::1002:cbc
These have still to be cleaned up, but this will happen over the next
few days.
Update the TODO list to reflect the current state.
Add a -V argument to iscsi-target (and iscsi-harness), which will print
the utility name, version number, and destination for all bug reports,
and then exit the utility.
Modify the documentation accordingly.
Re-run autoconf and autoheader to pick up the necessary autoconf glue.
0x1b Load/Unload Sequential
0x4d Log Sense
0x5e (unknown for just now)
0x35 Synchronise cache
as no ops for the present time - reported on current-users by Chavdar
Ivanov as being generated by the Solaris 10 initiator.
file.
The new file specifies whether targets should be presented as readonly
or read-write.
If a target is marked as read-only, don't allow any writes to be made
to it.
Also, add syntax recognition of "any" and "all" in the netmask recognition
code.
original Intel code (BSD-licensed) in othersrc, by myself.
This provides an iSCSI target implementation in userland, as well as a
test harness which also runs in userland.
The iSCSI target has been tested with version 1.06 of the Microsoft
initiator, as well as with its own test harness.