targets. Use this function in the initiator, to ensure that the same limit
is used throughout (i.e. stop you attempting to compile the initiator with a
different limit to the library - the initiator uses the library for most of
its functionality).
If truncating the number of targets in the initiator, truncate it to the
correct amount, not half of what it should be.
Obey RFC3720 when determining targets. SendTargets=All MUST be supported
on a discovery session, and MUST NOT be supported on an operational session.
Previously, SendTargets=All was used both in the initial discovery session
and the later session. (from Daisuke Aoyama - author of istgt).
Use relevant TargetAddress, not just first one we happen to find.
Following improvement based on feedback from Daisuke Aoyama (author of istgt):
Handle NOP-OUT CmdSN and immediate bit.
Handle NOP-IN TransferTag=0xffffffff.
Interim solution for dealing with Underflow bit in iSCSI response.
iscsi-initiator now talks to istgt and other targets.
Remaining issues:
CHAP support will not work with most targets (maximum 16 octet challenge is
used, but other initiators use up to 1024). However, CHAP can now be
bypassed by not specifying a username.
didn't work (insisted on a username being given and then used, plus always
advertised CHAP to the target). Make initiator work as advertised (i.e.
defaults to auth type none and so don't require a username).
To use CHAP you should explicitly request CHAP:
iscsi-initiator -a chap -u user -h targetname /mountpoint
For backwards compatibility, if a username is given (-u) and no auth type
is specified (-a), it will default to CHAP, i.e. to use none, just give no
username:
iscsi-initiator -h targetname /mountpoint
This means /mnt/mytarget.domain.local/target0/storage is now
/mnt/target0/storage.
Rationale is as follows:
- The hostname used may vary (i.e. name vs FQDN vs IP) which can mess up
mountpoints (especially across multiple hosts e.g. in a shared xen pool)
- Target name is given in the mount anyway so it is redundant
OK agc@
+ moved lba2cdb into iscsi-initiator.c and cdb2lba into disk.c
+ moved iscsi.c to protocol.c
+ calculate zero bytes and bits in a different way, and fix a bug or two
on the way
+ add the ability to trace different types of debug information from the
initiatior as well as the target
Add some iscsi-specific changes too:
Portable iSCSI - 20080207 to 20090622
+ Use modern autoconf
+ Add portable iSCSI initiator sources
+ New directory structure
+ Put OSD sources in their own directory
+ iscsi.h -> iscsiprotocol.h
+ add an iscsi.h for the new interface, and install it
+ globals_t -> iscsi_target_t
+ made an iscsi-target.h with all public functions in it
+ reformatted Intel license to fit in 80 columns
+ get rid of some abstractions which aren't needed any more
+ move over to a set of (name, value) tuples in target and initiator
+ add patch to set the target's StatSN at login time, from Gleb Kozyrev via
Mark Foster
+ add manual page for libiscsi(3)
+ update libiscsi shared object major version to 2 to reflect the changes
in API and ABI
More changes to come