Commit Graph

65 Commits

Author SHA1 Message Date
agc
bfdff00bed Regenerate autoconf files for the portable version 2007-12-21 13:06:03 +00:00
agc
f327aec7bc Update portable version of the iSCSI software to 20071218, to
include various minor build fixes.
2007-12-18 11:19:06 +00:00
agc
75a8f5acf1 Bump the number of targets that the initiator can handle to 16 (from 1). 2007-12-11 08:49:12 +00:00
agc
a3d56a1b30 Update to version 20071209, to include new initiator "discovery only"
option, the iqn alias configuration option, and the different md5
routines which are being used.
2007-12-09 09:38:48 +00:00
agc
7d25996b8b Add prototypes for initiator_get_targets() and initiator_set_target_name(). 2007-12-09 09:33:35 +00:00
agc
4ed8885f3b Move the iSCSI code over to use the endian neutral md5 code,
originally from Poul-Henning Kamp, as found in pkgsrc/pkgtools/digest.
This should address some of the MD5 problems that are being seen on
some hosts at login time.

Re-run autoconf, autoheader and configure.
2007-12-09 09:21:03 +00:00
agc
df4b4cffe4 Add support in the target for specifying the target IQN (iSCSI Qualified
Name) in the targets configuration file.

Now an entry of the form:
target0=iqn.binky rw extent0 any

will mean that target0 gets presented with the iqn of "iqn.binky".
This can be useful for shorter aliases for IQNs. With thanks to Peter
Eisch for the idea.

Note that the target's base IQN can still be set with the -t parameter
to iscsi-target.
2007-12-09 09:16:42 +00:00
agc
06a857cac5 Add some definitions necessary for building on busybox thanks to Peter
Eisch, update to version 20071206, and run autoconf and autoheader
again to regenerate the version information.
2007-12-06 00:08:05 +00:00
agc
6febf18c31 Quieten gcc - remove an extraneous ',' after the last element in an
enumerated type.
2007-12-05 07:23:03 +00:00
agc
6436d01687 Update autoconf parts to 20071130 to pick up two fixes:
md5 endian fix for Big Endian platforms

Greg Oster's impressively found fix for parameter negotiation
2007-11-30 09:56:32 +00:00
agc
9e8e283ee9 Update the portable version to 20071122, via autoconf.
Only change is that the target returns MAXLBA in a READ_CAPACITY command
response, and the initiator adds one to it to find out the size.
2007-11-22 22:56:20 +00:00
agc
516da92e13 Add some more definitions which will be needed in the future. 2007-11-22 22:51:09 +00:00
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