Re: [Ips] iSCSI: Correct value for ExpDataSN for bidirectional commands

"Mallikarjun C." <cbm@rose.hp.com> Fri, 30 January 2004 19:33 UTC

Received: from optimus.ietf.org ([132.151.1.19]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA11249 for <ips-archive@odin.ietf.org>; Fri, 30 Jan 2004 14:33:10 -0500 (EST)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AmeNe-00010r-Uq for ips-archive@odin.ietf.org; Fri, 30 Jan 2004 14:32:43 -0500
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i0UJWghU003893 for ips-archive@odin.ietf.org; Fri, 30 Jan 2004 14:32:42 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AmeNe-00010i-QH for ips-web-archive@optimus.ietf.org; Fri, 30 Jan 2004 14:32:42 -0500
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA11229 for <ips-web-archive@ietf.org>; Fri, 30 Jan 2004 14:32:39 -0500 (EST)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 1AmeNc-0002Q1-00 for ips-web-archive@ietf.org; Fri, 30 Jan 2004 14:32:40 -0500
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1AmeMl-0002Gu-00 for ips-web-archive@ietf.org; Fri, 30 Jan 2004 14:31:48 -0500
Received: from [132.151.1.19] (helo=optimus.ietf.org) by ietf-mx with esmtp (Exim 4.12) id 1AmeM5-00027A-00 for ips-web-archive@ietf.org; Fri, 30 Jan 2004 14:31:05 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AmeM5-0000oe-Rs; Fri, 30 Jan 2004 14:31:05 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AmeLx-0000lc-9o for ips@optimus.ietf.org; Fri, 30 Jan 2004 14:30:57 -0500
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA11092 for <ips@ietf.org>; Fri, 30 Jan 2004 14:30:53 -0500 (EST)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 1AmeLu-00026c-00 for ips@ietf.org; Fri, 30 Jan 2004 14:30:54 -0500
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1AmeL4-0001vW-00 for ips@ietf.org; Fri, 30 Jan 2004 14:30:03 -0500
Received: from palrel12.hp.com ([156.153.255.237]) by ietf-mx with esmtp (Exim 4.12) id 1AmeKI-0001jK-00 for ips@ietf.org; Fri, 30 Jan 2004 14:29:15 -0500
Received: from rosemail.rose.hp.com (rosemail.rose.hp.com [15.43.209.160]) by palrel12.hp.com (Postfix) with ESMTP id B4C751C00F0E; Fri, 30 Jan 2004 11:29:14 -0800 (PST)
Received: from rose.hp.com (dhcp-roseor-bdj055.rose.hp.com [15.23.139.55]) by rosemail.rose.hp.com (Postfix) with ESMTP id 4E4768009; Fri, 30 Jan 2004 11:24:40 -0800 (PST)
Message-ID: <401AB080.1060607@rose.hp.com>
Date: Fri, 30 Jan 2004 11:29:04 -0800
From: "Mallikarjun C." <cbm@rose.hp.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Julian Satran <Julian_Satran@il.ibm.com>, pat_thaler@agilent.com
Cc: ips@ietf.org
Subject: Re: [Ips] iSCSI: Correct value for ExpDataSN for bidirectional commands
References: <OF4CEA6E0D.976845F2-ONC2256E2B.003E4BA8-C2256E2B.00419FE2@il.ibm.com>
In-Reply-To: <OF4CEA6E0D.976845F2-ONC2256E2B.003E4BA8-C2256E2B.00419FE2@il.ibm.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit
Sender: ips-admin@ietf.org
Errors-To: ips-admin@ietf.org
X-BeenThere: ips@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/ips>, <mailto:ips-request@ietf.org?subject=unsubscribe>
List-Id: IP Storage <ips.ietf.org>
List-Post: <mailto:ips@ietf.org>
List-Help: <mailto:ips-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/ips>, <mailto:ips-request@ietf.org?subject=subscribe>
X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on ietf-mx.ietf.org
X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

Pat wrote:

 >One can correct the problem by changing 10.4.8 to say that for
 >bidirectional commands ExpDataSN is the number of DataIn and R2T PDUs
 >that were sent, then one can maintain one value. One should also
 >correct the example in B.3.

Agreed, both need to be done.
-- 
Mallikarjun

Mallikarjun Chadalapaka
Networked Storage Architecture
Network Storage Solutions
Hewlett-Packard MS 5668
Roseville CA 95747
cbm [at] rose.hp.com



Julian Satran wrote:

> Will fix the example (thanks Pat and perhaps add the text you suggested). 
> For pratical purposes it should be noted that the only SCSI device that 
> plans to use bidirectional data transfers to-date has different phases for 
> input and output so that block are no mixed.
> 
> However I assumed always that the space is shared and that data placement 
> is unaffected by the order of PDU's . The SNACK identifies unambiguously 
> to the target what is missing and the initiator has to know only that 
> something is missing in order to start a recovery action.
> 
> Other than the example the spec is fine.
> 
> ips-admin@ietf.org wrote on 30/01/2004 03:25:58:
> 
> 
>>I also don't think the current spec is clear and I think the 
>>combination of the behavior described in 10.4.8 and that described in 
>>3.2.2 is broken for bidirectional commands. The reason for reporting 
>>ExpDataSN in the SCSI Response is to allow the initiator to check that
>>it received all the Data-In PDUs associated with the command and to 
>>send a SNACK if it didn't.
>>
>>For example, one could have the following in response to a 
>>bidirectional command:
>>
>>DataSN     PDU
>>0   1st Data-In
>>1   1st R2T
>>2   2nd R2T
>>3   2nd Data-In
>>4   3rd Data-In
>>5   4th Data-In
>>6   3rd R2T
>>
>>If the ExpDataSN to be reported in the SCSI Response was truly the 
>>number of Data-In PDUs as 10.4.8 says, its value would be 4. Note that
>>the above is consistent with the text of 3.2.2.3 which says that 
>>DataSN and R2TSN for bidirectional commands form one continuous 
>>undifferentiated series but it is not consistent with the example in 
>>B.3. The example shows a PDU with R2TSN = 0 followed by a PDU with 
> 
> DataSN = 0.
> 
>>This is broken because the initiator could not compare the value 
>>received in ExpDataSN to its copy of ExpDataSN to determine whether it
>>had gotten all the Data-In PDUs. If the behavior in 10.4.8 is 
>>maintained, an initiator will have to keep a count of the Data-In PDUs
>>it has received for bidirectional commands in addition to keeping the 
>>ExpDataSN value. The target would also have to keep two separate 
>>counters during processing of bidirectional commands (both named 
>>ExpDataSN by the draft) - one of how many Data-In PDUs it has sent so 
>>it can put it in the Response and one of the value of ExpDataSN 
>>indicating the DataSN to put in the next Data-In or R2T PDU it sends 
>>for the command.
>>
>>There is no reason to define the protocol such that keeping two values
>>is necessary here. It appears that the reason to say that DataSN and 
>>R2TSN form one sequence for bidirectional commands is to allow the 
>>command to maintain one count for DataIn and R2T PDUs rather than 
>>having two counters. If we were willing to forgo that optimization, 
>>then DataSN and R2TSN should have been kept separate. 
>>
>>In any case, it is incorrect to have two variables for the same 
>>context with the same name.
>>
>>One can correct the problem by changing 10.4.8 to say that for 
>>bidirectional commands ExpDataSN is the number of DataIn and R2T PDUs 
>>that were sent, then one can maintain one value. One should also 
>>correct the example in B.3.
>>
>>One could also correct the problem by changing 3.2.2 so that DataSN 
>>was kept separate from R2TSN in bidirectional commands. In some 
>>senses, this would have been cleaner because it avoids having one 
>>variable with two names but it would require more context per command 
>>and it is probably a bigger change for existing implementations.
>>
>>The code in E.2.2 seems ambiguous - it just says if (expDataSN does 
>>not match) but it doesn't define what is considered a match. Neither 
>>the target code nor the initiator code in E.2 seems to address how the
>>value of ExpDataSN for response PDUs and the compare to response PDUs 
>>is derived. Therefore it would be consistent with either choice.
>>
>>Regards,
>>Pat


_______________________________________________
Ips mailing list
Ips@ietf.org
https://www1.ietf.org/mailman/listinfo/ips