Subject: RE: iSCSI: login issue - partial consensus call

From: [email-masked]
Date: Thu, 6 Sep 2001 10:10:37 -0400

Trying to close this issue, I think Nick's points are valid and
answer the question about when the "C-bit" would not be set --
when the entity sending the command suspects (or wants to protect
against) a problem in ISID assignment.  That appears to make option
B) the right choice:

       B) Should iSCSI mandate making this intended cleanup explicit 
          by setting a bit (Say C-bit, for Clear) in the Login Command 
          PDU to prevent an accidental session cleanup with a buggy 
          initiator code?

I have the following additional comments:
(1) A new bit is needed.  Reuse of the X-bit for this purpose has been
	rejected by rough consensus of the WG.
(2) In order to deal with the worst case, every iSCSI implementation
	MUST have an administrative interface that can prevent this new
	"C-bit" from ever being set, even if the implementation thinks
	that setting it is the right thing to do.  This provides a
	way to deal with situations in which sessions are getting
	stomped on by ISID problems.
(3) Some additional words about ISID usage are needed to encompass
	scenarios in which ISID assignment is not present, does not
	assign enough ISIDs, or fails for some reason.

Comments are welcome.  Further objection to B) needs to explain
why Nick's scenarios should not be considered.  I was disappointed
to see a prior statement that the ISIDs would be different "by
definition" - this is in the same category as saying that software
and protocol implementations are bug-free "by definition".  Keep in
mind that Nick is correct in saying:

> The problem is that iSCSI does not and will not specify how two HBAs
> from different vendors installed in the same Initiator should or could
> get a range of ISIDs for their exclusive use.  This will be operating
> system specific and vendor defined.

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
---------------------------------------------------

> -----Original Message-----
> From: Martin, Nick [mailto:[email-masked]]
> Sent: Wednesday, September 05, 2001 5:50 PM
> To: KRUEGER,MARJORIE (HP-Roseville,ex1); [email-masked]
> Subject: RE: iSCSI: login issue - partial consensus call
> 
> 
> Marj,
> 
> You mention vendors not knowing how to play right.
> The problem is that iSCSI does not and will not specify how two HBAs
> from different vendors installed in the same Initiator should or could
> get a range of ISIDs for their exclusive use.  This will be operating
> system specific and vendor defined.  It is uncertain that the same tool
> or repository would be used by all HBA vendors in any environment.
> Given this, accidental overlap in ISID space is not unlikely.
> 
> Given that there is no one way to play right, we must make sure that
> everyone can at least play nice.
> 
> My expectation is that sessions are infrequently established and long
> lived.  ISIDs may be re-used at will by their current owners.  When no
> "already owned" ISIDs are available, or an attempt to re-use an "already
> owned" ISID failed, and HBA would need to a) "probe" for a new available
> ISID or b) fail the request to establish the session.  Session recovery
> should not be attempted unless a session is known to have failed.
> 
> If tools are available, and the administrator has used them correctly,
> then HBAs will not collide in ISID space.  If the tools are not
> available or were not used correctly, I would hope the second HBA can
> still attempt to come up without impacting the sessions established by
> the first.
> 
> Again, I state my support for a login with existing ISID harmlessly
> fails (the Target state does not change) unless a session recovery
> indicator is set.  Also if a session recovery indicator is set, and the
> ISID is not in use (by this Initiator at this Target), the login also
> fails.
> 
> Thanks,
> Nick
> -----Original Message-----
> From: KRUEGER,MARJORIE (HP-Roseville,ex1)
> [mailto:[email-masked]]
> Sent: Friday, August 31, 2001 12:09 PM
> To: Martin, Nick; [email-masked]
> Subject: RE: iSCSI: login issue - partial consensus call
> 
> 
> > In particular this enables independent agents within the same
> initiator to
> > attempt a login without knowing all ISIDs in use by other agents.
> Each
> > agent would know the ISID of sessions it had successfully
> established,
> but
> > not the ISIDs for sessions established by others.  It can use the
> ISIDs it
> > knows to recover sessions it owns.  If an agent gets a  failure
> attempting
> to
> > establish a new session, it would pick a different ISID and 
> > retry (or just quit), rather than disrupting a session of another
> agent.
> 
> The intent of the presentation on SCSI/iSCSI modeling, and the text in
> the
> draft, is to illustrate how this example is not a recommended
> implementation
> choice due to the probability of violating the SCSI/iSCSI 
> rules pointed
> out.
> If the "independant agents" had partitioned the ISID space, 
> there would
> be
> no collision on login and no time wasted.  Your illustrated
> implementation
> could spend significant time "trying" ISID's in use by the "other
> agents".
> 
> However, I'm starting to have more sympathy with Julian's concerns due
> to
> the apparent risks of different vendors' initiator implementations not
> following the rules.
> 
> I just imagined having vendor A's HBA installed and happily servicing
> applications, installing vendor B's "plug-n-play" implementation, and
> having
> all A's sessions aborted cause B doesn't know how to play right :-(
> 
> Marj
>

---

From: "Somesh Gupta" <[email-masked]>
Date: Thu, 6 Sep 2001 11:33:20 -0700

I thought I had made my last statement on this :-)

> From: [email-masked] [mailto:[email-masked]]On Behalf Of
> [email-masked]
> Sent: Thursday, September 06, 2001 7:11 AM
> To: [email-masked]; [email-masked]

  It is hard to imagine designing an HBA (made to operate in
  a multiple HBA environment) that does not provide the interface
  capability to avoid ISID conflicts - while being smart
  enough to figure out independently which ISID to use by polling
  the target. On the other hand, loosing track of ISIDs has to be
  an error situation or a system restart case.

  How many attempts is this HBA supposed to make before deciding
  that there are no ISIDs available?

> 	stomped on by ISID problems.

   If there is a way to mandate a 'MUST' interface, then perhaps
   there is a way to mandate that every implementation must be able
   to accept a range of ISIDs from which to select the ISID. Also
   maybe we can mandate that they don't loose track of their ISID
   assignments :-)

> mind that Nick is correct in saying:

  I have to disagree with the statement above. Protocols should
  not be designed based on the working around implementation
  bugs. Otherwise this seems like something that would spin you
  around in circles.