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; Fri, 08 Aug 2003 00:23:34 -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 1071032F9
	for <ipsml@ece.cmu.edu>; Fri,  8 Aug 2003 00:23:34 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id B075D8D; Fri,  8 Aug 2003 00:23:33 -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 EC7B387; Fri,  8 Aug 2003 00:23:26 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix)
	id 5CDEF89E0; Fri,  8 Aug 2003 00:23:10 -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 49DE089DF
	for <ips-outgoing@sos.ece.cmu.edu>; Fri,  8 Aug 2003 00:23:10 -0400 (EDT)
Received: by osgood.ece.cmu.edu (Postfix)
	id 016766A; Fri,  8 Aug 2003 00:23:10 -0400 (EDT)
Delivered-To: ips-outgoing@ece.cmu.edu
Received: by osgood.ece.cmu.edu (Postfix, from userid 953)
	id BA08A86; Fri,  8 Aug 2003 00:23:09 -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 75E756A
	for <ips-outgoing@ece.cmu.edu>; Fri,  8 Aug 2003 00:23:01 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix, from userid 363)
	id 5E3B289E1; Fri,  8 Aug 2003 00:23:01 -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 01C7E89DF
	for <ips@sos.ece.cmu.edu>; Fri,  8 Aug 2003 00:23:00 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix)
	id CD1AE8D; Fri,  8 Aug 2003 00:22:59 -0400 (EDT)
Delivered-To: ips@ece.cmu.edu
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id 93A0F87; Fri,  8 Aug 2003 00:22:59 -0400 (EDT)
Received: from d12lmsgate-2.de.ibm.com (d12lmsgate-2.de.ibm.com [194.196.100.235])
	by hazard.ece.cmu.edu (Postfix) with ESMTP id 6D4CC8F
	for <ips@ece.cmu.edu>; Fri,  8 Aug 2003 00:22:48 -0400 (EDT)
Received: from d12relay01.megacenter.de.ibm.com (d12relay01.megacenter.de.ibm.com [9.149.165.180])
	by d12lmsgate-2.de.ibm.com (8.12.9/8.12.8) with ESMTP id h784LM7o219748;
	Fri, 8 Aug 2003 06:21:22 +0200
Received: from d10ml001.telaviv.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228])
	by d12relay01.megacenter.de.ibm.com (8.12.9/NCO/VER6.5) with ESMTP id h784KxYo265376;
	Fri, 8 Aug 2003 06:21:05 +0200
In-Reply-To: <1BEBA5E8600DD4119A50009027AF54A0132E0494@axcs04.cos.agilent.com>
To: pat_thaler@agilent.com
Cc: Black_David@emc.com, dcuddihy@attotech.com, ips@ece.cmu.edu,
	julian@cs.haifa.ac.il, owner-ips@ece.cmu.edu, pat_thaler@agilent.com,
	satran@haifasphere.co.il
Subject: RE: StatSN and overlapped commands
MIME-Version: 1.0
X-Mailer: Lotus Notes Release 6.0.2CF2 July 23, 2003
From: "Julian Satran" <Julian_Satran@il.ibm.com>
Message-ID: <OF3142C636.A5178788-ONC2256D7C.00121CDD-C2256D7C.0017E36D@telaviv.ibm.com>
Date: Fri, 8 Aug 2003 07:20:55 +0300
X-MIMETrack: Serialize by Router on D10ML001/10/M/IBM(Release 5.0.9a |January 7, 2002) at
 08/08/2003 07:21:20,
	Serialize complete at 08/08/2003 07:21:20
Content-Type: text/plain; charset="US-ASCII"
Sender: owner-ips@ece.cmu.edu
Precedence: bulk
X-Spam-Status: No, hits=-26.0 required=5.0
	tests=BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT,
	      REPLY_WITH_QUOTES
	version=2.50
X-Spam-Level: 
X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp)

Pat,

Require to do checking or not (how and if this is done is mostly an 
implementation issue). If the target has decided to accept  recovery (and 
there no equivalent of it in the FCP world) it better protect it's ITTs. 
Obviously some implementations may be more sensitive to errors than others 
and those will check.

iSCSI already has an error code for this type of error - as we assumed 
that this might happen and it would be more difficult for some targets to 
live with the consequences of not checking.

If you consider this as a mandatory part of the compliance package or not 
is a question for the buyer to decide. I assume that the UNH package will 
(today or at some point in the future) check if this error code is 
generated properly and note it in the compliance sheets.

As for your assumption that you might keep lingering only the Status of 
the gone task - I already stated that this is not the case. If you accept 
recovery you must keep around enough information to recover anything not 
properly acked (and for some recovery level might end-up being asked to 
reinstate the task on another connection).

Julo



pat_thaler@agilent.com 
Sent by: owner-ips@ece.cmu.edu
08/08/2003 01:40

To
Julian Satran/Haifa/IBM@IBMIL, pat_thaler@agilent.com
cc
Black_David@emc.com, dcuddihy@attotech.com, ips@ece.cmu.edu, 
julian@cs.haifa.ac.il, owner-ips@ece.cmu.edu, satran@haifasphere.co.il
Subject
RE: StatSN and overlapped commands






Julian,

I have done some checking. Even for tasks that are in progress, neither 
the SCSI Architecture model nor iSCSI have any requirement that the target 
check that task tags from the initiator are unique. It is up to the 
initiator to ensure that the task tag is unique within the nexus. In the 
Fibre Channel world, FCP actually has an explicit statement that the 
target can rely on them being unique and isn't required to check for 
overlap.

It isn't the target's job to keep the initiator from messing up its use of 
task tags. If an initiator isn't using tags properly, there are plenty of 
other mistakes it can make that will cause problems and that the target 
can't detect.

Of course, as Bill and others have said, a target may check ITTs for 
overlap even though it isn't required to.

Pat

-----Original Message-----
From: Julian Satran [mailto:Julian_Satran@il.ibm.com]
Sent: Wednesday, August 06, 2003 1:26 PM
To: pat_thaler@agilent.com
Cc: Black_David@emc.com; dcuddihy@attotech.com; ips@ece.cmu.edu;
julian@cs.haifa.ac.il; owner-ips@ece.cmu.edu; satran@haifasphere.co.il
Subject: RE: StatSN and overlapped commands


Pat,

If Status (if required) has to be sent with an associated ITT (it is the 
only way an initiator has to associate a status with a task). If the ITT 
happens to be that of a new task this association may be incorrect. Recall 

that error scenarios can be complex (with some missing statuses and even 
connection failover). 
For all those reason a target accepting recovery must "protect" any ITT 
included in unacknowledged status.

End-of-thread.
Julo



pat_thaler@agilent.com 
Sent by: owner-ips@ece.cmu.edu
06/08/2003 21:02

To
satran@haifasphere.co.il
cc
julian@cs.haifa.ac.il, Black_David@emc.com, dcuddihy@attotech.com, 
ips@ece.cmu.edu
Subject
RE: StatSN and overlapped commands






Julian,

For recovery, the target has to remember the status, but that doesn't mean 

it has to keep the task information around. It would have the status 
message linked to StatSN but it would be typical to clear away any task 
context when that message is generated. Remember that when things are very 

busy it might get a single acknowledgement that acknowledges multiple 
status messages from multiple tasks. It isn't efficient to have to go back 

to do the task context clean up when the status ack comes. 

It is the initiator's job to not shoot itself in the foot by issuing a new 

command with the same task tag as one that it hasn't gotten status on yet. 

For the target, once the status is generated, the task is gone. The status 

message may still be there available for a resend, but the task is gone. I 

don't see any requirement in iSCSI or SCSI to do anything other than that.

Regards, 
Pat

-----Original Message-----
From: Julian Satran [mailto:satran@haifasphere.co.il]
Sent: Tuesday, August 05, 2003 8:48 PM
To: THALER,PAT (A-Roseville,ex1)
Cc: julian@cs.haifa.ac.il; Black_David@emc.com; dcuddihy@attotech.com;
ips@ece.cmu.edu
Subject: Re: StatSN and overlapped commands


pat_thaler@agilent.com wrote:

> Julian,
> 
> I agree that the initiator is misbehaving, but I don't agree that the 
target should detect that misbehavior. The target SCSI layer thinks the 
command was done when it generated the status. As David said, the target 
keeps the status around so that it can resend it if requested by Status 
SNACK. It doesn't need to keep track of the tag anymore at that point.
> 
> If the target had to generate an error when a command came with for a 
tag before the status for a prior command with the same tag was 
acknowledged, then it would have to clear the memory of tags when status 
acks came in which is less efficient than doing it when posting the 
status.
> 
> Pat
> 
> -----Original Message-----
> From: Julian Satran [mailto:julian@cs.haifa.ac.il]
> Sent: Tuesday, August 05, 2003 10:56 AM
> <snip>
> 
>>
>>No, iSCSI at the target is retaining the SCSI status of the completed
>>command for retransmission.  SCSI believes the command to be completed,
>>and any retransmission request (e.g., Status SNACK) is not visible to
>>SCSI at the target.  In this case "command recovery" does not execute
>>any commands at the target; it just causes retransmission of the saved
>>status.
>>
>>Thanks,
>>--David
>>----------------------------------------------------
>>David L. Black, Senior Technologist
>>EMC Corporation, 176 South St., Hopkinton, MA  01748
>>+1 (508) 293-7953             FAX: +1 (508) 293-7786
>>black_david@emc.com        Mobile: +1 (978) 394-7754
>>----------------------------------------------------
>>
> 
> My only caveat to this would be that an initiator that reuses the 
> Initiator Task Tag but does not acknowledge the reception of the status 
> by an ExpSataSN is definitely misbehaving.
> 
> The target should not consider it as an implicit ack (as intermetiate 
> status PDUs may have been lost - it should reject the command that 
> reuses the Initiator Task Tag.
> 
> That is not necesarily related to the way an initiator maps SCSI tags to 


> iSCSI tags - it is specific to iSCSI expectations about tag reuse.
> 
> You correctly stated that an iSCSI tag should not be reused before it's 
> status is acknowledged but violating this rule is an iSCSI protocol 
> error and not a SCSI error (overlapped command).
> 
> Julo
> 
Pat,

The target has to remember the status the status for recovery - if both 
I and T have agreed on recovery. If it drops it some recovery scenarios 
won't work.

You are right that when no recovery is agreed status can be dropped but 
not so if recovery is agreed. And while within connection recovery is 
not based on ITT a recovered status containing a wrong ITT is not a good 
idea!

Julo


