Subject: iSCSI: ISID progress

From: [email-masked]
Date: Wed, 10 Oct 2001 18:48:55 -0400

This message is shorter than my last one, so that's
at least a superficial indication of progress ;-).

Jim and Julian had four comments/objections to the
notion of using a text key to indicate iSCSI Initiator
Port Name.  Summarizing and responding:

Jim (a): Optional use of port name is ok as far as SAM-2 is
	concerned, but is odd.

Indeed it is odd, but given the choice between an odd
mapping of SAM-2 to iSCSI and allowing odd behavior of
iSCSI implementations, I'll take the former.

Jim (b): Would require at least as much coordination above
	the session level of iSCSI as ISIDs.

That would be incorrect.  128 bits is sufficient to eliminate
coordination.  The reference for this is an expired Internet-
Draft, draft-leach-uuids-guids-01.txt, that can still be found
on the web at:

http://casbah.org/cbRFC/misc/draft-leach-uuids-guids-01.txt
http://globecom.net/ietf/draft/draft-leach-uuids-guids-01.html

I'm not seriously proposing that port name generation be done
in this fashion, but rather providing a widely used counter-
example to Jim's statement.  Note that a network interface
MAC is likely to be available to many iSCSI implementations.

Jim (c): How to describe model when the text key is optional?
	"Is it that all initiator session endpoints that don't
	 provide this text key have *implicit* unique names and
	 only when the text key is presented does the name get
	 explicit (and then possibly not be unique)? In that case,
	 the key would have to be supplied in login next to the
	 InitiatorName.

Yes and yes when it's used, in that order.  Jim's comment (a)
about this being odd applies.

Julian: ... and have as much chances to blow a session as ISID

That would also be incorrect.  As previously stated, ISID conflict
is fatal to one of the sessions involved (one cannot change the
ISID and continue), and can occur in any system that opens parallel
sessions.  This text key conflict need not be fatal (one can
change the text key and continue negotiation) and can only occur
in systems that want to use the new port-spanning persistent
reservation functionality, as other systems won't use the text
key.  Also see the draft noted in response to Jim (b) above;
Julian's "have as much chance" language is incorrect.

As previously noted, I can also deal with requiring conservative
reuse of ISIDs as a means to address this situation.

Thanks,
--David

---------------------------------------------------
David L. Black, Senior Technologist
EMC Corporation, 42 South St., Hopkinton, MA  01748
+1 (508) 435-1000 x75140     FAX: +1 (508) 497-8500
[email-masked]       Mobile: +1 (978) 394-7754
---------------------------------------------------

---

From: "Jim Hafner" <[email-masked]>
Date: Thu, 11 Oct 2001 08:58:41 -0700

David,

More comments in line

Jim Hafner

[email-masked] on 10/10/2001 03:48:55 pm

To:   Jim Hafner/Almaden/IBM@IBMUS, [email-masked]
cc:
Subject:  iSCSI: ISID progress

Indeed it is odd, but given the choice between an odd
mapping of SAM-2 to iSCSI and allowing odd behavior of
iSCSI implementations, I'll take the former.
<JLH>
I'm not sure what "odd behavior of iSCSI implementations" you're referring
to here.
</JLH>

I'm not seriously proposing that port name generation be done
in this fashion, but rather providing a widely used counter-
example to Jim's statement.  Note that a network interface
MAC is likely to be available to many iSCSI implementations.
<JLH>
I glanced through that draft and certainly don't think it is the right
approach to this problem.  However, if you/we believe that by simply making
the equivalent of the ISID field or portname text value big enough, we can
find a solution to the "coordination problem", why can't we just *require*
that sessions have a SCSI port name (extension to iSCSI Name) that is long
enough to solve the weak or no coordination problem, instead of making this
"TBD"?

I've argued that having the SCSI Portname is valuable.  I've argued that
there wasn't any net value in putting the name in a key because I already
had the ISID field as part of the "name space for the session endpoint".
But if the claim is simply the ISID isn't big enough, then I don't have a
problem with effectively making them bigger (either in the header or in a
key value).   I've even suggested one way to do that by embedding the
initiator portal group tag in the value.  But another way is to embed the
OUI of the HBA (except for the cases where there isn't an HBA) or embed one
of the MACs of one of the nics (except for the cases where there isn't a
nic, e.g., dialup), etc.  But we'd have to solve all the possible cases
(all of which the NDT had to deal with for iSCSI Names in the first place).

So, are we at the point where (for this alternative proposal):
(a) we just need a bigger (than 2byte ISID) field for the SCSI portname
extension
(b) we just need an algorithm that lets each component that wants to
generate such a name can do so without collision concerns?
</JLH>

That would also be incorrect.  As previously stated, ISID conflict
is fatal to one of the sessions involved (one cannot change the
ISID and continue), and can occur in any system that opens parallel
sessions.  This text key conflict need not be fatal (one can
change the text key and continue negotiation) and can only occur
in systems that want to use the new port-spanning persistent
reservation functionality, as other systems won't use the text
key.  Also see the draft noted in response to Jim (b) above;
Julian's "have as much chance" language is incorrect.
<JLH>
I think this is somewhat misleading about the cost ("fatal").  If we could
find a reasonable model for "reject: ISID in use" (rather than "blow away
the old session"), then the "fatal to one of the sessions" is a nit.  This
would happen on the first exchange of a connection so starting over isn't
any big deal (we may not even have to require connection drop, just restart
of the initial message with new ISID).  The same would happen with the key
as that would have to be somewhere in the pre-full feature phase (but in
this case it could happen anywhere in that phase).
</JLH>

Thanks,
--David