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

Tom Herbert <tom@herbertland.com> Tue, 28 February 2017 21:07 UTC

Return-Path: <tom@herbertland.com>
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 4818A129715 for <tsvwg@ietfa.amsl.com>; Tue, 28 Feb 2017 13:07:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.20150623.gappssmtp.com
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 wjlndIeq6YXN for <tsvwg@ietfa.amsl.com>; Tue, 28 Feb 2017 13:07:40 -0800 (PST)
Received: from mail-qk0-x229.google.com (mail-qk0-x229.google.com [IPv6:2607:f8b0:400d:c09::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 802CE129713 for <tsvwg@ietf.org>; Tue, 28 Feb 2017 13:07:40 -0800 (PST)
Received: by mail-qk0-x229.google.com with SMTP id n186so37853995qkb.3 for <tsvwg@ietf.org>; Tue, 28 Feb 2017 13:07:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=86teyA18lLVjfHuUzKzUjtJVKwcIj9Stq7er2LvkC68=; b=yjiYMTR2RSlLJtj/4rBPFkNCMvG7ryuHonf2Lw/dV4L7DiAecFrW98bpnJutPdyg42 XOmErbZukcTx0abd2tZ4XduKn6gekd42S8PBASdUtVg1qp+5bgSuf8DKGBJrEwVEYTeL eGvSsK0S5EHTPkLRtZnntSh8Atgs2KXdHfQqhZKtzPMWVVqaWbWaN9EXT5W2Du4soca7 UBQ2kS4hg25XJzESk+o7IIHtX8o9m0Nz90CU68iVbUnqIMyj9n2N7fEyEb7OHzN7ngHK qi08M9KeQENauhsvxmL5ay5ee89AxRsdtJ1Sk5zgYjva8s6KZvsOaZIPasJQmJLTIBkY B0zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=86teyA18lLVjfHuUzKzUjtJVKwcIj9Stq7er2LvkC68=; b=ZaCcSfLGsZ/Rk0yawUfoIuzyHa05yF0kmpo0OzoDkKgIDGVLlKqUR7aOHLq/UwFQi9 Ydr73p5QG/ipcgpQeExb9fThMKdws5mxorvQPIHJBRGJmENsi/OsgfbI6aaQQDr4Bg+P zK0sq3sEnDgqzrT2qkK8mNIM+I2ZlkZ7GWDI7NfJ9Dk3nTpQEN/RieTrI3yY+3XvLCTI oPdOa+Ydkgbk6hY9xlwa4ULv6is3aE0LLYu116+7f1iwxLDC6hRKP7f6wHOog8PTtoYf YGdZEt2reKktJf/vWsxGR2bOIF2ln8v/IA+69enWEzqh1viNMqX0/4uyTzVO2pXIiGy3 AhBw==
X-Gm-Message-State: AMke39n+bmIqWn1Jw4p6nv67Hb6uZS6i6hx765qjLMpNSCPVFq6T9gmu51X5LJw/xb9fysWVYnH3vmyg5BgjFw==
X-Received: by 10.237.51.5 with SMTP id u5mr5699392qtd.247.1488316059324; Tue, 28 Feb 2017 13:07:39 -0800 (PST)
MIME-Version: 1.0
Received: by 10.237.55.232 with HTTP; Tue, 28 Feb 2017 13:07:38 -0800 (PST)
In-Reply-To: <20170228204607.GA71184@cowbell.employees.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> <20170228204607.GA71184@cowbell.employees.org>
From: Tom Herbert <tom@herbertland.com>
Date: Tue, 28 Feb 2017 13:07:38 -0800
Message-ID: <CALx6S36RvV0i4VSO=F5g6f4r4i2_VYmN6K1wygJZY7EsthFKEA@mail.gmail.com>
To: Joe Touch <touch@isi.edu>, tsvwg <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/AGb7OtrSFXVrEm7983bIO8il4gI>
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 21:07:42 -0000

On Tue, Feb 28, 2017 at 12:46 PM, Derek Fawcus
<dfawcus+lists-tsvwg@employees.org> wrote:
> 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.
>
Agreed, probably want to stick with the normal 16-bit Internet
checksum it will probably be more efficient since we've optimized
implementation of that anyway.

>> > 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.
>
Pretty much all NICs now days can set/verify UDP checksums on TX/RX so
we basically get it for free. This is why I doubt we'll ever see
UDP-lite in real deployment-- it is far less efficient than using the
UDP checksum. In a similar vein, applying a checksum over a packet
that is then fragmented is not easily supported in HW, for TX it
requires TSO logic for RX we might be able to deduce the reassembled
checksum from the checksummed individual fragments but it's a lot of
work. I think the LITE functionality is probably here for
completeness. CRC might be more interesting though.

Tom