[rddp] RE: iSCSI/iWARP drafts and flow control

pat_thaler@agilent.com Thu, 31 July 2003 18:23 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA07063 for <rddp-archive@odin.ietf.org>; Thu, 31 Jul 2003 14:23:09 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19iI4Y-0006lg-8E for rddp-archive@odin.ietf.org; Thu, 31 Jul 2003 14:22:42 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id h6VIMg7b026010 for rddp-archive@odin.ietf.org; Thu, 31 Jul 2003 14:22:42 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19iI4Y-0006lR-3s for rddp-web-archive@optimus.ietf.org; Thu, 31 Jul 2003 14:22:42 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA07022 for <rddp-web-archive@ietf.org>; Thu, 31 Jul 2003 14:21:57 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19iI3r-0006Js-00 for rddp-web-archive@ietf.org; Thu, 31 Jul 2003 14:21:59 -0400
Received: from ietf.org ([132.151.1.19] helo=optimus.ietf.org) by ietf-mx with esmtp (Exim 4.12) id 19iI3r-0006Jp-00 for rddp-web-archive@ietf.org; Thu, 31 Jul 2003 14:21:59 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19iI3t-0006iy-13; Thu, 31 Jul 2003 14:22:01 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19iI3S-0006ik-Ne for rddp@optimus.ietf.org; Thu, 31 Jul 2003 14:21:34 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA07005 for <rddp@ietf.org>; Thu, 31 Jul 2003 14:21:30 -0400 (EDT)
From: pat_thaler@agilent.com
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19iI3Q-0006JU-00 for rddp@ietf.org; Thu, 31 Jul 2003 14:21:32 -0400
Received: from msgbas1x.cos.agilent.com ([192.25.240.36]) by ietf-mx with esmtp (Exim 4.12) id 19iI3P-0006JR-00 for rddp@ietf.org; Thu, 31 Jul 2003 14:21:31 -0400
Received: from relcos2.cos.agilent.com (relcos2.cos.agilent.com [130.29.152.237]) by msgbas1x.cos.agilent.com (Postfix) with ESMTP id C9206160C4; Thu, 31 Jul 2003 12:21:28 -0600 (MDT)
Received: from axcsbh4.cos.agilent.com (axcsbh4.cos.agilent.com [130.29.152.145]) by relcos2.cos.agilent.com (Postfix) with SMTP id 0B01430; Thu, 31 Jul 2003 12:21:31 -0600 (MDT)
Received: from 130.29.152.145 by axcsbh4.cos.agilent.com (InterScan E-Mail VirusWall NT); Thu, 31 Jul 2003 12:21:30 -0600
Received: by axcsbh4.cos.agilent.com with Internet Mail Service (5.5.2653.19) id <3NVK5KBA>; Thu, 31 Jul 2003 12:21:30 -0600
Message-ID: <1BEBA5E8600DD4119A50009027AF54A0132E0463@axcs04.cos.agilent.com>
To: cait@asomi.com, pat_thaler@agilent.com
Cc: cbm@rose.hp.com, ips@ece.cmu.edu, rddp@ietf.org
Date: Thu, 31 Jul 2003 12:21:29 -0600
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain; charset="iso-8859-1"
Subject: [rddp] RE: iSCSI/iWARP drafts and flow control
Sender: rddp-admin@ietf.org
Errors-To: rddp-admin@ietf.org
X-BeenThere: rddp@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/rddp>, <mailto:rddp-request@ietf.org?subject=unsubscribe>
List-Id: IETF Remote Direct Data Placement (rddp) WG <rddp.ietf.org>
List-Post: <mailto:rddp@ietf.org>
List-Help: <mailto:rddp-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/rddp>, <mailto:rddp-request@ietf.org?subject=subscribe>


-----Original Message-----
From: Caitlin Bestler [mailto:cait@asomi.com]
Sent: Thursday, July 31, 2003 10:59 AM
To: pat_thaler@agilent.com
Cc: cbm@rose.hp.com; ips@ece.cmu.edu; rddp@ietf.org
Subject: Re: iSCSI/iWARP drafts and flow control



On Thursday, July 31, 2003, at 12:30 PM, pat_thaler@agilent.com wrote:

> Caitlin,
>
> There are multiple problems with the mechanism you suggest.
>
> For one thing, the credit for additional command window in iSCSI isn't 
> based on command replys. There is an explicit field for MaxCmdSN. 
> Having received and finished processing a command doesn't mean that 
> one has made space for receiving another command. The target might 
> choose to use that space for another session or for something else 
> altogether.
>

There is a restocking mechanism in place. I oversimplified in my 
description of it. The point is that
the ULP already knows how many CmdSNs that it is allowed to send. It 
knows when that count is depleted,
and when it is restored.

> Secondly, having finished a processing a command doesn't mean that 
> other activities have completed. If we did what you suggest there 
> might be times when a response had to be delayed because the command 
> had been finished but the credits for the non-command messages were 
> not yet ready. This could adversely effect performance. Also, commands 
> can involve lengthy actions such as large data transfers. Therefore, 
> there might be times when one is not ready to send a command reply and 
> immediate commands or other non-command related traffic are delayed 
> because of lack of credit.
>
There is no requirement that the asynch processing have completed, just 
that the buffers have been restocked.
If the number of asynch commands is light, as claimed, crediting enough 
to cover the delay of a long command
should not be a problem. The goal is to grant credits, nobody is 
requiring buffers be pre-committed for the
entire lifespan of the credit.

> Third, it is an accounting nightmare for the implementations. Instead 
> of just tracking a simple credit counter and updating it, they have to 
> keep track of how many credits belong to each command.
>
A nightmare? At worst it is a second count.

One implementation could be as simple as setting a flag that will be 
cleared after N cmds.

> Fourth, the suggestion only takes care of one direction. MaxCmdSN goes 
> from target to initiator, but there are types of PDUs not covered by 
> that mechanisms that go each direction.
>
Then how are they being flow controlled?

> Fifth, it may have have a deadlock. If the command window has closed, 
> the only way the target can send more credit is to send a NOP PDU. If 
> the target doesn't have a credit, it won't be able to send the NOP > PDU.

How is this prevented with iSCSI over TCP?

What iWARP is requiring is that the ULP provide flow control for 
untagged buffers,
to replace the flow control that TCP/SCTP provided for transport 
buffers.

This is a *benefit*, it prevents head-of-line blocking of tagged 
transfers. But
in any situation, if the ULP could have a deadlock situation where 
there are
no untagged buffers available at either end then TCP/SCTP could have 
had a
deadlock on transport buffering.

>
> It isn't a good idea to complicate implementations excessively to 
> avoid additions to wire protocol. If one adds a flow control 
> mechanism, it should have provision to avoid deadlock.
>
> Pat

Meanwhile you have not addressed any of the critical problems with the 
lack of
ULP flow control.

Without flow control the sender must *guess* at how many messages can 
be sent.
If they guess wrong the stream is terminated. Stream termination is NOT
"flow control", it is either a *sanction* for failing to conform to the
ULP, or it is the result of a *fault* on the receiving side.

There is, by definition, no reliable mechanism to "guess" how many 
messages
may be sent that does not produce stream terminations. That is 
unacceptable
in something that is supposed to be a reliable protocol.

If you don't want the semantics of a reliable protocol then propose an
adaptation that runs over UDP. Otherwise, you cannot have a reliable
protocol without *some* form of flow control on buffer usage. You cannot
require the Data Sink to provide an *indefinite* amount of buffering.

The arguments you cite seem to prove that iSER cannot be implemented 
over
a standard RNIC. I believe it can be, but that requires documenting the
rules that will *regulate* transmission of *all* untagged messages.

I believe this can be done in a way that meets iSCSI's requirements 
without
violating iWARP's rules. If iSCSI works over TCP, where its messages 
can be
flow controlled by the TCP window, then it can work over a definition of
iSER that complies with iWARPs rules and the definition "reliable 
transport".

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