Subject: Asynchronous Message: Session Termination

From: "BURBRIDGE,MATTHEW (HP-UnitedKingdom,ex2)" <[email-masked]>
Date: Wed, 23 May 2001 10:51:04 +0100

Hi Julian,

If a target only supports Session Recovery, then when an error is detected
it will terminate the session.  The current Async Message (iSCSI Event
"Target indicates that his will/has dropped all connections") does not
necessary inform the initiator that the session has terminated and the
initiator is quite within rights to establish a new connection and attempt
With-in Session recovery.

Can you change the spec to reflect that a value of zero in both the
Parameter2 and Parameter3 would set the maximum time to reconnect to "Never"
thereby informing the initiator that the session has closed?

Thanks

Matthew Burbridge
NIS-Bristol
Hewlett Packard
Telnet: 312 7010
E-mail: [email-masked]

---

From: Mark Bakke <[email-masked]>
Date: Wed, 23 May 2001 10:16:51 -0500

Matthew-

The intent of these was not to connect and re-establish the same
session after a set amount of time; it was to inform the initiator
not to try to establish a new session until the time passes, which
is I think what you want.  Perhaps changing the description of
#4 from:

      4    Target indicates it will/has dropped all connections - the 
      Parameter2 field indicates, in seconds, the minimum time to 
      reconnect and Parameter3 the maximum time to reconnect.

to:

      4    Target indicates it will/has dropped all connections - the 
      Parameter2 field indicates, in seconds, the minimum time to 
      wait to establish a new session and Parameter3 the maximum
      time to wait to establish a new session.

Actually, I had originally requested this, to allow a target to say
"I'm shutting down / failing over in X seconds; and will be back again
in Y seconds, so don't bother connecting until then".  With this
behavior, the description should read:

      4    Target indicates it will/has dropped all connections - the 
      Parameter2 field indicates, in seconds, the time until all
      connections will be terminated (or zero if immediately), and
      Parameter3 the maximum time the initiator should wait before
      attempting to establish a new session.

If everyone agrees with this, I would rather have the above description.

--
Mark

-- 
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: Santosh Rao <[email-masked]>
Date: Wed, 23 May 2001 10:42:21 -0700

The Async Message "target will drop all connections" should be described
to imply that the session is logged out and all outstanding I/Os are
going to be aborted at the target. This allows this feature to be used
by targets to drive session recovery.

>       Parameter3 the maximum time the initiator should wait before

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Did you intend to mean "the minimum time the initiator should wait"... ?

The min time before retrying login adds value to the initiator rather
than the max time before retrying login in this case. In the case where
"target will drop all connections" was used, the max time really holds
no relevance, since the session has been logged out.

Hence, I like Mark's definition on this which provides the initiator
with time when session will be logged out and time to wait before
attempting to retry session login.

---

From: "Matt Wakeley" <[email-masked]>
Date: Wed, 23 May 2001 09:57:33 -0700

Mark Bakke wrote:
> is I think what you want.

Mark,

I don't think that was the intent of this feature.  Just because a target
drops all it's connections, does not mean that the session is closed. In fact,
the "maximum" time seems to indicate that if a connection is not tried within
that amount of time, then the session will be aborted, or some other action
taken.

Obviously, clarification on the intent is required, and then clarification in
the text.

-Matt

---

From: Mark Bakke <[email-masked]>
Date: Wed, 23 May 2001 16:32:56 -0500

> >       Parameter3 the maximum time the initiator should wait before

Yes, I meant minimum time; thanks.

> no relevance, since the session has been logged out.

It also means that the initiator won't attempt to start a TCP
connection before the target actually starts rebooting, which will
proceed to back off timers as packets are dropped, and depending on
exactly when the target is ready, could take a very long time to
give up on the connection and try a new one.

-- 
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: Mark Bakke <[email-masked]>
Date: Wed, 23 May 2001 17:41:05 -0500

Matt-

I think that you can get the functionality you want by sending the other
Async message type (3) on each of the connections that you want the
initiator to clean up and drop.  This seems sufficient.
 
      3    Target indicates it will/has dropped the connection - the 
      Parameter1 field will indicate on what CID while the Parameter2 
      field indicates, in seconds, the minimum time to reconnect and 
      Parameter3 the maximum time to reconnect. 

I still think that the intent of (4) was to drop the whole session; at
any rate, this is a necessary feature to allow a target to reboot or
fail over reasonably cleanly.

I think if we word (3) and (4) right, we will be able to support both
types of intent.

--
Mark

-- 
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054