Return-Path: <owner-ips-outgoing@ece.cmu.edu>
Received: from newbox.ece.cmu.edu (localhost [127.0.0.1])
	by newbox.ece.cmu.edu (Cyrus v2.1.12) with LMTP; Thu, 07 Aug 2003 22:04:52 -0400
X-Sieve: CMU Sieve 2.2
Received: from hazard.ece.cmu.edu (HAZARD.ECE.CMU.EDU [128.2.129.24])
	by newbox.ece.cmu.edu (Postfix) with ESMTP id 99B35334F
	for <ipsml@ece.cmu.edu>; Thu,  7 Aug 2003 22:04:52 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id B5A9AA4; Thu,  7 Aug 2003 22:04:51 -0400 (EDT)
Received: from sos.ece.cmu.edu (SOS.ECE.CMU.EDU [128.2.129.27])
	by hazard.ece.cmu.edu (Postfix) with ESMTP
	id A945C84; Thu,  7 Aug 2003 22:04:33 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix)
	id 0813F89E1; Thu,  7 Aug 2003 22:04:18 -0400 (EDT)
Delivered-To: ips-outgoing@sos.ece.cmu.edu
Received: from osgood.ece.cmu.edu (OSGOOD.ECE.CMU.EDU [128.2.129.25])
	by sos.ece.cmu.edu (Postfix) with ESMTP id EAF7F89E0
	for <ips-outgoing@sos.ece.cmu.edu>; Thu,  7 Aug 2003 22:04:17 -0400 (EDT)
Received: by osgood.ece.cmu.edu (Postfix)
	id B1A7284; Thu,  7 Aug 2003 22:04:17 -0400 (EDT)
Delivered-To: ips-outgoing@ece.cmu.edu
Received: by osgood.ece.cmu.edu (Postfix, from userid 953)
	id 88FAD83; Thu,  7 Aug 2003 22:04:17 -0400 (EDT)
Received: from sos.ece.cmu.edu (SOS.ECE.CMU.EDU [128.2.129.27])
	by osgood.ece.cmu.edu (Postfix) with ESMTP id D334783
	for <ips-outgoing@ece.cmu.edu>; Thu,  7 Aug 2003 22:04:12 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix, from userid 363)
	id AA05C89EE; Thu,  7 Aug 2003 22:04:12 -0400 (EDT)
X-Original-To: ips@sos.ece.cmu.edu
Delivered-To: ips@sos.ece.cmu.edu
Received: from hazard.ece.cmu.edu (HAZARD.ECE.CMU.EDU [128.2.129.24])
	by sos.ece.cmu.edu (Postfix) with ESMTP id E8D3089E0
	for <ips@sos.ece.cmu.edu>; Thu,  7 Aug 2003 22:04:10 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix)
	id 696D179; Thu,  7 Aug 2003 22:04:10 -0400 (EDT)
Delivered-To: ips@ece.cmu.edu
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id 3F96784; Thu,  7 Aug 2003 22:04:10 -0400 (EDT)
Received: from magic.adaptec.com (magic-mail.adaptec.com [208.236.45.100])
	by hazard.ece.cmu.edu (Postfix) with ESMTP id BF7B279
	for <ips@ece.cmu.edu>; Thu,  7 Aug 2003 22:04:05 -0400 (EDT)
Received: from redfish.adaptec.com (redfish.adaptec.com [162.62.50.11])
	by magic.adaptec.com (8.11.6/8.11.6) with ESMTP id h78245o26524;
	Thu, 7 Aug 2003 19:04:05 -0700
Received: from aimexc07.adaptec.com (aimexc07.adaptec.com [162.62.62.47])
	by redfish.adaptec.com (8.8.8p2+Sun/8.8.8) with ESMTP id TAA07797;
	Thu, 7 Aug 2003 19:04:05 -0700 (PDT)
Received: by aimexc07.adaptec.com with Internet Mail Service (5.5.2653.19)
	id <QGQBW9W3>; Thu, 7 Aug 2003 19:04:04 -0700
Message-ID: <E156A23F1885D4119ED800B0D0498A9F04B547E7@aimexc07.adaptec.com>
From: "Ranganathan, Deva" <Deva_Ranganathan@adaptec.com>
To: "'pat_thaler@agilent.com'" <pat_thaler@agilent.com>,
	eddy_quicksall@ivivity.com
Cc: ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands
Date: Thu, 7 Aug 2003 19:03:55 -0700 
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain;
	charset="iso-8859-1"
Sender: owner-ips@ece.cmu.edu
Precedence: bulk
X-Spam-Status: No, hits=-22.6 required=5.0
	tests=BAYES_01,EMAIL_ATTRIBUTION,ORIGINAL_MESSAGE,
	      QUOTED_EMAIL_TEXT
	version=2.50
X-Spam-Level: 
X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp)

Thanks, Pat. Got it.

-Deva

-----Original Message-----
From: pat_thaler@agilent.com [mailto:pat_thaler@agilent.com] 
Sent: Thursday, August 07, 2003 6:05 PM
To: Ranganathan, Deva; eddy_quicksall@ivivity.com; pat_thaler@agilent.com
Cc: ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands


Deva

"should not be required" is a statement about what the RFC should not do. It
doesn't mean the target should not generate the error. 

"The target should not be required to do x" is an entirely different
statement from "The target should not do x". The latter means that the
behavior should be discouraged. The former means that the standard should
not require the behavior - it can be left as an implementation decison. 

Pat

-----Original Message-----
From: Ranganathan, Deva [mailto:Deva_Ranganathan@adaptec.com]
Sent: Thursday, August 07, 2003 5:22 PM
To: 'Eddy Quicksall'; pat_thaler@agilent.com
Cc: ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands


>Yes, the target could give that response but it should not be required 
>to
check the ITT

I am disagreeing  to "SHOULD NOT" above. It is implementation specific. If
the initiator sends  a duplicate command, it is implementation what the
target does with the command with a duplicate ITT.  

-Deva

-----Original Message-----
From: Eddy Quicksall [mailto:eddy_quicksall@ivivity.com] 
Sent: Thursday, August 07, 2003 5:11 PM
To: Ranganathan, Deva; pat_thaler@agilent.com
Cc: ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands


No one has suggested preventing a target from taking care of it.

Eddy

-----Original Message-----
From: Ranganathan, Deva [mailto:Deva_Ranganathan@adaptec.com] 
Sent: Thursday, August 07, 2003 8:07 PM
To: 'Eddy Quicksall'; pat_thaler@agilent.com
Cc: ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands

Since it is implementation specific, a target MAY take care of this scenario
by a suitable error response as defined in 
the current spec. If a target implementation can perform this, why prevent
it?  

Thanks

Deva


-----Original Message-----
From: Eddy Quicksall [mailto:eddy_quicksall@ivivity.com] 
Sent: Thursday, August 07, 2003 4:50 PM
To: pat_thaler@agilent.com
Cc: ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands


I assume you mean 10.17.1. Yes, the target could give that response but it
should not be required to check the ITT. That is what I meant by "make it an
error". It could take time to do that and the target should not be in the
business of debugging the initiator.

That is what I meant by "make it an error".

I object to the target (or initiator) being required to do anything to cover
cases where the other side screwed up ... unless it could adversely effect
the target (or initiator) such as a crash. 

Eddy

-----Original Message-----
From: pat_thaler@agilent.com [mailto:pat_thaler@agilent.com] 
Sent: Thursday, August 07, 2003 6:54 PM
To: wrstuden@wasabisystems.com; eddy_quicksall@ivivity.com
Cc: pat_thaler@agilent.com; satran@haifasphere.co.il; julian@cs.haifa.ac.il;
Black_David@emc.com; dcuddihy@attotech.com; ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands

Eddy,

I'm not sure what you mean by "make it an error". iSCSI already has an error
that covers this situation doesn't it? I'm looking at 10.7.1 on reason code
0x09. Note 2 says this includes invalid TTT/ITT.

Pat

-----Original Message-----
From: wrstuden@wasabisystems.com [mailto:wrstuden@wasabisystems.com]
Sent: Wednesday, August 06, 2003 1:20 PM
To: Eddy Quicksall
Cc: pat_thaler@agilent.com; satran@haifasphere.co.il; julian@cs.haifa.ac.il;
Black_David@emc.com; dcuddihy@attotech.com; ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands


On Wed, 6 Aug 2003, Eddy Quicksall wrote:

> I don't think we should make it an error if that implies that the 
> target needs to check for the error.

In my most recent note, I'm suggesting we make it an error, but that we let
the target ignore the "error" if it has already terminated the task.

If we don't make it an error, we run into the question of what should a
target do if the first (status-unacknowledged) task needs to support
recovery actions. If the second, same ITT, task is allowed to exist, Data
SNACKs become ambiguous. That strikes me as VERY much against the intent of
data recovery. :-) Just letting the target report this as an error seems the
easiest thing to do.

The reason for letting the target ignore this case is so that we permit
implementations like Pat was describing. If you know you aren't going to do
any recovery (either you aren't supporting it or it's a SCSI write command
and thus the target knows all is done), then it's fine to kill the task, and
then this case isn't ambiguous.

> It seems that if the initiator does this, he probably has a bug or a 
> race condition that will lead to a bug later. So isn't it his 
> responsibility to debug his program?

I agree it's the initiator's problem. The thing is that if we don't make it
an "error", then the target has to deal with the problem, and the corner
cases can get messy.

So to be clear, I'm suggesting the "it's an error you can ignore if it isn't
a problem" approach so that we give different target implementations the
room to deal with the situation as they see fit.

Take care,

Bill
