Commit Graph

53 Commits

Author SHA1 Message Date
agc
445a5e5f36 Bump version to 20071114, to include the iSCSI initiator in the portable
version.
2007-11-14 20:05:52 +00:00
agc
e99d7af118 Add some commented out code (not enabled yet) to deal with MODE_SENSE_10
SCSI commands.

No functional change.
2007-11-14 19:58:06 +00:00
agc
7f7c78c76b Rename include/util.h to include/iscsiutil.h to avoid a nameclash
with /usr/include/util.h.
2007-11-12 23:25:40 +00:00
agc
d7728ae0d3 Update to version 20071025
Pay closer attention to the TSIH value that is assigned by the target -
rather than a simple (session id + 1) value, which cycles after 16 sessions
are used, use a central counter, and increment that whenever a TSIH is
apportioned. This fixes some problems for me with multiple targets being
ignored, and only the first target being used. Tested with the Microsoft
initiator, and the embryonic NetBSD initiator.

Use more enumerated types, rather than cpp definitions.

Use enumerated types also in preference to magic numbers.

In the iSCSI test harness, use the -t argument to specify a disk target
exported by the NetBSD iSCSI target. This allows us to test for the
situation outlined above.

Add my copyright to the test harness - there's no Intel code left anymore.

Modify the way initiator login and logout information is presented to the
user. This is only of concern to people who use this with the target in
non-detached (non-daemon) mode.

Get rid of the MODE_SENSE_10 and MODE_SELECT_10 cases in the disk switch,
since they do not return responses in the correct format yet.
2007-10-26 18:36:45 +00:00
agc
7dcbb17115 Bump version of the NetBSD iSCSI target to 20070925.
+ fix a reported problem with newer versions of FreeBSD which require
a block of data to be read and written, rather than a single byte.

+ add support for Extended Inquiry Data VPD Page (0x86), reported to be
necessary to interoperate with the AIX initiator.

+ add preliminary support for the Write and Verify SCSI operation (0x2e).
2007-09-25 22:16:58 +00:00
agc
4e1fbeb934 Might as well define MODE_SELECT_6 and MODE_SELECT_10 too before too
many people get violent.
2007-09-19 23:28:15 +00:00
agc
4b38cf6082 Use AI_NUMERICSERV as a flag to getaddrinfo() when trying to find the
correct service - allows us to bind to the correct port, and not the
iSCSI control port.

Update version to 20070815, and re-run autoconf and autoheader.
2007-08-16 06:25:16 +00:00
agc
6396470148 + re-activate code to set port number in the iSCSI target
+ if the attempt to getaddrinfo() on (host,port) fails, try various
	combinations of (host,service)
+ clean up lint
+ set sess->d when we get traffic in, rather than just at iSCSI login
2007-08-14 18:52:48 +00:00
agc
ad9b63f6fb Move my own code from a 4 clause to a 3 clause licence. 2007-06-16 23:13:25 +00:00
agc
bcf774971d Re-generate autoconf parts.
No change to NetBSD distribution, since it is made using reachover Makefiles.
2007-06-16 10:02:23 +00:00
agc
f980d4284c Move away from magic constants for the SCSI return codes.
Give the appropriate size bound when filling in data for the extended
INQUIRY command.
2007-01-10 18:04:31 +00:00
agc
eaf1b66230 Export the function to split a config file entry up into parts,
conffile_split(), and make it work in the presence of a NULL conffile
descriptor (i.e. from stdin).
2007-01-08 21:44:47 +00:00
agc
72a3c3e7b9 Add support for Vital Product Data 0x80, Unit Serial Number, reported to be
used by the beta FreeBSD initiator by Paul Dekkers.
2006-08-03 20:49:11 +00:00
agc
66644e0749 + add support for IPv6 in the target (CIDR scoping has still to be
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
2006-08-03 20:21:59 +00:00
agc
2b1d5a0345 :g/%i/s//%d/gc
Also make a first stab at implementing persistent reserve in SCSI command.
2006-05-31 19:53:13 +00:00
agc
c52b27c275 Bump version number for the portability fix, and the dynamic number of
sessions.
2006-05-27 21:29:32 +00:00
agc
36fad19155 Rather than hardcoding the maximum number of sessions that a target can
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.
2006-05-27 21:21:04 +00:00
agc
2fa516b2eb Rewrite the way report_luns() works, after suspicion by Matt Green, and
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.
2006-05-26 16:34:43 +00:00
he
c6974f26a9 Use the value-returning variants of the 64-bit endian macros instead
of the argument-tweaking variants (e.g. htobe64 instead of HTOBE64).
2006-05-22 20:48:08 +00:00
agc
e32a776a5a Adjust the data VPD returns, to work around a problem in the Cisco
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#
2006-05-21 09:26:37 +00:00
uwe
ee952d9fc0 Use be64toh/htobe64 instead of upper-case versions.
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.
2006-04-30 01:07:59 +00:00
agc
84fba20a22 Use the correct opcode for the WRITE6 SCSI command 2006-04-26 20:29:56 +00:00
agc
000a68021a + Some minor formatting cleanup in the header files.
+ 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
2006-04-24 21:59:03 +00:00
agc
339a11eb23 Bump version to 20060417 for the Mac OS X build fixes (thanks, Jason) 2006-04-18 06:52:59 +00:00
thorpej
0c7787e9ae Let MD5Update() take a void *, rather than a uint8_t *. Gets rid of a
GCC 4 warning.
2006-04-17 16:49:16 +00:00
thorpej
01de58d459 Test HAVE_STDINT_H and bring in <stdint.h> if defined. 2006-04-17 16:45:02 +00:00
thorpej
57de6c70c3 Pull in config.h to get the definition of HAVE_STDINT_H 2006-04-17 16:44:42 +00:00
thorpej
7dd6393f48 Check for <libkern/OSByteOrder.h>. If it exists, use it to get the
OSSwapBigToHostInt64() definition for HTOBE64().  This now builds on
Mac OS X 10.4.6.
2006-04-17 16:30:00 +00:00
agc
f27a3c2c6b Commit regenerated config.h so that the correct version strings are picked
up for NetBSD.
2006-04-16 17:19:50 +00:00
agc
cf0dd67053 Provide a bit more information in the error and warning routines - needed
since variadic macros were removed.
2006-03-31 23:22:24 +00:00
agc
2171876d1d More portability fixes, mainly for Solaris 9. 2006-03-28 20:03:30 +00:00
agc
f02decf866 Add changes to make the NetBSD iSCSI target compile and run on Solaris 9
Ultrasparc.
2006-03-27 22:26:28 +00:00
agc
6e1f35f92e minor cleanup in preparation for porting the NetBSD iSCSI target to Solaris 9. 2006-03-26 23:34:06 +00:00
agc
e1d9f9cea5 First stab at implementing INQUIRY for Vital Product Data, aka Page 83
information in the Solaris initiator, with information taken from
SPC3, T10/1416-D Revision 23, from www.t10.org.

This is untested, work-in-progress.
2006-03-23 00:01:48 +00:00
agc
86caa230d8 Actually do something with the SYNC_CACHE command - use fsync_range(2) if
it's available, falling back to fsync(2) if it's not. Add the necessary
glue to the autoconf scripts.
2006-03-21 22:56:55 +00:00
agc
cbf5d4f8f5 Abstract out some common code, and place it in the utilities source.
Get rid of some #ifdef __KERNEL__ abstractions - they're not needed.
2006-03-21 21:03:14 +00:00
agc
a055fd96f7 Incorporate changes from F. Senault, modified by myself to use
autoconf glue, to make the NetBSD iSCSI target build and run on
FreeBSD.
2006-03-20 20:45:07 +00:00
agc
2010c5954a Clean up, mostly to autoconf glue, to check whether syslog(3) exists or not. 2006-03-20 20:25:42 +00:00
agc
a4c7ca1aeb Get rid of c99isms in the form of variable number of args to CPP macros.
This should slim down the resulting binaries a fair bit as well.
2006-03-12 18:47:27 +00:00
agc
d4397af4d8 One more off the TODO list, although I hadn't realised it was going to be
as painful as it was.

Teach GNU autoconf to recognise socklen_t, and use it in the code.
2006-03-06 20:52:32 +00:00
agc
32306cea7e I have a nasty feeling it's time to sell all my guitars:
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.
2006-03-05 23:50:46 +00:00
agc
7717b41470 Include version number, passed down from GNU autoconf.
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.
2006-03-04 21:56:11 +00:00
agc
b95774e6d4 Implement SCSI commands:
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.
2006-02-24 20:47:30 +00:00
he
127058acaa Include <sys/param.h> explicitly relatively early, so that we pick
up the definition of MAX earlier, and avoid a redefinition which
GCC 2 isn't very fond of.  Fixes build problem for vax.
2006-02-22 08:56:46 +00:00
agc
f06c81ed28 Further cleanup.
Add an initiator_discover() function, and start to break up the monolithic
discovery function that's currently used.
2006-02-20 08:59:07 +00:00
agc
56abe96063 By popular request, modify the IQN to:
"iqn.1994-04.org.netbsd.iscsi-target"
2006-02-16 23:16:05 +00:00
agc
ec095879d4 Introduce a backwards compatible change to the targets configuration
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.
2006-02-16 19:19:38 +00:00
agc
c963d486fc Present multiple targets properly 2006-02-14 20:08:37 +00:00
agc
a31b31cf51 keep a reference to the device target information in the globals structure 2006-02-12 15:34:29 +00:00
agc
e48ae9ed1d use a proper prototype for allow_netmask 2006-02-12 15:33:26 +00:00