Re: [tsvwg] Fwd: New Version Notification for draft-touch-tsvwg-udp-options-05.txt

Derek Fawcus <dfawcus+lists-tsvwg@employees.org> Tue, 28 February 2017 20:46 UTC

Return-Path: <dfawcus@employees.org>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1DE921296CE for <tsvwg@ietfa.amsl.com>; Tue, 28 Feb 2017 12:46:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=employees.org; domainkeys=pass (1024-bit key) header.from=dfawcus+lists-tsvwg@employees.org header.d=employees.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IrIO8o_aYWNO for <tsvwg@ietfa.amsl.com>; Tue, 28 Feb 2017 12:46:08 -0800 (PST)
Received: from esa01.kjsl.com (esa01.kjsl.com [IPv6:2607:7c80:54:3::87]) by ietfa.amsl.com (Postfix) with ESMTP id 427F21296B6 for <tsvwg@ietf.org>; Tue, 28 Feb 2017 12:46:08 -0800 (PST)
Received: from cowbell.employees.org ([198.137.202.74]) by esa01.kjsl.com with ESMTP; 28 Feb 2017 20:46:07 +0000
Received: from cowbell.employees.org (localhost [127.0.0.1]) by cowbell.employees.org (Postfix) with ESMTP id 59FA2D788E; Tue, 28 Feb 2017 12:46:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=employees.org; h=date:from :to:cc:subject:message-id:references:mime-version:content-type :in-reply-to; s=selector1; bh=pNXnmr7G37BJSTxwTMk7fIhMTCY=; b=lq +I3Dhy6broXqK7EUaIBialDcWi//wvILAwIRiQFpEwwLGupHWeGyAPCviW3vhhTX x02DiLQrhMflzUs4D3QkjnxUXUKCyRZRnRfbwLzAmqi+7vl4F1XFmSpZdbFogGeh WFj9qloKMLeDdVDOA/IfUOpcWkjSxONzrvlV/cH0g=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=employees.org; h=date:from :to:cc:subject:message-id:references:mime-version:content-type :in-reply-to; q=dns; s=selector1; b=lmZYOkIi6SEstGRF9eEOqswSi+er FL3oVTwzgYUg/PQAWo9Zoj8kYYDHib8o9RB7hva3+rnMCW6E7phe2q/M5e8n4Jii hs6gD9lCmBygfNmuZDV1B0sWoaSv7jnd498mi26a6VHLsJgAD2Un3xm1fnp2G0s3 P4qE8d+tk7PrnjE=
Received: by cowbell.employees.org (Postfix, from userid 1736) id 57AD0D788A; Tue, 28 Feb 2017 12:46:07 -0800 (PST)
Date: Tue, 28 Feb 2017 20:46:07 +0000
From: Derek Fawcus <dfawcus+lists-tsvwg@employees.org>
To: Joe Touch <touch@isi.edu>
Message-ID: <20170228204607.GA71184@cowbell.employees.org>
Mail-Followup-To: Joe Touch <touch@isi.edu>, tsvwg <tsvwg@ietf.org>
References: <148823787288.13843.6091386736320524682.idtracker@ietfa.amsl.com> <800de1a6-cb9b-f22b-946a-8b6832fc9a05@isi.edu> <20170228163751.GA89477@cowbell.employees.org> <7d58ead9-2d1a-d35c-7cd2-90526918838c@isi.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <7d58ead9-2d1a-d35c-7cd2-90526918838c@isi.edu>
User-Agent: Mutt/1.7.2 (2016-11-26)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/3sqC4NTO8c7JVpBVRrMD9LZ1aw4>
Cc: tsvwg <tsvwg@ietf.org>
Subject: Re: [tsvwg] Fwd: New Version Notification for draft-touch-tsvwg-udp-options-05.txt
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Feb 2017 20:46:10 -0000

On Tue, Feb 28, 2017 at 11:29:09a.m. -0800, Joe Touch wrote:
> Note - one of the caveats is that I'd really like to see this become a
> WG doc. at some point.

Seems like a good idea.

> On 2/28/2017 8:37 AM, Derek Fawcus wrote:
> > On Mon, Feb 27, 2017 at 03:30:59p.m. -0800, Joe Touch wrote:
> >
> > Section 5 question on must implement:
> >
> > Personally I'd say the most interesting / useful are (in order):
> >   MSS, FRAG, TIME, LITE, ACS, AE
> > So that would inform my choice of which to make mandatory

Well that was just the order from which I'd chose the mandatory set,
I wasn't necessarily suggesting that all be mandatory.

For me the suggested mandatory additions would probably be MSS and FRAG,
then possibly TIME due to the timing points with reassembly which
you mention.

> > Section 5.3 (Option Checksum)

> > You could simplify the option checksum handling by
> > simply defining the first 2 bytes of the surplus
> > area as a 16 bit checksum over the whole of the
> > surplus area while in its Figure 10 form, i.e. not
> > including the Lite data.
> I agree with the second point (simplified processing), but not the first
> (requiring OCS), unless we agree that OCS is always required (it is not
> right now; it is default active, 

I view requiring it to always be present is a sensible choice
as that allows for some level of validation that the surplus
area actually is options.  As I believe you mention later
in the draft.

> but could be turned off to save space -
> though I'm not sure why that amount of space would matter).

Quite.  I'd say the cost/benefit weighs in favour of using
the space to always have the options summed.

> > This would be compatible with the LITE swap scheme
> > you describe in section 5.5, just with one having
> > to swap 6 bytes rather than 4 bytes.  It would also
> > take no more space than the existing checksum - assuming
> > such was always included.
> It takes two additional bytes - we can't redefine the existing checksum
> and be compatible with legacy receivers.

Sorry,  I've lost the thread here.

I was not suggesting altering how the normal UDP checksum works.

I was mainly driving at how in implementing this in a host stack I'd
like to verify the options.  Namely that in the absense of the Lite
option,  it would allow one to use the existing checksum validation
routine to run across the whole of the surplus area, and if it summed
to the usual (1's complement) zero,  it is good.

In the presence of Lite option it only becomes slightly more complex,
in that one performs the check as two partial sums.

This could be combined with whatever logic is extracting/detecting
the presence of the options.  That would obviously requiring using
the usual 1s complement of the 1s complement sum.  It would have
to occur before normal UDP processing, and be driven off the UDP
length and the IP header payload length being different

[I'm assuming the presence of a routine like:
   uint16_t ip_partial_checksum(uint16_t old_sum, void *start, uint16_t length)
 which sums the supplied range in to the old_sum, returning the new value.
 Initialisation and final 1s-complement being done outside that routine.
]


Or are you referring to existing implementations of your current
option code?

> I don't want to design a transport protocol capability based on what a
> middlebox might do. That's "laws for the lawless", IMO, and there's
> little point. So I'd rather not address this.

The reference to middle boxes was an unimportant side comment,
please forget I mentioned it.

The significant point was allowing the same style of checksum
as already exists, and hence using the same (or similar)
set of routines.  Especially since if we assume the checksum
is always present, it costs no more in terms of payload that
the 8 bit scheme.

> > Section 5.1 (End of Options List)
> >
> > Given the above change to the options checksum, and the
> > stale text in section 7, it would seem that there is no
> > need for the EOL option,  and NOP could become 0; however
> > that probably doesn't matter either way.
> I'm in favor of keeping EOL because the code to handle it is easy and it
> might enable other capabilities in the future (i.e., available space
> after the header). It might be useful to mention that.

I'm fine either way.

> > If fragmentation is present with Lite, and two such packets
> > are received to be reassembled, what happens to the Lite data
> > from each packet?  Should this combination be rejected, or
> > defined in some fashion?
> Good point. I'll think about this and create an ordering list.

Tom's suggestion here was interesting.  It would seem to be
re-defining the FRAG+LITE case where the UDP User Data is zero length,
such that the LITE is now segmented,  and non-Lite.  I'm not sure
about that yet,  it feels a bit weird.

However, the overall checksum he mentioned could itself be in an
option,  and would only need to be in one of the fragments.

DF