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