Re: Payload length 0

Jana Iyengar <jri.ietf@gmail.com> Sun, 20 May 2018 00:50 UTC

Return-Path: <jri.ietf@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B90C12E890 for <quic@ietfa.amsl.com>; Sat, 19 May 2018 17:50:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 3GmcoZ60omsl for <quic@ietfa.amsl.com>; Sat, 19 May 2018 17:50:17 -0700 (PDT)
Received: from mail-io0-x22c.google.com (mail-io0-x22c.google.com [IPv6:2607:f8b0:4001:c06::22c]) (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 7582F12D96C for <quic@ietf.org>; Sat, 19 May 2018 17:50:17 -0700 (PDT)
Received: by mail-io0-x22c.google.com with SMTP id e78-v6so10488068iod.0 for <quic@ietf.org>; Sat, 19 May 2018 17:50:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=+L6kTWU5nQqspdyEWMjbuFSJIfQKfa9kEux5b9tOPHw=; b=p2dgn39CDm/K9SFN5+k4IX3M3N2eLfVNhaNXaiFmXHwznu+rPiuImTYQaj8KevqRDw LEmt3hsavZsfMe2oYEQ75w1ZhLUaXsT3BOL8Gs+mz9Wsfa2HA9EIgty16gHvvn/98CNS fKX9b7oEEW8+zFNpw7IUJf5Ez0A+DE/0CYqYPqHHkPup4dTsWTvoz1HX23EEFca2O1Iv rSRbjtdTZ0f1AXER4WVmLnoPGMtiOMf0DRzIkTSx1JJIk9+kAP2Reu0DJvUA7KPP5Vcj PA0xhVnzRR7F4UvcHZ6e65LZahbNwn1RQOcJsevub0CNu/DzOsiYsTpp5aNzUHxAB9O/ 48Fg==
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:cc; bh=+L6kTWU5nQqspdyEWMjbuFSJIfQKfa9kEux5b9tOPHw=; b=ZsWrP37DdsSgm51xcTzZ8X1ArfZ/44ahaM99lyJSCNITVABHjI8PvRA9uQ3wEyr0E2 B9ynB5lVfpFUjL9SWDyxPAl4z6Jg8QtynOhwRK5LWgFwkSnA9PhOveNGONTPmylsBYY6 Xp6T2h9Us1KmsN531ek4azqOsx1gYeu3PFPkGVhNhZXD7HLw6Jts3NmvT39LrZWdbNt8 FCdjLSrzLsC4kgs0e1ZnuNy+RBN4yHMrdXXunD77TxyK6IddpyQbCxfLZ9d8y+/CCdJc bqK1ndc8bsSNMG8zdKELzxn5Z5n/TCKQ6EcqGTvbMRaW7QBWVhjuKDKQe9RrJn8xiH+b Dfhg==
X-Gm-Message-State: ALKqPwcbFvWkFDS3HqbXefIVl+A34FTXOe9tDBwo9SZJpNsq9TmPsNkv O/TkndD6OHN6aX2KwcvgEg3ip4F6l01lNztBMGE=
X-Google-Smtp-Source: AB8JxZq0HJUh3Nu2bj1LVQjlHJ7ehrQ6oLd5GqbKF7U1g+a1OnB9AXzjbWV1hWJVa6kdGffF6kzYtHGfU9jLRbZLEBQ=
X-Received: by 2002:a6b:4119:: with SMTP id n25-v6mr3041281ioa.59.1526777416759; Sat, 19 May 2018 17:50:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a4f:27d4:0:0:0:0:0 with HTTP; Sat, 19 May 2018 17:50:16 -0700 (PDT)
In-Reply-To: <1F436ED13A22A246A59CA374CBC543998B7C712F@ORSMSX111.amr.corp.intel.com>
References: <CAOYVs2q63DpkPZTbw9T24ZcFOxbvrWAGvOtUaHvCuSg_13pSkQ@mail.gmail.com> <CABkgnnWpgyN_OPac-uSKALEaVc8mO_LpT9gAOs-n1eKqso5QAQ@mail.gmail.com> <CAKcm_gMFumNgPq4FxwcgzgDUCvn_jUxb0qk7tAgYZ=LvKfxjfg@mail.gmail.com> <20180518134400.GA12617@ubuntu-dmitri> <1F436ED13A22A246A59CA374CBC543998B7C712F@ORSMSX111.amr.corp.intel.com>
From: Jana Iyengar <jri.ietf@gmail.com>
Date: Sat, 19 May 2018 17:50:16 -0700
Message-ID: <CACpbDcdb6JK_-fmUcKMgbdm0iD2qFvQSVbM74uzo28aShb7H2w@mail.gmail.com>
Subject: Re: Payload length 0
To: "Deval, Manasi" <manasi.deval@intel.com>
Cc: Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett@google.com>, Marten Seemann <martenseemann@gmail.com>, IETF QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary="00000000000093bd69056c9891e6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/aXIluFBUjKNnFh0RQz6qR2SaAe4>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 20 May 2018 00:50:21 -0000

I don't have a strong preference, but a weak one: It seems silly to have a
length field in non-coalesced packets, and non-coalesced packets will be
the common case.

There may be a slightly more compelling reason though. I've been thinking
about optimizing loss recovery for coalesced packets, and I keep running up
against the possibility that a future middlebox might split coalesced QUIC
packets, if it is allowed. I have been thinking about future-proofing
coalesced packets from getting split by such middleboxes (as they do for
TCP), and it occurs to me that a special value of 0 could be used as this
signal. If length is 0, then the packet is coalesced, and otherwise not.
This forces a middlebox to forward coalesced or non-coalesced packets as
they are, without any re-packetization shenanigans.

If folks agree that there's value in this signal, length of 0 may be a neat
way to get it.

On Fri, May 18, 2018 at 7:05 AM, Deval, Manasi <manasi.deval@intel.com>
wrote:

> Agree with keeping payload length in the header.
>
>
> -----Original Message-----
> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Dmitri Tikhonov
> Sent: Friday, May 18, 2018 6:44 AM
> To: Ian Swett <ianswett@google.com>
> Cc: Marten Seemann <martenseemann@gmail.com>; IETF QUIC WG <quic@ietf.org>;
> Martin Thomson <martin.thomson@gmail.com>
> Subject: Re: Payload length 0
>
> I agree with Martin and Ian.  We should keep the payload length field and
> its value should be the actual length of the payload.
>
> In addition to being simple, this allows some flexibility when packet
> generattion is far away (in time or code) from actually sending a packet.
> That is to say, it is easier not to have to make the decision which version
> of the payload length value to use when the packet is created.
>
>   - Dmitri.
>
> On Fri, May 18, 2018 at 08:06:01AM -0400, Ian Swett wrote:
> > I would also prefer to not do either of these, because I think it adds
> > complexity and the byte savings are tiny.
> >
> > On Fri, May 18, 2018 at 1:34 AM Martin Thomson
> > <martin.thomson@gmail.com>
> > wrote:
> >
> > > Having just implemented this (and gotten it wrong once), I don't
> > > want more special cases.  Both of these options need extra code.  As
> > > Kazuho points out, filling in a two octet length is trivial.
> > >
> > > It's true that a length of 0 is invalid, but so is 1 through 16.
> > >
> > > Yes, this saves an octet, on about 4 packets per connection in the
> > > common case, more like 2 if you actually take advantage of compound
> packets.
> > > On Fri, May 18, 2018 at 3:08 PM Marten Seemann
> > > <martenseemann@gmail.com>
> > > wrote:
> > >
> > > > Jana asked me to raise this issue on the list, after we already
> > > > had a bit
> > > of discussion in https://github.com/quicwg/base-drafts/pull/1301.
> > >
> > > > The proposal is to make a payload length of 0 a special value,
> > > > indicating
> > > that the packet is not a coalesced packet, i.e. that the whole
> > > payload of the UDP packet is the QUIC packet. This would eliminate
> > > an invalid value of the payload length (there are no empty packets),
> > > save one byte for packet lengths where varint encoding would result
> > > in a two byte number, and apparently also simplify (some)
> implementations.
> > >
> > > > Kazuho argued creating two versions of each Long Header type (one
> > > > with
> > > and one without a payload length) is the better solution, since all
> > > values below the AEAD tag length + 1 are invalid values anyway, and
> > > it would save one more byte.
> > >
> > > > We should make a decision if and what we want to do about this.
> > >
> > >
>
>