Re: [nfsv4] Stream transports that preserve boundaries, RPC, and Record Marking

"Mike Eisler" <mre-ietf@eisler.com> Fri, 30 January 2009 09:27 UTC

Return-Path: <nfsv4-bounces@ietf.org>
X-Original-To: nfsv4-archive@megatron.ietf.org
Delivered-To: ietfarch-nfsv4-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4940C3A6971; Fri, 30 Jan 2009 01:27:56 -0800 (PST)
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0AC2D3A6971 for <nfsv4@core3.amsl.com>; Fri, 30 Jan 2009 01:27:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5HQDq9W-PIoG for <nfsv4@core3.amsl.com>; Fri, 30 Jan 2009 01:27:53 -0800 (PST)
Received: from webmail1.sd.dreamhost.com (sd-green-dreamhost-133.dreamhost.com [208.97.187.133]) by core3.amsl.com (Postfix) with ESMTP id 5C75C3A68D6 for <nfsv4@ietf.org>; Fri, 30 Jan 2009 01:27:53 -0800 (PST)
Received: from webmail.eisler.com (localhost [127.0.0.1]) by webmail1.sd.dreamhost.com (Postfix) with ESMTP id B77702C224; Fri, 30 Jan 2009 01:27:34 -0800 (PST)
Received: from 198.95.226.230 (SquirrelMail authenticated user mre-ietf@eisler.com) by webmail.eisler.com with HTTP; Fri, 30 Jan 2009 01:27:34 -0800 (PST)
Message-ID: <aa900cfdc201abb407c0927b43135777.squirrel@webmail.eisler.com>
In-Reply-To: <433cca98a5fdbd50862d3f4f7306a4a5.squirrel@webmail.eisler.com>
References: <433cca98a5fdbd50862d3f4f7306a4a5.squirrel@webmail.eisler.com>
Date: Fri, 30 Jan 2009 01:27:34 -0800
From: Mike Eisler <mre-ietf@eisler.com>
To: Mike Eisler <mre-ietf@eisler.com>
User-Agent: SquirrelMail/1.4.17
MIME-Version: 1.0
Cc: nfsv4@ietf.org
Subject: Re: [nfsv4] Stream transports that preserve boundaries, RPC, and Record Marking
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: nfsv4-bounces@ietf.org
Errors-To: nfsv4-bounces@ietf.org

> Three questions for the WG:
>
> 1. Do existing RPC/SCTP implementations use record marking?
> If so, I will specify a variant of a netid for SCTP that uses
> record marking in addition to one that does not.

I did not receive an answer. So I will not specify a netid for SCTP that
uses RPC record marking. If someone is using RPC over SCTP with RPC
record marking, they will have to register it with IANA.

>
> 2. Assuming the answer to 1 is no, how do people feel about specifying
> a netid for SCTP and another similar transports that has the
> "unnecessary" record marking option?

N/A.

>
> 3. NFSv4 specifies port 2049 for TCP and UDP. We will want it to
> use 2049 for SCTP (right?). Is there any objection to using 2049 for the
> variant of RPC/SCTP that does NOT use RPC record marking?

No objection. Per Lars' advice, I will add an IANA note to register
NFS/SCTP over port 2049.

> If we find that we need NFSv4/RPC/SCTP w/ RPC record marking, we would
> need a new port from IANA. This is because RPC requests do not include the
> netid, and thus there's no way, that I can see, to have
> on the same port, streams with record marking and streams without record
> marking.


On Fri, December 19, 2008 2:27 pm, Mike Eisler wrote:
> https://datatracker.ietf.org/idtracker/draft-ietf-nfsv4-rpc-netid/comment/89786/
> has a comment regarding,
>
> http://tools.ietf.org/html/draft-ietf-nfsv4-rpc-netid-05.txt
>
> that notes that some connection oriented transports preserve message
> boundaries, and thus RPC record marking would technically not be
> needed.
>
> Thus I need to be explicit about each of netids specified for each
> transport
> that provided reliable, in-order deliver.
>
> But just because a transport supports boundary preservation doesn't
> mean we should necessarily dispose of it.
>
> For example SCTP. SCTP uses pretty much the same idea as RPC record
> marking, except that I find SCTP's approach to be much less
> error prone. I.e. in SCTP  data chunks
> there are two bits: B and E. If B is set, the chunk in the SCTP packet
> is the beginning of the record. If E is set it is the end of the record.
> RPC record marking only has the equivalent of the E bit, and the result is
> that if an RPC sender is not careful. Given the number of data
> corruption issues I've found with NFS/TCP clients that mess up the
> record marking, if I ever wrote a explicit specification for NFS/SCTP
> I would state that the client and server MUST support the ability
> to use native SCTP record marking.
>
> The only advantage I can see to specifying a netid for sctp that has
> RPC record marking is for the case when the sender wants to send a
> really long record, and the in-kernel interfaces (e.g. some socket API)
> cannot cope with say a 5 Gigabyte message, due to overflow of
> 32 bit integers, or SCTP receiver
> implementations that try to buffer entire messages (perhaps
> because the receiver's receive APIs are not capable of marking boundaries
> across multiple calls to the receive interface).
>
> Three questions for the WG:
>
> 1. Do existing RPC/SCTP implementations use record marking?
> If so, I will specify a variant of a netid for SCTP that uses
> record marking in addition to one that does not.
>
> 2. Assuming the answer to 1 is no, how do people feel about specifying
> a netid for SCTP and another similar transports that has the
> "unnecessary" record marking option?
>
> 3. NFSv4 specifies port 2049 for TCP and UDP. We will want it to
> use 2049 for SCTP (right?). Is there any objection to using 2049 for the
> variant of RPC/SCTP that does NOT use RPC record marking?
> If we find that we need NFSv4/RPC/SCTP w/ RPC record marking, we would
> need a new port from IANA. This is because RPC requests do not include the
> netid, and thus there's no way, that I can see, to have
> on the same port, streams with record marking and streams without record
> marking.
>
> --
> Mike Eisler, Senior Technical Director, NetApp, 719 599 9026,
> http://blogs.netapp.com/eislers_nfs_blog/
>
>
>
>
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4
>


-- 
Mike Eisler, Senior Technical Director, NetApp, 719 599 9026,
http://blogs.netapp.com/eislers_nfs_blog/



_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www.ietf.org/mailman/listinfo/nfsv4