
From nobody Sun Jul  2 15:13:22 2017
Return-Path: <ekr@rtfm.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 6C05212EAFF for <quic@ietfa.amsl.com>; Sun,  2 Jul 2017 15:13:20 -0700 (PDT)
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=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, 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=rtfm-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 1RrZYLN-fqH4 for <quic@ietfa.amsl.com>; Sun,  2 Jul 2017 15:13:19 -0700 (PDT)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002:c05::235]) (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 315AB129461 for <quic@ietf.org>; Sun,  2 Jul 2017 15:13:19 -0700 (PDT)
Received: by mail-yw0-x235.google.com with SMTP id 63so65122723ywr.0 for <quic@ietf.org>; Sun, 02 Jul 2017 15:13:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=ROFYOgsGtRpPc280s3ndhhcmxECjq/XyFgADSwJNShk=; b=1RRqjvJyBGzk+f388SxqwEA+b5SjFMkE4/pi3mdBXkOWW5AsJkiWjJmG71q0mE29BZ Ad8dzgQ1bO/yCKcxMDBtqqj9KrFyMfPjeNy50orGE8FByAQlfSY8enKLDM5NT2jMUP0V Q+nhzGJq/Dg36nfKj63GZUyp6l/SAgc5oiuJC0EuqZTL665m6xdwCi9dwyL7Plp/ux79 f5IJZ27ixBp1vnOzazPjO065vSck4Pw+pylHkiLtP80ONwbAtLCmp3Q02Q9zB9WDfmbv 64SeCkz/YKk0YNZ3ZFIE7INlkxHdYJOiHjlUatC3SNV/cWf1VWH8wyl+m/Q991jH1N/V g2Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ROFYOgsGtRpPc280s3ndhhcmxECjq/XyFgADSwJNShk=; b=EeZiG+HNO5eqgd4HS/b+M4bpg9qUs3VQ/JrUZfNIgBv3L8mpDweDh1nBUsVuR7K89v uAWJE5EdH5IRmBBdHU+vk88l/HUBjmRybSiHzTgtK/9I83+qfuv5yOxe5G7WF4I41Ck8 UqlWfD3WIRfl0lrQu10WKPuEhAZmVxHKM4rI5aE28tElDGqH+9SIabEmbhWJlJZiKMkJ Tp2rulb5cZiGqtlTH82EViEmeGMWhFrghWfZGK8c/jM7PQ92N288IJ/zmgAk+j1qJ6nY lesOWbYQ6DzFsZ2eV010+oqMoA9YvQyDKbnoNb6DIB3T+NRNW7LwpHVSkQtNSU+gZToY 2ajw==
X-Gm-Message-State: AKS2vOyaiyXkmUECCJCp+YKGvkCJa3xpk895Pm/9fmOfA+RwjfhuOm0s 8SbnyOynHmmkzxgcuao9nZwCd4N7YbHO5es=
X-Received: by 10.129.109.206 with SMTP id i197mr18379154ywc.24.1499033598222;  Sun, 02 Jul 2017 15:13:18 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.215.9 with HTTP; Sun, 2 Jul 2017 15:12:37 -0700 (PDT)
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 2 Jul 2017 15:12:37 -0700
Message-ID: <CABcZeBNNG4vwTYsFXndou6gGSy-B7i0GeHf4-uTaYQqMcPNW8w@mail.gmail.com>
Subject: ALPN token to use for first implementation draft
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114dd266213ec305535cf503"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/qUYpvuGSbeuwg0lwdfEOVzO_YAI>
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, 02 Jul 2017 22:13:20 -0000

--001a114dd266213ec305535cf503
Content-Type: text/plain; charset="UTF-8"

The TLS draft implies (though I suppose one could argue) that QUIC should
always negotiate ALPN. The HTTP draft specifies "hq-<version>" but we're not
doing HTTP for the first implementation draft.

We want to get into the habit of using ALPN, so I think we should define
one.
Perhaps "implementation-1"?

-Ekr

--001a114dd266213ec305535cf503
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">The TLS draft implies (though I suppose one could argue) t=
hat QUIC should<div>always negotiate ALPN. The HTTP draft specifies &quot;h=
q-&lt;version&gt;&quot; but we&#39;re not</div><div>doing HTTP for the firs=
t implementation draft.</div><div><br></div><div>We want to get into the ha=
bit of using ALPN, so I think we should define one.</div><div>Perhaps &quot=
;implementation-1&quot;?</div><div><br></div><div>-Ekr</div><div><br></div>=
<div><br></div><div><br></div><div><br></div><div><br></div></div>

--001a114dd266213ec305535cf503--


From nobody Mon Jul  3 02:33:44 2017
Return-Path: <internet-drafts@ietf.org>
X-Original-To: quic@ietf.org
Delivered-To: quic@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 0199E131550; Mon,  3 Jul 2017 02:33:43 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: quic@ietf.org
Subject: I-D Action: draft-ietf-quic-applicability-00.txt
X-Test-IDTracker: no
X-IETF-IDTracker: 6.55.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <149907442287.4885.414625010159334254@ietfa.amsl.com>
Date: Mon, 03 Jul 2017 02:33:42 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/qP663UTOtaliXNgBgIU8Z4o5vdg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 03 Jul 2017 09:33:43 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the QUIC of the IETF.

        Title           : Applicability of the QUIC Transport Protocol
        Authors         : Mirja Kuehlewind
                          Brian Trammell
	Filename        : draft-ietf-quic-applicability-00.txt
	Pages           : 9
	Date            : 2017-07-03

Abstract:
   This document discusses the applicability of the QUIC transport
   protocol, focusing on caveats impacting application protocol
   development and deployment over QUIC.  Its intended audience is
   designers of application protocol mappings to QUIC, and implementors
   of these application protocols.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-quic-applicability/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-quic-applicability-00
https://datatracker.ietf.org/doc/html/draft-ietf-quic-applicability-00


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Mon Jul  3 02:33:59 2017
Return-Path: <internet-drafts@ietf.org>
X-Original-To: quic@ietf.org
Delivered-To: quic@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 6A88713155C; Mon,  3 Jul 2017 02:33:54 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: quic@ietf.org
Subject: I-D Action: draft-ietf-quic-manageability-00.txt
X-Test-IDTracker: no
X-IETF-IDTracker: 6.55.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <149907443442.5002.14751279536269389577@ietfa.amsl.com>
Date: Mon, 03 Jul 2017 02:33:54 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/h-bJ4ZhRuUQF0wNHdRFMtdjXFwY>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 03 Jul 2017 09:33:54 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the QUIC of the IETF.

        Title           : Manageability of the QUIC Transport Protocol
        Authors         : Mirja Kuehlewind
                          Brian Trammell
                          Dan Druta
	Filename        : draft-ietf-quic-manageability-00.txt
	Pages           : 12
	Date            : 2017-07-03

Abstract:
   This document discusses manageability of the QUIC transport protocol,
   focusing on caveats impacting network operations involving QUIC
   traffic.  Its intended audience is network operators, as well as
   content providers that rely on the use of QUIC-aware middleboxes,
   e.g. for load balancing.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-quic-manageability/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-quic-manageability-00
https://datatracker.ietf.org/doc/html/draft-ietf-quic-manageability-00


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Mon Jul  3 02:37:28 2017
Return-Path: <ietf@trammell.ch>
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 D84B7131555 for <quic@ietfa.amsl.com>; Mon,  3 Jul 2017 02:37:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 5msVSvFWbuhO for <quic@ietfa.amsl.com>; Mon,  3 Jul 2017 02:37:25 -0700 (PDT)
Received: from capri.iway.ch (capri.iway.ch [212.25.24.45]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E8A72131550 for <quic@ietf.org>; Mon,  3 Jul 2017 02:37:24 -0700 (PDT)
Received: from gozo.iway.ch (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 653AD34081B for <quic@ietf.org>; Mon,  3 Jul 2017 11:37:23 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by localhost (ACF/18338.6813);  Mon,  3 Jul 2017 11:37:23 +0200 (CEST)
Received: from switchplus-mail.ch (switchplus-mail.ch [212.25.8.236]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gozo.iway.ch (Postfix) with ESMTPS for <quic@ietf.org>; Mon,  3 Jul 2017 11:37:23 +0200 (CEST)
Received: from [94.247.222.80] (account ietf@trammell.ch HELO [10.11.33.5]) by switchplus-mail.ch (CommuniGate Pro SMTP 6.1.14) with ESMTPSA id 22587773 for quic@ietf.org; Mon, 03 Jul 2017 11:37:23 +0200
From: Brian Trammell (IETF) <ietf@trammell.ch>
X-Pgp-Agent: GPGMail
Content-Type: multipart/signed; boundary="Apple-Mail=_76F090A5-B3D3-4EA2-9E83-ADCEBA07D0DB"; protocol="application/pgp-signature"; micalg=pgp-sha512
Subject: Fwd: I-D Action: draft-ietf-quic-applicability-00.txt
Date: Mon, 3 Jul 2017 11:37:22 +0200
References: <149907442287.4885.414625010159334254@ietfa.amsl.com>
To: QUIC WG <quic@ietf.org>
Message-Id: <921A4A11-1BD4-443C-991C-3055BA0F3EAF@trammell.ch>
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/vS7DSMRIcsmwUUISf3ZOeBE3CIQ>
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: Mon, 03 Jul 2017 09:37:28 -0000

--Apple-Mail=_76F090A5-B3D3-4EA2-9E83-ADCEBA07D0DB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Greetings, all,

We've posted an initial WG version of the applicability draft. This =
draft still has a couple of open issues and a few changes to track in =
the -04 revisions of the base drafts, but we wanted to get a version out =
to discuss before Prague.

The manageability and applicability drafts have their own GitHub =
repository, https://github.com/quicwg/ops-drafts. Issues on these drafts =
can be filed at https://github.com/quicwg/ops-drafts/issues and/or =
discussed on the quic@ietf.org mailing list.

Thanks, cheers,

Brian (for the editors of the ops drafts)

> Begin forwarded message:
>=20
> From: internet-drafts@ietf.org
> Subject: I-D Action: draft-ietf-quic-applicability-00.txt
> Date: 3 July 2017 at 11:33:42 GMT+2
> To: <i-d-announce@ietf.org>
> Cc: quic@ietf.org
>=20
>=20
> A New Internet-Draft is available from the on-line Internet-Drafts =
directories.
> This draft is a work item of the QUIC of the IETF.
>=20
>        Title           : Applicability of the QUIC Transport Protocol
>        Authors         : Mirja Kuehlewind
>                          Brian Trammell
> 	Filename        : draft-ietf-quic-applicability-00.txt
> 	Pages           : 9
> 	Date            : 2017-07-03
>=20
> Abstract:
>   This document discusses the applicability of the QUIC transport
>   protocol, focusing on caveats impacting application protocol
>   development and deployment over QUIC.  Its intended audience is
>   designers of application protocol mappings to QUIC, and implementors
>   of these application protocols.
>=20
>=20
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-quic-applicability/
>=20
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-quic-applicability-00
> https://datatracker.ietf.org/doc/html/draft-ietf-quic-applicability-00
>=20
>=20
> Please note that it may take a couple of minutes from the time of =
submission
> until the htmlized version and diff are available at tools.ietf.org.
>=20
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>=20


--Apple-Mail=_76F090A5-B3D3-4EA2-9E83-ADCEBA07D0DB
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJZWhBSAAoJEIoSt78L6kajy/UP/RjeeZPA7uSrR9xvgVWrE660
E9Q7txHrhArUfM+j/OXpJD9tRfBQr/iuUlffkGjWFrmHeT+/oioOJ/osVbVl1zOk
qPGOvc3Kw+VnjQyuKG7+kKe6iNA3YwcOwxW41uPj2oAdaUsOZY1MirxpNyXQnfPV
JhAiyqjSRx5V8XywrniXP2UutPTpHJ/3C6Gl2HQtp8ICsTWhfnZmOIqPtfwMP1JI
C/2kQNaCseXAQ33Td7maAjWg/uy082FkO5anbaeMyhdeW+F3hL6SxJP7lGkZ/ku+
YxCaDzgOfG6+9+4BTQFR5xEDALi5Lp8pNT7h+T/xu2Ioa6+5Es9Q1alNtjko+faj
VF44cmMZvYifzD+dIDbSK5RUFpRp6WdiLW38HJFcabmUXYTMYAK6QeFL1hnUrC/+
0tQVRXIUjVjj65epDDKeYxHSoKEOdioNOlXBl7RnMN2UZnLMAeBkpi1F3ZpBDf9i
Nr4K4C5ZMfblqSnJl9GruEAkXsJVxPlgNd4sKfEXJiIMCsSH8RWOZtUwtfmmectx
mhaK3VuoZnVbymwMl4l4YqNUKqQjjCSBRBkjZVQzZ+PINQEkEKpQdaYJ1IOpOkz/
fmsruoc7WgbzhTOggy6Gjoc7/Gv715ihfoikOu/dfa2j2nRWe9z7yx22EXI4szOL
jI6cJCFM0qM7AToKnC6/
=RwEx
-----END PGP SIGNATURE-----

--Apple-Mail=_76F090A5-B3D3-4EA2-9E83-ADCEBA07D0DB--


From nobody Mon Jul  3 02:37:59 2017
Return-Path: <ietf@trammell.ch>
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 B4BDC131555 for <quic@ietfa.amsl.com>; Mon,  3 Jul 2017 02:37:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 J4acq-pdEzHb for <quic@ietfa.amsl.com>; Mon,  3 Jul 2017 02:37:55 -0700 (PDT)
Received: from capri.iway.ch (capri.iway.ch [212.25.24.45]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6BBE4131550 for <quic@ietf.org>; Mon,  3 Jul 2017 02:37:55 -0700 (PDT)
Received: from gozo.iway.ch (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 3BB62340D7C for <quic@ietf.org>; Mon,  3 Jul 2017 11:37:54 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by localhost (ACF/18338.6813);  Mon,  3 Jul 2017 11:37:54 +0200 (CEST)
Received: from switchplus-mail.ch (switchplus-mail.ch [212.25.8.236]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gozo.iway.ch (Postfix) with ESMTPS for <quic@ietf.org>; Mon,  3 Jul 2017 11:37:54 +0200 (CEST)
Received: from [94.247.222.80] (account ietf@trammell.ch HELO [10.11.33.5]) by switchplus-mail.ch (CommuniGate Pro SMTP 6.1.14) with ESMTPSA id 22587853 for quic@ietf.org; Mon, 03 Jul 2017 11:37:54 +0200
From: "Brian Trammell (IETF)" <ietf@trammell.ch>
X-Pgp-Agent: GPGMail
Content-Type: multipart/signed; boundary="Apple-Mail=_D8C1D25B-D9A2-4A9D-9E60-58AB3142B5D4"; protocol="application/pgp-signature"; micalg=pgp-sha512
Subject: Fwd: I-D Action: draft-ietf-quic-manageability-00.txt
Date: Mon, 3 Jul 2017 11:37:53 +0200
References: <149907443442.5002.14751279536269389577@ietfa.amsl.com>
To: QUIC WG <quic@ietf.org>
Message-Id: <0ACDDC69-6549-4CF7-A018-BC52B8DD0859@trammell.ch>
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/QSkY54MpVI-Ke4myQhiF_dykDgM>
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: Mon, 03 Jul 2017 09:37:58 -0000

--Apple-Mail=_D8C1D25B-D9A2-4A9D-9E60-58AB3142B5D4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Greetings, all,

Likewise, we've posted an initial WG version of the manageability draft. =
As with applicability, this draft still has a couple of open issues and =
a few changes to track in the -04 revisions of the base drafts, but we =
wanted to get a version out to discuss before Prague.

The manageability and applicability drafts have their own GitHub =
repository, https://github.com/quicwg/ops-drafts. Issues on these drafts =
can be filed at https://github.com/quicwg/ops-drafts/issues and/or =
discussed on the quic@ietf.org mailing list.

Thanks, cheers,

Brian (for the editors of the ops drafts)

> Begin forwarded message:
>=20
> From: internet-drafts@ietf.org
> Subject: I-D Action: draft-ietf-quic-manageability-00.txt
> Date: 3 July 2017 at 11:33:54 GMT+2
> To: <i-d-announce@ietf.org>
> Cc: quic@ietf.org
>=20
>=20
> A New Internet-Draft is available from the on-line Internet-Drafts =
directories.
> This draft is a work item of the QUIC of the IETF.
>=20
>        Title           : Manageability of the QUIC Transport Protocol
>        Authors         : Mirja Kuehlewind
>                          Brian Trammell
>                          Dan Druta
> 	Filename        : draft-ietf-quic-manageability-00.txt
> 	Pages           : 12
> 	Date            : 2017-07-03
>=20
> Abstract:
>   This document discusses manageability of the QUIC transport =
protocol,
>   focusing on caveats impacting network operations involving QUIC
>   traffic.  Its intended audience is network operators, as well as
>   content providers that rely on the use of QUIC-aware middleboxes,
>   e.g. for load balancing.
>=20
>=20
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-quic-manageability/
>=20
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-quic-manageability-00
> https://datatracker.ietf.org/doc/html/draft-ietf-quic-manageability-00
>=20
>=20
> Please note that it may take a couple of minutes from the time of =
submission
> until the htmlized version and diff are available at tools.ietf.org.
>=20
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>=20


--Apple-Mail=_D8C1D25B-D9A2-4A9D-9E60-58AB3142B5D4
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJZWhByAAoJEIoSt78L6kajMjUQAJrsAoaYDtB6uUyEGQjEwfCG
EzNsHJ92Y9QfChuOrYoCsE9gOCAiuotx21FGrVt3G+VhmyYCOkght3+0/CI+WhRM
YMOEsIPpHaK1chBxqOFiGgPMwOOXgTN5Rkt7pWTlHQPFrK1xTKZN0URvQ5MVO3Ke
Db2eDPrFPUNFUx3gLVdJ8mlqKj8UrdSnWWrQsdyruzjWFjsMRdu8a8g2SDzucBlF
Z1uE4TtIqKL0k7Phd7T8sxdeZBKAlK+VGWCQU31dkuikb5LekoFj1Oln3eQyaFKS
oj3dX0WfnhRrclGV+xKgo2XouERrQ3GbEG0dFuXoG+d9QJUfj7hL0VWIohmpxsjz
kFHB5mzEMLGjGijmVJHkBFd/yvXSbrgOHAwILiXEkTJPGUt3j5S8J6F+cS9HfvE7
GpV2PB/dKboV+/NXXzhFpt9KUSMIixBNj669EcWkKaC99XBZRblgG/0y3vzTvrBY
oguQzl2QO5v6HX1o+mf+l22o8TfTa8HsywAxxBD++bvzPNbvUgZIU0j2dl9shvwI
37YDVyxVDs9crTdloP6QwA9ytVrLxnjDmzAxoM9qEEuj/rFpvlFvDE+nqWbCerkF
4vGd9H1nnwW9g1Yezjl70rCjwhBsWmkt4vFeM1wA4NWDvO8x159SUACxBPstgrgL
nrsfqlUBT1wFfnnuWesz
=ycTs
-----END PGP SIGNATURE-----

--Apple-Mail=_D8C1D25B-D9A2-4A9D-9E60-58AB3142B5D4--


From nobody Mon Jul  3 06:07:27 2017
Return-Path: <emile.stephan@orange.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 5EBEE124D37; Mon,  3 Jul 2017 06:07:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.619
X-Spam-Level: 
X-Spam-Status: No, score=-2.619 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 8_7gZ9Ax4t8i; Mon,  3 Jul 2017 06:07:23 -0700 (PDT)
Received: from relais-inet.orange.com (mta240.mail.business.static.orange.com [80.12.66.40]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DBA16129BA4; Mon,  3 Jul 2017 06:07:00 -0700 (PDT)
Received: from opfedar01.francetelecom.fr (unknown [xx.xx.xx.2]) by opfedar27.francetelecom.fr (ESMTP service) with ESMTP id B0B08602DE; Mon,  3 Jul 2017 15:06:59 +0200 (CEST)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.42]) by opfedar01.francetelecom.fr (ESMTP service) with ESMTP id 92D8616005E; Mon,  3 Jul 2017 15:06:59 +0200 (CEST)
Received: from OPEXCLILM44.corporate.adroot.infra.ftgroup ([fe80::b08d:5b75:e92c:a45f]) by OPEXCLILM41.corporate.adroot.infra.ftgroup ([fe80::c845:f762:8997:ec86%19]) with mapi id 14.03.0352.000; Mon, 3 Jul 2017 15:06:59 +0200
From: <emile.stephan@orange.com>
To: "quic@ietf.org" <quic@ietf.org>
CC: "IETF IPPM WG (ippm@ietf.org)" <ippm@ietf.org>
Subject: TR: I-D Action: draft-stephan-quic-interdomain-troubleshooting-00.txt
Thread-Topic: I-D Action: draft-stephan-quic-interdomain-troubleshooting-00.txt
Thread-Index: AQHS8+Gnfganiwqd80yN+D/vXwRoVaJCDrpg
Date: Mon, 3 Jul 2017 13:06:57 +0000
Message-ID: <29477_1499087219_595A4173_29477_477_1_5AE9CCAA1B4A2248AB61B4C7F0AD5FB919AC4538@OPEXCLILM44.corporate.adroot.infra.ftgroup>
References: <149907533000.4990.3917157363711000733@ietfa.amsl.com>
In-Reply-To: <149907533000.4990.3917157363711000733@ietfa.amsl.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.3]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Pd5EMU1Zeisup__RZzoiKFUU74M>
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: Mon, 03 Jul 2017 13:07:25 -0000

Hi,

We posted a draft which discusses constraints that QUIC is pushing on netwo=
rks performance measurements (troubleshooting, fallback, goodput, fairness.=
..).=20
Feedbacks are welcome.

Abstract:
   On-path network performance measurements methods currently deployed
   contribute to the ossification of the Internet because they are
   expensive to deploy and to maintain. This draft motivates the
   exposure of QUIC header fields for on-path network measurements and
   their specification in the QUIC core protocol as a solution to avoid
   on-path network performance measurements to ossify the IP stack in
   the future.

https://tools.ietf.org/html/draft-stephan-quic-interdomain-troubleshooting-=
00.


Best Regards
Emile

-----Message d'origine-----
De=A0: I-D-Announce [mailto:i-d-announce-bounces@ietf.org] De la part de in=
ternet-drafts@ietf.org
Envoy=E9=A0: lundi 3 juillet 2017 11:49
=C0=A0: i-d-announce@ietf.org
Objet=A0: I-D Action: draft-stephan-quic-interdomain-troubleshooting-00.txt


A New Internet-Draft is available from the on-line Internet-Drafts director=
ies.


        Title           : QUIC Interdomain Troubleshooting
        Authors         : Emile Stephan
                          Mathilde Cayla
                          Arnaud Braud
                          Fred Fieau
	Filename        : draft-stephan-quic-interdomain-troubleshooting-00.txt
	Pages           : 9
	Date            : 2017-07-03

Abstract:
   On-path network performance measurements methods currently deployed
   contribute to the ossification of the Internet because they are
   expensive to deploy and to maintain. This draft motivates the
   exposure of QUIC header fields for on-path network measurements and
   their specification in the QUIC core protocol as a solution to avoid
   on-path network performance measurements to ossify the IP stack in
   the future.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-stephan-quic-interdomain-troubleshoo=
ting/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-stephan-quic-interdomain-troubleshooting-=
00=20
https://datatracker.ietf.org/doc/html/draft-stephan-quic-interdomain-troubl=
eshooting-00


Please note that it may take a couple of minutes from the time of submissio=
n until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

_______________________________________________
I-D-Announce mailing list
I-D-Announce@ietf.org
https://www.ietf.org/mailman/listinfo/i-d-announce
Internet-Draft directories: http://www.ietf.org/shadow.html or ftp://ftp.ie=
tf.org/ietf/1shadow-sites.txt

___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


From nobody Tue Jul  4 06:13:58 2017
Return-Path: <ingemar.s.johansson@ericsson.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 B5A5C129B64 for <quic@ietfa.amsl.com>; Tue,  4 Jul 2017 06:13:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.onmicrosoft.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 Fzq89F9PpNrT for <quic@ietfa.amsl.com>; Tue,  4 Jul 2017 06:13:51 -0700 (PDT)
Received: from sesbmg22.ericsson.net (sesbmg22.ericsson.net [193.180.251.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 248FB129B29 for <quic@ietf.org>; Tue,  4 Jul 2017 06:13:50 -0700 (PDT)
X-AuditID: c1b4fb30-703ff70000001664-a9-595b948d6faf
Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.183.63]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 60.83.05732.D849B595; Tue,  4 Jul 2017 15:13:49 +0200 (CEST)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.63) with Microsoft SMTP Server (TLS) id 14.3.352.0; Tue, 4 Jul 2017 15:13:48 +0200
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.onmicrosoft.com; s=selector1-ericsson-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=U5hu4J1gf/pmN7YYSAjACGNygN5WEe09YHCqHz9cS4w=; b=I7E77BLrNTWhMUJmQtHQbv7qd12QA4de5uCAfNv7gFSVLRgjmEFezpPkUIR2RLthK3FAIt8BIv67FzHMXu2YexV2Nv6xU5Df4oR7zo2useBd8Lk2dAcyqmn/FX0hs/JvoVizjy8BVZjKk2BOa2w/j83P9dz78/+1nZj1FUiGpRU=
Received: from DB4PR07MB348.eurprd07.prod.outlook.com (10.141.234.148) by DB4PR07MB0639.eurprd07.prod.outlook.com (10.141.43.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.6; Tue, 4 Jul 2017 13:13:47 +0000
Received: from DB4PR07MB348.eurprd07.prod.outlook.com ([fe80::4ce9:7bec:5be9:91b5]) by DB4PR07MB348.eurprd07.prod.outlook.com ([fe80::4ce9:7bec:5be9:91b5%18]) with mapi id 15.01.1240.010; Tue, 4 Jul 2017 13:13:47 +0000
From: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
To: Bob Briscoe <ietf@bobbriscoe.net>
CC: QUIC IETF mailing list <quic@ietf.org>, Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
Subject: RE: Quick review of ECN for QUIC: draft-johansson-quic-ecn-03
Thread-Topic: Quick review of ECN for QUIC: draft-johansson-quic-ecn-03
Thread-Index: AQHS7gsvdP/sazXU60Kiru14WhrlQ6JDZ3mw
Date: Tue, 4 Jul 2017 13:13:46 +0000
Message-ID: <DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70@DB4PR07MB348.eurprd07.prod.outlook.com>
References: <0062c1c4-254c-651f-c091-7f85fc1a28fa@bobbriscoe.net>
In-Reply-To: <0062c1c4-254c-651f-c091-7f85fc1a28fa@bobbriscoe.net>
Accept-Language: sv-SE, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: bobbriscoe.net; dkim=none (message not signed) header.d=none;bobbriscoe.net; dmarc=none action=none header.from=ericsson.com;
x-originating-ip: [192.176.1.90]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB4PR07MB0639; 7:ROCIv313LLYukoJeta5Tm4eyWhRQbUvqfDiw7XRkpmDr+aRt2M9Cluxj1SebntkVmrzHoevdVpjfxKz+QvfMnGGkR00NazUIC4mCsTMpNfRaiNInc6017jDmth4xCG9S4u+aFUsSkwv9WmbdeDuYeMa4z45hk/qRvkEikSQYU2UqzCQFYJe+VFZg44+xaqVmcvP9TNh3tpb0HdvF6cO6tsz62e+AkOl0gdqYGdSYCcuJbx4ivTghqel7DJPl+Oiia/c59bqrXUIVtowkVQ+yfC2cNBg7kKL2Afejy4kxedmeHUTsv4W1MM+HYB6Da5MYbIWq2yXl0MsBupjTUng8LY8o+c9EMHuGm51zu2xOSeeUDgsZEa819IMNGEnHBE6rZDamgnJhN65ZnRirOFgYRcFbD2Y/NKecAhFPYSOK5KbOeGE/lnV94zVfvfnUHoOG65Jp/PjwWvimi3iWQSJylKM44d08fUMzSVcUeLPwhKHNXk5du/eR5u2OkadABA971lcyBIOMZaGEpa5UDIEAraoYI2CtVyMwWddc5r9JR5PiZF1XGhfJ140YW3qHvcSCD3LQT46Y/r7xd3oaQktdM6KFGHaom2JkMelPX1TILsi3s52d05TKt4cU3sw+KhS3vFJrq2wveTlIEcdmTN9INe55bZfyWlqBrAQPxzZy+5QAM7Nc99Soz3KlXibJtRn4kC3YzjhfZVOP5UyOYaLtG2vOlN+6MjpFPZ6s5Y7SXBCfl8vI+q2zDtX3L0lC5zVT18KFPuXXiY13GunnP502eyoWwuH/DomH8AB4GycvXRc=
x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM; SFS:(10009020)(39400400002)(39410400002)(39860400002)(39850400002)(39840400002)(39450400003)(51914003)(24454002)(76176999)(50986999)(54356999)(9326002)(3280700002)(6506006)(53546010)(5660300001)(6436002)(2900100001)(2906002)(6916009)(2950100002)(7696004)(4326008)(230783001)(5250100002)(86362001)(66066001)(229853002)(74316002)(966005)(81166006)(8936002)(6116002)(8676002)(790700001)(102836003)(14454004)(6246003)(3846002)(107886003)(53376002)(606006)(33656002)(110136004)(38730400002)(478600001)(99286003)(55016002)(25786009)(54906002)(3660700001)(7736002)(6306002)(54896002)(53936002)(189998001)(236005)(9686003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR07MB0639; H:DB4PR07MB348.eurprd07.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
x-ms-office365-filtering-correlation-id: 04ab5468-3208-4c29-0125-08d4c2de8119
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB4PR07MB0639; 
x-ms-traffictypediagnostic: DB4PR07MB0639:
x-microsoft-antispam-prvs: <DB4PR07MB06399775191E760252DAFE7DC2D70@DB4PR07MB0639.eurprd07.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(151999592597050)(37575265505322)(133145235818549)(26388249023172)(236129657087228)(48057245064654)(148574349560750)(21748063052155)(167848164394848)(247924648384137);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB4PR07MB0639; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB4PR07MB0639; 
x-forefront-prvs: 0358535363
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70DB4PR07MB348eurprd_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2017 13:13:46.8322 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB0639
X-OriginatorOrg: ericsson.com
X-Brightmail-Tracker: H4sIAAAAAAAAA02Se0iTURTAud9jfluNrnPmwZR0KJjga/iH1CiVLCECwQidf+TMz0fqlM1E i0gRS3yAxoJciUONmFDaMhJLpaHZzBcTMQSbtpGaCb5tvmjbt8D/fuec3733nMNlSJGe9mVy lcWsSqnIl/AEVFPKh0th9Zq01Mh1i2/M0IKOjqnTnYglEn9bJunE9nY7kUTIBbJMNj+3hFVF XEwX5IyWP6OLxg9RqXXhOVWO/u6gGsRnAEdDxccuBwsYER5E0PdI7w6GEVSv2VwWhetJKK+h uMJTAvr2DO5gHsHU0abL4mEZ6I27DmYYMQ4G/eMgJ5I4EzTL952GF74CY0MbLluMr0LlrI3m WArVfS89uLeCwD6zRDhZiOVgGP9KOlmE42Cz285zXsnH8TDQXORMI+wPlt0flJNJ7AOzthaC GwxD+6cJkmNvWLYe0c6OEW5yDDnwxtUl4ACon5Jzjj+YW2pdswOe58FE3wbNBXU82LGvUZx1 HQbmtARX+EnAYM8+jyuEws7rLreUB8vTw25pEkHbl2b3vUYaDHtW9wk/GH3fSDagUO2x3jku hKGJCqR1rcATTE02Suva5Dno7I3glEDQ1C54cBwCVS+aPY7ndcijA3mrWXVGQbZUGs6qcm+r 1YXKcCVbbECOD/S5ez+yBy0vxhkRZpDkpPDbw7RUEa0oUZcVGBEwpEQsbK51pISZirJ7rKrw lupuPqs2ojMMJfERxvVPpohwtqKYzWPZIlb1v0owfN9yJI38LhuoClFMF1tvZowEHs69C/BK 77dcjuLdCbaYk8bObg2KYjW9B69kWTULgVvtKyOm2KyoaHnCfIO4NestX3yzNaHR09SZLC39 NSvXeKWuXtMfLLUYeNuL609SH/jLVzu2deFt5zvJ02ZF5UpyWH/8BZvJ/OfUHhvgd2NmRUKp cxRRoaRKrfgHss7tGTwDAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/rHQahJe2RKYQlUfZ1NVenkOPDrE>
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: Tue, 04 Jul 2017 13:13:55 -0000

--_000_DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70DB4PR07MB348eurprd_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkNClRoYW5rcyBmb3IgdGhlIHJldmlldyAsIGNvbW1lbnRzIGlubGluZQ0KDQovSW5nZW1hcg0K
DQpGcm9tOiBCb2IgQnJpc2NvZSBbbWFpbHRvOmlldGZAYm9iYnJpc2NvZS5uZXRdDQpTZW50OiBk
ZW4gMjYganVuaSAyMDE3IDAxOjMxDQpUbzogSW5nZW1hciBKb2hhbnNzb24gUyA8aW5nZW1hci5z
LmpvaGFuc3NvbkBlcmljc3Nvbi5jb20+DQpDYzogUVVJQyBJRVRGIG1haWxpbmcgbGlzdCA8cXVp
Y0BpZXRmLm9yZz4NClN1YmplY3Q6IFF1aWNrIHJldmlldyBvZiBFQ04gZm9yIFFVSUM6IGRyYWZ0
LWpvaGFuc3Nvbi1xdWljLWVjbi0wMw0KDQpJbmdlbWFyLA0KDQpBcyBqdXN0IHByb21pc2VkIChv
biB0Y3BtIC0gcGFzdGVkIGJlbG93KSBoZXJlJ3MgYSBydXNoZWQgd3JpdGUtdXAgb2YgdGhlIGhp
Z2ggb3JkZXIgYml0cyBvZiBteSByZXZpZXcgb2YgeW91ciBkcmFmdC1qb2hhbnNzb24tcXVpYy1l
Y24tMDMuDQpUaGlzIGlzIHB1cmVseSBhIGxpc3Qgb2YgbXkgaW1tZWRpYXRlIHJlYWN0aW9ucyB0
byBzZW50ZW5jZXMgaW4gdGhlIGRyYWZ0LiBJIHdpbGwgbmVlZCBsb25nZXIgdG8gdGhpbmsgYWJv
dXQgdGhlIHByb3RvY29sIGFzIGEgd2hvbGUsIHdoZXRoZXIgdGhpcyBpcyB0aGUgYmVzdCBhcHBy
b2FjaCwgd2hldGhlciB0aGVyZSBtaWdodCBiZSBhIGJldHRlciBhcHByb2FjaCwgYW5kIHRoZSBv
cGVuIGlzc3VlcyB5b3UgbGlzdC4NCg0KMi4xDQpJdCB3b3VsZCBiZSB1c2VmdWwgdG8gZmlyc3Qg
ZGVzY3JpYmUgaG93IHRoZSBwcm90b2NvbCB3b3VsZCB3b3JrIGFjcm9zcyBhIG5ldHdvcmsgd2l0
aG91dCBCeXphbnRpbmUgbWlkZGxlYm94IGJlaGF2aW91ciBhbmQgd2l0aG91dCBob2JibGVkIG9w
ZXJhdGluZyBzeXN0ZW1zIHRoYXQgY2Fubm90IGFjY2VzcyB0aGUgRUNOIGZpZWxkIG9mIElQIHBh
Y2tldHMuIFRoZW4gc2VwYXJhdGVseSBkZXNjcmliZSBmYWxsLWJhY2sgaW4gdGhlIGZhY2Ugb2Yg
dmFyaW91cyBFQ04gZmFpbHVyZXMgc2VwYXJhdGVseS4NCltJSl0gT0sNCg0KDQpQcmVmZXJhYmx5
LCBsZXQncyB0cnkgdG8gdGhpbmsgb2YgYSB3YXkgdG8gc3VwcG9ydCBFQ04gb24gdGhlIHZlcnkg
Zmlyc3QgUVVJQyBjb25uZWN0aW9uIHNldHVwIGRhdGFncmFtcyAoc2VlIGNvbW1lbnRzIHBhc3Rl
ZCBiZWxvdyBhYm91dCBjb3B5aW5nIHRoZSB0ZWNobmlxdWVzIGluIGRyYWZ0LWJhZ251bG8tdGNw
bS1nZW5lcmFsaXplZC1lY24sIHdoaWNoIGRlcGVuZHMgb24gZHJhZnQtaWV0Zi10Y3BtLWFjY3Vy
YXRlLWVjbiBmb3IgdGhpcyBjYXBhYmlsaXR5KS4NCltJSl0gWWVzLCB0aGF0IGNhbiBiZSBhIGdv
b2QgaWRlYS4gVGhlIG9yaWdpbmFsIGludGVudGlvbiB3YXMgdG8gYmUgY29uc2VydmF0aXZlIGFu
ZCBhdm9pZCB0aGF0IEVDTiBuZWdvdGlhdGlvbiBpbiBRVUlDIOKAnGJsYWNrLWhvbGVz4oCdIHRo
ZSBjb25uZWN0aW9uIHNldHVwLiBCdXQgZ2l2ZW4gdGhlIGRpc2N1c3Npb24gYXJvdW5kIGRyYWZ0
LWJhZ251bG8tdGNwbS1nZW5lcmFsaXplZC1lY24gaXQgaXMgcXVpdGUgcG9zc2libGUgdGhhdCBv
bmUgY2FuIGRvIEVDTiBuZWdvdGlhdGlvbiBhbHJlYWR5IGF0IHNldHVwLg0KDQoNCkluIGEgc2lt
aWxhciB2ZWluLCB5b3UgbWlnaHQgd2FudCB0byBsb29rIGF0IChhbmQgZXZlbiBjaXRlKSBSRkM3
ODYwIGZvciByZXF1aXJlbWVudHMgYWJvdXQgRUNOIGZlZWRiYWNrIChpdCB3YXMgc3BlY2lmaWNh
bGx5IGFib3V0IFRDUCwgYnV0IHRoZXJlIGlzIHN0dWZmIHRoZXJlIHJlbGV2YW50IHRvIFFVSUMg
dG9vKS4NCltJSl0gSG1tLCBkbyB5b3UgbWVhbiBzb21lIG90aGVyIFJGQyA/DQoNCg0KMi4xLjEN
ClRoZSBhcmd1bWVudCBmb3Igc2VuZGluZyBhbiBFQ04gbmVnb3RpYXRpb24gZnJhbWUgaW4gYSBw
YWNrZXQgb24gaXRzIG93biBvbmx5IG9ubHkgbWFrZXMgc2Vuc2UgaWYgbG9zcyBpcyBtb3JlIGxp
a2VseSBmb3IgcGFja2V0cyB3aXRoIGEgbm9uLXplcm8gSVAtRUNOIGZpZWxkLiBUaGVyZWZvcmUs
IHRoaXMgc2hvdWxkIG5vdCBuZWNlc3NhcmlseSBiZSBhIGxvbmctdGVybSByZXF1aXJlbWVudCBv
biB0aGUgcHJvdG9jb2wuDQpbSUpdIEFncmVlLCB3cm90ZSB1cCBwcmVzZW50YXRpb24gc2xpZGVz
IGZvciB0aGUgUVVJQyBpbnRlcmltIChkaWQgbm90IGdldCBhaXIgdGltZSB0aGVuIHRvIHByZXNl
bnQgaXQpLiBPbmUgcXVlc3Rpb24gd2FzIGFjdHVhbGx5IGlmIG9uZSBzaG91bGQgbW92ZSBFQ04g
bmVnb3RpYXRpb24gdG8gdGhlIFFVSUMgY29ubmVjdGlvbiBzZXR1cC4NCg0KV2h5IGFsd2F5cyB1
c2UgQ0UgdG8gdGVzdCB0cmF2ZXJzYWwgb2YgdGhlIElQLUVDTiBmaWVsZD8gU2V0dGluZyB0aGUg
RUNUIGNvZGVwb2ludCB0aGF0IHdpbGwgYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBjb25uZWN0aW9u
IGFsc28gdGVzdHMgZm9yIHplcm9pbmcgdGhlIEVDTiBmaWVsZCwgd2l0aG91dCByaXNraW5nIGxv
c2luZyB2aXNpYmlsaXR5IG9mIGEgQ0UgbWFya2luZyBpbnRyb2R1Y2VkIGluIHRoZSBuZXR3b3Jr
Lg0KW0lKXSBBZG1pdCwgdGhhdCBJIHNlbGVjdGVkIENFIGZvciBsYWNrIG9mIGJldHRlciBrbm93
bGVkZ2UsIEVDVCgwKSBvciBFQ1QoMSkgKGRlcGVuZGluZyBvbiBFQ04gZXhwZXJpbWVudGFsIHVz
ZSkgbWF5IGJlIGJldHRlci4NCg0KDQpEZWZpbmUgImEgZmFpbGVkIGNoYWxsZW5nZS9yZXNwb25z
ZSBwaGFzZSIuIENhbid0IGl0IGZhaWwgZm9yIGEgaGFsZi1jb25uZWN0aW9uLCBub3QgbmVjZXNz
YXJpbHkgZm9yIHRoZSB3aG9sZSBjb25uZWN0aW9uPw0KW0lKXSBJbiBzb21lIGNhc2VzIGEgY2hh
bGxlbmdlIHJlcG9uc2UgY2FuIGZhaWwgZm9yIG9uZSBoYWxmLWNvbm5lY3Rpb24sIHN0aWxsIGl0
IHNob3VsZCBiZSBwb3NzaWJsZSB0byAgdXNlIEVDTiBpbiBvbmUgZGF0YSBkaXJlY3Rpb24uIFRo
aXMgbmVlZHMgc29tZSBleHRyYSBjb25zaWRlcmF0aW9uIGFuZCBjbGFyaWZpY2F0aW9uLg0KDQoN
CjIuMS4yDQpUaGUgbW9kZSBtZWNoYW5pc20gb2YgUkZDNjY3OSBuZWVkcyB0byBiZSBkZXNjcmli
ZWQsIG5vdCBqdXN0IHJlZmVyZW5jZWQuIE5vdGUgdGhhdCBkcmFmdC1pZXRmLXRzdndnLWVjbi1l
eHBlcmltZW50YXRpb24gaW50ZW5kcyB0byB1cGRhdGUgUkZDNjY3OSBpbiB0aGlzIHJlc3BlY3Qg
KHJlbW92aW5nIHRoZSB1c2Ugb2YgdGhlIEVDTiBub25jZSkuDQpbSUpdIFllcywgYWRkZWQgdGhp
cyB3aXRob3V0IHRoaW5raW5nLCBtb3JlIHdvcmsgaXMgbmVlZGVkLg0KDQoNCjIuMw0KTml0OiBZ
b3UgYXNzaWduIHRoZSBuYW1lcyBFMSBhbmQgRTIgZm9yIHRoZSBmaWVsZHMgZm9yIHRoZSBsZW5n
dGggb2YgZWFjaCBlbmNvZGluZyBvZiBFQ1QoMCkgYW5kIEVDVCgxKS4gSXQgd291bGQgYmUgbGVz
cyBpbGxvZ2ljYWwgaWYgdGhleSB3ZXJlIGNhbGxlZCBFMCBhbmQgRTEuDQpbSUpdIFllcywgeW91
IGFyZSByaWdodCA6LSksIHdpbGwgY29ycmVjdCB0aGlzLg0KDQpUaGUgZmVlZGJhY2sgZ2l2ZXMg
dGhlIG51bWJlciBvZiBtYXJrZWQgYnl0ZXMuIEl0IG5lZWRzIHRvIHNwZWNpZnkgd2hpY2ggaGVh
ZGVycyBhcmUgKG5vdCkgaW5jbHVkZWQgaW4gdGhlIGJ5dGUgY291bnQuIEFuZCBpZiBhIGRhdGFn
cmFtIHdpdGggemVybyBieXRlcyBpcyBFQ04tbWFya2VkLCBob3cgZG8geW91IHByb3Bvc2UgdG8g
ZmVlZCB0aGF0IGJhY2sgKGluIEFjY0VDTiBpdCBmZWVkcyBiYWNrIG1hcmtlZCBwYWNrZXRzIGFu
ZCBtYXJrZWQgYnl0ZXMpPw0KW0lKXSBZZXMsIHRoaXMgaXMgbm90IGNsZWFyLCB0aGUgc2FtZSBh
bWJpZ3VpdHkgaXMgYWxzbyBpbiBkcmFmdC1pZXRmLXF1aWMtcmVjb3ZlcnktMDQgYXMgc2VudF9i
eXRlcyBpcyBub3QgZXhwbGFpbmVkLg0KDQoNCg0KSXQgc2F5cyAxIG9jdGV0IG92ZXJoZWFkIGlm
IEVDTiBpcyBub3Qgc3VwcG9ydGVkLiBDYW4ndCB0aGUgZW5kcyBzZW5kIG5vIEVDTiBmZWVkYmFj
ayBhdCBhbGwgaWYgdGhleSBoYXZlIGRpc2FibGVkIEVDTiBkdXJpbmcgdGhlIGNoYWxsZW5nZSBy
ZXNwb25zZT8NCltJSl0gWWVzIGl0IGlzIGEgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGUgRUNO
IGJ5dGUgY291bnQgZXZlbiBpZiBFQ04gaXMgbm90IHN1cHBvcnRlZCBhcyB0aGUgZm9ybWF0IGlz
IHNlbGYtY29udGFpbmVkLCB0aGlzIHNob3VsZCBiZSBjbGFyaWZpZWQuDQoNCg0KMi40DQpJdCBz
dWdnZXN0cyB1c2luZyBhIGdpdmVuIHBhdHRlcm4gdG8gZGV0ZWN0IHRoZSBuZWVkIGZvciBmYWxs
LWJhY2suIFRoYXQncyBhIGdvb2QgaWRlYS4gSSB0aGluayBhbnkgcGFydGljdWxhciBjb25uZWN0
aW9uIHNob3VsZCBvbmx5IG5lZWQgdG8gaW5jbHVkZSB0d28gSVAtRUNOIGNvZGVwb2ludHMgaW4g
dGhlIHBhdHRlcm46IHRoZSByZWxldmFudCBFQ1QgY29kZXBvaW50IGFuZCBDRS4NCg0KWW91IG1p
Z2h0IGFsc28gd2FudCB0byBsb29rIGF0IHRoaXMgZXhwaXJlZCBJLUQ6IGRyYWZ0LW1vbmNhc3Rl
ci10Y3BtLXJjdi1jaGVhdCB3aGljaCB1c2VzIENFIHJhbmRvbWx5IHRvIHZlcmlmeSB0aGF0IHRo
ZSByZWNlaXZlciBmZWVkYmFjayBpcyBub3QgY2hlYXRpbmcuIFlvdSBtaWdodCBiZSBhYmxlIHRv
IGludGVncmF0ZSB0aGF0IGludG8gdGhlIHBhdGggdHJhdmVyc2FsIHRlc3RpbmcsIGFsdGhvdWdo
IEkgYWNjZXB0IHRoYXQgYSBkZXRlcm1pbmlzdGljIHBhdHRlcm4gYWxsb3dzIHRoZSByZW1vdGUg
cGVlciB0byBkZXRlY3QgcHJvYmxlbXMsIHdoZXJlYXMgYSByYW5kb20gb25lIGRvZXNuJ3QuDQoN
Ckl0IHN1Z2dlc3RzIGEgZ2VuZXJpYyBFQ04gZmFsbC1iYWNrIGRyYWZ0LiBJdCBpcyBoYXJkIHRv
IGRlc2NyaWJlIGZhbGwtYmFjayBpbmRlcGVuZGVudCBvZiBhbnkgc3BlY2lmaWMgcHJvdG9jb2wu
DQpbSUpdIFRoYW5rcywgdGhpcyBzZWN0aW9uIG5lZWRzIG1vcmUgd29yay4NCg0KDQoyLjYNCk5p
dDogcy9yZW1hcmsvcmUtbWFyay8gYmVjYXVzZSByZW1hcmsgbWVhbnMgc29tZXRoaW5nIGRpZmZl
cmVudC4NCltJSl0gT0sNCg0KDQoNCkEgY291cGxlIG9mIG1vbnRocyBhZ28sIHdlIHdlcmUgZGlz
Y3Vzc2luZyB1c2luZyB0aW1lc3RhbXBzIG9uIGZlZWRiYWNrLCBzbyB0aGF0IGZld2VyIEFDS3Mg
Y291bGQgYmUgc2VudCB3aXRob3V0IGxvc2luZyB0aW1pbmcgaW5mby4gQXJlIHlvdSBwbGFubmlu
ZyB0byBpbmNsdWRlIHRoYXQgaWRlYSBpbiB0aGlzIGRyYWZ0Pw0KW0lKXSBTdXBwb3J0IGZvciBk
ZXRhaWxlZCB0aW1zdGFtcHMgaXMgYWxyZWFkeSBhdmFpbGFibGUgaW4gdGhlIFFVSUMgcHJvdG9j
b2wgQUNLcw0KDQoNClRoYXQncyBpdCBmb3Igbm93Lg0KDQoNCg0KQm9iDQoNCg0KLS0tLS0tLS0g
Rm9yd2FyZGVkIE1lc3NhZ2UgLS0tLS0tLS0NClN1YmplY3Q6DQoNClJlOiBSZSA6IFdvcmtpbmcg
Z3JvdXAgYWNjZXB0YW5jZSBjYWxsIGRyYWZ0LWJhZ251bG8tdGNwbS1nZW5lcmFsaXplZC1lY24t
MDQNCg0KRGF0ZToNCg0KU3VuLCAyNSBKdW4gMjAxNyAyMzoxNzo0MiArMDEwMA0KDQpGcm9tOg0K
DQpCb2IgQnJpc2NvZSA8aWV0ZkBib2JicmlzY29lLm5ldD48bWFpbHRvOmlldGZAYm9iYnJpc2Nv
ZS5uZXQ+DQoNClRvOg0KDQpJbmdlbWFyIEpvaGFuc3NvbiBTIDxpbmdlbWFyLnMuam9oYW5zc29u
QGVyaWNzc29uLmNvbT48bWFpbHRvOmluZ2VtYXIucy5qb2hhbnNzb25AZXJpY3Nzb24uY29tPiwg
dGNwbUBpZXRmLm9yZzxtYWlsdG86dGNwbUBpZXRmLm9yZz4gPHRjcG1AaWV0Zi5vcmc+PG1haWx0
bzp0Y3BtQGlldGYub3JnPg0KDQpDQzoNCg0KdGNwbS1jaGFpcnNAaWV0Zi5vcmc8bWFpbHRvOnRj
cG0tY2hhaXJzQGlldGYub3JnPiA8dGNwbS1jaGFpcnNAaWV0Zi5vcmc+PG1haWx0bzp0Y3BtLWNo
YWlyc0BpZXRmLm9yZz4sIG1hcmNlbG8gYmFnbnVsbyBicmF1biA8bWFyY2Vsb0BpdC51YzNtLmVz
PjxtYWlsdG86bWFyY2Vsb0BpdC51YzNtLmVzPg0KDQoNCg0KSW5nZW1hciwNCg0KDQoNClRoZSBk
cmFmdCBhbHJlYWR5IHNheXMgdGhpcyB3b3JrIHNob3VsIGJlIHRyYW5zZmVyYWJsZSB0byBTQ1RQ
LiBJIG1pZ2h0DQoNCmFsc28gYWRkIGEgbm90ZSB0aGF0IGl0IGNvdWxkIGFsc28gYmVuZWZpdCBR
VUlDLCBhbHRobyBJJ2QgbGlrZSB0byBzZWUNCg0Kc29tZSBkZXRhaWwgYmVmb3JlIHByZXN1bWlu
ZyB0aGlzIHdpbGwgd29yay4NCg0KDQoNCkNvaW5jaWRlbnRhbGx5LCBJIGp1c3QgcmVhZCB5b3Vy
IEVDTiBpbiBRVUlDIGRyYWZ0IHllc3RlcmRheS4gQW5kLCBhbHNvDQoNCmNvaW5jaWRlbnRhbGx5
LCBvbmUgb2YgbXkgbWFpbiBjb21tZW50cyB3YXMgZ29pbmcgdG8gYmUgdGhhdCBpdCBzZWVtcw0K
DQpkaXNhcHBvaW50aW5nIHRoYXQgaXQgb25seSAic2VuZHMgYW4gRUNOIG5lZ290aWF0aW9uIGZy
YW1lIHdoZW4NCg0KY29ubmVjdGlvbiBzZXR1cCBpcyBjb21wbGV0ZWQuIiBSZXRyYW5zbWlzc2lv
biB0aW1lb3V0cyBoYXZlIHRvIGJlDQoNCmNvbnNlcnZhdGl2ZSBkdXJpbmcgY29ubmVjdGlvbiBz
ZXQtdXAgd2hhdGV2ZXIgdGhlIHByb3RvY29sLiBTbyB0aGUNCg0KYmFja2dyb3VuZCBsZXZlbCBv
ZiBjb25nZXN0aW9uIGxvc3Mgd2lsbCB0aGVuIGxlYWQgdG8gdW5uZWNlc3NhcmlseQ0KDQpwcm90
cmFjdGVkIGludGVybWl0dGVudCBkZWxheXMsIHdoaWNoIHdpbGwgcGFydGljdWxhcmx5IGhpdCBz
aG9ydCBRVUlDDQoNCmZsb3dzLiBTbyBJIHdhcyBnb2luZyB0byBzdWdnZXN0IHRoYXQgeW91IG1p
Z2h0IGJlIGFibGUgdG8gcHJvdGVjdCBRVUlDDQoNCmNvbm5lY3Rpb24gc2V0dXAgZnJvbSByYW5k
b20gY29uZ2VzdGlvbiBsb3NzIGJ5IGFuIGFwcHJvYWNoIHNpbWlsYXIgdG8NCg0KRUNOKysuDQoN
Cg0KDQoNCg0KSSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgSSB3aWxsIGhhdmUgdGltZSB0byB3cml0
ZSB1cCB0aGUgb3RoZXIgY29tbWVudHMNCg0KZnJvbSBteSByZXZpZXcgaW4gdGltZSBmb3IgeW91
IHRvIHVzZSBpdCBiZWZvcmUgdGhlIElFVEYgZGVhZGxpbmUgKEkgYW0NCg0KYWJvdXQgdG8gdGFr
ZSBhIHdlZWsgb2ZmLCByZXR1cm5pbmcgb24gMyBKdWwpLiBCdXQgSSB3aWxsIHRyeSB0byBkbyBh
DQoNCnF1aWNrIHN1bW1hcnkgZm9yIHRoZSBRVUlDIGxpc3Qgbm93Lg0KDQoNCg0KDQoNCg0KDQpC
b2INCg0KDQoNCk9uIDI1LzA2LzE3IDE5OjAzLCBJbmdlbWFyIEpvaGFuc3NvbiBTIHdyb3RlOg0K
DQo+IEhpDQoNCj4NCg0KPiBJIHN1cHBvcnQgdGhpcyB3b3JrLg0KDQo+IEluIGFkZGl0aW9uLCBw
YXJ0cyBvZiB0aGUgZmluZGluZ3MgYW5kIHJlY29tbWVuZGF0aW9ucyBpbiB0aGlzIFRDUCBnZW5l
cmFsaXplZCBFQ04gd29yayBtYXkgYWxzbyBiZSB1c2VmdWwgZm9yIHRoZSBzcGVjaWZpY2F0aW9u
IG9mIHRoZSBFQ04gc3VwcG9ydCBpbiBRVUlDLCBjdXJyZW50bHkgb3V0bGluZWQgaW4gKGh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtam9oYW5zc29uLXF1aWMtZWNuLTAzLnR4dCApLg0K
DQo+DQoNCj4gUmVnYXJkcw0KDQo+IEluZ2VtYXIgSm9oYW5zc29uDQoNCj4NCg0KDQoNCi0tDQoN
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18NCg0KQm9iIEJyaXNjb2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0
cDovL2JvYmJyaXNjb2UubmV0Lw0K

--_000_DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70DB4PR07MB348eurprd_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDb25zb2xhczsNCglwYW5vc2UtMToyIDEx
IDYgOSAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWws
IGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmOw0KCWNvbG9yOmJsYWNrO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVu
ZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJs
aW5lO30NCnByZQ0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkhU
TUwgUHJlZm9ybWF0dGVkIENoYXIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAw
MXB0Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3IjsNCglj
b2xvcjpibGFjazt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWww
DQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsN
CgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdp
bi1sZWZ0OjBjbTsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmOw0KCWNvbG9yOmJsYWNrO30NCnNwYW4uSFRNTFByZWZvcm1hdHRlZENoYXINCgl7
bXNvLXN0eWxlLW5hbWU6IkhUTUwgUHJlZm9ybWF0dGVkIENoYXIiOw0KCW1zby1zdHlsZS1wcmlv
cml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiSFRNTCBQcmVmb3JtYXR0ZWQiOw0KCWZvbnQtZmFt
aWx5OkNvbnNvbGFzOw0KCWNvbG9yOmJsYWNrO30NCnNwYW4uRW1haWxTdHlsZTIwDQoJe21zby1z
dHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0K
CWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjENCgl7bXNvLXN0eWxlLXR5cGU6
cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCglj
b2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9y
dC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6
NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3MC44NXB0IDcwLjg1cHQgNzAuODVwdCA3MC44NXB0
O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48
IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNw
aWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHht
bD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBk
YXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0K
PGJvZHkgYmdjb2xvcj0id2hpdGUiIGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVy
cGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+SGk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+VGhhbmtz
IGZvciB0aGUgcmV2aWV3ICwgY29tbWVudHMgaW5saW5lPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJjb2xvcjp3aW5kb3d0ZXh0Ij4vSW5nZW1hcjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpz
b2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYg
c3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5n
OjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxl
PSJjb2xvcjp3aW5kb3d0ZXh0Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImNvbG9yOndp
bmRvd3RleHQiPiBCb2IgQnJpc2NvZSBbbWFpbHRvOmlldGZAYm9iYnJpc2NvZS5uZXRdDQo8YnI+
DQo8Yj5TZW50OjwvYj4gZGVuIDI2IGp1bmkgMjAxNyAwMTozMTxicj4NCjxiPlRvOjwvYj4gSW5n
ZW1hciBKb2hhbnNzb24gUyAmbHQ7aW5nZW1hci5zLmpvaGFuc3NvbkBlcmljc3Nvbi5jb20mZ3Q7
PGJyPg0KPGI+Q2M6PC9iPiBRVUlDIElFVEYgbWFpbGluZyBsaXN0ICZsdDtxdWljQGlldGYub3Jn
Jmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBRdWljayByZXZpZXcgb2YgRUNOIGZvciBRVUlDOiBk
cmFmdC1qb2hhbnNzb24tcXVpYy1lY24tMDM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5JbmdlbWFyLDxicj4NCjxicj4NCkFzIGp1c3QgcHJvbWlzZWQgKG9u
IHRjcG0gLSBwYXN0ZWQgYmVsb3cpIGhlcmUncyBhIHJ1c2hlZCB3cml0ZS11cCBvZiB0aGUgaGln
aCBvcmRlciBiaXRzIG9mIG15IHJldmlldyBvZiB5b3VyIGRyYWZ0LWpvaGFuc3Nvbi1xdWljLWVj
bi0wMy48YnI+DQpUaGlzIGlzIHB1cmVseSBhIGxpc3Qgb2YgbXkgaW1tZWRpYXRlIHJlYWN0aW9u
cyB0byBzZW50ZW5jZXMgaW4gdGhlIGRyYWZ0LiBJIHdpbGwgbmVlZCBsb25nZXIgdG8gdGhpbmsg
YWJvdXQgdGhlIHByb3RvY29sIGFzIGEgd2hvbGUsIHdoZXRoZXIgdGhpcyBpcyB0aGUgYmVzdCBh
cHByb2FjaCwgd2hldGhlciB0aGVyZSBtaWdodCBiZSBhIGJldHRlciBhcHByb2FjaCwgYW5kIHRo
ZSBvcGVuIGlzc3VlcyB5b3UgbGlzdC48YnI+DQo8YnI+DQoyLjE8YnI+DQpJdCB3b3VsZCBiZSB1
c2VmdWwgdG8gZmlyc3QgZGVzY3JpYmUgaG93IHRoZSBwcm90b2NvbCB3b3VsZCB3b3JrIGFjcm9z
cyBhIG5ldHdvcmsgd2l0aG91dCBCeXphbnRpbmUgbWlkZGxlYm94IGJlaGF2aW91ciBhbmQgd2l0
aG91dCBob2JibGVkIG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgY2Fubm90IGFjY2VzcyB0aGUgRUNO
IGZpZWxkIG9mIElQIHBhY2tldHMuIFRoZW4gc2VwYXJhdGVseSBkZXNjcmliZSBmYWxsLWJhY2sg
aW4gdGhlIGZhY2Ugb2YgdmFyaW91cw0KIEVDTiBmYWlsdXJlcyBzZXBhcmF0ZWx5LjxzcGFuIHN0
eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+W0lKXSBPSzxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxicj4NCjxicj4NClByZWZlcmFi
bHksIGxldCdzIHRyeSB0byB0aGluayBvZiBhIHdheSB0byBzdXBwb3J0IEVDTiBvbiB0aGUgdmVy
eSBmaXJzdCBRVUlDIGNvbm5lY3Rpb24gc2V0dXAgZGF0YWdyYW1zIChzZWUgY29tbWVudHMgcGFz
dGVkIGJlbG93IGFib3V0IGNvcHlpbmcgdGhlIHRlY2huaXF1ZXMgaW4gZHJhZnQtYmFnbnVsby10
Y3BtLWdlbmVyYWxpemVkLWVjbiwgd2hpY2ggZGVwZW5kcyBvbiBkcmFmdC1pZXRmLXRjcG0tYWNj
dXJhdGUtZWNuIGZvciB0aGlzIGNhcGFiaWxpdHkpLjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0
ZXh0Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iY29sb3I6d2luZG93dGV4dCI+W0lKXSBZZXMsIHRoYXQgY2FuIGJlIGEgZ29vZCBpZGVh
LiBUaGUgb3JpZ2luYWwgaW50ZW50aW9uIHdhcyB0byBiZSBjb25zZXJ2YXRpdmUgYW5kIGF2b2lk
IHRoYXQgRUNOIG5lZ290aWF0aW9uIGluIFFVSUMg4oCcYmxhY2staG9sZXPigJ0gdGhlIGNvbm5l
Y3Rpb24gc2V0dXAuIEJ1dCBnaXZlbiB0aGUgZGlzY3Vzc2lvbiBhcm91bmQNCjwvc3Bhbj5kcmFm
dC1iYWdudWxvLXRjcG0tZ2VuZXJhbGl6ZWQtZWNuIGl0IGlzIHF1aXRlIHBvc3NpYmxlIHRoYXQg
b25lIGNhbiBkbyBFQ04gbmVnb3RpYXRpb24gYWxyZWFkeSBhdCBzZXR1cC48c3BhbiBzdHlsZT0i
Y29sb3I6d2luZG93dGV4dCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGJyPg0KPGJyPg0KSW4gYSBzaW1pbGFyIHZlaW4sIHlvdSBtaWdodCB3YW50IHRvIGxv
b2sgYXQgKGFuZCBldmVuIGNpdGUpIFJGQzc4NjAgZm9yIHJlcXVpcmVtZW50cyBhYm91dCBFQ04g
ZmVlZGJhY2sgKGl0IHdhcyBzcGVjaWZpY2FsbHkgYWJvdXQgVENQLCBidXQgdGhlcmUgaXMgc3R1
ZmYgdGhlcmUgcmVsZXZhbnQgdG8gUVVJQyB0b28pLjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0
ZXh0Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iY29sb3I6d2luZG93dGV4dCI+W0lKXSBIbW0sIGRvIHlvdSBtZWFuIHNvbWUgb3RoZXIg
UkZDID8NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxicj4N
Cjxicj4NCjIuMS4xPGJyPg0KVGhlIGFyZ3VtZW50IGZvciBzZW5kaW5nIGFuIEVDTiBuZWdvdGlh
dGlvbiBmcmFtZSBpbiBhIHBhY2tldCBvbiBpdHMgb3duIG9ubHkgb25seSBtYWtlcyBzZW5zZSBp
ZiBsb3NzIGlzIG1vcmUgbGlrZWx5IGZvciBwYWNrZXRzIHdpdGggYSBub24temVybyBJUC1FQ04g
ZmllbGQuIFRoZXJlZm9yZSwgdGhpcyBzaG91bGQgbm90IG5lY2Vzc2FyaWx5IGJlIGEgbG9uZy10
ZXJtIHJlcXVpcmVtZW50IG9uIHRoZSBwcm90b2NvbC48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93
dGV4dCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPltJSl0gQWdyZWUsIHdyb3RlIHVwIHByZXNlbnRhdGlv
biBzbGlkZXMgZm9yIHRoZSBRVUlDIGludGVyaW0gKGRpZCBub3QgZ2V0IGFpciB0aW1lIHRoZW4g
dG8gcHJlc2VudCBpdCkuIE9uZSBxdWVzdGlvbiB3YXMgYWN0dWFsbHkgaWYgb25lIHNob3VsZCBt
b3ZlIEVDTiBuZWdvdGlhdGlvbiB0byB0aGUgUVVJQyBjb25uZWN0aW9uIHNldHVwLjwvc3Bhbj48
YnI+DQo8YnI+DQpXaHkgYWx3YXlzIHVzZSBDRSB0byB0ZXN0IHRyYXZlcnNhbCBvZiB0aGUgSVAt
RUNOIGZpZWxkPyBTZXR0aW5nIHRoZSBFQ1QgY29kZXBvaW50IHRoYXQgd2lsbCBiZSB1c2VkIHRo
cm91Z2hvdXQgdGhlIGNvbm5lY3Rpb24gYWxzbyB0ZXN0cyBmb3IgemVyb2luZyB0aGUgRUNOIGZp
ZWxkLCB3aXRob3V0IHJpc2tpbmcgbG9zaW5nIHZpc2liaWxpdHkgb2YgYSBDRSBtYXJraW5nIGlu
dHJvZHVjZWQgaW4gdGhlIG5ldHdvcmsuPHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJj
b2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIEFkbWl0LCB0aGF0IEkgc2VsZWN0ZWQgQ0UgZm9yIGxhY2sg
b2YgYmV0dGVyIGtub3dsZWRnZSwgRUNUKDApIG9yIEVDVCgxKSAoZGVwZW5kaW5nIG9uIEVDTiBl
eHBlcmltZW50YWwgdXNlKSBtYXkgYmUgYmV0dGVyLg0KPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KRGVmaW5lICZxdW90O2EgZmFpbGVkIGNo
YWxsZW5nZS9yZXNwb25zZSBwaGFzZSZxdW90Oy4gQ2FuJ3QgaXQgZmFpbCBmb3IgYSBoYWxmLWNv
bm5lY3Rpb24sIG5vdCBuZWNlc3NhcmlseSBmb3IgdGhlIHdob2xlIGNvbm5lY3Rpb24/PHNwYW4g
c3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIEluIHNvbWUg
Y2FzZXMgYSBjaGFsbGVuZ2UgcmVwb25zZSBjYW4gZmFpbCBmb3Igb25lIGhhbGYtY29ubmVjdGlv
biwgc3RpbGwgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvICZuYnNwO3VzZSBFQ04gaW4gb25lIGRh
dGEgZGlyZWN0aW9uLiBUaGlzIG5lZWRzIHNvbWUgZXh0cmEgY29uc2lkZXJhdGlvbiBhbmQgY2xh
cmlmaWNhdGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
YnI+DQo8YnI+DQoyLjEuMjxicj4NClRoZSBtb2RlIG1lY2hhbmlzbSBvZiBSRkM2Njc5IG5lZWRz
IHRvIGJlIGRlc2NyaWJlZCwgbm90IGp1c3QgcmVmZXJlbmNlZC4gTm90ZSB0aGF0IGRyYWZ0LWll
dGYtdHN2d2ctZWNuLWV4cGVyaW1lbnRhdGlvbiBpbnRlbmRzIHRvIHVwZGF0ZSBSRkM2Njc5IGlu
IHRoaXMgcmVzcGVjdCAocmVtb3ZpbmcgdGhlIHVzZSBvZiB0aGUgRUNOIG5vbmNlKS48c3BhbiBz
dHlsZT0iY29sb3I6d2luZG93dGV4dCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPltJSl0gWWVzLCBhZGRl
ZCB0aGlzIHdpdGhvdXQgdGhpbmtpbmcsIG1vcmUgd29yayBpcyBuZWVkZWQuPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KMi4zPGJyPg0KTml0
OiBZb3UgYXNzaWduIHRoZSBuYW1lcyBFMSBhbmQgRTIgZm9yIHRoZSBmaWVsZHMgZm9yIHRoZSBs
ZW5ndGggb2YgZWFjaCBlbmNvZGluZyBvZiBFQ1QoMCkgYW5kIEVDVCgxKS4gSXQgd291bGQgYmUg
bGVzcyBpbGxvZ2ljYWwgaWYgdGhleSB3ZXJlIGNhbGxlZCBFMCBhbmQgRTEuPHNwYW4gc3R5bGU9
ImNvbG9yOndpbmRvd3RleHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIFllcywgeW91IGFyZSBy
aWdodCA6LSksIHdpbGwgY29ycmVjdCB0aGlzLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxicj4NClRoZSBmZWVkYmFjayBnaXZlcyB0aGUgbnVtYmVyIG9mIG1h
cmtlZCBieXRlcy4gSXQgbmVlZHMgdG8gc3BlY2lmeSB3aGljaCBoZWFkZXJzIGFyZSAobm90KSBp
bmNsdWRlZCBpbiB0aGUgYnl0ZSBjb3VudC4gQW5kIGlmIGEgZGF0YWdyYW0gd2l0aCB6ZXJvIGJ5
dGVzIGlzIEVDTi1tYXJrZWQsIGhvdyBkbyB5b3UgcHJvcG9zZSB0byBmZWVkIHRoYXQgYmFjayAo
aW4gQWNjRUNOIGl0IGZlZWRzIGJhY2sgbWFya2VkIHBhY2tldHMgYW5kIG1hcmtlZCBieXRlcyk/
PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIFll
cywgdGhpcyBpcyBub3QgY2xlYXIsIHRoZSBzYW1lIGFtYmlndWl0eSBpcyBhbHNvIGluPC9zcGFu
Pg0KPHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPmRyYWZ0LWlldGYtcXVpYy1yZWNvdmVy
eS0wNCBhcyBzZW50X2J5dGVzIGlzIG5vdCBleHBsYWluZWQuPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxicj4NCjxi
cj4NCkl0IHNheXMgMSBvY3RldCBvdmVyaGVhZCBpZiBFQ04gaXMgbm90IHN1cHBvcnRlZC4gQ2Fu
J3QgdGhlIGVuZHMgc2VuZCBubyBFQ04gZmVlZGJhY2sgYXQgYWxsIGlmIHRoZXkgaGF2ZSBkaXNh
YmxlZCBFQ04gZHVyaW5nIHRoZSBjaGFsbGVuZ2UgcmVzcG9uc2U/PHNwYW4gc3R5bGU9ImNvbG9y
OndpbmRvd3RleHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIFllcyBpdCBpcyBhIHBvc3NpYmls
aXR5IHRvIGluY2x1ZGUgdGhlIEVDTiBieXRlIGNvdW50IGV2ZW4gaWYgRUNOIGlzIG5vdCBzdXBw
b3J0ZWQgYXMgdGhlIGZvcm1hdCBpcyBzZWxmLWNvbnRhaW5lZCwgdGhpcyBzaG91bGQgYmUgY2xh
cmlmaWVkLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxicj4N
Cjxicj4NCjIuNCA8YnI+DQpJdCBzdWdnZXN0cyB1c2luZyBhIGdpdmVuIHBhdHRlcm4gdG8gZGV0
ZWN0IHRoZSBuZWVkIGZvciBmYWxsLWJhY2suIFRoYXQncyBhIGdvb2QgaWRlYS4gSSB0aGluayBh
bnkgcGFydGljdWxhciBjb25uZWN0aW9uIHNob3VsZCBvbmx5IG5lZWQgdG8gaW5jbHVkZSB0d28g
SVAtRUNOIGNvZGVwb2ludHMgaW4gdGhlIHBhdHRlcm46IHRoZSByZWxldmFudCBFQ1QgY29kZXBv
aW50IGFuZCBDRS48YnI+DQo8YnI+DQpZb3UgbWlnaHQgYWxzbyB3YW50IHRvIGxvb2sgYXQgdGhp
cyBleHBpcmVkIEktRDogZHJhZnQtbW9uY2FzdGVyLXRjcG0tcmN2LWNoZWF0IHdoaWNoIHVzZXMg
Q0UgcmFuZG9tbHkgdG8gdmVyaWZ5IHRoYXQgdGhlIHJlY2VpdmVyIGZlZWRiYWNrIGlzIG5vdCBj
aGVhdGluZy4gWW91IG1pZ2h0IGJlIGFibGUgdG8gaW50ZWdyYXRlIHRoYXQgaW50byB0aGUgcGF0
aCB0cmF2ZXJzYWwgdGVzdGluZywgYWx0aG91Z2ggSSBhY2NlcHQgdGhhdCBhIGRldGVybWluaXN0
aWMNCiBwYXR0ZXJuIGFsbG93cyB0aGUgcmVtb3RlIHBlZXIgdG8gZGV0ZWN0IHByb2JsZW1zLCB3
aGVyZWFzIGEgcmFuZG9tIG9uZSBkb2Vzbid0Ljxicj4NCjxicj4NCkl0IHN1Z2dlc3RzIGEgZ2Vu
ZXJpYyBFQ04gZmFsbC1iYWNrIGRyYWZ0LiBJdCBpcyBoYXJkIHRvIGRlc2NyaWJlIGZhbGwtYmFj
ayBpbmRlcGVuZGVudCBvZiBhbnkgc3BlY2lmaWMgcHJvdG9jb2wuPHNwYW4gc3R5bGU9ImNvbG9y
OndpbmRvd3RleHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIFRoYW5rcywgdGhpcyBzZWN0aW9u
IG5lZWRzIG1vcmUgd29yay48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48YnI+DQo8YnI+DQoyLjY8YnI+DQpOaXQ6IHMvcmVtYXJrL3JlLW1hcmsvIGJlY2F1c2Ug
cmVtYXJrIG1lYW5zIHNvbWV0aGluZyBkaWZmZXJlbnQuPHNwYW4gc3R5bGU9ImNvbG9yOndpbmRv
d3RleHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIE9LPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KPGJyPg0KQSBjb3VwbGUgb2YgbW9udGhz
IGFnbywgd2Ugd2VyZSBkaXNjdXNzaW5nIHVzaW5nIHRpbWVzdGFtcHMgb24gZmVlZGJhY2ssIHNv
IHRoYXQgZmV3ZXIgQUNLcyBjb3VsZCBiZSBzZW50IHdpdGhvdXQgbG9zaW5nIHRpbWluZyBpbmZv
LiBBcmUgeW91IHBsYW5uaW5nIHRvIGluY2x1ZGUgdGhhdCBpZGVhIGluIHRoaXMgZHJhZnQ/PHNw
YW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5bSUpdIFN1cHBv
cnQgZm9yIGRldGFpbGVkIHRpbXN0YW1wcyBpcyBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0aGUgUVVJ
QyBwcm90b2NvbCBBQ0tzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGJyPg0KPGJyPg0KVGhhdCdzIGl0IGZvciBub3cuIDxicj4NCjxicj4NCjxicj4NCjxicj4N
CkJvYjxicj4NCjxicj4NCjxicj4NCi0tLS0tLS0tIEZvcndhcmRlZCBNZXNzYWdlIC0tLS0tLS0t
IDxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBj
ZWxscGFkZGluZz0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgbm93cmFwPSIiIHZhbGlnbj0idG9w
IiBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
YWxpZ249InJpZ2h0IiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGI+U3ViamVjdDogPG86cD48
L286cD48L2I+PC9wPg0KPC90ZD4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UmU6IFJlIDogV29ya2luZyBncm91cCBhY2NlcHRhbmNl
IGNhbGwgZHJhZnQtYmFnbnVsby10Y3BtLWdlbmVyYWxpemVkLWVjbi0wNDxvOnA+PC9vOnA+PC9w
Pg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgbm93cmFwPSIiIHZhbGlnbj0idG9wIiBzdHlsZT0i
cGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249InJp
Z2h0IiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGI+RGF0ZTogPG86cD48L286cD48L2I+PC9w
Pg0KPC90ZD4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+U3VuLCAyNSBKdW4gMjAxNyAyMzoxNzo0MiAmIzQzOzAxMDA8bzpwPjwvbzpw
PjwvcD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIG5vd3JhcD0iIiB2YWxpZ249InRvcCIgc3R5
bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWdu
PSJyaWdodCIgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxiPkZyb206IDxvOnA+PC9vOnA+PC9i
PjwvcD4NCjwvdGQ+DQo8dGQgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkJvYiBCcmlzY29lIDxhIGhyZWY9Im1haWx0bzppZXRmQGJvYmJyaXNj
b2UubmV0Ij4mbHQ7aWV0ZkBib2JicmlzY29lLm5ldCZndDs8L2E+PG86cD48L286cD48L3A+DQo8
L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCBub3dyYXA9IiIgdmFsaWduPSJ0b3AiIHN0eWxlPSJwYWRk
aW5nOjBjbSAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0icmlnaHQi
IHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48Yj5UbzogPG86cD48L286cD48L2I+PC9wPg0KPC90
ZD4NCjx0ZCBzdHlsZT0icGFkZGluZzowY20gMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+SW5nZW1hciBKb2hhbnNzb24gUyA8YSBocmVmPSJtYWlsdG86aW5nZW1hci5zLmpvaGFu
c3NvbkBlcmljc3Nvbi5jb20iPg0KJmx0O2luZ2VtYXIucy5qb2hhbnNzb25AZXJpY3Nzb24uY29t
Jmd0OzwvYT4sIDxhIGhyZWY9Im1haWx0bzp0Y3BtQGlldGYub3JnIj50Y3BtQGlldGYub3JnPC9h
Pg0KPGEgaHJlZj0ibWFpbHRvOnRjcG1AaWV0Zi5vcmciPiZsdDt0Y3BtQGlldGYub3JnJmd0Ozwv
YT48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIG5vd3JhcD0iIiB2YWxp
Z249InRvcCIgc3R5bGU9InBhZGRpbmc6MGNtIDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIGFsaWduPSJyaWdodCIgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxiPkNDOiA8bzpw
PjwvbzpwPjwvYj48L3A+DQo8L3RkPg0KPHRkIHN0eWxlPSJwYWRkaW5nOjBjbSAwY20gMGNtIDBj
bSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YSBocmVmPSJtYWlsdG86dGNwbS1jaGFpcnNAaWV0
Zi5vcmciPnRjcG0tY2hhaXJzQGlldGYub3JnPC9hPg0KPGEgaHJlZj0ibWFpbHRvOnRjcG0tY2hh
aXJzQGlldGYub3JnIj4mbHQ7dGNwbS1jaGFpcnNAaWV0Zi5vcmcmZ3Q7PC9hPiwgbWFyY2VsbyBi
YWdudWxvIGJyYXVuDQo8YSBocmVmPSJtYWlsdG86bWFyY2Vsb0BpdC51YzNtLmVzIj4mbHQ7bWFy
Y2Vsb0BpdC51YzNtLmVzJmd0OzwvYT48bzpwPjwvbzpwPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90
Ym9keT4NCjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRv
bToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHByZT5JbmdlbWFyLDxvOnA+PC9vOnA+
PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPlRoZSBkcmFmdCBhbHJl
YWR5IHNheXMgdGhpcyB3b3JrIHNob3VsIGJlIHRyYW5zZmVyYWJsZSB0byBTQ1RQLiBJIG1pZ2h0
IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPmFsc28gYWRkIGEgbm90ZSB0aGF0IGl0IGNvdWxkIGFs
c28gYmVuZWZpdCBRVUlDLCBhbHRobyBJJ2QgbGlrZSB0byBzZWUgPG86cD48L286cD48L3ByZT4N
CjxwcmU+c29tZSBkZXRhaWwgYmVmb3JlIHByZXN1bWluZyB0aGlzIHdpbGwgd29yay48bzpwPjwv
bzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT5Db2luY2lkZW50
YWxseSwgSSBqdXN0IHJlYWQgeW91ciBFQ04gaW4gUVVJQyBkcmFmdCB5ZXN0ZXJkYXkuIEFuZCwg
YWxzbyA8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5jb2luY2lkZW50YWxseSwgb25lIG9mIG15IG1h
aW4gY29tbWVudHMgd2FzIGdvaW5nIHRvIGJlIHRoYXQgaXQgc2VlbXMgPG86cD48L286cD48L3By
ZT4NCjxwcmU+ZGlzYXBwb2ludGluZyB0aGF0IGl0IG9ubHkgJnF1b3Q7c2VuZHMgYW4gRUNOIG5l
Z290aWF0aW9uIGZyYW1lIHdoZW4gPG86cD48L286cD48L3ByZT4NCjxwcmU+Y29ubmVjdGlvbiBz
ZXR1cCBpcyBjb21wbGV0ZWQuJnF1b3Q7IFJldHJhbnNtaXNzaW9uIHRpbWVvdXRzIGhhdmUgdG8g
YmUgPG86cD48L286cD48L3ByZT4NCjxwcmU+Y29uc2VydmF0aXZlIGR1cmluZyBjb25uZWN0aW9u
IHNldC11cCB3aGF0ZXZlciB0aGUgcHJvdG9jb2wuIFNvIHRoZSA8bzpwPjwvbzpwPjwvcHJlPg0K
PHByZT5iYWNrZ3JvdW5kIGxldmVsIG9mIGNvbmdlc3Rpb24gbG9zcyB3aWxsIHRoZW4gbGVhZCB0
byB1bm5lY2Vzc2FyaWx5IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPnByb3RyYWN0ZWQgaW50ZXJt
aXR0ZW50IGRlbGF5cywgd2hpY2ggd2lsbCBwYXJ0aWN1bGFybHkgaGl0IHNob3J0IFFVSUMgPG86
cD48L286cD48L3ByZT4NCjxwcmU+Zmxvd3MuIFNvIEkgd2FzIGdvaW5nIHRvIHN1Z2dlc3QgdGhh
dCB5b3UgbWlnaHQgYmUgYWJsZSB0byBwcm90ZWN0IFFVSUMgPG86cD48L286cD48L3ByZT4NCjxw
cmU+Y29ubmVjdGlvbiBzZXR1cCBmcm9tIHJhbmRvbSBjb25nZXN0aW9uIGxvc3MgYnkgYW4gYXBw
cm9hY2ggc2ltaWxhciB0byA8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5FQ04mIzQzOyYjNDM7Ljxv
OnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+
Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPkkgY2Fubm90IGd1YXJhbnRlZSB0aGF0IEkgd2lsbCBo
YXZlIHRpbWUgdG8gd3JpdGUgdXAgdGhlIG90aGVyIGNvbW1lbnRzIDxvOnA+PC9vOnA+PC9wcmU+
DQo8cHJlPmZyb20gbXkgcmV2aWV3IGluIHRpbWUgZm9yIHlvdSB0byB1c2UgaXQgYmVmb3JlIHRo
ZSBJRVRGIGRlYWRsaW5lIChJIGFtIDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPmFib3V0IHRvIHRh
a2UgYSB3ZWVrIG9mZiwgcmV0dXJuaW5nIG9uIDMgSnVsKS4gQnV0IEkgd2lsbCB0cnkgdG8gZG8g
YSA8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5xdWljayBzdW1tYXJ5IGZvciB0aGUgUVVJQyBsaXN0
IG5vdy48bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHBy
ZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0K
PHByZT5Cb2I8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0K
PHByZT5PbiAyNS8wNi8xNyAxOTowMywgSW5nZW1hciBKb2hhbnNzb24gUyB3cm90ZTo8bzpwPjwv
bzpwPjwvcHJlPg0KPHByZT4mZ3Q7IEhpPG86cD48L286cD48L3ByZT4NCjxwcmU+Jmd0OzxvOnA+
Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPiZndDsgSSBzdXBwb3J0IHRoaXMgd29yay48bzpwPjwv
bzpwPjwvcHJlPg0KPHByZT4mZ3Q7IEluIGFkZGl0aW9uLCBwYXJ0cyBvZiB0aGUgZmluZGluZ3Mg
YW5kIHJlY29tbWVuZGF0aW9ucyBpbiB0aGlzIFRDUCBnZW5lcmFsaXplZCBFQ04gd29yayBtYXkg
YWxzbyBiZSB1c2VmdWwgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBFQ04gc3VwcG9ydCBp
biBRVUlDLCBjdXJyZW50bHkgb3V0bGluZWQgaW4gKDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaWQvZHJhZnQtam9oYW5zc29uLXF1aWMtZWNuLTAzLnR4dCI+aHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9pZC9kcmFmdC1qb2hhbnNzb24tcXVpYy1lY24tMDMudHh0PC9hPiApLjxvOnA+PC9v
OnA+PC9wcmU+DQo8cHJlPiZndDs8bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT4mZ3Q7IFJl
Z2FyZHM8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mZ3Q7IEluZ2VtYXIgSm9oYW5zc29uPG86cD48
L286cD48L3ByZT4NCjxwcmU+Jmd0OzxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48YnI+DQo8YnI+DQo8bzpwPjwvbzpwPjwvcD4NCjxwcmU+LS0gPG86cD48L286
cD48L3ByZT4NCjxwcmU+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPkJvYiBCcmlzY29l
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOzxhIGhyZWY9Imh0dHA6Ly9ib2JicmlzY29lLm5ldC8iPmh0dHA6Ly9ib2Jicmlz
Y29lLm5ldC88L2E+PG86cD48L286cD48L3ByZT4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8
L2h0bWw+DQo=

--_000_DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70DB4PR07MB348eurprd_--


From nobody Tue Jul  4 08:57:00 2017
Return-Path: <ietf@bobbriscoe.net>
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 B872E13167C for <quic@ietfa.amsl.com>; Tue,  4 Jul 2017 08:56:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.99
X-Spam-Level: 
X-Spam-Status: No, score=-1.99 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 rrQEPopzpw-o for <quic@ietfa.amsl.com>; Tue,  4 Jul 2017 08:56:57 -0700 (PDT)
Received: from server.dnsblock1.com (server.dnsblock1.com [85.13.236.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4545F12EC30 for <quic@ietf.org>; Tue,  4 Jul 2017 08:56:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Ndcemajoi+mm22jC4QX6Iff91JjKs1wv9RbJL57eiTY=; b=KIodPfwUh3e+S7rymi2qFdacj /VuAnWF0fnzwrXYGAnNOu3qp8nRLCa8U79XH9DGS4uEWF+30xVPIpXPT2pfk78QmRNa0+kfL2sE2H n3bf5PdYKVZxqH6A/jdJA8mvGr/V+9TNhBjoEKQTo3cdXf4HCLcn6zRPr9vXVtxKry46iET2j9e+J FTy/mgdKqZDCRTL1Zz+5ouiQiGzVuujrjDAy9dcDPkjHEx7QK85oS3N1fYMIYCAhvaHoHR3cUZ4Zs XblK2Jk40y26kGzHCo58zFNWAeFtIuPFBwKSX+UHlvzwAVHZd3+vDTAzKyHR6i7yiLXBzzMwip+Za hmwdvAz9g==;
Received: from [31.185.128.124] (port=48882 helo=[192.168.0.13]) by server.dnsblock1.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89) (envelope-from <ietf@bobbriscoe.net>) id 1dSQC7-00030l-Pe; Tue, 04 Jul 2017 16:56:55 +0100
Subject: Re: Quick review of ECN for QUIC: draft-johansson-quic-ecn-03
To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
Cc: QUIC IETF mailing list <quic@ietf.org>
References: <0062c1c4-254c-651f-c091-7f85fc1a28fa@bobbriscoe.net> <DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70@DB4PR07MB348.eurprd07.prod.outlook.com>
From: Bob Briscoe <ietf@bobbriscoe.net>
Message-ID: <077640e4-8313-d8fb-ae42-df96f7fdd155@bobbriscoe.net>
Date: Tue, 4 Jul 2017 16:56:55 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
In-Reply-To: <DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70@DB4PR07MB348.eurprd07.prod.outlook.com>
Content-Type: multipart/alternative; boundary="------------51533A40BA55D34EA44EB33F"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.dnsblock1.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: server.dnsblock1.com: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: server.dnsblock1.com: in@bobbriscoe.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/vEt2Bc4VKPnovDlT7iGLd-7KldA>
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: Tue, 04 Jul 2017 15:56:59 -0000

This is a multi-part message in MIME format.
--------------51533A40BA55D34EA44EB33F
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Ingemar,

On 04/07/17 14:13, Ingemar Johansson S wrote:
>
> In a similar vein, you might want to look at (and even cite) RFC7860 
> for requirements about ECN feedback (it was specifically about TCP, 
> but there is stuff there relevant to QUIC too).
>
> [IJ] Hmm, do you mean some other RFC ?
>

[BB] Sry RFC7560.
I blame either blurred eye-sight or blurred memory!?

Thx for responses on all the other points.


Bob

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/


--------------51533A40BA55D34EA44EB33F
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Ingemar,<br>
    <br>
    <div class="moz-cite-prefix">On 04/07/17 14:13, Ingemar Johansson S
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:DB4PR07MB348EFBE3B5A9F023AAAD12BC2D70@DB4PR07MB348.eurprd07.prod.outlook.com">
      <p class="MsoNormal">In a similar vein, you might want to look at
        (and even cite) RFC7860 for requirements about ECN feedback (it
        was specifically about TCP, but there is stuff there relevant to
        QUIC too).<span style="color:windowtext"><o:p></o:p></span></p>
      <p class="MsoNormal"><span style="color:windowtext">[IJ] Hmm, do
          you mean some other RFC ?
        </span></p>
    </blockquote>
    <br>
    [BB] Sry RFC7560. <br>
    I blame either blurred eye-sight or blurred memory!?<br>
    <br>
    Thx for responses on all the other points.<br>
    <br>
    <br>
    Bob<br>
    <pre class="moz-signature" cols="72">-- 
________________________________________________________________
Bob Briscoe                               <a class="moz-txt-link-freetext" href="http://bobbriscoe.net/">http://bobbriscoe.net/</a></pre>
  </body>
</html>

--------------51533A40BA55D34EA44EB33F--


From nobody Tue Jul  4 22:41:33 2017
Return-Path: <kazuhooku@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 1E97D12773A for <quic@ietfa.amsl.com>; Tue,  4 Jul 2017 22:41:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 80SZ2d28K-3P for <quic@ietfa.amsl.com>; Tue,  4 Jul 2017 22:41:28 -0700 (PDT)
Received: from mail-pg0-x22d.google.com (mail-pg0-x22d.google.com [IPv6:2607:f8b0:400e:c05::22d]) (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 5311C126C23 for <quic@ietf.org>; Tue,  4 Jul 2017 22:41:28 -0700 (PDT)
Received: by mail-pg0-x22d.google.com with SMTP id u62so118738445pgb.3 for <quic@ietf.org>; Tue, 04 Jul 2017 22:41:28 -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:content-transfer-encoding; bh=FGDHt2JnfcpM1rucQzAi+BVdYBc9/hVsqnEwIbNHOa4=; b=nojt6MHY2LgmGH7dxcayS5YqJQb42BSrwyq5IMI2fQ5oSGeS7ziILti66e5OtU4uuW kNmNJNieECXiQ+Sb6O63dgAdGccLd6Y/9GDDcs43fhLSavxEBZMD/YIo80j+yF3wgg2J bAjsHkWOr4kC2Pr/INTPh3H7V/Wfah89FUPS0wMHSrf55YytliAU9RP3INRroJtG8LPN j6DwR5rfWM8oycsDjs1gSXYCzGrTQypJ+KWpLgTTgeI0L0dqiH96WymPl8sc6a5WpmTK zwa8UritVPyd0AXd1EUbLHh2gJcokuODejzHzUm77DctfN33gnzpdb+xFQlvCOHYxql9 spZw==
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:content-transfer-encoding; bh=FGDHt2JnfcpM1rucQzAi+BVdYBc9/hVsqnEwIbNHOa4=; b=bxRaCBbTFj5Vx7rQyi+lV5SCztRXR1MoRrRNwgiqD1cH/oksKxsLSUs3uLIqA+Fjge +hWtrq9Bwbt0EMsJM4qCR8PjGJxuNfpxtOlYX3lTHWpF9h/hTD1K3OejpSnS+UOvBcNe rc7wHcRBBzVHJJ88l31jJyi+gkR/UZFPwTAcLyJLooEe2bTbY4Syon8ISqB9dK/e4tp2 J7am4SbrztfijNeJVI+8h1V+igXyaRNnh/M1VqdzmEcN+WqDKl7ilYIHYUImzYbpUEka bn1kfWTEtEJgNklxJYXGouad6hzjWczpCIqZTSF9oQQ4Ju9Lj+wQHkUX359IW3a1kMes 0eOA==
X-Gm-Message-State: AIVw113JCyzAiajM5OS0QZlxAvQeMLDp/VH2o/QZsZu5yoQ9Jnx8fOQi 6Nm/M5VMuhDWaxRUR+nKLGSTfx7/XA==
X-Received: by 10.84.211.103 with SMTP id b94mr20767883pli.230.1499233287793;  Tue, 04 Jul 2017 22:41:27 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Tue, 4 Jul 2017 22:41:26 -0700 (PDT)
In-Reply-To: <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Wed, 5 Jul 2017 14:41:26 +0900
Message-ID: <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Ian Swett <ianswett@google.com>
Cc: "Lubashev, Igor" <ilubashe@akamai.com>, Mike Bishop <Michael.Bishop@microsoft.com>,  Dmitri Tikhonov <dtikhonov@litespeedtech.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Jo Kulik <jokulik@google.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/TQZnV0otNqfGt2EBGp_DaXqgbEk>
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: Wed, 05 Jul 2017 05:41:32 -0000

2017-06-29 10:23 GMT+09:00 Ian Swett <ianswett@google.com>:
> I updated my PR(#656) today, sorry for the delay.  I attempted to address
> the issues identified with text.  Some may prefer more tweaks to the stat=
e
> diagram, which are also possible, so I'm open to suggestions.

After all, I think that the approach proposed here is the most
well-balanced one.

As much as I think that having first-class support for unidirectional
streams is preferable, I also think that we should keep the overall
architecture (i.e. sum of the complexity in the transport layer and
the application layer) as simple as possible.

IMO having support for bidirectional streams (along with support for
unidirectional streams) aligns with such intention.

Most of the application protocols that will be deployed over the QUIC
transport will be in request-response style, at least to some extent.
Hence it is preferable for the transport layer to provide a framework
that fits such style.

Bidirectional streams provide the necessary features. FIN provides a
way to indicate the end of the message. RST provides a way to cancel
the exchange of the message in both directions.

IMO the biggest issue with the unidirectional-only approach is that
you cannot have the two features together. If a client needs a way to
reset the server's response before observing the first frame, it
cannot use FIN as an indicator of the end of the request.

It is true that the issue can be evaded by doing one's own framing in
the application layer. #643 does that by introducing a CANCEL_REQUEST
frame.

But I do not think that we should require every application protocol
built above QUIC to do its own framing. In addition to that, need to
keep two uni-directional streams open would consume more resources
than being able to close one direction of a bi-directional stream at
an earlier moment.

> In the meantime, I've been considering other alternatives, including
> variations on Mike's direction and a variation of the "Do Nothing" option
> which involved the application signaling to the transport that streams of=
 a
> certain sort(ie: server to client for server push) were unidirectional, a=
s
> GQUIC does today.  Overall, I think the approach I've outlined does a goo=
d
> job of iterating on existing deployment experience and adding explicit
> signaling for unidirectional streams instead of implicit signaling at the
> application layer.  There are pros and cons to both explicit and implicit
> signaling, but I think explicit signaling is more complete and less prone=
 to
> application error.
>
> Thanks, Ian
>
>
> On Wed, Jun 28, 2017 at 8:14 PM, Lubashev, Igor <ilubashe@akamai.com> wro=
te:
>>
>> > unless what the transport provides is a perfect fit for application
>> > semantics, you end up building those semantics into the application an=
yway.
>>
>> I agree with this. We should avoid adding complexity into transport for
>> rare use cases, since it goes against KISS principle.
>>
>> On the other hand, adding support for a by far the most common use case
>> makes a lot of sense.  This helps apps avoid screwing up implementing th=
at
>> common case and lets us optimize that common case in the lower layer. Bi=
Di
>> streams are such common cases. Uni streams are likely to be the
>> second-most-common cases (hence you offered this PR to optimize them).
>>
>>
>> The Associated Streams proposal offers extra semantic flexibility at a
>> cost of some semantic complexity (someone would need to verify that the
>> associated stream numbers make sense -- api? apps?) and a few extra byte=
s.
>>
>> I'd like to wait to see Ian's revised proposal.  The initial proposal
>> offered to do only one thing -- offer a choice of uni/bi-directional str=
eams
>> -- but it did it in a very simple way, which is nice.
>>
>> - Igor
>>
>>
>> -----Original Message-----
>> From: Martin Thomson [mailto:martin.thomson@gmail.com]
>> Sent: Wednesday, June 28, 2017 7:28 PM
>> To: Mike Bishop <Michael.Bishop@microsoft.com>
>> Cc: Swindells, Thomas (Nokia - GB/Cambridge, UK)
>> <thomas.swindells@nokia.com>; QUIC WG <quic@ietf.org>; Mikkel Fahn=C3=B8=
e
>> J=C3=B8rgensen <mikkelfj@gmail.com>; Dmitri Tikhonov
>> <dtikhonov@litespeedtech.com>; Jo Kulik <jokulik@google.com>
>> Subject: Re: Unidirectional streams PR
>>
>> There is probably a simpler approach here, take a bit (as Ian did) and s=
ay
>> that if that bit is set, then the stream is in response to another and t=
he
>> stream ID of the stream to which this is responding follows immediately
>> after the stream ID of the stream itself.  You could then include that o=
nly
>> at the start of the stream, or in multiple frames (or as we decide).
>>
>> The problem with this, as with several of the other issues we're
>> discussing, is that unless what the transport provides is a perfect fit =
for
>> application semantics, you end up building those semantics into the
>> application anyway.  HTTP certainly can't survive without its own
>> association semantics for pushes.  That suggests to me that having
>> bidirectional semantics in the transport creates more duplication than
>> otherwise.  Hence my proposal.
>>
>> On 28 June 2017 at 15:26, Mike Bishop <Michael.Bishop@microsoft.com>
>> wrote:
>> > As promised, a PR for adding =E2=80=9Cassociated streams=E2=80=9D is a=
t
>> > https://github.com/quicwg/base-drafts/pull/672.  This very
>> > deliberately builds on top of MT=E2=80=99s PR =E2=80=93 it=E2=80=99s a=
dding a primitive which
>> > can be used to construct various abstractions atop unidirectional
>> > streams, but the lifecycle is still fundamentally unidirectional.
>> >
>> >
>> >
>> > Copying my notes here for list discussion purposes.
>> >
>> > Major changes
>> >
>> > Leveraging @igorlord's insight that OO=3D00 only occurs on the first
>> > STREAM frame of a stream, I used that as the trigger for a Stream
>> > Properties byte.
>> > Two bits of that byte describe the directionality of the stream:
>> >
>> > Unidirectional (no response expected)
>> > Initial bidirectional (one response expected) Initial multi-response
>> > (one or more responses expected; needs a better name) Response
>> >
>> > If the type is Response, there's an Associated Stream ID field, length
>> > given by two more bits following the same pattern as the SS bits in
>> > the STREAM frame ID.
>> >
>> > Personal Opinion
>> >
>> > On the plus side, these stream types seem to cover the abstractions I
>> > can envision for most applications. You can unilaterally send
>> > something (unidirectional), do request/response (bidirectional), or
>> > pub/sub (single subscription stream, series of update streams).
>> >
>> > I don't care for the fact that I still need the stream type header in
>> > HTTP after putting this in the transport. That will be ameliorated if
>> > we go back to one stream per request, since all unidirectional streams
>> > will be push streams. (As a side-note, I considered using the
>> > multiple-response option in the HTTP mapping, but then I need a stream
>> > header again to indicate which is the response and which the pushes.)
>> >
>> > I particularly don't like that you now have to look at the frame type
>> > header to find out whether a field exists which tells you the length
>> > of something else in the header. I'd like to simplify that. I went
>> > with this model over a CREATE_STREAM frame because of @mikkelfj's
>> > use-case of very small messages
>> > -- this adds only one byte to the first frame on a stream in one
>> > direction and 2-5 bytes to the first frame of response streams. A
>> > separate frame type would be somewhat larger, but could be cleaner in
>> > that respect.
>> >
>> >
>> >
>> >
>> >
>> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Swindells,
>> > Thomas (Nokia - GB/Cambridge, UK)
>> > Sent: Wednesday, June 28, 2017 7:56 AM
>> > To: Jo Kulik <jokulik@google.com>; Mikkel Fahn=C3=B8e J=C3=B8rgensen
>> > <mikkelfj@gmail.com>
>> > Cc: QUIC WG <quic@ietf.org>; Dmitri Tikhonov
>> > <dtikhonov@litespeedtech.com>
>> > Subject: RE: Unidirectional streams PR
>> >
>> >
>> >
>> > I agree that looking at the layers of abstraction is useful. In
>> > principle having the wire protocol just have constructs for
>> > unidirectional streams does not in itself limit creating
>> > bi-directional communication flows, supported at either the library or
>> > application layer.
>> >
>> >
>> >
>> > However, there need to be a standard way of doing bi-directional
>> > communication for migrating applications implemented using a socket
>> > style api. It needs to be easy to move an existing application from TC=
P
>> > to QUIC.
>> > This move may be attractive in many situations as QUIC gives improved
>> > security and may allow greater throughput due to the more modern (and
>> > customizable) congestion control algorithms compared to the OS TCP
>> > stack.
>> >
>> >
>> >
>> > For migrating standard socket api applications I don=E2=80=99t think i=
t would
>> > be appropriate to leave the work to the application to do correlation,
>> > at least the library should be providing this service using the wire
>> > protocol as appropriate. Clearly we want a client written with one
>> > library to be able to communicate successfully with a server written
>> > using a different library.
>> > This needs some form of standardization of the signalling. This could
>> > either be a building block overlay on top of QUIC, or implemented at
>> > the wire protocol level.
>> >
>> >
>> >
>> > In terms of patterns I think the following may be some of the most
>> > common patterns (with potential to be provided at the library and or
>> > wire protocol level).
>> >
>> > I/O pattern  : Example
>> >
>> > 1/0   : An input only flow, perhaps a data logger like syslog with no
>> > confirmation/feedback
>> >
>> > 0/1  : an output only flow, perhaps a topic message bus service with
>> > no confirmation/feedback
>> >
>> > 1/1 : standard TCP applications with a single flow per connection
>> >
>> > 1/* : single input, many output, modelling STDIN/STDOUT+STDERR
>> >
>> > (1/1)* : multiplexed pairs of flows =E2=80=93 supporting multiple sock=
ets
>> > muxed onto a single QUIC connection
>> >
>> >
>> >
>> > Obviously, an application would always have the option to combine any
>> > single direction flows with application level correlators to construct
>> > more complex flows if desired.
>> >
>> >
>> >
>> > At the moment my gut says the 1/1 use-case is common enough that the
>> > wire protocol should provide a standard mechanism to support it as a
>> > standard overlay would probably end up being treated as part of the
>> > wire format anyway.
>> >
>> >
>> >
>> > Perhaps streams should be explicitly created with a CREATE_STREAM
>> > frame which would be capable of defining multiple related streams?
>> >
>> > There is the option of whether only (1/1) pairs can be created this
>> > way, or
>> > (1/n) combinations could be supported (with an application defined way
>> > to identify the use of each of the output streams). A step further may
>> > be that there is a transport parameter that defines whether the server
>> > is allowed to create additional streams, or if stream creation is
>> > purely client driven (like TCP). I don=E2=80=99t know if either of the=
se would
>> > simplify how to handle stream accounting, and in particular only
>> > creating a flow when all parties have sufficient allowances left.
>> >
>> >
>> >
>> > Thomas
>> >
>> >
>> >
>> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Jo Kulik
>> > Sent: 28 June 2017 15:09
>> > To: Mikkel Fahn=C3=B8e J=C3=B8rgensen <mikkelfj@gmail.com>
>> > Cc: QUIC WG <quic@ietf.org>; Dmitri Tikhonov
>> > <dtikhonov@litespeedtech.com>
>> > Subject: Re: Unidirectional streams PR
>> >
>> >
>> >
>> > I'd like to pop back up to a comment Igor made last week, because I
>> > find it helpful in thinking about the design space:
>> >
>> >
>> >
>> > I think of three layers of abstraction:
>> >
>> > 1.       QUIC Wire Protocol (the thing described by the QUIC Transport
>> > RFC)
>> > 2.       QUIC Library API (a library exposing some useful abstractions
>> > --
>> > such as blocking/non-blocking unidirectional streams and bidirectional
>> > =E2=80=9Csockets=E2=80=9D -- and implementing them using QUIC Wire Pro=
tocol)
>> > 3.       Application (something that uses QUIC Library APIs)
>> >
>> > I think there is some argument to be made that Martin's original
>> > proposal did not take into account how we would achieve (2) for
>> > bi-directional streams.  (I don't think it strictly said "thou shalt
>> > not do (2)" either, but that is up to interpretation.)
>> >
>> >
>> >
>> > Several people have argued that we do not want every application to
>> > have to re-implement bi-directional streams (3) for every application,
>> > and this is not how g-quic (our largest deployment) works right now.
>> > These arguments make sense to me, but YMMV.
>> >
>> >
>> >
>> > Just because the particular *mechanism* that is being proposed has
>> > some issues, however, doesn't scream out to me, at least, that we
>> > should abandon this particular *design goal*.  The goal being a
>> > transport protocol that can elegantly fit with a uni/bi stream model.
>> > Now, if we conclude that there can never be an elegant model that
>> > achieves this goal, then so be it.  But I also feel like we haven't
>> > reached that point in the discussion yet.  (At the very least, this
>> > discussion has been fruitful to me in terms of mapping the design spac=
e
>> > and elucidating requirements).
>> >
>> >
>> >
>> > One of the reasons I still think this design goal is under
>> > consideration is that Ian and Igor/Mike have been talking about
>> > alternate solutions which have a similar flavor.  During the recent
>> > "quiet"ness on the thread, personally, I've been waiting to hear more
>> > from them.
>> >
>> >
>> >
>> > On Wed, Jun 28, 2017 at 9:41 AM, Mikkel Fahn=C3=B8e J=C3=B8rgensen
>> > <mikkelfj@gmail.com> wrote:
>> >
>> > In reply to Ranjeeth
>> >
>> >
>> >
>> > It is not only a matter of simplicity for the sake of simplicity:
>> >
>> >
>> >
>> > - A complex transport layer might end up being poorly implemented
>> > leading to reduced interoperability and ultimately adoption. This
>> > complexity is not only in implementation but also in understanding the
>> > exact semantics of stream lifetime. Even if the spec is sufficiently
>> > clear, it will still be open to misinterpretations.
>> >
>> >
>> >
>> > - Bi-directional state may have to be maintained longer and with more
>> > overhead than with uni-directional streams, especially under loss,
>> > potentially leading to poor performance and poor resource utilisation
>> > because the transport layer has insufficient information.
>> >
>> >
>> >
>> > - The extra complexity at the application layer may be overstated - it
>> > is significantly simpler to manage a map that associates to two
>> > streams than it is to maintain bi-directional state at the transport
>> > layer. It is even possible to implicitly link streams with same
>> > identifiers, e.g. in a RPC scenario. That said, I do see a potential
>> > benefit of a wrapper that implements the common bi-directional case.
>> >
>> >
>> >
>> > - Complexity at the application layer may be duplicated, but
>> > implementation errors are also isolated to that application.
>> > Specifically for HTTP I would assume that QUIC transport and QUIC HTTP
>> > implementers would be large the same for a long time to come, so I
>> > would not expect the tradeoff here to be particularly concerning.
>> >
>> >
>> >
>> > - Unix pipes are traditionally constructed as a pair of
>> > uni-directional file descriptors and that is a reasonably proven
>> > model. C=E2=80=99s standard library stdin, stdout and stderr is an exa=
mple of
>> > an asymmetric model with implicit linkage between uni-directional file
>> > descriptors.
>> >
>> >
>> >
>> > - There are lots of use cases for non-HTTP like connectivity - Kafka
>> > high volume message queuing for example. The industry trend appears to
>> > move towards asynchronous processing and messaging. It depends on
>> > whether you look at QUIC as a TCP + TLS replacement, or as a HTTPS /
>> > REST RPC replacement.
>> >
>> >
>> >
>> > - Uni-directional streams may currently be unproven in the wild, but a
>> > proposal is needed before an implementation can be made and testet. I
>> > agree that it is easy to design into wrong assumptions without real
>> > world testing.
>> >
>> >
>> >
>> > - There will hopefully not be a large number of successors to QUIC -
>> > perhaps some purpose specific variants, e.g. for embedded use.
>> > Widespread adaptation and compatibility is very necessary so it makes
>> > sense to have QUIC being sufficiently simple and expressive to achieve
>> > this goal. A polymorf QUIC will not achieve that goal. On the other
>> > hand, a solid QUIC foundation can be used for a large number of
>> > application protocols.
>> >
>> >
>> >
>> > - Finally, it may turn out that uni-directional streams just is a bad
>> > idea - I doubt it, but I do believe real world tests are needed.
>> >
>> >
>> >
>> > Kind Regards,
>> >
>> > Mikkel Fahn=C3=B8e J=C3=B8rgensen
>> >
>> >
>> >
>> > On 28 June 2017 at 14.42.36, Dmitri Tikhonov
>> > (dtikhonov@litespeedtech.com)
>> > wrote:
>> >
>> > On Tue, Jun 27, 2017 at 02:31:38PM -0700, Ranjeeth Kumar Dasineni wrot=
e:
>> >> 2. We are overplaying the simplicity of design. Even if we deem
>> >> deployment experience not a concern, if every application layer
>> >> protocol that needs support for bidirectional streams has to
>> >> implement some correlators and such above, that's a net negative in
>> >> terms of complexity.
>> >
>> > This is an important point: we want QUIC adoption to be made easy.
>> > A program that speaks HTTP today should be able to use an existing
>> > QUIC library without having to emulate bidirectional streams in order
>> > to fit it into HTTP usage pattern. Forcing every one of these programs
>> > to do this is certainly a hurdle.
>> >
>> > - Dmitri.
>> >
>> >
>>
>



--=20
Kazuho Oku


From nobody Wed Jul  5 20:50:21 2017
Return-Path: <ilubashe@akamai.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 C42B512FEE2 for <quic@ietfa.amsl.com>; Wed,  5 Jul 2017 20:50:15 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 A9OnPPNGySmh for <quic@ietfa.amsl.com>; Wed,  5 Jul 2017 20:50:12 -0700 (PDT)
Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8DA9912EE8D for <quic@ietf.org>; Wed,  5 Jul 2017 20:50:12 -0700 (PDT)
Received: from pps.filterd (m0050095.ppops.net [127.0.0.1]) by m0050095.ppops.net-00190b01. (8.16.0.21/8.16.0.21) with SMTP id v663kVd8030994; Thu, 6 Jul 2017 04:50:09 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=jan2016.eng; bh=jGxyuMx3ZKqeJSL7qs3w5N6fnNnXYOpvKomn0gX0UHY=; b=jzWtncURp83C8IIHLrpw8Qt+sxh9MrRlnkD2CBQ5akqtVxL2MsHDtS7r/SYSBcsKVlXf VQ4FR85mzQN5Ycn9VNEHtfFG2gnb7zbQ7GtsFyCgOPgRfJkfZX/SPCmnmICy8N9CTc35 VhTCbCRj+RGZ4rMQGCcvb5ccTVPh0NtOmonFdXAL7XBpdYsSfm2aWY5UDjKwF4j5aacu SQlRoW/yuhwRa7kwYz0YfH1lGzyZHDpMuex6VYfmwqr92h49gfqdCgTRz6hgkyhYZJKR Zui7Re+izHRg2E0PhrHtnItnrCUKMKSqOVJKqlyiRJikwkhUShFyMRwNxHACacxqNePm Cg== 
Received: from prod-mail-ppoint1 (a184-51-33-18.deploy.static.akamaitechnologies.com [184.51.33.18] (may be forged)) by m0050095.ppops.net-00190b01. with ESMTP id 2bgsdjdcrx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Jul 2017 04:50:09 +0100
Received: from pps.filterd (prod-mail-ppoint1.akamai.com [127.0.0.1]) by prod-mail-ppoint1.akamai.com (8.16.0.17/8.16.0.17) with SMTP id v663kJ70023193; Wed, 5 Jul 2017 23:50:07 -0400
Received: from email.msg.corp.akamai.com ([172.27.123.31]) by prod-mail-ppoint1.akamai.com with ESMTP id 2be72ubj8g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 05 Jul 2017 23:50:07 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag1mb2.msg.corp.akamai.com (172.27.123.102) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Wed, 5 Jul 2017 23:50:06 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com ([172.27.123.105]) by usma1ex-dag1mb5.msg.corp.akamai.com ([172.27.123.105]) with mapi id 15.00.1263.000; Wed, 5 Jul 2017 23:50:06 -0400
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: Kazuho Oku <kazuhooku@gmail.com>, Ian Swett <ianswett@google.com>
CC: Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Jo Kulik <jokulik@google.com>, =?utf-8?B?TWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbg==?= <mikkelfj@gmail.com>, "QUIC WG" <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Subject: RE: Unidirectional streams PR
Thread-Topic: Unidirectional streams PR
Thread-Index: AQHS7K8qFJcNmOfPnkGlJjRXQ/9soKI0ttCAgATMZACAAP5zgIAAEIwAgAAHqgCAAA02gIAAfdKAgAARSAD//8GgUIAAXnCAgAm2IgCAAS8I8A==
Date: Thu, 6 Jul 2017 03:50:05 +0000
Message-ID: <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com>
In-Reply-To: <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.32.110]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-06_01:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707060061
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-06_01:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707060062
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/9VqjoX4acCDrxMKV2AmOQjspe3Q>
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: Thu, 06 Jul 2017 03:50:16 -0000

PiBJZiBhIGNsaWVudCBuZWVkcyBhIHdheSB0byByZXNldCB0aGUgc2VydmVyJ3MgcmVzcG9uc2Ug
YmVmb3JlIG9ic2VydmluZyB0aGUgZmlyc3QgZnJhbWUsIGl0IGNhbm5vdCB1c2UgRklOIGFzIGFu
IGluZGljYXRvciBvZiB0aGUgZW5kIG9mIHRoZSByZXF1ZXN0Lg0KDQpUaGVyZSBpcyBhIERJU0lO
VEVSRVNUIGZyYW1lIHByb3Bvc2FsIChQUiAjMTcxOiBodHRwczovL2dpdGh1Yi5jb20vcXVpY3dn
L2Jhc2UtZHJhZnRzL3B1bGwvMTcxKS4gIFRoYXQncyBzb21ldGhpbmcgdGhhdCBJIGJlbGlldmUg
aXMgdmFsdWFibGUgaW5kZXBlbmRlbnQgb2YgdGhpcyBVbmlkaXJlY3Rpb25hbCBzdHJlYW1zIFBS
Lg0KDQotIElnb3INCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogS2F6dWhv
IE9rdSBbbWFpbHRvOmthenVob29rdUBnbWFpbC5jb21dIA0KU2VudDogV2VkbmVzZGF5LCBKdWx5
IDA1LCAyMDE3IDE6NDEgQU0NClRvOiBJYW4gU3dldHQgPGlhbnN3ZXR0QGdvb2dsZS5jb20+DQpD
YzogTHViYXNoZXYsIElnb3IgPGlsdWJhc2hlQGFrYW1haS5jb20+OyBNaWtlIEJpc2hvcCA8TWlj
aGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbT47IERtaXRyaSBUaWtob25vdiA8ZHRpa2hvbm92QGxp
dGVzcGVlZHRlY2guY29tPjsgU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lhIC0gR0IvQ2FtYnJpZGdl
LCBVSykgPHRob21hcy5zd2luZGVsbHNAbm9raWEuY29tPjsgSm8gS3VsaWsgPGpva3VsaWtAZ29v
Z2xlLmNvbT47IE1pa2tlbCBGYWhuw7hlIErDuHJnZW5zZW4gPG1pa2tlbGZqQGdtYWlsLmNvbT47
IFFVSUMgV0cgPHF1aWNAaWV0Zi5vcmc+OyBNYXJ0aW4gVGhvbXNvbiA8bWFydGluLnRob21zb25A
Z21haWwuY29tPg0KU3ViamVjdDogUmU6IFVuaWRpcmVjdGlvbmFsIHN0cmVhbXMgUFINCg0KMjAx
Ny0wNi0yOSAxMDoyMyBHTVQrMDk6MDAgSWFuIFN3ZXR0IDxpYW5zd2V0dEBnb29nbGUuY29tPjoN
Cj4gSSB1cGRhdGVkIG15IFBSKCM2NTYpIHRvZGF5LCBzb3JyeSBmb3IgdGhlIGRlbGF5LiAgSSBh
dHRlbXB0ZWQgdG8gDQo+IGFkZHJlc3MgdGhlIGlzc3VlcyBpZGVudGlmaWVkIHdpdGggdGV4dC4g
IFNvbWUgbWF5IHByZWZlciBtb3JlIHR3ZWFrcyANCj4gdG8gdGhlIHN0YXRlIGRpYWdyYW0sIHdo
aWNoIGFyZSBhbHNvIHBvc3NpYmxlLCBzbyBJJ20gb3BlbiB0byBzdWdnZXN0aW9ucy4NCg0KQWZ0
ZXIgYWxsLCBJIHRoaW5rIHRoYXQgdGhlIGFwcHJvYWNoIHByb3Bvc2VkIGhlcmUgaXMgdGhlIG1v
c3Qgd2VsbC1iYWxhbmNlZCBvbmUuDQoNCkFzIG11Y2ggYXMgSSB0aGluayB0aGF0IGhhdmluZyBm
aXJzdC1jbGFzcyBzdXBwb3J0IGZvciB1bmlkaXJlY3Rpb25hbCBzdHJlYW1zIGlzIHByZWZlcmFi
bGUsIEkgYWxzbyB0aGluayB0aGF0IHdlIHNob3VsZCBrZWVwIHRoZSBvdmVyYWxsIGFyY2hpdGVj
dHVyZSAoaS5lLiBzdW0gb2YgdGhlIGNvbXBsZXhpdHkgaW4gdGhlIHRyYW5zcG9ydCBsYXllciBh
bmQgdGhlIGFwcGxpY2F0aW9uIGxheWVyKSBhcyBzaW1wbGUgYXMgcG9zc2libGUuDQoNCklNTyBo
YXZpbmcgc3VwcG9ydCBmb3IgYmlkaXJlY3Rpb25hbCBzdHJlYW1zIChhbG9uZyB3aXRoIHN1cHBv
cnQgZm9yIHVuaWRpcmVjdGlvbmFsIHN0cmVhbXMpIGFsaWducyB3aXRoIHN1Y2ggaW50ZW50aW9u
Lg0KDQpNb3N0IG9mIHRoZSBhcHBsaWNhdGlvbiBwcm90b2NvbHMgdGhhdCB3aWxsIGJlIGRlcGxv
eWVkIG92ZXIgdGhlIFFVSUMgdHJhbnNwb3J0IHdpbGwgYmUgaW4gcmVxdWVzdC1yZXNwb25zZSBz
dHlsZSwgYXQgbGVhc3QgdG8gc29tZSBleHRlbnQuDQpIZW5jZSBpdCBpcyBwcmVmZXJhYmxlIGZv
ciB0aGUgdHJhbnNwb3J0IGxheWVyIHRvIHByb3ZpZGUgYSBmcmFtZXdvcmsgdGhhdCBmaXRzIHN1
Y2ggc3R5bGUuDQoNCkJpZGlyZWN0aW9uYWwgc3RyZWFtcyBwcm92aWRlIHRoZSBuZWNlc3Nhcnkg
ZmVhdHVyZXMuIEZJTiBwcm92aWRlcyBhIHdheSB0byBpbmRpY2F0ZSB0aGUgZW5kIG9mIHRoZSBt
ZXNzYWdlLiBSU1QgcHJvdmlkZXMgYSB3YXkgdG8gY2FuY2VsIHRoZSBleGNoYW5nZSBvZiB0aGUg
bWVzc2FnZSBpbiBib3RoIGRpcmVjdGlvbnMuDQoNCklNTyB0aGUgYmlnZ2VzdCBpc3N1ZSB3aXRo
IHRoZSB1bmlkaXJlY3Rpb25hbC1vbmx5IGFwcHJvYWNoIGlzIHRoYXQgeW91IGNhbm5vdCBoYXZl
IHRoZSB0d28gZmVhdHVyZXMgdG9nZXRoZXIuIElmIGEgY2xpZW50IG5lZWRzIGEgd2F5IHRvIHJl
c2V0IHRoZSBzZXJ2ZXIncyByZXNwb25zZSBiZWZvcmUgb2JzZXJ2aW5nIHRoZSBmaXJzdCBmcmFt
ZSwgaXQgY2Fubm90IHVzZSBGSU4gYXMgYW4gaW5kaWNhdG9yIG9mIHRoZSBlbmQgb2YgdGhlIHJl
cXVlc3QuDQoNCkl0IGlzIHRydWUgdGhhdCB0aGUgaXNzdWUgY2FuIGJlIGV2YWRlZCBieSBkb2lu
ZyBvbmUncyBvd24gZnJhbWluZyBpbiB0aGUgYXBwbGljYXRpb24gbGF5ZXIuICM2NDMgZG9lcyB0
aGF0IGJ5IGludHJvZHVjaW5nIGEgQ0FOQ0VMX1JFUVVFU1QgZnJhbWUuDQoNCkJ1dCBJIGRvIG5v
dCB0aGluayB0aGF0IHdlIHNob3VsZCByZXF1aXJlIGV2ZXJ5IGFwcGxpY2F0aW9uIHByb3RvY29s
IGJ1aWx0IGFib3ZlIFFVSUMgdG8gZG8gaXRzIG93biBmcmFtaW5nLiBJbiBhZGRpdGlvbiB0byB0
aGF0LCBuZWVkIHRvIGtlZXAgdHdvIHVuaS1kaXJlY3Rpb25hbCBzdHJlYW1zIG9wZW4gd291bGQg
Y29uc3VtZSBtb3JlIHJlc291cmNlcyB0aGFuIGJlaW5nIGFibGUgdG8gY2xvc2Ugb25lIGRpcmVj
dGlvbiBvZiBhIGJpLWRpcmVjdGlvbmFsIHN0cmVhbSBhdCBhbiBlYXJsaWVyIG1vbWVudC4NCg0K
PiBJbiB0aGUgbWVhbnRpbWUsIEkndmUgYmVlbiBjb25zaWRlcmluZyBvdGhlciBhbHRlcm5hdGl2
ZXMsIGluY2x1ZGluZyANCj4gdmFyaWF0aW9ucyBvbiBNaWtlJ3MgZGlyZWN0aW9uIGFuZCBhIHZh
cmlhdGlvbiBvZiB0aGUgIkRvIE5vdGhpbmciIA0KPiBvcHRpb24gd2hpY2ggaW52b2x2ZWQgdGhl
IGFwcGxpY2F0aW9uIHNpZ25hbGluZyB0byB0aGUgdHJhbnNwb3J0IHRoYXQgDQo+IHN0cmVhbXMg
b2YgYSBjZXJ0YWluIHNvcnQoaWU6IHNlcnZlciB0byBjbGllbnQgZm9yIHNlcnZlciBwdXNoKSB3
ZXJlIA0KPiB1bmlkaXJlY3Rpb25hbCwgYXMgR1FVSUMgZG9lcyB0b2RheS4gIE92ZXJhbGwsIEkg
dGhpbmsgdGhlIGFwcHJvYWNoIA0KPiBJJ3ZlIG91dGxpbmVkIGRvZXMgYSBnb29kIGpvYiBvZiBp
dGVyYXRpbmcgb24gZXhpc3RpbmcgZGVwbG95bWVudCANCj4gZXhwZXJpZW5jZSBhbmQgYWRkaW5n
IGV4cGxpY2l0IHNpZ25hbGluZyBmb3IgdW5pZGlyZWN0aW9uYWwgc3RyZWFtcyANCj4gaW5zdGVh
ZCBvZiBpbXBsaWNpdCBzaWduYWxpbmcgYXQgdGhlIGFwcGxpY2F0aW9uIGxheWVyLiAgVGhlcmUg
YXJlIA0KPiBwcm9zIGFuZCBjb25zIHRvIGJvdGggZXhwbGljaXQgYW5kIGltcGxpY2l0IHNpZ25h
bGluZywgYnV0IEkgdGhpbmsgDQo+IGV4cGxpY2l0IHNpZ25hbGluZyBpcyBtb3JlIGNvbXBsZXRl
IGFuZCBsZXNzIHByb25lIHRvIGFwcGxpY2F0aW9uIGVycm9yLg0KPg0KPiBUaGFua3MsIElhbg0K
Pg0KPg0KPiBPbiBXZWQsIEp1biAyOCwgMjAxNyBhdCA4OjE0IFBNLCBMdWJhc2hldiwgSWdvciA8
aWx1YmFzaGVAYWthbWFpLmNvbT4gd3JvdGU6DQo+Pg0KPj4gPiB1bmxlc3Mgd2hhdCB0aGUgdHJh
bnNwb3J0IHByb3ZpZGVzIGlzIGEgcGVyZmVjdCBmaXQgZm9yIGFwcGxpY2F0aW9uIA0KPj4gPiBz
ZW1hbnRpY3MsIHlvdSBlbmQgdXAgYnVpbGRpbmcgdGhvc2Ugc2VtYW50aWNzIGludG8gdGhlIGFw
cGxpY2F0aW9uIGFueXdheS4NCj4+DQo+PiBJIGFncmVlIHdpdGggdGhpcy4gV2Ugc2hvdWxkIGF2
b2lkIGFkZGluZyBjb21wbGV4aXR5IGludG8gdHJhbnNwb3J0IA0KPj4gZm9yIHJhcmUgdXNlIGNh
c2VzLCBzaW5jZSBpdCBnb2VzIGFnYWluc3QgS0lTUyBwcmluY2lwbGUuDQo+Pg0KPj4gT24gdGhl
IG90aGVyIGhhbmQsIGFkZGluZyBzdXBwb3J0IGZvciBhIGJ5IGZhciB0aGUgbW9zdCBjb21tb24g
dXNlIA0KPj4gY2FzZSBtYWtlcyBhIGxvdCBvZiBzZW5zZS4gIFRoaXMgaGVscHMgYXBwcyBhdm9p
ZCBzY3Jld2luZyB1cCANCj4+IGltcGxlbWVudGluZyB0aGF0IGNvbW1vbiBjYXNlIGFuZCBsZXRz
IHVzIG9wdGltaXplIHRoYXQgY29tbW9uIGNhc2UgDQo+PiBpbiB0aGUgbG93ZXIgbGF5ZXIuIEJp
RGkgc3RyZWFtcyBhcmUgc3VjaCBjb21tb24gY2FzZXMuIFVuaSBzdHJlYW1zIA0KPj4gYXJlIGxp
a2VseSB0byBiZSB0aGUgc2Vjb25kLW1vc3QtY29tbW9uIGNhc2VzIChoZW5jZSB5b3Ugb2ZmZXJl
ZCB0aGlzIFBSIHRvIG9wdGltaXplIHRoZW0pLg0KPj4NCj4+DQo+PiBUaGUgQXNzb2NpYXRlZCBT
dHJlYW1zIHByb3Bvc2FsIG9mZmVycyBleHRyYSBzZW1hbnRpYyBmbGV4aWJpbGl0eSBhdCANCj4+
IGEgY29zdCBvZiBzb21lIHNlbWFudGljIGNvbXBsZXhpdHkgKHNvbWVvbmUgd291bGQgbmVlZCB0
byB2ZXJpZnkgdGhhdCANCj4+IHRoZSBhc3NvY2lhdGVkIHN0cmVhbSBudW1iZXJzIG1ha2Ugc2Vu
c2UgLS0gYXBpPyBhcHBzPykgYW5kIGEgZmV3IGV4dHJhIGJ5dGVzLg0KPj4NCj4+IEknZCBsaWtl
IHRvIHdhaXQgdG8gc2VlIElhbidzIHJldmlzZWQgcHJvcG9zYWwuICBUaGUgaW5pdGlhbCBwcm9w
b3NhbCANCj4+IG9mZmVyZWQgdG8gZG8gb25seSBvbmUgdGhpbmcgLS0gb2ZmZXIgYSBjaG9pY2Ug
b2YgdW5pL2JpLWRpcmVjdGlvbmFsIA0KPj4gc3RyZWFtcw0KPj4gLS0gYnV0IGl0IGRpZCBpdCBp
biBhIHZlcnkgc2ltcGxlIHdheSwgd2hpY2ggaXMgbmljZS4NCj4+DQo+PiAtIElnb3INCj4+DQo+
Pg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206IE1hcnRpbiBUaG9tc29u
IFttYWlsdG86bWFydGluLnRob21zb25AZ21haWwuY29tXQ0KPj4gU2VudDogV2VkbmVzZGF5LCBK
dW5lIDI4LCAyMDE3IDc6MjggUE0NCj4+IFRvOiBNaWtlIEJpc2hvcCA8TWljaGFlbC5CaXNob3BA
bWljcm9zb2Z0LmNvbT4NCj4+IENjOiBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1i
cmlkZ2UsIFVLKSANCj4+IDx0aG9tYXMuc3dpbmRlbGxzQG5va2lhLmNvbT47IFFVSUMgV0cgPHF1
aWNAaWV0Zi5vcmc+OyBNaWtrZWwgRmFobsO4ZSANCj4+IErDuHJnZW5zZW4gPG1pa2tlbGZqQGdt
YWlsLmNvbT47IERtaXRyaSBUaWtob25vdiANCj4+IDxkdGlraG9ub3ZAbGl0ZXNwZWVkdGVjaC5j
b20+OyBKbyBLdWxpayA8am9rdWxpa0Bnb29nbGUuY29tPg0KPj4gU3ViamVjdDogUmU6IFVuaWRp
cmVjdGlvbmFsIHN0cmVhbXMgUFINCj4+DQo+PiBUaGVyZSBpcyBwcm9iYWJseSBhIHNpbXBsZXIg
YXBwcm9hY2ggaGVyZSwgdGFrZSBhIGJpdCAoYXMgSWFuIGRpZCkgDQo+PiBhbmQgc2F5IHRoYXQg
aWYgdGhhdCBiaXQgaXMgc2V0LCB0aGVuIHRoZSBzdHJlYW0gaXMgaW4gcmVzcG9uc2UgdG8gDQo+
PiBhbm90aGVyIGFuZCB0aGUgc3RyZWFtIElEIG9mIHRoZSBzdHJlYW0gdG8gd2hpY2ggdGhpcyBp
cyByZXNwb25kaW5nIA0KPj4gZm9sbG93cyBpbW1lZGlhdGVseSBhZnRlciB0aGUgc3RyZWFtIElE
IG9mIHRoZSBzdHJlYW0gaXRzZWxmLiAgWW91IA0KPj4gY291bGQgdGhlbiBpbmNsdWRlIHRoYXQg
b25seSBhdCB0aGUgc3RhcnQgb2YgdGhlIHN0cmVhbSwgb3IgaW4gbXVsdGlwbGUgZnJhbWVzIChv
ciBhcyB3ZSBkZWNpZGUpLg0KPj4NCj4+IFRoZSBwcm9ibGVtIHdpdGggdGhpcywgYXMgd2l0aCBz
ZXZlcmFsIG9mIHRoZSBvdGhlciBpc3N1ZXMgd2UncmUgDQo+PiBkaXNjdXNzaW5nLCBpcyB0aGF0
IHVubGVzcyB3aGF0IHRoZSB0cmFuc3BvcnQgcHJvdmlkZXMgaXMgYSBwZXJmZWN0IA0KPj4gZml0
IGZvciBhcHBsaWNhdGlvbiBzZW1hbnRpY3MsIHlvdSBlbmQgdXAgYnVpbGRpbmcgdGhvc2Ugc2Vt
YW50aWNzIA0KPj4gaW50byB0aGUgYXBwbGljYXRpb24gYW55d2F5LiAgSFRUUCBjZXJ0YWlubHkg
Y2FuJ3Qgc3Vydml2ZSB3aXRob3V0IA0KPj4gaXRzIG93biBhc3NvY2lhdGlvbiBzZW1hbnRpY3Mg
Zm9yIHB1c2hlcy4gIFRoYXQgc3VnZ2VzdHMgdG8gbWUgdGhhdCANCj4+IGhhdmluZyBiaWRpcmVj
dGlvbmFsIHNlbWFudGljcyBpbiB0aGUgdHJhbnNwb3J0IGNyZWF0ZXMgbW9yZSANCj4+IGR1cGxp
Y2F0aW9uIHRoYW4gb3RoZXJ3aXNlLiAgSGVuY2UgbXkgcHJvcG9zYWwuDQo+Pg0KPj4gT24gMjgg
SnVuZSAyMDE3IGF0IDE1OjI2LCBNaWtlIEJpc2hvcCA8TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0
LmNvbT4NCj4+IHdyb3RlOg0KPj4gPiBBcyBwcm9taXNlZCwgYSBQUiBmb3IgYWRkaW5nIOKAnGFz
c29jaWF0ZWQgc3RyZWFtc+KAnSBpcyBhdCANCj4+ID4gaHR0cHM6Ly9naXRodWIuY29tL3F1aWN3
Zy9iYXNlLWRyYWZ0cy9wdWxsLzY3Mi4gIFRoaXMgdmVyeSANCj4+ID4gZGVsaWJlcmF0ZWx5IGJ1
aWxkcyBvbiB0b3Agb2YgTVTigJlzIFBSIOKAkyBpdOKAmXMgYWRkaW5nIGEgcHJpbWl0aXZlIA0K
Pj4gPiB3aGljaCBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgdmFyaW91cyBhYnN0cmFjdGlvbnMg
YXRvcCANCj4+ID4gdW5pZGlyZWN0aW9uYWwgc3RyZWFtcywgYnV0IHRoZSBsaWZlY3ljbGUgaXMg
c3RpbGwgZnVuZGFtZW50YWxseSB1bmlkaXJlY3Rpb25hbC4NCj4+ID4NCj4+ID4NCj4+ID4NCj4+
ID4gQ29weWluZyBteSBub3RlcyBoZXJlIGZvciBsaXN0IGRpc2N1c3Npb24gcHVycG9zZXMuDQo+
PiA+DQo+PiA+IE1ham9yIGNoYW5nZXMNCj4+ID4NCj4+ID4gTGV2ZXJhZ2luZyBAaWdvcmxvcmQn
cyBpbnNpZ2h0IHRoYXQgT089MDAgb25seSBvY2N1cnMgb24gdGhlIGZpcnN0IA0KPj4gPiBTVFJF
QU0gZnJhbWUgb2YgYSBzdHJlYW0sIEkgdXNlZCB0aGF0IGFzIHRoZSB0cmlnZ2VyIGZvciBhIFN0
cmVhbSANCj4+ID4gUHJvcGVydGllcyBieXRlLg0KPj4gPiBUd28gYml0cyBvZiB0aGF0IGJ5dGUg
ZGVzY3JpYmUgdGhlIGRpcmVjdGlvbmFsaXR5IG9mIHRoZSBzdHJlYW06DQo+PiA+DQo+PiA+IFVu
aWRpcmVjdGlvbmFsIChubyByZXNwb25zZSBleHBlY3RlZCkgSW5pdGlhbCBiaWRpcmVjdGlvbmFs
IChvbmUgDQo+PiA+IHJlc3BvbnNlIGV4cGVjdGVkKSBJbml0aWFsIG11bHRpLXJlc3BvbnNlIChv
bmUgb3IgbW9yZSByZXNwb25zZXMgDQo+PiA+IGV4cGVjdGVkOyBuZWVkcyBhIGJldHRlciBuYW1l
KSBSZXNwb25zZQ0KPj4gPg0KPj4gPiBJZiB0aGUgdHlwZSBpcyBSZXNwb25zZSwgdGhlcmUncyBh
biBBc3NvY2lhdGVkIFN0cmVhbSBJRCBmaWVsZCwgDQo+PiA+IGxlbmd0aCBnaXZlbiBieSB0d28g
bW9yZSBiaXRzIGZvbGxvd2luZyB0aGUgc2FtZSBwYXR0ZXJuIGFzIHRoZSBTUyANCj4+ID4gYml0
cyBpbiB0aGUgU1RSRUFNIGZyYW1lIElELg0KPj4gPg0KPj4gPiBQZXJzb25hbCBPcGluaW9uDQo+
PiA+DQo+PiA+IE9uIHRoZSBwbHVzIHNpZGUsIHRoZXNlIHN0cmVhbSB0eXBlcyBzZWVtIHRvIGNv
dmVyIHRoZSBhYnN0cmFjdGlvbnMgDQo+PiA+IEkgY2FuIGVudmlzaW9uIGZvciBtb3N0IGFwcGxp
Y2F0aW9ucy4gWW91IGNhbiB1bmlsYXRlcmFsbHkgc2VuZCANCj4+ID4gc29tZXRoaW5nICh1bmlk
aXJlY3Rpb25hbCksIGRvIHJlcXVlc3QvcmVzcG9uc2UgKGJpZGlyZWN0aW9uYWwpLCBvciANCj4+
ID4gcHViL3N1YiAoc2luZ2xlIHN1YnNjcmlwdGlvbiBzdHJlYW0sIHNlcmllcyBvZiB1cGRhdGUg
c3RyZWFtcykuDQo+PiA+DQo+PiA+IEkgZG9uJ3QgY2FyZSBmb3IgdGhlIGZhY3QgdGhhdCBJIHN0
aWxsIG5lZWQgdGhlIHN0cmVhbSB0eXBlIGhlYWRlciANCj4+ID4gaW4gSFRUUCBhZnRlciBwdXR0
aW5nIHRoaXMgaW4gdGhlIHRyYW5zcG9ydC4gVGhhdCB3aWxsIGJlIA0KPj4gPiBhbWVsaW9yYXRl
ZCBpZiB3ZSBnbyBiYWNrIHRvIG9uZSBzdHJlYW0gcGVyIHJlcXVlc3QsIHNpbmNlIGFsbCANCj4+
ID4gdW5pZGlyZWN0aW9uYWwgc3RyZWFtcyB3aWxsIGJlIHB1c2ggc3RyZWFtcy4gKEFzIGEgc2lk
ZS1ub3RlLCBJIA0KPj4gPiBjb25zaWRlcmVkIHVzaW5nIHRoZSBtdWx0aXBsZS1yZXNwb25zZSBv
cHRpb24gaW4gdGhlIEhUVFAgbWFwcGluZywgDQo+PiA+IGJ1dCB0aGVuIEkgbmVlZCBhIHN0cmVh
bSBoZWFkZXIgYWdhaW4gdG8gaW5kaWNhdGUgd2hpY2ggaXMgdGhlIA0KPj4gPiByZXNwb25zZSBh
bmQgd2hpY2ggdGhlIHB1c2hlcy4pDQo+PiA+DQo+PiA+IEkgcGFydGljdWxhcmx5IGRvbid0IGxp
a2UgdGhhdCB5b3Ugbm93IGhhdmUgdG8gbG9vayBhdCB0aGUgZnJhbWUgDQo+PiA+IHR5cGUgaGVh
ZGVyIHRvIGZpbmQgb3V0IHdoZXRoZXIgYSBmaWVsZCBleGlzdHMgd2hpY2ggdGVsbHMgeW91IHRo
ZSANCj4+ID4gbGVuZ3RoIG9mIHNvbWV0aGluZyBlbHNlIGluIHRoZSBoZWFkZXIuIEknZCBsaWtl
IHRvIHNpbXBsaWZ5IHRoYXQuIA0KPj4gPiBJIHdlbnQgd2l0aCB0aGlzIG1vZGVsIG92ZXIgYSBD
UkVBVEVfU1RSRUFNIGZyYW1lIGJlY2F1c2Ugb2YgDQo+PiA+IEBtaWtrZWxmaidzIHVzZS1jYXNl
IG9mIHZlcnkgc21hbGwgbWVzc2FnZXMNCj4+ID4gLS0gdGhpcyBhZGRzIG9ubHkgb25lIGJ5dGUg
dG8gdGhlIGZpcnN0IGZyYW1lIG9uIGEgc3RyZWFtIGluIG9uZSANCj4+ID4gZGlyZWN0aW9uIGFu
ZCAyLTUgYnl0ZXMgdG8gdGhlIGZpcnN0IGZyYW1lIG9mIHJlc3BvbnNlIHN0cmVhbXMuIEEgDQo+
PiA+IHNlcGFyYXRlIGZyYW1lIHR5cGUgd291bGQgYmUgc29tZXdoYXQgbGFyZ2VyLCBidXQgY291
bGQgYmUgY2xlYW5lciANCj4+ID4gaW4gdGhhdCByZXNwZWN0Lg0KPj4gPg0KPj4gPg0KPj4gPg0K
Pj4gPg0KPj4gPg0KPj4gPiBGcm9tOiBRVUlDIFttYWlsdG86cXVpYy1ib3VuY2VzQGlldGYub3Jn
XSBPbiBCZWhhbGYgT2YgU3dpbmRlbGxzLCANCj4+ID4gVGhvbWFzIChOb2tpYSAtIEdCL0NhbWJy
aWRnZSwgVUspDQo+PiA+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAyOCwgMjAxNyA3OjU2IEFNDQo+
PiA+IFRvOiBKbyBLdWxpayA8am9rdWxpa0Bnb29nbGUuY29tPjsgTWlra2VsIEZhaG7DuGUgSsO4
cmdlbnNlbiANCj4+ID4gPG1pa2tlbGZqQGdtYWlsLmNvbT4NCj4+ID4gQ2M6IFFVSUMgV0cgPHF1
aWNAaWV0Zi5vcmc+OyBEbWl0cmkgVGlraG9ub3YgDQo+PiA+IDxkdGlraG9ub3ZAbGl0ZXNwZWVk
dGVjaC5jb20+DQo+PiA+IFN1YmplY3Q6IFJFOiBVbmlkaXJlY3Rpb25hbCBzdHJlYW1zIFBSDQo+
PiA+DQo+PiA+DQo+PiA+DQo+PiA+IEkgYWdyZWUgdGhhdCBsb29raW5nIGF0IHRoZSBsYXllcnMg
b2YgYWJzdHJhY3Rpb24gaXMgdXNlZnVsLiBJbiANCj4+ID4gcHJpbmNpcGxlIGhhdmluZyB0aGUg
d2lyZSBwcm90b2NvbCBqdXN0IGhhdmUgY29uc3RydWN0cyBmb3IgDQo+PiA+IHVuaWRpcmVjdGlv
bmFsIHN0cmVhbXMgZG9lcyBub3QgaW4gaXRzZWxmIGxpbWl0IGNyZWF0aW5nIA0KPj4gPiBiaS1k
aXJlY3Rpb25hbCBjb21tdW5pY2F0aW9uIGZsb3dzLCBzdXBwb3J0ZWQgYXQgZWl0aGVyIHRoZSBs
aWJyYXJ5IA0KPj4gPiBvciBhcHBsaWNhdGlvbiBsYXllci4NCj4+ID4NCj4+ID4NCj4+ID4NCj4+
ID4gSG93ZXZlciwgdGhlcmUgbmVlZCB0byBiZSBhIHN0YW5kYXJkIHdheSBvZiBkb2luZyBiaS1k
aXJlY3Rpb25hbCANCj4+ID4gY29tbXVuaWNhdGlvbiBmb3IgbWlncmF0aW5nIGFwcGxpY2F0aW9u
cyBpbXBsZW1lbnRlZCB1c2luZyBhIHNvY2tldCANCj4+ID4gc3R5bGUgYXBpLiBJdCBuZWVkcyB0
byBiZSBlYXN5IHRvIG1vdmUgYW4gZXhpc3RpbmcgYXBwbGljYXRpb24gZnJvbSANCj4+ID4gVENQ
IHRvIFFVSUMuDQo+PiA+IFRoaXMgbW92ZSBtYXkgYmUgYXR0cmFjdGl2ZSBpbiBtYW55IHNpdHVh
dGlvbnMgYXMgUVVJQyBnaXZlcyANCj4+ID4gaW1wcm92ZWQgc2VjdXJpdHkgYW5kIG1heSBhbGxv
dyBncmVhdGVyIHRocm91Z2hwdXQgZHVlIHRvIHRoZSBtb3JlIA0KPj4gPiBtb2Rlcm4gKGFuZA0K
Pj4gPiBjdXN0b21pemFibGUpIGNvbmdlc3Rpb24gY29udHJvbCBhbGdvcml0aG1zIGNvbXBhcmVk
IHRvIHRoZSBPUyBUQ1AgDQo+PiA+IHN0YWNrLg0KPj4gPg0KPj4gPg0KPj4gPg0KPj4gPiBGb3Ig
bWlncmF0aW5nIHN0YW5kYXJkIHNvY2tldCBhcGkgYXBwbGljYXRpb25zIEkgZG9u4oCZdCB0aGlu
ayBpdCANCj4+ID4gd291bGQgYmUgYXBwcm9wcmlhdGUgdG8gbGVhdmUgdGhlIHdvcmsgdG8gdGhl
IGFwcGxpY2F0aW9uIHRvIGRvIA0KPj4gPiBjb3JyZWxhdGlvbiwgYXQgbGVhc3QgdGhlIGxpYnJh
cnkgc2hvdWxkIGJlIHByb3ZpZGluZyB0aGlzIHNlcnZpY2UgDQo+PiA+IHVzaW5nIHRoZSB3aXJl
IHByb3RvY29sIGFzIGFwcHJvcHJpYXRlLiBDbGVhcmx5IHdlIHdhbnQgYSBjbGllbnQgDQo+PiA+
IHdyaXR0ZW4gd2l0aCBvbmUgbGlicmFyeSB0byBiZSBhYmxlIHRvIGNvbW11bmljYXRlIHN1Y2Nl
c3NmdWxseSANCj4+ID4gd2l0aCBhIHNlcnZlciB3cml0dGVuIHVzaW5nIGEgZGlmZmVyZW50IGxp
YnJhcnkuDQo+PiA+IFRoaXMgbmVlZHMgc29tZSBmb3JtIG9mIHN0YW5kYXJkaXphdGlvbiBvZiB0
aGUgc2lnbmFsbGluZy4gVGhpcyANCj4+ID4gY291bGQgZWl0aGVyIGJlIGEgYnVpbGRpbmcgYmxv
Y2sgb3ZlcmxheSBvbiB0b3Agb2YgUVVJQywgb3IgDQo+PiA+IGltcGxlbWVudGVkIGF0IHRoZSB3
aXJlIHByb3RvY29sIGxldmVsLg0KPj4gPg0KPj4gPg0KPj4gPg0KPj4gPiBJbiB0ZXJtcyBvZiBw
YXR0ZXJucyBJIHRoaW5rIHRoZSBmb2xsb3dpbmcgbWF5IGJlIHNvbWUgb2YgdGhlIG1vc3QgDQo+
PiA+IGNvbW1vbiBwYXR0ZXJucyAod2l0aCBwb3RlbnRpYWwgdG8gYmUgcHJvdmlkZWQgYXQgdGhl
IGxpYnJhcnkgYW5kIA0KPj4gPiBvciB3aXJlIHByb3RvY29sIGxldmVsKS4NCj4+ID4NCj4+ID4g
SS9PIHBhdHRlcm4gIDogRXhhbXBsZQ0KPj4gPg0KPj4gPiAxLzAgICA6IEFuIGlucHV0IG9ubHkg
ZmxvdywgcGVyaGFwcyBhIGRhdGEgbG9nZ2VyIGxpa2Ugc3lzbG9nIHdpdGggbm8NCj4+ID4gY29u
ZmlybWF0aW9uL2ZlZWRiYWNrDQo+PiA+DQo+PiA+IDAvMSAgOiBhbiBvdXRwdXQgb25seSBmbG93
LCBwZXJoYXBzIGEgdG9waWMgbWVzc2FnZSBidXMgc2VydmljZSANCj4+ID4gd2l0aCBubyBjb25m
aXJtYXRpb24vZmVlZGJhY2sNCj4+ID4NCj4+ID4gMS8xIDogc3RhbmRhcmQgVENQIGFwcGxpY2F0
aW9ucyB3aXRoIGEgc2luZ2xlIGZsb3cgcGVyIGNvbm5lY3Rpb24NCj4+ID4NCj4+ID4gMS8qIDog
c2luZ2xlIGlucHV0LCBtYW55IG91dHB1dCwgbW9kZWxsaW5nIFNURElOL1NURE9VVCtTVERFUlIN
Cj4+ID4NCj4+ID4gKDEvMSkqIDogbXVsdGlwbGV4ZWQgcGFpcnMgb2YgZmxvd3Mg4oCTIHN1cHBv
cnRpbmcgbXVsdGlwbGUgc29ja2V0cyANCj4+ID4gbXV4ZWQgb250byBhIHNpbmdsZSBRVUlDIGNv
bm5lY3Rpb24NCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gT2J2aW91c2x5LCBhbiBhcHBsaWNhdGlv
biB3b3VsZCBhbHdheXMgaGF2ZSB0aGUgb3B0aW9uIHRvIGNvbWJpbmUgDQo+PiA+IGFueSBzaW5n
bGUgZGlyZWN0aW9uIGZsb3dzIHdpdGggYXBwbGljYXRpb24gbGV2ZWwgY29ycmVsYXRvcnMgdG8g
DQo+PiA+IGNvbnN0cnVjdCBtb3JlIGNvbXBsZXggZmxvd3MgaWYgZGVzaXJlZC4NCj4+ID4NCj4+
ID4NCj4+ID4NCj4+ID4gQXQgdGhlIG1vbWVudCBteSBndXQgc2F5cyB0aGUgMS8xIHVzZS1jYXNl
IGlzIGNvbW1vbiBlbm91Z2ggdGhhdCANCj4+ID4gdGhlIHdpcmUgcHJvdG9jb2wgc2hvdWxkIHBy
b3ZpZGUgYSBzdGFuZGFyZCBtZWNoYW5pc20gdG8gc3VwcG9ydCBpdCANCj4+ID4gYXMgYSBzdGFu
ZGFyZCBvdmVybGF5IHdvdWxkIHByb2JhYmx5IGVuZCB1cCBiZWluZyB0cmVhdGVkIGFzIHBhcnQg
DQo+PiA+IG9mIHRoZSB3aXJlIGZvcm1hdCBhbnl3YXkuDQo+PiA+DQo+PiA+DQo+PiA+DQo+PiA+
IFBlcmhhcHMgc3RyZWFtcyBzaG91bGQgYmUgZXhwbGljaXRseSBjcmVhdGVkIHdpdGggYSBDUkVB
VEVfU1RSRUFNIA0KPj4gPiBmcmFtZSB3aGljaCB3b3VsZCBiZSBjYXBhYmxlIG9mIGRlZmluaW5n
IG11bHRpcGxlIHJlbGF0ZWQgc3RyZWFtcz8NCj4+ID4NCj4+ID4gVGhlcmUgaXMgdGhlIG9wdGlv
biBvZiB3aGV0aGVyIG9ubHkgKDEvMSkgcGFpcnMgY2FuIGJlIGNyZWF0ZWQgdGhpcyANCj4+ID4g
d2F5LCBvcg0KPj4gPiAoMS9uKSBjb21iaW5hdGlvbnMgY291bGQgYmUgc3VwcG9ydGVkICh3aXRo
IGFuIGFwcGxpY2F0aW9uIGRlZmluZWQgDQo+PiA+IHdheSB0byBpZGVudGlmeSB0aGUgdXNlIG9m
IGVhY2ggb2YgdGhlIG91dHB1dCBzdHJlYW1zKS4gQSBzdGVwIA0KPj4gPiBmdXJ0aGVyIG1heSBi
ZSB0aGF0IHRoZXJlIGlzIGEgdHJhbnNwb3J0IHBhcmFtZXRlciB0aGF0IGRlZmluZXMgDQo+PiA+
IHdoZXRoZXIgdGhlIHNlcnZlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBhZGRpdGlvbmFsIHN0cmVh
bXMsIG9yIGlmIA0KPj4gPiBzdHJlYW0gY3JlYXRpb24gaXMgcHVyZWx5IGNsaWVudCBkcml2ZW4g
KGxpa2UgVENQKS4gSSBkb27igJl0IGtub3cgaWYgDQo+PiA+IGVpdGhlciBvZiB0aGVzZSB3b3Vs
ZCBzaW1wbGlmeSBob3cgdG8gaGFuZGxlIHN0cmVhbSBhY2NvdW50aW5nLCBhbmQgDQo+PiA+IGlu
IHBhcnRpY3VsYXIgb25seSBjcmVhdGluZyBhIGZsb3cgd2hlbiBhbGwgcGFydGllcyBoYXZlIHN1
ZmZpY2llbnQgYWxsb3dhbmNlcyBsZWZ0Lg0KPj4gPg0KPj4gPg0KPj4gPg0KPj4gPiBUaG9tYXMN
Cj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gRnJvbTogUVVJQyBbbWFpbHRvOnF1aWMtYm91bmNlc0Bp
ZXRmLm9yZ10gT24gQmVoYWxmIE9mIEpvIEt1bGlrDQo+PiA+IFNlbnQ6IDI4IEp1bmUgMjAxNyAx
NTowOQ0KPj4gPiBUbzogTWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbiA8bWlra2VsZmpAZ21haWwu
Y29tPg0KPj4gPiBDYzogUVVJQyBXRyA8cXVpY0BpZXRmLm9yZz47IERtaXRyaSBUaWtob25vdiAN
Cj4+ID4gPGR0aWtob25vdkBsaXRlc3BlZWR0ZWNoLmNvbT4NCj4+ID4gU3ViamVjdDogUmU6IFVu
aWRpcmVjdGlvbmFsIHN0cmVhbXMgUFINCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gSSdkIGxpa2Ug
dG8gcG9wIGJhY2sgdXAgdG8gYSBjb21tZW50IElnb3IgbWFkZSBsYXN0IHdlZWssIGJlY2F1c2Ug
SSANCj4+ID4gZmluZCBpdCBoZWxwZnVsIGluIHRoaW5raW5nIGFib3V0IHRoZSBkZXNpZ24gc3Bh
Y2U6DQo+PiA+DQo+PiA+DQo+PiA+DQo+PiA+IEkgdGhpbmsgb2YgdGhyZWUgbGF5ZXJzIG9mIGFi
c3RyYWN0aW9uOg0KPj4gPg0KPj4gPiAxLiAgICAgICBRVUlDIFdpcmUgUHJvdG9jb2wgKHRoZSB0
aGluZyBkZXNjcmliZWQgYnkgdGhlIFFVSUMgVHJhbnNwb3J0DQo+PiA+IFJGQykNCj4+ID4gMi4g
ICAgICAgUVVJQyBMaWJyYXJ5IEFQSSAoYSBsaWJyYXJ5IGV4cG9zaW5nIHNvbWUgdXNlZnVsIGFi
c3RyYWN0aW9ucw0KPj4gPiAtLQ0KPj4gPiBzdWNoIGFzIGJsb2NraW5nL25vbi1ibG9ja2luZyB1
bmlkaXJlY3Rpb25hbCBzdHJlYW1zIGFuZCANCj4+ID4gYmlkaXJlY3Rpb25hbCDigJxzb2NrZXRz
4oCdIC0tIGFuZCBpbXBsZW1lbnRpbmcgdGhlbSB1c2luZyBRVUlDIFdpcmUgUHJvdG9jb2wpDQo+
PiA+IDMuICAgICAgIEFwcGxpY2F0aW9uIChzb21ldGhpbmcgdGhhdCB1c2VzIFFVSUMgTGlicmFy
eSBBUElzKQ0KPj4gPg0KPj4gPiBJIHRoaW5rIHRoZXJlIGlzIHNvbWUgYXJndW1lbnQgdG8gYmUg
bWFkZSB0aGF0IE1hcnRpbidzIG9yaWdpbmFsIA0KPj4gPiBwcm9wb3NhbCBkaWQgbm90IHRha2Ug
aW50byBhY2NvdW50IGhvdyB3ZSB3b3VsZCBhY2hpZXZlICgyKSBmb3IgDQo+PiA+IGJpLWRpcmVj
dGlvbmFsIHN0cmVhbXMuICAoSSBkb24ndCB0aGluayBpdCBzdHJpY3RseSBzYWlkICJ0aG91IA0K
Pj4gPiBzaGFsdCBub3QgZG8gKDIpIiBlaXRoZXIsIGJ1dCB0aGF0IGlzIHVwIHRvIGludGVycHJl
dGF0aW9uLikNCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gU2V2ZXJhbCBwZW9wbGUgaGF2ZSBhcmd1
ZWQgdGhhdCB3ZSBkbyBub3Qgd2FudCBldmVyeSBhcHBsaWNhdGlvbiB0byANCj4+ID4gaGF2ZSB0
byByZS1pbXBsZW1lbnQgYmktZGlyZWN0aW9uYWwgc3RyZWFtcyAoMykgZm9yIGV2ZXJ5IA0KPj4g
PiBhcHBsaWNhdGlvbiwgYW5kIHRoaXMgaXMgbm90IGhvdyBnLXF1aWMgKG91ciBsYXJnZXN0IGRl
cGxveW1lbnQpIHdvcmtzIHJpZ2h0IG5vdy4NCj4+ID4gVGhlc2UgYXJndW1lbnRzIG1ha2Ugc2Vu
c2UgdG8gbWUsIGJ1dCBZTU1WLg0KPj4gPg0KPj4gPg0KPj4gPg0KPj4gPiBKdXN0IGJlY2F1c2Ug
dGhlIHBhcnRpY3VsYXIgKm1lY2hhbmlzbSogdGhhdCBpcyBiZWluZyBwcm9wb3NlZCBoYXMgDQo+
PiA+IHNvbWUgaXNzdWVzLCBob3dldmVyLCBkb2Vzbid0IHNjcmVhbSBvdXQgdG8gbWUsIGF0IGxl
YXN0LCB0aGF0IHdlIA0KPj4gPiBzaG91bGQgYWJhbmRvbiB0aGlzIHBhcnRpY3VsYXIgKmRlc2ln
biBnb2FsKi4gIFRoZSBnb2FsIGJlaW5nIGEgDQo+PiA+IHRyYW5zcG9ydCBwcm90b2NvbCB0aGF0
IGNhbiBlbGVnYW50bHkgZml0IHdpdGggYSB1bmkvYmkgc3RyZWFtIG1vZGVsLg0KPj4gPiBOb3cs
IGlmIHdlIGNvbmNsdWRlIHRoYXQgdGhlcmUgY2FuIG5ldmVyIGJlIGFuIGVsZWdhbnQgbW9kZWwg
dGhhdCANCj4+ID4gYWNoaWV2ZXMgdGhpcyBnb2FsLCB0aGVuIHNvIGJlIGl0LiAgQnV0IEkgYWxz
byBmZWVsIGxpa2Ugd2UgaGF2ZW4ndCANCj4+ID4gcmVhY2hlZCB0aGF0IHBvaW50IGluIHRoZSBk
aXNjdXNzaW9uIHlldC4gIChBdCB0aGUgdmVyeSBsZWFzdCwgdGhpcyANCj4+ID4gZGlzY3Vzc2lv
biBoYXMgYmVlbiBmcnVpdGZ1bCB0byBtZSBpbiB0ZXJtcyBvZiBtYXBwaW5nIHRoZSBkZXNpZ24g
DQo+PiA+IHNwYWNlIGFuZCBlbHVjaWRhdGluZyByZXF1aXJlbWVudHMpLg0KPj4gPg0KPj4gPg0K
Pj4gPg0KPj4gPiBPbmUgb2YgdGhlIHJlYXNvbnMgSSBzdGlsbCB0aGluayB0aGlzIGRlc2lnbiBn
b2FsIGlzIHVuZGVyIA0KPj4gPiBjb25zaWRlcmF0aW9uIGlzIHRoYXQgSWFuIGFuZCBJZ29yL01p
a2UgaGF2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgDQo+PiA+IGFsdGVybmF0ZSBzb2x1dGlvbnMgd2hp
Y2ggaGF2ZSBhIHNpbWlsYXIgZmxhdm9yLiAgRHVyaW5nIHRoZSByZWNlbnQgDQo+PiA+ICJxdWll
dCJuZXNzIG9uIHRoZSB0aHJlYWQsIHBlcnNvbmFsbHksIEkndmUgYmVlbiB3YWl0aW5nIHRvIGhl
YXIgDQo+PiA+IG1vcmUgZnJvbSB0aGVtLg0KPj4gPg0KPj4gPg0KPj4gPg0KPj4gPiBPbiBXZWQs
IEp1biAyOCwgMjAxNyBhdCA5OjQxIEFNLCBNaWtrZWwgRmFobsO4ZSBKw7hyZ2Vuc2VuIA0KPj4g
PiA8bWlra2VsZmpAZ21haWwuY29tPiB3cm90ZToNCj4+ID4NCj4+ID4gSW4gcmVwbHkgdG8gUmFu
amVldGgNCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gSXQgaXMgbm90IG9ubHkgYSBtYXR0ZXIgb2Yg
c2ltcGxpY2l0eSBmb3IgdGhlIHNha2Ugb2Ygc2ltcGxpY2l0eToNCj4+ID4NCj4+ID4NCj4+ID4N
Cj4+ID4gLSBBIGNvbXBsZXggdHJhbnNwb3J0IGxheWVyIG1pZ2h0IGVuZCB1cCBiZWluZyBwb29y
bHkgaW1wbGVtZW50ZWQgDQo+PiA+IGxlYWRpbmcgdG8gcmVkdWNlZCBpbnRlcm9wZXJhYmlsaXR5
IGFuZCB1bHRpbWF0ZWx5IGFkb3B0aW9uLiBUaGlzIA0KPj4gPiBjb21wbGV4aXR5IGlzIG5vdCBv
bmx5IGluIGltcGxlbWVudGF0aW9uIGJ1dCBhbHNvIGluIHVuZGVyc3RhbmRpbmcgDQo+PiA+IHRo
ZSBleGFjdCBzZW1hbnRpY3Mgb2Ygc3RyZWFtIGxpZmV0aW1lLiBFdmVuIGlmIHRoZSBzcGVjIGlz
IA0KPj4gPiBzdWZmaWNpZW50bHkgY2xlYXIsIGl0IHdpbGwgc3RpbGwgYmUgb3BlbiB0byBtaXNp
bnRlcnByZXRhdGlvbnMuDQo+PiA+DQo+PiA+DQo+PiA+DQo+PiA+IC0gQmktZGlyZWN0aW9uYWwg
c3RhdGUgbWF5IGhhdmUgdG8gYmUgbWFpbnRhaW5lZCBsb25nZXIgYW5kIHdpdGggDQo+PiA+IG1v
cmUgb3ZlcmhlYWQgdGhhbiB3aXRoIHVuaS1kaXJlY3Rpb25hbCBzdHJlYW1zLCBlc3BlY2lhbGx5
IHVuZGVyIA0KPj4gPiBsb3NzLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIHBvb3IgcGVyZm9ybWFu
Y2UgYW5kIHBvb3IgcmVzb3VyY2UgDQo+PiA+IHV0aWxpc2F0aW9uIGJlY2F1c2UgdGhlIHRyYW5z
cG9ydCBsYXllciBoYXMgaW5zdWZmaWNpZW50IGluZm9ybWF0aW9uLg0KPj4gPg0KPj4gPg0KPj4g
Pg0KPj4gPiAtIFRoZSBleHRyYSBjb21wbGV4aXR5IGF0IHRoZSBhcHBsaWNhdGlvbiBsYXllciBt
YXkgYmUgb3ZlcnN0YXRlZCAtIA0KPj4gPiBpdCBpcyBzaWduaWZpY2FudGx5IHNpbXBsZXIgdG8g
bWFuYWdlIGEgbWFwIHRoYXQgYXNzb2NpYXRlcyB0byB0d28gDQo+PiA+IHN0cmVhbXMgdGhhbiBp
dCBpcyB0byBtYWludGFpbiBiaS1kaXJlY3Rpb25hbCBzdGF0ZSBhdCB0aGUgDQo+PiA+IHRyYW5z
cG9ydCBsYXllci4gSXQgaXMgZXZlbiBwb3NzaWJsZSB0byBpbXBsaWNpdGx5IGxpbmsgc3RyZWFt
cyANCj4+ID4gd2l0aCBzYW1lIGlkZW50aWZpZXJzLCBlLmcuIGluIGEgUlBDIHNjZW5hcmlvLiBU
aGF0IHNhaWQsIEkgZG8gc2VlIA0KPj4gPiBhIHBvdGVudGlhbCBiZW5lZml0IG9mIGEgd3JhcHBl
ciB0aGF0IGltcGxlbWVudHMgdGhlIGNvbW1vbiBiaS1kaXJlY3Rpb25hbCBjYXNlLg0KPj4gPg0K
Pj4gPg0KPj4gPg0KPj4gPiAtIENvbXBsZXhpdHkgYXQgdGhlIGFwcGxpY2F0aW9uIGxheWVyIG1h
eSBiZSBkdXBsaWNhdGVkLCBidXQgDQo+PiA+IGltcGxlbWVudGF0aW9uIGVycm9ycyBhcmUgYWxz
byBpc29sYXRlZCB0byB0aGF0IGFwcGxpY2F0aW9uLg0KPj4gPiBTcGVjaWZpY2FsbHkgZm9yIEhU
VFAgSSB3b3VsZCBhc3N1bWUgdGhhdCBRVUlDIHRyYW5zcG9ydCBhbmQgUVVJQyANCj4+ID4gSFRU
UCBpbXBsZW1lbnRlcnMgd291bGQgYmUgbGFyZ2UgdGhlIHNhbWUgZm9yIGEgbG9uZyB0aW1lIHRv
IGNvbWUsIA0KPj4gPiBzbyBJIHdvdWxkIG5vdCBleHBlY3QgdGhlIHRyYWRlb2ZmIGhlcmUgdG8g
YmUgcGFydGljdWxhcmx5IGNvbmNlcm5pbmcuDQo+PiA+DQo+PiA+DQo+PiA+DQo+PiA+IC0gVW5p
eCBwaXBlcyBhcmUgdHJhZGl0aW9uYWxseSBjb25zdHJ1Y3RlZCBhcyBhIHBhaXIgb2YgDQo+PiA+
IHVuaS1kaXJlY3Rpb25hbCBmaWxlIGRlc2NyaXB0b3JzIGFuZCB0aGF0IGlzIGEgcmVhc29uYWJs
eSBwcm92ZW4gDQo+PiA+IG1vZGVsLiBD4oCZcyBzdGFuZGFyZCBsaWJyYXJ5IHN0ZGluLCBzdGRv
dXQgYW5kIHN0ZGVyciBpcyBhbiBleGFtcGxlIA0KPj4gPiBvZiBhbiBhc3ltbWV0cmljIG1vZGVs
IHdpdGggaW1wbGljaXQgbGlua2FnZSBiZXR3ZWVuIA0KPj4gPiB1bmktZGlyZWN0aW9uYWwgZmls
ZSBkZXNjcmlwdG9ycy4NCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gLSBUaGVyZSBhcmUgbG90cyBv
ZiB1c2UgY2FzZXMgZm9yIG5vbi1IVFRQIGxpa2UgY29ubmVjdGl2aXR5IC0gDQo+PiA+IEthZmth
IGhpZ2ggdm9sdW1lIG1lc3NhZ2UgcXVldWluZyBmb3IgZXhhbXBsZS4gVGhlIGluZHVzdHJ5IHRy
ZW5kIA0KPj4gPiBhcHBlYXJzIHRvIG1vdmUgdG93YXJkcyBhc3luY2hyb25vdXMgcHJvY2Vzc2lu
ZyBhbmQgbWVzc2FnaW5nLiBJdCANCj4+ID4gZGVwZW5kcyBvbiB3aGV0aGVyIHlvdSBsb29rIGF0
IFFVSUMgYXMgYSBUQ1AgKyBUTFMgcmVwbGFjZW1lbnQsIG9yIA0KPj4gPiBhcyBhIEhUVFBTIC8g
UkVTVCBSUEMgcmVwbGFjZW1lbnQuDQo+PiA+DQo+PiA+DQo+PiA+DQo+PiA+IC0gVW5pLWRpcmVj
dGlvbmFsIHN0cmVhbXMgbWF5IGN1cnJlbnRseSBiZSB1bnByb3ZlbiBpbiB0aGUgd2lsZCwgDQo+
PiA+IGJ1dCBhIHByb3Bvc2FsIGlzIG5lZWRlZCBiZWZvcmUgYW4gaW1wbGVtZW50YXRpb24gY2Fu
IGJlIG1hZGUgYW5kIA0KPj4gPiB0ZXN0ZXQuIEkgYWdyZWUgdGhhdCBpdCBpcyBlYXN5IHRvIGRl
c2lnbiBpbnRvIHdyb25nIGFzc3VtcHRpb25zIA0KPj4gPiB3aXRob3V0IHJlYWwgd29ybGQgdGVz
dGluZy4NCj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gLSBUaGVyZSB3aWxsIGhvcGVmdWxseSBub3Qg
YmUgYSBsYXJnZSBudW1iZXIgb2Ygc3VjY2Vzc29ycyB0byBRVUlDIA0KPj4gPiAtIHBlcmhhcHMg
c29tZSBwdXJwb3NlIHNwZWNpZmljIHZhcmlhbnRzLCBlLmcuIGZvciBlbWJlZGRlZCB1c2UuDQo+
PiA+IFdpZGVzcHJlYWQgYWRhcHRhdGlvbiBhbmQgY29tcGF0aWJpbGl0eSBpcyB2ZXJ5IG5lY2Vz
c2FyeSBzbyBpdCANCj4+ID4gbWFrZXMgc2Vuc2UgdG8gaGF2ZSBRVUlDIGJlaW5nIHN1ZmZpY2ll
bnRseSBzaW1wbGUgYW5kIGV4cHJlc3NpdmUgDQo+PiA+IHRvIGFjaGlldmUgdGhpcyBnb2FsLiBB
IHBvbHltb3JmIFFVSUMgd2lsbCBub3QgYWNoaWV2ZSB0aGF0IGdvYWwuIA0KPj4gPiBPbiB0aGUg
b3RoZXIgaGFuZCwgYSBzb2xpZCBRVUlDIGZvdW5kYXRpb24gY2FuIGJlIHVzZWQgZm9yIGEgbGFy
Z2UgDQo+PiA+IG51bWJlciBvZiBhcHBsaWNhdGlvbiBwcm90b2NvbHMuDQo+PiA+DQo+PiA+DQo+
PiA+DQo+PiA+IC0gRmluYWxseSwgaXQgbWF5IHR1cm4gb3V0IHRoYXQgdW5pLWRpcmVjdGlvbmFs
IHN0cmVhbXMganVzdCBpcyBhIA0KPj4gPiBiYWQgaWRlYSAtIEkgZG91YnQgaXQsIGJ1dCBJIGRv
IGJlbGlldmUgcmVhbCB3b3JsZCB0ZXN0cyBhcmUgbmVlZGVkLg0KPj4gPg0KPj4gPg0KPj4gPg0K
Pj4gPiBLaW5kIFJlZ2FyZHMsDQo+PiA+DQo+PiA+IE1pa2tlbCBGYWhuw7hlIErDuHJnZW5zZW4N
Cj4+ID4NCj4+ID4NCj4+ID4NCj4+ID4gT24gMjggSnVuZSAyMDE3IGF0IDE0LjQyLjM2LCBEbWl0
cmkgVGlraG9ub3YNCj4+ID4gKGR0aWtob25vdkBsaXRlc3BlZWR0ZWNoLmNvbSkNCj4+ID4gd3Jv
dGU6DQo+PiA+DQo+PiA+IE9uIFR1ZSwgSnVuIDI3LCAyMDE3IGF0IDAyOjMxOjM4UE0gLTA3MDAs
IFJhbmplZXRoIEt1bWFyIERhc2luZW5pIHdyb3RlOg0KPj4gPj4gMi4gV2UgYXJlIG92ZXJwbGF5
aW5nIHRoZSBzaW1wbGljaXR5IG9mIGRlc2lnbi4gRXZlbiBpZiB3ZSBkZWVtIA0KPj4gPj4gZGVw
bG95bWVudCBleHBlcmllbmNlIG5vdCBhIGNvbmNlcm4sIGlmIGV2ZXJ5IGFwcGxpY2F0aW9uIGxh
eWVyIA0KPj4gPj4gcHJvdG9jb2wgdGhhdCBuZWVkcyBzdXBwb3J0IGZvciBiaWRpcmVjdGlvbmFs
IHN0cmVhbXMgaGFzIHRvIA0KPj4gPj4gaW1wbGVtZW50IHNvbWUgY29ycmVsYXRvcnMgYW5kIHN1
Y2ggYWJvdmUsIHRoYXQncyBhIG5ldCBuZWdhdGl2ZSANCj4+ID4+IGluIHRlcm1zIG9mIGNvbXBs
ZXhpdHkuDQo+PiA+DQo+PiA+IFRoaXMgaXMgYW4gaW1wb3J0YW50IHBvaW50OiB3ZSB3YW50IFFV
SUMgYWRvcHRpb24gdG8gYmUgbWFkZSBlYXN5Lg0KPj4gPiBBIHByb2dyYW0gdGhhdCBzcGVha3Mg
SFRUUCB0b2RheSBzaG91bGQgYmUgYWJsZSB0byB1c2UgYW4gZXhpc3RpbmcgDQo+PiA+IFFVSUMg
bGlicmFyeSB3aXRob3V0IGhhdmluZyB0byBlbXVsYXRlIGJpZGlyZWN0aW9uYWwgc3RyZWFtcyBp
biANCj4+ID4gb3JkZXIgdG8gZml0IGl0IGludG8gSFRUUCB1c2FnZSBwYXR0ZXJuLiBGb3JjaW5n
IGV2ZXJ5IG9uZSBvZiB0aGVzZSANCj4+ID4gcHJvZ3JhbXMgdG8gZG8gdGhpcyBpcyBjZXJ0YWlu
bHkgYSBodXJkbGUuDQo+PiA+DQo+PiA+IC0gRG1pdHJpLg0KPj4gPg0KPj4gPg0KPj4NCj4NCg0K
DQoNCi0tDQpLYXp1aG8gT2t1DQo=


From nobody Wed Jul  5 22:17:16 2017
Return-Path: <prvs=83607bf038=subodh@fb.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 E8763126BF7 for <quic@ietfa.amsl.com>; Wed,  5 Jul 2017 22:17:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level: 
X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com header.b=HKyKlY0y; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=iSTVSdiQ
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 1XSOFESqMeJk for <quic@ietfa.amsl.com>; Wed,  5 Jul 2017 22:17:10 -0700 (PDT)
Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5BBA61200CF for <quic@ietf.org>; Wed,  5 Jul 2017 22:17:10 -0700 (PDT)
Received: from pps.filterd (m0109331.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v665Ddw3011124; Wed, 5 Jul 2017 22:17:01 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=facebook; bh=nzpq1GPQVWxfRhD8q3A8ouMqouwUnjpro7Ddh9QgxpI=; b=HKyKlY0y2Ui0g1BXvwyDjL3hGvtcjfKZZhFga1GXyL1THswI6P8TPaSWsOYmnuhppfh8 vBVPryy+U4Y2nZ6V+u6hKv8YvEwP8KR17Jn1wqf6O6d1kXKAiEDovYqD9Mc8oVOo/9YB NLk3gbs2z0ldhiG+U6KntxXuazifgjuSQ54= 
Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2bhbg68jmb-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 05 Jul 2017 22:17:01 -0700
Received: from NAM01-BY2-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.18) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 5 Jul 2017 22:16:59 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;  bh=nzpq1GPQVWxfRhD8q3A8ouMqouwUnjpro7Ddh9QgxpI=; b=iSTVSdiQgnYpH082WGUOiyZS5xd7D6qkQIvM3zpGBmSG+QyYFCpnxP4JVTpS+bIrGowlaU7GlsRxHUSz2X1aJoaHXQ49vPcwA5Zz/vtYkLKkGghwmQH/7WnA8amxgBA/dv7chxhUUC6P4SvAR8zQOK0m6HTY7rR0tZHPUbgd5vM=
Received: from MWHPR15MB1455.namprd15.prod.outlook.com (10.173.234.145) by MWHPR15MB1455.namprd15.prod.outlook.com (10.173.234.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Thu, 6 Jul 2017 05:16:57 +0000
Received: from MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) by MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) with mapi id 15.01.1220.018; Thu, 6 Jul 2017 05:16:56 +0000
From: Subodh Iyengar <subodh@fb.com>
To: "Lubashev, Igor" <ilubashe@akamai.com>, Kazuho Oku <kazuhooku@gmail.com>,  Ian Swett <ianswett@google.com>
CC: Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Jo Kulik <jokulik@google.com>, =?Windows-1252?Q?Mikkel_Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Subject: Re: Unidirectional streams PR
Thread-Topic: Unidirectional streams PR
Thread-Index: AQHS7K8qYA+OJNlgCk66zUVoUQGXHqI0Yv6AgATdKACAAP5zgIAAEIwAgAAHqgCAAA02gIAAfdKAgAARSACAAAzfAIAAEzGAgAm2IgCAAXM4gIAAEPcY
Date: Thu, 6 Jul 2017 05:16:56 +0000
Message-ID: <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com>, <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com>
In-Reply-To: <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: akamai.com; dkim=none (message not signed) header.d=none;akamai.com; dmarc=none action=none header.from=fb.com;
x-originating-ip: [2601:602:9801:6840:19e0:3a44:6a42:e831]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR15MB1455; 20:7lmh/IOgghMe0qBnU6E0ILkuXwf5R9DGWFXVt7NxdeuA4ivfSfFr+OkkOF9Sl4Sw5GGVcRv8sL8eg/dw1zc/0bi9T8E3AzOrBk8jrzKH3ORk4mrjXXnNPbyUdPldPwOhPSwbWup6XCd+m0xTlgalD3cUOlMgaPorD/ninK3ibK0=
x-ms-office365-filtering-correlation-id: eaacea26-0fcc-4150-fa33-08d4c42e38ed
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR15MB1455; 
x-ms-traffictypediagnostic: MWHPR15MB1455:
x-microsoft-antispam-prvs: <MWHPR15MB1455D6DED93922C869BC30E6B6D50@MWHPR15MB1455.namprd15.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(133145235818549)(278428928389397)(166708455590820)(26388249023172)(236129657087228)(192374486261705)(82608151540597)(48057245064654)(211936372134217);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(2017060910042)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR15MB1455; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR15MB1455; 
x-forefront-prvs: 03607C04F0
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39410400002)(39850400002)(39400400002)(39840400002)(39450400003)(55674003)(377454003)(24454002)(51444003)(377424004)(13464003)(478600001)(7736002)(3660700001)(606006)(6436002)(966005)(68736007)(14454004)(53936002)(3280700002)(45080400002)(8676002)(25786009)(6246003)(54356999)(50986999)(53546010)(81166006)(39060400002)(102836003)(6116002)(38730400002)(76176999)(77096006)(54906002)(55016002)(9686003)(2906002)(229853002)(561944003)(99286003)(2950100002)(6306002)(54896002)(3480700004)(7416002)(189998001)(86362001)(5660300001)(236005)(33656002)(7116003)(7696004)(6506006)(4326008)(8666007)(74316002)(93886004)(53946003)(8936002)(2900100001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR15MB1455; H:MWHPR15MB1455.namprd15.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50MWHPR15MB1455namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2017 05:16:56.6867 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1455
X-OriginatorOrg: fb.com
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-06_02:, , signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5hZzjClIBDEM39VZuXccHzt5Ul0>
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: Thu, 06 Jul 2017 05:17:15 -0000

--_000_MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50MWHPR15MB1455namp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

> Without such a signal, a generic proxy that is not aware of your applicat=
ion internals is not able to know when to send the FIN

I see, this use case does make somewhat sense, however I'm curious if someo=
ne has a concrete use case for a generic QUIC proxy which is not aware of t=
he application protocol at all. In TCP this was more common for middleboxes=
 to do because there was no end to end encryption of the transport, however=
 QUIC is encrypted. Even with cases when we tunneling protocols at our end,=
 we usually have some knowledge of the app that we are running because we n=
eed to route them differently to different backends. I was mostly thinking =
that proxies would at least have some knowledge about HTTP/2 or app protoco=
ls.

Maybe it is possible to make #656 more palatable, at least to me. I had 2 t=
hings against it initially, which were:


  1.  We might need to add another state to the machine to the sender state=
, i.e. normally when sending a FIN, it is ok to keep receiving stream frame=
s after, however in a uni directional stream it is illegal to get a stream =
frame.
  2.  In its current form it also has an implicit requirement to not open l=
ower streams. I think opening lower streams have some desirable properties =
which I've commented on in https://github.com/quicwg/base-drafts/issues/662=
.

An implementation could probably implement 1. with not too much trouble by =
doing a special case in the stream state machine when it receives a stream =
frame in the half closed local state.

For 2. thinking about it a bit more I think the underlying question here is=
 who enforces directionality, i.e. did I receive data I should not have. If=
 it is the transport, then we need to answer that question with issue #662,=
 however if it can be the application or a higher layer API between the app=
lication and transport that enforces directionality then we don't need to k=
now whether a lower stream is bi-directional or not. I'm leaning towards an=
 API between the transport and application enforcing directionality. The re=
ason for that is that an application that needs to use unidirectionality ne=
eds to use a different API anyway. Given that we could leave lower streams =
to be opened as it is now, but leaving the exact semantics of enforcing bi-=
directionality or uni-directionality to a higher layer. That should suffice=
 for even a generic proxy right?

I still prefer do nothing with app directed close though.

> But I do not think that we should require every application protocol buil=
t above QUIC to do its own framing.

Second Kazuho on this one.

Subodh

________________________________
From: QUIC <quic-bounces@ietf.org> on behalf of Lubashev, Igor <ilubashe@ak=
amai.com>
Sent: Wednesday, July 5, 2017 8:50:05 PM
To: Kazuho Oku; Ian Swett
Cc: Mike Bishop; Dmitri Tikhonov; Swindells, Thomas (Nokia - GB/Cambridge, =
UK); Jo Kulik; Mikkel Fahn=F8e J=F8rgensen; QUIC WG; Martin Thomson
Subject: RE: Unidirectional streams PR

> If a client needs a way to reset the server's response before observing t=
he first frame, it cannot use FIN as an indicator of the end of the request=
.

There is a DISINTEREST frame proposal (PR #171: https://github.com/quicwg/b=
ase-drafts/pull/171).  That's something that I believe is valuable independ=
ent of this Unidirectional streams PR.

- Igor


-----Original Message-----
From: Kazuho Oku [mailto:kazuhooku@gmail.com]
Sent: Wednesday, July 05, 2017 1:41 AM
To: Ian Swett <ianswett@google.com>
Cc: Lubashev, Igor <ilubashe@akamai.com>; Mike Bishop <Michael.Bishop@micro=
soft.com>; Dmitri Tikhonov <dtikhonov@litespeedtech.com>; Swindells, Thomas=
 (Nokia - GB/Cambridge, UK) <thomas.swindells@nokia.com>; Jo Kulik <jokulik=
@google.com>; Mikkel Fahn=F8e J=F8rgensen <mikkelfj@gmail.com>; QUIC WG <qu=
ic@ietf.org>; Martin Thomson <martin.thomson@gmail.com>
Subject: Re: Unidirectional streams PR

2017-06-29 10:23 GMT+09:00 Ian Swett <ianswett@google.com>:
> I updated my PR(#656) today, sorry for the delay.  I attempted to
> address the issues identified with text.  Some may prefer more tweaks
> to the state diagram, which are also possible, so I'm open to suggestions=
.

After all, I think that the approach proposed here is the most well-balance=
d one.

As much as I think that having first-class support for unidirectional strea=
ms is preferable, I also think that we should keep the overall architecture=
 (i.e. sum of the complexity in the transport layer and the application lay=
er) as simple as possible.

IMO having support for bidirectional streams (along with support for unidir=
ectional streams) aligns with such intention.

Most of the application protocols that will be deployed over the QUIC trans=
port will be in request-response style, at least to some extent.
Hence it is preferable for the transport layer to provide a framework that =
fits such style.

Bidirectional streams provide the necessary features. FIN provides a way to=
 indicate the end of the message. RST provides a way to cancel the exchange=
 of the message in both directions.

IMO the biggest issue with the unidirectional-only approach is that you can=
not have the two features together. If a client needs a way to reset the se=
rver's response before observing the first frame, it cannot use FIN as an i=
ndicator of the end of the request.

It is true that the issue can be evaded by doing one's own framing in the a=
pplication layer. #643 does that by introducing a CANCEL_REQUEST frame.

But I do not think that we should require every application protocol built =
above QUIC to do its own framing. In addition to that, need to keep two uni=
-directional streams open would consume more resources than being able to c=
lose one direction of a bi-directional stream at an earlier moment.

> In the meantime, I've been considering other alternatives, including
> variations on Mike's direction and a variation of the "Do Nothing"
> option which involved the application signaling to the transport that
> streams of a certain sort(ie: server to client for server push) were
> unidirectional, as GQUIC does today.  Overall, I think the approach
> I've outlined does a good job of iterating on existing deployment
> experience and adding explicit signaling for unidirectional streams
> instead of implicit signaling at the application layer.  There are
> pros and cons to both explicit and implicit signaling, but I think
> explicit signaling is more complete and less prone to application error.
>
> Thanks, Ian
>
>
> On Wed, Jun 28, 2017 at 8:14 PM, Lubashev, Igor <ilubashe@akamai.com> wro=
te:
>>
>> > unless what the transport provides is a perfect fit for application
>> > semantics, you end up building those semantics into the application an=
yway.
>>
>> I agree with this. We should avoid adding complexity into transport
>> for rare use cases, since it goes against KISS principle.
>>
>> On the other hand, adding support for a by far the most common use
>> case makes a lot of sense.  This helps apps avoid screwing up
>> implementing that common case and lets us optimize that common case
>> in the lower layer. BiDi streams are such common cases. Uni streams
>> are likely to be the second-most-common cases (hence you offered this PR=
 to optimize them).
>>
>>
>> The Associated Streams proposal offers extra semantic flexibility at
>> a cost of some semantic complexity (someone would need to verify that
>> the associated stream numbers make sense -- api? apps?) and a few extra =
bytes.
>>
>> I'd like to wait to see Ian's revised proposal.  The initial proposal
>> offered to do only one thing -- offer a choice of uni/bi-directional
>> streams
>> -- but it did it in a very simple way, which is nice.
>>
>> - Igor
>>
>>
>> -----Original Message-----
>> From: Martin Thomson [mailto:martin.thomson@gmail.com]
>> Sent: Wednesday, June 28, 2017 7:28 PM
>> To: Mike Bishop <Michael.Bishop@microsoft.com>
>> Cc: Swindells, Thomas (Nokia - GB/Cambridge, UK)
>> <thomas.swindells@nokia.com>; QUIC WG <quic@ietf.org>; Mikkel Fahn=F8e
>> J=F8rgensen <mikkelfj@gmail.com>; Dmitri Tikhonov
>> <dtikhonov@litespeedtech.com>; Jo Kulik <jokulik@google.com>
>> Subject: Re: Unidirectional streams PR
>>
>> There is probably a simpler approach here, take a bit (as Ian did)
>> and say that if that bit is set, then the stream is in response to
>> another and the stream ID of the stream to which this is responding
>> follows immediately after the stream ID of the stream itself.  You
>> could then include that only at the start of the stream, or in multiple =
frames (or as we decide).
>>
>> The problem with this, as with several of the other issues we're
>> discussing, is that unless what the transport provides is a perfect
>> fit for application semantics, you end up building those semantics
>> into the application anyway.  HTTP certainly can't survive without
>> its own association semantics for pushes.  That suggests to me that
>> having bidirectional semantics in the transport creates more
>> duplication than otherwise.  Hence my proposal.
>>
>> On 28 June 2017 at 15:26, Mike Bishop <Michael.Bishop@microsoft.com>
>> wrote:
>> > As promised, a PR for adding =93associated streams=94 is at
>> > https://github.com/quicwg/base-drafts/pull/672.  This very
>> > deliberately builds on top of MT=92s PR =96 it=92s adding a primitive
>> > which can be used to construct various abstractions atop
>> > unidirectional streams, but the lifecycle is still fundamentally unidi=
rectional.
>> >
>> >
>> >
>> > Copying my notes here for list discussion purposes.
>> >
>> > Major changes
>> >
>> > Leveraging @igorlord's insight that OO=3D00 only occurs on the first
>> > STREAM frame of a stream, I used that as the trigger for a Stream
>> > Properties byte.
>> > Two bits of that byte describe the directionality of the stream:
>> >
>> > Unidirectional (no response expected) Initial bidirectional (one
>> > response expected) Initial multi-response (one or more responses
>> > expected; needs a better name) Response
>> >
>> > If the type is Response, there's an Associated Stream ID field,
>> > length given by two more bits following the same pattern as the SS
>> > bits in the STREAM frame ID.
>> >
>> > Personal Opinion
>> >
>> > On the plus side, these stream types seem to cover the abstractions
>> > I can envision for most applications. You can unilaterally send
>> > something (unidirectional), do request/response (bidirectional), or
>> > pub/sub (single subscription stream, series of update streams).
>> >
>> > I don't care for the fact that I still need the stream type header
>> > in HTTP after putting this in the transport. That will be
>> > ameliorated if we go back to one stream per request, since all
>> > unidirectional streams will be push streams. (As a side-note, I
>> > considered using the multiple-response option in the HTTP mapping,
>> > but then I need a stream header again to indicate which is the
>> > response and which the pushes.)
>> >
>> > I particularly don't like that you now have to look at the frame
>> > type header to find out whether a field exists which tells you the
>> > length of something else in the header. I'd like to simplify that.
>> > I went with this model over a CREATE_STREAM frame because of
>> > @mikkelfj's use-case of very small messages
>> > -- this adds only one byte to the first frame on a stream in one
>> > direction and 2-5 bytes to the first frame of response streams. A
>> > separate frame type would be somewhat larger, but could be cleaner
>> > in that respect.
>> >
>> >
>> >
>> >
>> >
>> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Swindells,
>> > Thomas (Nokia - GB/Cambridge, UK)
>> > Sent: Wednesday, June 28, 2017 7:56 AM
>> > To: Jo Kulik <jokulik@google.com>; Mikkel Fahn=F8e J=F8rgensen
>> > <mikkelfj@gmail.com>
>> > Cc: QUIC WG <quic@ietf.org>; Dmitri Tikhonov
>> > <dtikhonov@litespeedtech.com>
>> > Subject: RE: Unidirectional streams PR
>> >
>> >
>> >
>> > I agree that looking at the layers of abstraction is useful. In
>> > principle having the wire protocol just have constructs for
>> > unidirectional streams does not in itself limit creating
>> > bi-directional communication flows, supported at either the library
>> > or application layer.
>> >
>> >
>> >
>> > However, there need to be a standard way of doing bi-directional
>> > communication for migrating applications implemented using a socket
>> > style api. It needs to be easy to move an existing application from
>> > TCP to QUIC.
>> > This move may be attractive in many situations as QUIC gives
>> > improved security and may allow greater throughput due to the more
>> > modern (and
>> > customizable) congestion control algorithms compared to the OS TCP
>> > stack.
>> >
>> >
>> >
>> > For migrating standard socket api applications I don=92t think it
>> > would be appropriate to leave the work to the application to do
>> > correlation, at least the library should be providing this service
>> > using the wire protocol as appropriate. Clearly we want a client
>> > written with one library to be able to communicate successfully
>> > with a server written using a different library.
>> > This needs some form of standardization of the signalling. This
>> > could either be a building block overlay on top of QUIC, or
>> > implemented at the wire protocol level.
>> >
>> >
>> >
>> > In terms of patterns I think the following may be some of the most
>> > common patterns (with potential to be provided at the library and
>> > or wire protocol level).
>> >
>> > I/O pattern  : Example
>> >
>> > 1/0   : An input only flow, perhaps a data logger like syslog with no
>> > confirmation/feedback
>> >
>> > 0/1  : an output only flow, perhaps a topic message bus service
>> > with no confirmation/feedback
>> >
>> > 1/1 : standard TCP applications with a single flow per connection
>> >
>> > 1/* : single input, many output, modelling STDIN/STDOUT+STDERR
>> >
>> > (1/1)* : multiplexed pairs of flows =96 supporting multiple sockets
>> > muxed onto a single QUIC connection
>> >
>> >
>> >
>> > Obviously, an application would always have the option to combine
>> > any single direction flows with application level correlators to
>> > construct more complex flows if desired.
>> >
>> >
>> >
>> > At the moment my gut says the 1/1 use-case is common enough that
>> > the wire protocol should provide a standard mechanism to support it
>> > as a standard overlay would probably end up being treated as part
>> > of the wire format anyway.
>> >
>> >
>> >
>> > Perhaps streams should be explicitly created with a CREATE_STREAM
>> > frame which would be capable of defining multiple related streams?
>> >
>> > There is the option of whether only (1/1) pairs can be created this
>> > way, or
>> > (1/n) combinations could be supported (with an application defined
>> > way to identify the use of each of the output streams). A step
>> > further may be that there is a transport parameter that defines
>> > whether the server is allowed to create additional streams, or if
>> > stream creation is purely client driven (like TCP). I don=92t know if
>> > either of these would simplify how to handle stream accounting, and
>> > in particular only creating a flow when all parties have sufficient al=
lowances left.
>> >
>> >
>> >
>> > Thomas
>> >
>> >
>> >
>> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Jo Kulik
>> > Sent: 28 June 2017 15:09
>> > To: Mikkel Fahn=F8e J=F8rgensen <mikkelfj@gmail.com>
>> > Cc: QUIC WG <quic@ietf.org>; Dmitri Tikhonov
>> > <dtikhonov@litespeedtech.com>
>> > Subject: Re: Unidirectional streams PR
>> >
>> >
>> >
>> > I'd like to pop back up to a comment Igor made last week, because I
>> > find it helpful in thinking about the design space:
>> >
>> >
>> >
>> > I think of three layers of abstraction:
>> >
>> > 1.       QUIC Wire Protocol (the thing described by the QUIC Transport
>> > RFC)
>> > 2.       QUIC Library API (a library exposing some useful abstractions
>> > --
>> > such as blocking/non-blocking unidirectional streams and
>> > bidirectional =93sockets=94 -- and implementing them using QUIC Wire P=
rotocol)
>> > 3.       Application (something that uses QUIC Library APIs)
>> >
>> > I think there is some argument to be made that Martin's original
>> > proposal did not take into account how we would achieve (2) for
>> > bi-directional streams.  (I don't think it strictly said "thou
>> > shalt not do (2)" either, but that is up to interpretation.)
>> >
>> >
>> >
>> > Several people have argued that we do not want every application to
>> > have to re-implement bi-directional streams (3) for every
>> > application, and this is not how g-quic (our largest deployment) works=
 right now.
>> > These arguments make sense to me, but YMMV.
>> >
>> >
>> >
>> > Just because the particular *mechanism* that is being proposed has
>> > some issues, however, doesn't scream out to me, at least, that we
>> > should abandon this particular *design goal*.  The goal being a
>> > transport protocol that can elegantly fit with a uni/bi stream model.
>> > Now, if we conclude that there can never be an elegant model that
>> > achieves this goal, then so be it.  But I also feel like we haven't
>> > reached that point in the discussion yet.  (At the very least, this
>> > discussion has been fruitful to me in terms of mapping the design
>> > space and elucidating requirements).
>> >
>> >
>> >
>> > One of the reasons I still think this design goal is under
>> > consideration is that Ian and Igor/Mike have been talking about
>> > alternate solutions which have a similar flavor.  During the recent
>> > "quiet"ness on the thread, personally, I've been waiting to hear
>> > more from them.
>> >
>> >
>> >
>> > On Wed, Jun 28, 2017 at 9:41 AM, Mikkel Fahn=F8e J=F8rgensen
>> > <mikkelfj@gmail.com> wrote:
>> >
>> > In reply to Ranjeeth
>> >
>> >
>> >
>> > It is not only a matter of simplicity for the sake of simplicity:
>> >
>> >
>> >
>> > - A complex transport layer might end up being poorly implemented
>> > leading to reduced interoperability and ultimately adoption. This
>> > complexity is not only in implementation but also in understanding
>> > the exact semantics of stream lifetime. Even if the spec is
>> > sufficiently clear, it will still be open to misinterpretations.
>> >
>> >
>> >
>> > - Bi-directional state may have to be maintained longer and with
>> > more overhead than with uni-directional streams, especially under
>> > loss, potentially leading to poor performance and poor resource
>> > utilisation because the transport layer has insufficient information.
>> >
>> >
>> >
>> > - The extra complexity at the application layer may be overstated -
>> > it is significantly simpler to manage a map that associates to two
>> > streams than it is to maintain bi-directional state at the
>> > transport layer. It is even possible to implicitly link streams
>> > with same identifiers, e.g. in a RPC scenario. That said, I do see
>> > a potential benefit of a wrapper that implements the common bi-directi=
onal case.
>> >
>> >
>> >
>> > - Complexity at the application layer may be duplicated, but
>> > implementation errors are also isolated to that application.
>> > Specifically for HTTP I would assume that QUIC transport and QUIC
>> > HTTP implementers would be large the same for a long time to come,
>> > so I would not expect the tradeoff here to be particularly concerning.
>> >
>> >
>> >
>> > - Unix pipes are traditionally constructed as a pair of
>> > uni-directional file descriptors and that is a reasonably proven
>> > model. C=92s standard library stdin, stdout and stderr is an example
>> > of an asymmetric model with implicit linkage between
>> > uni-directional file descriptors.
>> >
>> >
>> >
>> > - There are lots of use cases for non-HTTP like connectivity -
>> > Kafka high volume message queuing for example. The industry trend
>> > appears to move towards asynchronous processing and messaging. It
>> > depends on whether you look at QUIC as a TCP + TLS replacement, or
>> > as a HTTPS / REST RPC replacement.
>> >
>> >
>> >
>> > - Uni-directional streams may currently be unproven in the wild,
>> > but a proposal is needed before an implementation can be made and
>> > testet. I agree that it is easy to design into wrong assumptions
>> > without real world testing.
>> >
>> >
>> >
>> > - There will hopefully not be a large number of successors to QUIC
>> > - perhaps some purpose specific variants, e.g. for embedded use.
>> > Widespread adaptation and compatibility is very necessary so it
>> > makes sense to have QUIC being sufficiently simple and expressive
>> > to achieve this goal. A polymorf QUIC will not achieve that goal.
>> > On the other hand, a solid QUIC foundation can be used for a large
>> > number of application protocols.
>> >
>> >
>> >
>> > - Finally, it may turn out that uni-directional streams just is a
>> > bad idea - I doubt it, but I do believe real world tests are needed.
>> >
>> >
>> >
>> > Kind Regards,
>> >
>> > Mikkel Fahn=F8e J=F8rgensen
>> >
>> >
>> >
>> > On 28 June 2017 at 14.42.36, Dmitri Tikhonov
>> > (dtikhonov@litespeedtech.com)
>> > wrote:
>> >
>> > On Tue, Jun 27, 2017 at 02:31:38PM -0700, Ranjeeth Kumar Dasineni wrot=
e:
>> >> 2. We are overplaying the simplicity of design. Even if we deem
>> >> deployment experience not a concern, if every application layer
>> >> protocol that needs support for bidirectional streams has to
>> >> implement some correlators and such above, that's a net negative
>> >> in terms of complexity.
>> >
>> > This is an important point: we want QUIC adoption to be made easy.
>> > A program that speaks HTTP today should be able to use an existing
>> > QUIC library without having to emulate bidirectional streams in
>> > order to fit it into HTTP usage pattern. Forcing every one of these
>> > programs to do this is certainly a hurdle.
>> >
>> > - Dmitri.
>> >
>> >
>>
>



--
Kazuho Oku

--_000_MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50MWHPR15MB1455namp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; pad=
ding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta content=3D"text/html; charset=3DUTF-8">
<style type=3D"text/css" style=3D"">
<!--
p
	{margin-top:0;
	margin-bottom:0}
-->
</style>
<div dir=3D"ltr">
<div id=3D"x_divtagdefaultwrapper" dir=3D"ltr" style=3D"font-size:12pt; col=
or:#000000; font-family:Calibri,Helvetica,sans-serif">
<p></p>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
&gt;&nbsp;<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"=
 size=3D"2"><span style=3D"font-size:14.67px">Without such a signal, a gene=
ric proxy that is not aware of your application internals is not able to kn=
ow when to send the FIN</span></font><font face=3D"Calibri,Arial,Helvetica,=
sans-serif,serif,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><b=
r>
</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px"><br>
</span></font></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">I see, this use case does make somewhat=
 sense, however I'm curious if&nbsp;someone has&nbsp;a concrete&nbsp;use ca=
se for a generic QUIC proxy which is not aware of the
 application protocol at all. In TCP this was more common for middleboxes t=
o do because there was no end to end encryption of the transport, however Q=
UIC is encrypted. Even with cases when we&nbsp;tunneling protocols at our e=
nd, we usually have some knowledge of
 the app that we are running because we need to route them differently to d=
ifferent backends.&nbsp;I was mostly thinking that&nbsp;proxies would at le=
ast have some knowledge&nbsp;about HTTP/2 or app protocols.
</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px"><br>
&nbsp;</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,=
EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><br>
Maybe it is&nbsp;possible to make #656 more palatable, at least to me. I ha=
d 2 things against it initially, which were:<br>
<br>
<ol style=3D"margin-bottom:0px; margin-top:0px">
<li>We might need to add another state to the machine to the sender state, =
i.e. normally when sending a FIN, it is ok to keep receiving stream frames =
after, however in a uni directional stream it is illegal to get a stream fr=
ame.</li><li>In its current form it also has an implicit requirement to not=
 open lower streams. I think opening lower streams have some desirable prop=
erties which I've commented on in&nbsp;<a href=3D"https://github.com/quicwg=
/base-drafts/issues/662" class=3D"x_OWAAutoLink" id=3D"LPlnk402095">https:/=
/github.com/quicwg/base-drafts/issues/662</a>.</li></ol>
<div><br>
</div>
<div>An implementation could probably implement 1. with not too much troubl=
e by doing a special case in the stream state machine when it receives a st=
ream frame in the half closed local state.<br>
<br>
For 2. thinking about it a bit more I think the underlying question here is=
&nbsp;who enforces directionality, i.e. did I receive data I should not hav=
e. If it is the transport, then we need to answer that question with issue =
#662, however if it can be the application
 or a higher layer API between the application and transport that enforces =
directionality then we don't need to know whether a lower stream is bi-dire=
ctional or not. I'm leaning towards an API between the transport and applic=
ation enforcing directionality.
 The reason for that is that an application that needs to use unidirectiona=
lity&nbsp;needs to use a different API anyway.&nbsp;Given that we could lea=
ve lower streams to be opened as it is now, but leaving the exact semantics=
 of enforcing bi-directionality or uni-directionality
 to a higher layer. That should suffice for even a generic proxy right?&nbs=
p;<br>
<br>
I still prefer do nothing with app directed close&nbsp;though.</div>
</span></font></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px"><br>
</span></font></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">&gt;&nbsp;<span style=3D"color:rgb(33,3=
3,33); font-family:wf_segoe-ui_normal,&quot;Segoe UI&quot;,&quot;Segoe WP&q=
uot;,Tahoma,Arial,sans-serif,serif,EmojiFont; font-size:13.3333px">But
 I do not think that we should require every application protocol built abo=
ve QUIC to do its own framing.
<br>
<br>
Second Kazuho on this one.</span></span></font></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px"><br>
</span></font></div>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">Subodh</span></font></div>
<p></p>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" =
color=3D"#000000" style=3D"font-size:11pt"><b>From:</b> QUIC &lt;quic-bounc=
es@ietf.org&gt; on behalf of Lubashev, Igor &lt;ilubashe@akamai.com&gt;<br>
<b>Sent:</b> Wednesday, July 5, 2017 8:50:05 PM<br>
<b>To:</b> Kazuho Oku; Ian Swett<br>
<b>Cc:</b> Mike Bishop; Dmitri Tikhonov; Swindells, Thomas (Nokia - GB/Camb=
ridge, UK); Jo Kulik; Mikkel Fahn=F8e J=F8rgensen; QUIC WG; Martin Thomson<=
br>
<b>Subject:</b> RE: Unidirectional streams PR</font>
<div>&nbsp;</div>
</div>
</div>
<font size=3D"2"><span style=3D"font-size:10pt;">
<div class=3D"PlainText">&gt; If a client needs a way to reset the server's=
 response before observing the first frame, it cannot use FIN as an indicat=
or of the end of the request.<br>
<br>
There is a DISINTEREST frame proposal (PR #171: <a href=3D"https://github.c=
om/quicwg/base-drafts/pull/171">
https://github.com/quicwg/base-drafts/pull/171</a>).&nbsp; That's something=
 that I believe is valuable independent of this Unidirectional streams PR.<=
br>
<br>
- Igor<br>
<br>
<br>
-----Original Message-----<br>
From: Kazuho Oku [<a href=3D"mailto:kazuhooku@gmail.com">mailto:kazuhooku@g=
mail.com</a>]
<br>
Sent: Wednesday, July 05, 2017 1:41 AM<br>
To: Ian Swett &lt;ianswett@google.com&gt;<br>
Cc: Lubashev, Igor &lt;ilubashe@akamai.com&gt;; Mike Bishop &lt;Michael.Bis=
hop@microsoft.com&gt;; Dmitri Tikhonov &lt;dtikhonov@litespeedtech.com&gt;;=
 Swindells, Thomas (Nokia - GB/Cambridge, UK) &lt;thomas.swindells@nokia.co=
m&gt;; Jo Kulik &lt;jokulik@google.com&gt;; Mikkel Fahn=F8e J=F8rgensen
 &lt;mikkelfj@gmail.com&gt;; QUIC WG &lt;quic@ietf.org&gt;; Martin Thomson =
&lt;martin.thomson@gmail.com&gt;<br>
Subject: Re: Unidirectional streams PR<br>
<br>
2017-06-29 10:23 GMT&#43;09:00 Ian Swett &lt;ianswett@google.com&gt;:<br>
&gt; I updated my PR(#656) today, sorry for the delay.&nbsp; I attempted to=
 <br>
&gt; address the issues identified with text.&nbsp; Some may prefer more tw=
eaks <br>
&gt; to the state diagram, which are also possible, so I'm open to suggesti=
ons.<br>
<br>
After all, I think that the approach proposed here is the most well-balance=
d one.<br>
<br>
As much as I think that having first-class support for unidirectional strea=
ms is preferable, I also think that we should keep the overall architecture=
 (i.e. sum of the complexity in the transport layer and the application lay=
er) as simple as possible.<br>
<br>
IMO having support for bidirectional streams (along with support for unidir=
ectional streams) aligns with such intention.<br>
<br>
Most of the application protocols that will be deployed over the QUIC trans=
port will be in request-response style, at least to some extent.<br>
Hence it is preferable for the transport layer to provide a framework that =
fits such style.<br>
<br>
Bidirectional streams provide the necessary features. FIN provides a way to=
 indicate the end of the message. RST provides a way to cancel the exchange=
 of the message in both directions.<br>
<br>
IMO the biggest issue with the unidirectional-only approach is that you can=
not have the two features together. If a client needs a way to reset the se=
rver's response before observing the first frame, it cannot use FIN as an i=
ndicator of the end of the request.<br>
<br>
It is true that the issue can be evaded by doing one's own framing in the a=
pplication layer. #643 does that by introducing a CANCEL_REQUEST frame.<br>
<br>
But I do not think that we should require every application protocol built =
above QUIC to do its own framing. In addition to that, need to keep two uni=
-directional streams open would consume more resources than being able to c=
lose one direction of a bi-directional
 stream at an earlier moment.<br>
<br>
&gt; In the meantime, I've been considering other alternatives, including <=
br>
&gt; variations on Mike's direction and a variation of the &quot;Do Nothing=
&quot; <br>
&gt; option which involved the application signaling to the transport that =
<br>
&gt; streams of a certain sort(ie: server to client for server push) were <=
br>
&gt; unidirectional, as GQUIC does today.&nbsp; Overall, I think the approa=
ch <br>
&gt; I've outlined does a good job of iterating on existing deployment <br>
&gt; experience and adding explicit signaling for unidirectional streams <b=
r>
&gt; instead of implicit signaling at the application layer.&nbsp; There ar=
e <br>
&gt; pros and cons to both explicit and implicit signaling, but I think <br=
>
&gt; explicit signaling is more complete and less prone to application erro=
r.<br>
&gt;<br>
&gt; Thanks, Ian<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Jun 28, 2017 at 8:14 PM, Lubashev, Igor &lt;ilubashe@akamai.co=
m&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt; unless what the transport provides is a perfect fit for appli=
cation <br>
&gt;&gt; &gt; semantics, you end up building those semantics into the appli=
cation anyway.<br>
&gt;&gt;<br>
&gt;&gt; I agree with this. We should avoid adding complexity into transpor=
t <br>
&gt;&gt; for rare use cases, since it goes against KISS principle.<br>
&gt;&gt;<br>
&gt;&gt; On the other hand, adding support for a by far the most common use=
 <br>
&gt;&gt; case makes a lot of sense.&nbsp; This helps apps avoid screwing up=
 <br>
&gt;&gt; implementing that common case and lets us optimize that common cas=
e <br>
&gt;&gt; in the lower layer. BiDi streams are such common cases. Uni stream=
s <br>
&gt;&gt; are likely to be the second-most-common cases (hence you offered t=
his PR to optimize them).<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The Associated Streams proposal offers extra semantic flexibility =
at <br>
&gt;&gt; a cost of some semantic complexity (someone would need to verify t=
hat <br>
&gt;&gt; the associated stream numbers make sense -- api? apps?) and a few =
extra bytes.<br>
&gt;&gt;<br>
&gt;&gt; I'd like to wait to see Ian's revised proposal.&nbsp; The initial =
proposal <br>
&gt;&gt; offered to do only one thing -- offer a choice of uni/bi-direction=
al <br>
&gt;&gt; streams<br>
&gt;&gt; -- but it did it in a very simple way, which is nice.<br>
&gt;&gt;<br>
&gt;&gt; - Igor<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; -----Original Message-----<br>
&gt;&gt; From: Martin Thomson [<a href=3D"mailto:martin.thomson@gmail.com">=
mailto:martin.thomson@gmail.com</a>]<br>
&gt;&gt; Sent: Wednesday, June 28, 2017 7:28 PM<br>
&gt;&gt; To: Mike Bishop &lt;Michael.Bishop@microsoft.com&gt;<br>
&gt;&gt; Cc: Swindells, Thomas (Nokia - GB/Cambridge, UK) <br>
&gt;&gt; &lt;thomas.swindells@nokia.com&gt;; QUIC WG &lt;quic@ietf.org&gt;;=
 Mikkel Fahn=F8e <br>
&gt;&gt; J=F8rgensen &lt;mikkelfj@gmail.com&gt;; Dmitri Tikhonov <br>
&gt;&gt; &lt;dtikhonov@litespeedtech.com&gt;; Jo Kulik &lt;jokulik@google.c=
om&gt;<br>
&gt;&gt; Subject: Re: Unidirectional streams PR<br>
&gt;&gt;<br>
&gt;&gt; There is probably a simpler approach here, take a bit (as Ian did)=
 <br>
&gt;&gt; and say that if that bit is set, then the stream is in response to=
 <br>
&gt;&gt; another and the stream ID of the stream to which this is respondin=
g <br>
&gt;&gt; follows immediately after the stream ID of the stream itself.&nbsp=
; You <br>
&gt;&gt; could then include that only at the start of the stream, or in mul=
tiple frames (or as we decide).<br>
&gt;&gt;<br>
&gt;&gt; The problem with this, as with several of the other issues we're <=
br>
&gt;&gt; discussing, is that unless what the transport provides is a perfec=
t <br>
&gt;&gt; fit for application semantics, you end up building those semantics=
 <br>
&gt;&gt; into the application anyway.&nbsp; HTTP certainly can't survive wi=
thout <br>
&gt;&gt; its own association semantics for pushes.&nbsp; That suggests to m=
e that <br>
&gt;&gt; having bidirectional semantics in the transport creates more <br>
&gt;&gt; duplication than otherwise.&nbsp; Hence my proposal.<br>
&gt;&gt;<br>
&gt;&gt; On 28 June 2017 at 15:26, Mike Bishop &lt;Michael.Bishop@microsoft=
.com&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; As promised, a PR for adding =93associated streams=94 is at <=
br>
&gt;&gt; &gt; <a href=3D"https://github.com/quicwg/base-drafts/pull/672">ht=
tps://github.com/quicwg/base-drafts/pull/672</a>.&nbsp; This very
<br>
&gt;&gt; &gt; deliberately builds on top of MT=92s PR =96 it=92s adding a p=
rimitive <br>
&gt;&gt; &gt; which can be used to construct various abstractions atop <br>
&gt;&gt; &gt; unidirectional streams, but the lifecycle is still fundamenta=
lly unidirectional.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Copying my notes here for list discussion purposes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Major changes<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Leveraging @igorlord's insight that OO=3D00 only occurs on th=
e first <br>
&gt;&gt; &gt; STREAM frame of a stream, I used that as the trigger for a St=
ream <br>
&gt;&gt; &gt; Properties byte.<br>
&gt;&gt; &gt; Two bits of that byte describe the directionality of the stre=
am:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Unidirectional (no response expected) Initial bidirectional (=
one <br>
&gt;&gt; &gt; response expected) Initial multi-response (one or more respon=
ses <br>
&gt;&gt; &gt; expected; needs a better name) Response<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; If the type is Response, there's an Associated Stream ID fiel=
d, <br>
&gt;&gt; &gt; length given by two more bits following the same pattern as t=
he SS <br>
&gt;&gt; &gt; bits in the STREAM frame ID.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Personal Opinion<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On the plus side, these stream types seem to cover the abstra=
ctions <br>
&gt;&gt; &gt; I can envision for most applications. You can unilaterally se=
nd <br>
&gt;&gt; &gt; something (unidirectional), do request/response (bidirectiona=
l), or <br>
&gt;&gt; &gt; pub/sub (single subscription stream, series of update streams=
).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I don't care for the fact that I still need the stream type h=
eader <br>
&gt;&gt; &gt; in HTTP after putting this in the transport. That will be <br=
>
&gt;&gt; &gt; ameliorated if we go back to one stream per request, since al=
l <br>
&gt;&gt; &gt; unidirectional streams will be push streams. (As a side-note,=
 I <br>
&gt;&gt; &gt; considered using the multiple-response option in the HTTP map=
ping, <br>
&gt;&gt; &gt; but then I need a stream header again to indicate which is th=
e <br>
&gt;&gt; &gt; response and which the pushes.)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I particularly don't like that you now have to look at the fr=
ame <br>
&gt;&gt; &gt; type header to find out whether a field exists which tells yo=
u the <br>
&gt;&gt; &gt; length of something else in the header. I'd like to simplify =
that. <br>
&gt;&gt; &gt; I went with this model over a CREATE_STREAM frame because of =
<br>
&gt;&gt; &gt; @mikkelfj's use-case of very small messages<br>
&gt;&gt; &gt; -- this adds only one byte to the first frame on a stream in =
one <br>
&gt;&gt; &gt; direction and 2-5 bytes to the first frame of response stream=
s. A <br>
&gt;&gt; &gt; separate frame type would be somewhat larger, but could be cl=
eaner <br>
&gt;&gt; &gt; in that respect.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; From: QUIC [<a href=3D"mailto:quic-bounces@ietf.org">mailto:q=
uic-bounces@ietf.org</a>] On Behalf Of Swindells,
<br>
&gt;&gt; &gt; Thomas (Nokia - GB/Cambridge, UK)<br>
&gt;&gt; &gt; Sent: Wednesday, June 28, 2017 7:56 AM<br>
&gt;&gt; &gt; To: Jo Kulik &lt;jokulik@google.com&gt;; Mikkel Fahn=F8e J=F8=
rgensen <br>
&gt;&gt; &gt; &lt;mikkelfj@gmail.com&gt;<br>
&gt;&gt; &gt; Cc: QUIC WG &lt;quic@ietf.org&gt;; Dmitri Tikhonov <br>
&gt;&gt; &gt; &lt;dtikhonov@litespeedtech.com&gt;<br>
&gt;&gt; &gt; Subject: RE: Unidirectional streams PR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I agree that looking at the layers of abstraction is useful. =
In <br>
&gt;&gt; &gt; principle having the wire protocol just have constructs for <=
br>
&gt;&gt; &gt; unidirectional streams does not in itself limit creating <br>
&gt;&gt; &gt; bi-directional communication flows, supported at either the l=
ibrary <br>
&gt;&gt; &gt; or application layer.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; However, there need to be a standard way of doing bi-directio=
nal <br>
&gt;&gt; &gt; communication for migrating applications implemented using a =
socket <br>
&gt;&gt; &gt; style api. It needs to be easy to move an existing applicatio=
n from <br>
&gt;&gt; &gt; TCP to QUIC.<br>
&gt;&gt; &gt; This move may be attractive in many situations as QUIC gives =
<br>
&gt;&gt; &gt; improved security and may allow greater throughput due to the=
 more <br>
&gt;&gt; &gt; modern (and<br>
&gt;&gt; &gt; customizable) congestion control algorithms compared to the O=
S TCP <br>
&gt;&gt; &gt; stack.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; For migrating standard socket api applications I don=92t thin=
k it <br>
&gt;&gt; &gt; would be appropriate to leave the work to the application to =
do <br>
&gt;&gt; &gt; correlation, at least the library should be providing this se=
rvice <br>
&gt;&gt; &gt; using the wire protocol as appropriate. Clearly we want a cli=
ent <br>
&gt;&gt; &gt; written with one library to be able to communicate successful=
ly <br>
&gt;&gt; &gt; with a server written using a different library.<br>
&gt;&gt; &gt; This needs some form of standardization of the signalling. Th=
is <br>
&gt;&gt; &gt; could either be a building block overlay on top of QUIC, or <=
br>
&gt;&gt; &gt; implemented at the wire protocol level.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In terms of patterns I think the following may be some of the=
 most <br>
&gt;&gt; &gt; common patterns (with potential to be provided at the library=
 and <br>
&gt;&gt; &gt; or wire protocol level).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I/O pattern&nbsp; : Example<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/0&nbsp;&nbsp; : An input only flow, perhaps a data logger l=
ike syslog with no<br>
&gt;&gt; &gt; confirmation/feedback<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 0/1&nbsp; : an output only flow, perhaps a topic message bus =
service <br>
&gt;&gt; &gt; with no confirmation/feedback<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/1 : standard TCP applications with a single flow per connec=
tion<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/* : single input, many output, modelling STDIN/STDOUT&#43;S=
TDERR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; (1/1)* : multiplexed pairs of flows =96 supporting multiple s=
ockets <br>
&gt;&gt; &gt; muxed onto a single QUIC connection<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Obviously, an application would always have the option to com=
bine <br>
&gt;&gt; &gt; any single direction flows with application level correlators=
 to <br>
&gt;&gt; &gt; construct more complex flows if desired.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; At the moment my gut says the 1/1 use-case is common enough t=
hat <br>
&gt;&gt; &gt; the wire protocol should provide a standard mechanism to supp=
ort it <br>
&gt;&gt; &gt; as a standard overlay would probably end up being treated as =
part <br>
&gt;&gt; &gt; of the wire format anyway.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Perhaps streams should be explicitly created with a CREATE_ST=
REAM <br>
&gt;&gt; &gt; frame which would be capable of defining multiple related str=
eams?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; There is the option of whether only (1/1) pairs can be create=
d this <br>
&gt;&gt; &gt; way, or<br>
&gt;&gt; &gt; (1/n) combinations could be supported (with an application de=
fined <br>
&gt;&gt; &gt; way to identify the use of each of the output streams). A ste=
p <br>
&gt;&gt; &gt; further may be that there is a transport parameter that defin=
es <br>
&gt;&gt; &gt; whether the server is allowed to create additional streams, o=
r if <br>
&gt;&gt; &gt; stream creation is purely client driven (like TCP). I don=92t=
 know if <br>
&gt;&gt; &gt; either of these would simplify how to handle stream accountin=
g, and <br>
&gt;&gt; &gt; in particular only creating a flow when all parties have suff=
icient allowances left.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thomas<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; From: QUIC [<a href=3D"mailto:quic-bounces@ietf.org">mailto:q=
uic-bounces@ietf.org</a>] On Behalf Of Jo Kulik<br>
&gt;&gt; &gt; Sent: 28 June 2017 15:09<br>
&gt;&gt; &gt; To: Mikkel Fahn=F8e J=F8rgensen &lt;mikkelfj@gmail.com&gt;<br=
>
&gt;&gt; &gt; Cc: QUIC WG &lt;quic@ietf.org&gt;; Dmitri Tikhonov <br>
&gt;&gt; &gt; &lt;dtikhonov@litespeedtech.com&gt;<br>
&gt;&gt; &gt; Subject: Re: Unidirectional streams PR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I'd like to pop back up to a comment Igor made last week, bec=
ause I <br>
&gt;&gt; &gt; find it helpful in thinking about the design space:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I think of three layers of abstraction:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QUIC Wire Protocol (th=
e thing described by the QUIC Transport<br>
&gt;&gt; &gt; RFC)<br>
&gt;&gt; &gt; 2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QUIC Library API (a li=
brary exposing some useful abstractions<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; such as blocking/non-blocking unidirectional streams and <br>
&gt;&gt; &gt; bidirectional =93sockets=94 -- and implementing them using QU=
IC Wire Protocol)<br>
&gt;&gt; &gt; 3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application (something=
 that uses QUIC Library APIs)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I think there is some argument to be made that Martin's origi=
nal <br>
&gt;&gt; &gt; proposal did not take into account how we would achieve (2) f=
or <br>
&gt;&gt; &gt; bi-directional streams.&nbsp; (I don't think it strictly said=
 &quot;thou <br>
&gt;&gt; &gt; shalt not do (2)&quot; either, but that is up to interpretati=
on.)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Several people have argued that we do not want every applicat=
ion to <br>
&gt;&gt; &gt; have to re-implement bi-directional streams (3) for every <br=
>
&gt;&gt; &gt; application, and this is not how g-quic (our largest deployme=
nt) works right now.<br>
&gt;&gt; &gt; These arguments make sense to me, but YMMV.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Just because the particular *mechanism* that is being propose=
d has <br>
&gt;&gt; &gt; some issues, however, doesn't scream out to me, at least, tha=
t we <br>
&gt;&gt; &gt; should abandon this particular *design goal*.&nbsp; The goal =
being a <br>
&gt;&gt; &gt; transport protocol that can elegantly fit with a uni/bi strea=
m model.<br>
&gt;&gt; &gt; Now, if we conclude that there can never be an elegant model =
that <br>
&gt;&gt; &gt; achieves this goal, then so be it.&nbsp; But I also feel like=
 we haven't <br>
&gt;&gt; &gt; reached that point in the discussion yet.&nbsp; (At the very =
least, this <br>
&gt;&gt; &gt; discussion has been fruitful to me in terms of mapping the de=
sign <br>
&gt;&gt; &gt; space and elucidating requirements).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; One of the reasons I still think this design goal is under <b=
r>
&gt;&gt; &gt; consideration is that Ian and Igor/Mike have been talking abo=
ut <br>
&gt;&gt; &gt; alternate solutions which have a similar flavor.&nbsp; During=
 the recent <br>
&gt;&gt; &gt; &quot;quiet&quot;ness on the thread, personally, I've been wa=
iting to hear <br>
&gt;&gt; &gt; more from them.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Wed, Jun 28, 2017 at 9:41 AM, Mikkel Fahn=F8e J=F8rgensen =
<br>
&gt;&gt; &gt; &lt;mikkelfj@gmail.com&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In reply to Ranjeeth<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It is not only a matter of simplicity for the sake of simplic=
ity:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - A complex transport layer might end up being poorly impleme=
nted <br>
&gt;&gt; &gt; leading to reduced interoperability and ultimately adoption. =
This <br>
&gt;&gt; &gt; complexity is not only in implementation but also in understa=
nding <br>
&gt;&gt; &gt; the exact semantics of stream lifetime. Even if the spec is <=
br>
&gt;&gt; &gt; sufficiently clear, it will still be open to misinterpretatio=
ns.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Bi-directional state may have to be maintained longer and w=
ith <br>
&gt;&gt; &gt; more overhead than with uni-directional streams, especially u=
nder <br>
&gt;&gt; &gt; loss, potentially leading to poor performance and poor resour=
ce <br>
&gt;&gt; &gt; utilisation because the transport layer has insufficient info=
rmation.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - The extra complexity at the application layer may be overst=
ated - <br>
&gt;&gt; &gt; it is significantly simpler to manage a map that associates t=
o two <br>
&gt;&gt; &gt; streams than it is to maintain bi-directional state at the <b=
r>
&gt;&gt; &gt; transport layer. It is even possible to implicitly link strea=
ms <br>
&gt;&gt; &gt; with same identifiers, e.g. in a RPC scenario. That said, I d=
o see <br>
&gt;&gt; &gt; a potential benefit of a wrapper that implements the common b=
i-directional case.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Complexity at the application layer may be duplicated, but =
<br>
&gt;&gt; &gt; implementation errors are also isolated to that application.<=
br>
&gt;&gt; &gt; Specifically for HTTP I would assume that QUIC transport and =
QUIC <br>
&gt;&gt; &gt; HTTP implementers would be large the same for a long time to =
come, <br>
&gt;&gt; &gt; so I would not expect the tradeoff here to be particularly co=
ncerning.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Unix pipes are traditionally constructed as a pair of <br>
&gt;&gt; &gt; uni-directional file descriptors and that is a reasonably pro=
ven <br>
&gt;&gt; &gt; model. C=92s standard library stdin, stdout and stderr is an =
example <br>
&gt;&gt; &gt; of an asymmetric model with implicit linkage between <br>
&gt;&gt; &gt; uni-directional file descriptors.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - There are lots of use cases for non-HTTP like connectivity =
- <br>
&gt;&gt; &gt; Kafka high volume message queuing for example. The industry t=
rend <br>
&gt;&gt; &gt; appears to move towards asynchronous processing and messaging=
. It <br>
&gt;&gt; &gt; depends on whether you look at QUIC as a TCP &#43; TLS replac=
ement, or <br>
&gt;&gt; &gt; as a HTTPS / REST RPC replacement.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Uni-directional streams may currently be unproven in the wi=
ld, <br>
&gt;&gt; &gt; but a proposal is needed before an implementation can be made=
 and <br>
&gt;&gt; &gt; testet. I agree that it is easy to design into wrong assumpti=
ons <br>
&gt;&gt; &gt; without real world testing.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - There will hopefully not be a large number of successors to=
 QUIC <br>
&gt;&gt; &gt; - perhaps some purpose specific variants, e.g. for embedded u=
se.<br>
&gt;&gt; &gt; Widespread adaptation and compatibility is very necessary so =
it <br>
&gt;&gt; &gt; makes sense to have QUIC being sufficiently simple and expres=
sive <br>
&gt;&gt; &gt; to achieve this goal. A polymorf QUIC will not achieve that g=
oal. <br>
&gt;&gt; &gt; On the other hand, a solid QUIC foundation can be used for a =
large <br>
&gt;&gt; &gt; number of application protocols.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Finally, it may turn out that uni-directional streams just =
is a <br>
&gt;&gt; &gt; bad idea - I doubt it, but I do believe real world tests are =
needed.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Kind Regards,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Mikkel Fahn=F8e J=F8rgensen<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On 28 June 2017 at 14.42.36, Dmitri Tikhonov<br>
&gt;&gt; &gt; (dtikhonov@litespeedtech.com)<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Jun 27, 2017 at 02:31:38PM -0700, Ranjeeth Kumar Dasi=
neni wrote:<br>
&gt;&gt; &gt;&gt; 2. We are overplaying the simplicity of design. Even if w=
e deem <br>
&gt;&gt; &gt;&gt; deployment experience not a concern, if every application=
 layer <br>
&gt;&gt; &gt;&gt; protocol that needs support for bidirectional streams has=
 to <br>
&gt;&gt; &gt;&gt; implement some correlators and such above, that's a net n=
egative <br>
&gt;&gt; &gt;&gt; in terms of complexity.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; This is an important point: we want QUIC adoption to be made =
easy.<br>
&gt;&gt; &gt; A program that speaks HTTP today should be able to use an exi=
sting <br>
&gt;&gt; &gt; QUIC library without having to emulate bidirectional streams =
in <br>
&gt;&gt; &gt; order to fit it into HTTP usage pattern. Forcing every one of=
 these <br>
&gt;&gt; &gt; programs to do this is certainly a hurdle.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Dmitri.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Kazuho Oku<br>
</div>
</span></font>
</body>
</html>

--_000_MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50MWHPR15MB1455namp_--


From nobody Thu Jul  6 17:57:35 2017
Return-Path: <kazuhooku@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 329E5131548 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 17:57:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 ZYSLJ7RFmRWW for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 17:57:27 -0700 (PDT)
Received: from mail-pf0-x229.google.com (mail-pf0-x229.google.com [IPv6:2607:f8b0:400e:c00::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 A64EF129564 for <quic@ietf.org>; Thu,  6 Jul 2017 17:57:27 -0700 (PDT)
Received: by mail-pf0-x229.google.com with SMTP id c73so8856789pfk.2 for <quic@ietf.org>; Thu, 06 Jul 2017 17:57:27 -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=I9shb2EJ/ZcRVjnxGbLl7D8yfeam/Lrdqy0L506Vfpw=; b=tgaVTiulKj2k/G//QS98RTGYJE4aO1F9dhEH4eiCHjLp2m/8UdsUrKPHlrRSXdXyEk 8WH4XInfgsX0E+9FyKUXRV7u9mhcDT0JdLFoJRnu97BUb41d1zkwB3DihaRODqhHwtu0 ezUfVUTxS+SedFB1OTvhKEF2LwRIMKHl4R4Hy2a0dHLttEF07qUdho/WcSB61JpoZl5Q DrMlDePhcy6lV7Wfwo/FTkWsOoAMzkxXK01we93MiKWci/+Pbox1bqLw+yzXHEioU6cC 8zN3AzT9HLyH5TRfw26SZM2hTBWtpwv5kxiT1Iq7q+E5seo/hjNyRvtV7X1eIeslJ/Kt L4fg==
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=I9shb2EJ/ZcRVjnxGbLl7D8yfeam/Lrdqy0L506Vfpw=; b=tju38wV9VEGu7Cpmu4MpayXffVQ2yRygxakDqg8daU4oBnyJe4wLF+jckBHIkZqukB M9Fi9rtPXim4BWkIkE9G3VocOcLpRch9A4UfAyzFHl04t//0/aLURIRLpa3Aq/MJgLaB 1z8sjdXoHVvIlpvkzIs9xMGXucUtjFSjmEkfWThk14WsEgnROUIwuk3bTkkSmU6+FgyP kw/uUJIwitkKfVXg+9JtGJZU+bBptxjGY6VvzI/IToZT6kceDBlZeUjIqYBF1PXfiMM5 rcCYjWHZ7MapCK/hW2S1ZCoMLW5XNjzvwg+cLQ1ID+qkhgyxDg0B+oJSXWFc9LC6ADVu m5nA==
X-Gm-Message-State: AIVw113r5xMmHx9J8V47o8l1MchrhkDesDJs7+ojnXNbwFDJYA1zoV0o CSdGyaaxL+XqevjPFdN6dk6oYYHNOA==
X-Received: by 10.98.79.130 with SMTP id f2mr28887499pfj.133.1499389047029; Thu, 06 Jul 2017 17:57:27 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Thu, 6 Jul 2017 17:57:26 -0700 (PDT)
In-Reply-To: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 7 Jul 2017 09:57:26 +0900
Message-ID: <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Martin Thomson <martin.thomson@gmail.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/BXP8RH8Un1f6zyJ0w2URoSidfeI>
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: Fri, 07 Jul 2017 00:57:30 -0000

2017-06-21 16:41 GMT+09:00 Martin Thomson <martin.thomson@gmail.com>:
> I've created a pull request unidirectional streams.
>
> https://github.com/quicwg/base-drafts/pull/643

Thank you for working on the PR.

Going through the PR (and the discussion on this mailing list thread),
I have one question.

Could somebody clarify what a server is expected to do when there are
no more streams than can be used to send a response (i.e. when a
server has used all the Stream IDs up to 2^32-2 and then receives a
request)?

In a protocol that does 1:N mapping between request and response (HTTP
with push can be considered as such a protocol), a server will finish
using all of its streams before the client does. So there is a
possibility that by the time the server observes a new
client-initiated stream carrying a request, it might not have any
unused stream IDs that can be used for sending a response.

I can think of two ways to handle such an issue.

One way is to define a server-sent signal in the application binding
(e.g., HTTP over QUIC) that indicates the client that the request
should be replayed on a different QUIC connection.

The other way is on the client side _guess_ the possibility of server
reaching stream ID starvation, and if there's such a possibility, open
a new connection for sending requests (though making such a guess
might not be easy due to packet reordering).

Going through the PR, I could not find a change that tries to handle
the issue. Hence asking the question.

> I won't go into detail about this here, other than to point out that
> there is extensive rationale for the choices I made in the PR summary,
> a copy of which I will include for your convenience.
>
> ## Transport Changes
>
> Streams are unidirectional.  Each has three states: idle, open, and
> closed.  I separated the transitions for sending and receiving because
> that turned out to be easier to explain.  The reordering thing makes
> them different in subtle ways.
>
> That's all.  The changes in transport are relatively small and they
> simplify streams a lot.  That it also makes the transport more generic
> is a nice bonus.
>
> ## HTTP Changes
>
> This is where the bulk of the changes are.
>
> ### Stream Correlation
>
> Previously request and response were implicitly correlated, as was the
> data correlated with the request or response headers.  With this
> change, that correlation each stream has a header that explicitly
> correlates these.
>
> There are 5 types of stream: connection control, request, response,
> data, and push.  The first two have a simple header that has a type.
> The next two reference another stream in their header, which ties
> request to response and data to request or response.  Push streams
> each reference a PUSH_PROMISE using a newly minted push ID (I decided
> that was cleaner than what I proposed at the interim).
>
> I chose backward references rather than forward references for two
> reasons.  First, request and response correlation can't use forward
> references because that would mean the client would be exerting
> (uncoordinated) control over server streams.  Second, that gives the
> server the most flexibility in terms of how it answers requests (see
> #281).  The cost of using backward references is that endpoints have
> to check that the backward references aren't bad, either referencing
> the wrong type of stream, or with multiple references to the same
> stream.
>
> The presence or absence of a message body is signaled after the
> initial header block using a HAS_BODY frame.  This empty frame
> indicates that another stream will include the body of the message -
> or a promise for a body.  I would like to eliminate this stream split.
> See #245 and #557 for more details on that, though we need to fix #176
> first, which brings us back to QPACK/QCRAM again.
>
> ### Prioritization
>
> This changes prioritization so that it identifies requests.  I only
> made the minimal changes here, which means that this doesn't fix #441
> at the same time, I've left that for later (see below).
>
> ### Cancelling Pushes
>
> Because server push doesn't create streams with PUSH_PROMISE, I had to
> create a way to cancel them between the time that the PUSH_PROMISE is
> sent and when the push stream is created.  That's called RST_PUSH.
>
> ## Things That Need Improvement
>
> I haven't based this on #171.  I think that functionality is good, but
> the last time I looked at the PR I didn't like some of the changes
> Mike made there.  (That's a taste thing.)  This really assumes that we
> accept something very much like #171.
>
> This really needs QPACK/QCRAM.  Right now, it is impossible to cancel
> some types of request using RST_STREAM because not all messages will
> have a body (#176 again).  On balance, given that bodies are what you
> really want to kill, it's not disastrous, but it's a problem
> nonetheless.  I think that we all agree that this is something that we
> need to fix, but we haven't reached the point where we agree on the
> details of the fix.
>
> ## Things That Want Improvement
>
> This also really wants headers and data on the same stream .  It
> doesn't exactly need that, but merging the streams would make things a
> lot easy, both conceptually and structurally.
>
> I chose the simplest possible encoding for all of the fields that I
> touched.  That means that stream IDs are all 32 bits in size and the
> HAS_BODY frame takes an entire 9 octets.  For things that are that
> common, there are many ways in which byte efficiency could be
> improved.
>
> The push ID changes might allow us to trivially fix #441.  Use of an
> as-yet-not-created push ID as a node in the priority tree would allow
> for prioritization to use "empty" nodes.  We'd need to explicitly
> allow that though.
>
> # Fixes
>
> Closes #515, #240, #281, #175.
>



-- 
Kazuho Oku


From nobody Thu Jul  6 18:05:50 2017
Return-Path: <martin.thomson@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 38D60131545 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 18:05:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 bOR2_bRM6atz for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 18:05:42 -0700 (PDT)
Received: from mail-it0-x230.google.com (mail-it0-x230.google.com [IPv6:2607:f8b0:4001:c0b::230]) (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 890B0131559 for <quic@ietf.org>; Thu,  6 Jul 2017 18:05:42 -0700 (PDT)
Received: by mail-it0-x230.google.com with SMTP id m68so18628473ith.1 for <quic@ietf.org>; Thu, 06 Jul 2017 18:05:42 -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=l2NuHp5HQtmOnLMMr7pWfxyQU/hi6a6VmXCYmZVt7JY=; b=kQXqU9Z9I4u7qszKod353KY333wfZrYs5p3bqYaGraVaalHiCJv3I35lFKYVkhCIet 27sy3nIdHYmob2LOi1ae2gMeKBU0jEedLAoevq+3qY9EcrhJ75Nd9sfDv4XSss4+v67L iYo3pW7gPkS521cXDX2hkLeDmWFO5Dq/mW/nIrz5gNLVWY60Kj1tgdAvPtjTYG2qlEoQ 9JGkjqjiRnx+nFhFlEhtmz1CNAr3uUjFea8FAC4Fe5k2yq8Wl1fJD1DU4+gbEJ+J26AK VYErUB85QZnctDzGIC1v8D9N9alb/Hqwzmt7AY4ZcTEhXHanZODufjFwYnLDxH/2Qcjf sLeg==
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=l2NuHp5HQtmOnLMMr7pWfxyQU/hi6a6VmXCYmZVt7JY=; b=Wuvzf0LEWRk27LzKq+0KIkkCN1V4rbgKJ4D2wV/wwv3XoEHYmjvEsuQotOmGGpDMEA J1dMOQYagPbdIqY3+yOp88x3WG4juToLIYa37hyF1AKlikFud33ieSWOtuu+PYcEdmd9 Eqma00Is5EaQ9GH96TUGP2+v7YV8IkH0Ax3wBwAdlLH03pbej+0qcmC+dKqhFC/hm8Va 1ZnqxcvkQ96ufqcRhA4E/O4yd/HDOonSko8bmt62QlAiPMhDy/Lw7p+N3cspkBi7Pf8B sOzTlwVYeHNfRH7rj62eoo52OSgN1W4y8vUXab8nyyc5lAZN2/ZUeJIAgK2yetsL4rtp uCKA==
X-Gm-Message-State: AIVw110f2U3ol+1+qg/H0CVKBDDt5n43r7hrYOGeLT2WqsXPxSmZ/tlc /xgyyB6WWioBK5L4VP1e9TI+wCADig==
X-Received: by 10.36.236.4 with SMTP id g4mr744911ith.60.1499389541981; Thu, 06 Jul 2017 18:05:41 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.129.162 with HTTP; Thu, 6 Jul 2017 18:05:41 -0700 (PDT)
In-Reply-To: <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 7 Jul 2017 11:05:41 +1000
Message-ID: <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/g9yWyVnj0RZ721RXjlC2L4GUHlU>
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: Fri, 07 Jul 2017 01:05:46 -0000

On 7 July 2017 at 10:57, Kazuho Oku <kazuhooku@gmail.com> wrote:
> Could somebody clarify what a server is expected to do when there are
> no more streams than can be used to send a response (i.e. when a
> server has used all the Stream IDs up to 2^32-2 and then receives a
> request)?

I think that the only sensible approach is to give up on the
connection before this point is reached.

A client can't know exactly how many streams a server has open, so I
think that the only sensible course of action is to initiate graceful
shutdown whenever the endpoint might be inclined to MAX_STREAM_ID that
is 2^32-1 or greater.

(In the PR, the limit is 2^32-1.)


From nobody Thu Jul  6 18:43:35 2017
Return-Path: <kazuhooku@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 5F19112F3D5 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 18:43:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 Np9bYQwBYjOi for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 18:43:33 -0700 (PDT)
Received: from mail-pf0-x234.google.com (mail-pf0-x234.google.com [IPv6:2607:f8b0:400e:c00::234]) (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 06CEE129AFA for <quic@ietf.org>; Thu,  6 Jul 2017 18:43:33 -0700 (PDT)
Received: by mail-pf0-x234.google.com with SMTP id e7so9344820pfk.0 for <quic@ietf.org>; Thu, 06 Jul 2017 18:43:33 -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=cLdLsk+2vZpTnZZ6mIuzHS6ZNvCruA4jySBy4s2PDUc=; b=kiBDyUWtoZRE1XqPj4RRj4Z1QUE9ulOxIfj8qL/ofeZOJu+gv8r7gq1uab2+V2vcM9 IMeHHNg6tuj2VObhPK9lFBdXXUUtS6aCnY4ATOWQnd0rHyqIa6kf3F83rgxMnkMftz/J bzqW2/IVk/vRdvPomVTIvvWWrSM6VAdqokEXDMtf78OMI9cVp29C1husxUJyBOGXT8vx +e/jzH93OFH5SKSCJe13ccodj1X7QE9CeOzY/9htbr3Ca3LH3IJ8WSMQIpkGYyHIVgg2 LZDNmUaZWJ7ITRtXEE/Ae1jYI1c5ZRB86hsfyLlgY2rtMuqI1bdL7C1dE+SHiF/Mvzm1 4+Uw==
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=cLdLsk+2vZpTnZZ6mIuzHS6ZNvCruA4jySBy4s2PDUc=; b=FO7IQfFsxaEWd7QvAT0a2gCfXjkcvK+gCF6CfH0rcl13kuiMF68RDP1IWvfgV6ozes 7P0x6lZideAweL4+r5PDoTu/mNJ2wkNjNhwuYf5yKXStqkkxgWtoxFtkoX6NXgXaw+vN cV/nHc1l15JFFpma9dRRVHZQdWcDr3fK4DF8Gjsg12rkqK8fid/Zd1Qwoj14G1lFtXen x3fKYv3Xd8hzeePXYQ2VBzGadH7p4e6DfE+aQWOM1rZfbormzXZRfBKrLilEQKi/WU1W AJXNRb2myVZXZVxeVM3EWU+A8Oaed1Mfd9vmAnllWNNtgABQH7ZjT0RrEE6D7PLR1FDV GzJA==
X-Gm-Message-State: AIVw113fPM/jiRwd5Eaa5zj5h40qDQE1DbPntVqh5Jo6AfrpiSVi7oxo b4W1vveawszLte7AnRJ02qyqkIb0cw==
X-Received: by 10.84.231.197 with SMTP id g5mr144805pln.71.1499391812594; Thu, 06 Jul 2017 18:43:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Thu, 6 Jul 2017 18:43:31 -0700 (PDT)
In-Reply-To: <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com> <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 7 Jul 2017 10:43:31 +0900
Message-ID: <CANatvzw6VGMH8tJbhCxmgTR8_uuxtodiwS2-LT6XkyuBHJz+Fg@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Martin Thomson <martin.thomson@gmail.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/AvDNi8gVkbfZTzPielbcJ5EF_To>
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: Fri, 07 Jul 2017 01:43:34 -0000

2017-07-07 10:05 GMT+09:00 Martin Thomson <martin.thomson@gmail.com>:
> On 7 July 2017 at 10:57, Kazuho Oku <kazuhooku@gmail.com> wrote:
>> Could somebody clarify what a server is expected to do when there are
>> no more streams than can be used to send a response (i.e. when a
>> server has used all the Stream IDs up to 2^32-2 and then receives a
>> request)?
>
> I think that the only sensible approach is to give up on the
> connection before this point is reached.
>
> A client can't know exactly how many streams a server has open, so I
> think that the only sensible course of action is to initiate graceful
> shutdown whenever the endpoint might be inclined to MAX_STREAM_ID that
> is 2^32-1 or greater.
>
> (In the PR, the limit is 2^32-1.)

Thank you for the clarification.

So it would be sensible to stop initiating new requests on an existing
connection when the number of unused stream IDs of the peer becomes as
low as max-concurrent-streams multiplied by some safety factor
(something like 10 would be enough, considering the probability of
loss or reordering of packets carrying DATA frames and consecutive
MAX_STREAM_ID frames).

-- 
Kazuho Oku


From nobody Thu Jul  6 18:49:00 2017
Return-Path: <jri@google.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 D4B02131556 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 18:48:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 GsViu2Wd1X70 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 18:48:53 -0700 (PDT)
Received: from mail-pg0-x234.google.com (mail-pg0-x234.google.com [IPv6:2607:f8b0:400e:c05::234]) (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 89618129B38 for <quic@ietf.org>; Thu,  6 Jul 2017 18:48:53 -0700 (PDT)
Received: by mail-pg0-x234.google.com with SMTP id j186so9349756pge.2 for <quic@ietf.org>; Thu, 06 Jul 2017 18:48:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=v30F62PGZ9rzXQyZiP/thx61l9YsT78JM7jahszdNFY=; b=bTzkVvkReH3zcanqJATWD/Nk12Q3Wle70dKQx+TxksCI4GsWF1FU2MVUqYYlXGRjwd VKneUD7RVxiyHXCQx4Mo5moM5hvWdMhLB0QrcNwvkpn2eIv8QdGQDkUyHmaSdWikyHnn 4+xqHSlPfEJUC8tu3n93CJKJ2akge9Xs9hWT7EeR1dmjKbz5UBCOjYAyde2mbl+/BdJs cCwgHSqykJ/5h00g5aZqPPvtcwi5t13A9ExS7UE1b26SzmSLolU6adMPlDotoH8jevTE LnZ8nMV5njCLE686DpYwTozfZMCKKaJoJb7pYH2K+f+4UVhxze0AxvbdYOBfLGwa8RwF K8pg==
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=v30F62PGZ9rzXQyZiP/thx61l9YsT78JM7jahszdNFY=; b=E8KpbNjunAL8C38VbzbLZt7q3Px2bl9eZ1EwNccyKV3+eUNsNw366bdkkOcVc1C418 SBFmuban5/8jx4rNsy6pLWbzw3BrnuAcdndMbnnlbgqODv7ez1i9tfarnS6T31Rd0ZxA EuUkLoHUNMliP0QWIA/Nim/nYMyu7Ey5sO2D2T+ULudLOvtxdKRLg2C/m+VtW4fa26PA vNg8NOcYUuTEhlRYZYOfBfZr9ioWaimz8Uj8Bdu1r9uTXziRLNzPCdOgljL9c11Jo0sk UbpgcocKV3taYXvD6aVPSMs2Dmx0Fk0WN8UDJ00oo0TlzYGJ6bK8ZxBM/Krv0UGH2xuz f2nw==
X-Gm-Message-State: AIVw111FpKf8vm04B7kGhi8pBzhzju5IaUONNfwEAJUIcin62gSJGvBd hAbpxG0Wbx+Z1kzIY0jx4YwRZCVZh+If
X-Received: by 10.98.110.65 with SMTP id j62mr16338847pfc.115.1499392132648; Thu, 06 Jul 2017 18:48:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.153.19 with HTTP; Thu, 6 Jul 2017 18:48:51 -0700 (PDT)
In-Reply-To: <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com>
From: Jana Iyengar <jri@google.com>
Date: Thu, 6 Jul 2017 18:48:51 -0700
Message-ID: <CAGD1bZYapGBZ=giDmUbCx+-abA7DCQmO08rLnRn_+DtTRg=Wug@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Subodh Iyengar <subodh@fb.com>
Cc: "Lubashev, Igor" <ilubashe@akamai.com>, Kazuho Oku <kazuhooku@gmail.com>,  Ian Swett <ianswett@google.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Jo Kulik <jokulik@google.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary="001a1139535872b2120553b06f38"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Ju1Vy4TglLijBkH45HZ2ChJa2Hk>
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: Fri, 07 Jul 2017 01:48:59 -0000

--001a1139535872b2120553b06f38
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <subodh@fb.com> wrote:

> > Without such a signal, a generic proxy that is not aware of your
> application internals is not able to know when to send the FIN
>
> I see, this use case does make somewhat sense, however I'm curious
> if someone has a concrete use case for a generic QUIC proxy which is not
> aware of the application protocol at all. In TCP this was more common for
> middleboxes to do because there was no end to end encryption of the
> transport, however QUIC is encrypted. Even with cases when we tunneling
> protocols at our end, we usually have some knowledge of the app that we a=
re
> running because we need to route them differently to different backends. =
I
> was mostly thinking that proxies would at least have some knowledge about
> HTTP/2 or app protocols.
>

This is my thinking too. I'm not sure I understand what sort of proxy would
want to know about stream closures... but if such a proxy exists, it
justifies the explicit signal.

Maybe it is possible to make #656 more palatable, at least to me. I had 2
> things against it initially, which were:
>
>
>    1. We might need to add another state to the machine to the sender
>    state, i.e. normally when sending a FIN, it is ok to keep receiving st=
ream
>    frames after, however in a uni directional stream it is illegal to get=
 a
>    stream frame.
>    2. In its current form it also has an implicit requirement to not open
>    lower streams. I think opening lower streams have some desirable prope=
rties
>    which I've commented on in https://github.com/quicwg/
>    base-drafts/issues/662.
>
>
> An implementation could probably implement 1. with not too much trouble b=
y
> doing a special case in the stream state machine when it receives a strea=
m
> frame in the half closed local state.
>

I think this is covered by the current half-closed state. When an outgoing
uni stream is created, it should have a final received offset of 0. If any
STREAM frames are received that have data at an offset > the final received
offset (which is 0 in this case), then the connection is torn down with
QUIC_STREAM_DATA_AFTER_TERMINATION error (see Section 11.3
<https://tools.ietf.org/html/draft-ietf-quic-transport-04#section-11.3>).


> For 2. thinking about it a bit more I think the underlying question here
> is who enforces directionality, i.e. did I receive data I should not have=
.
> If it is the transport, then we need to answer that question with issue
> #662, however if it can be the application or a higher layer API between
> the application and transport that enforces directionality then we don't
> need to know whether a lower stream is bi-directional or not. I'm leaning
> towards an API between the transport and application enforcing
> directionality. The reason for that is that an application that needs to
> use unidirectionality needs to use a different API anyway. Given that we
> could leave lower streams to be opened as it is now, but leaving the exac=
t
> semantics of enforcing bi-directionality or uni-directionality to a highe=
r
> layer. That should suffice for even a generic proxy right?
>

I thought about this, and I'm leaning towards having the transport enforce
this.

I like your suggestion of moving this logic up to the application. Implicit
open is then just "open", and then the stream moves into half-closed state
as it receives an application signal or a STREAM frame with the bit set.
The tradeoff to consider here is that an implementation will not be able to
instantiate an "optimized" uni stream on implicit creation (or will have to
swap a bidirectional stream with a uni one). There's value in allowing
implementations to implement optimized uni/bi stream objects, which would
mean that the transport ought to be able to create one of these two types
of objects, therefore allowing (requiring?) enforcement of directionality
in the transport.

Can you resolve #662 with a separate state? Meaning that implicitly open
streams are now considered "reserved" (or some such). This allows you to
have a separate state until you know for sure which type of stream you're
constructing, which can happen via an application signal or from a received
STREAM frame.

I still prefer do nothing with app directed close though.
>

Having an explicit bit in the frame does allow for some more flexibility,
which may be useful.

> But I do not think that we should require every application protocol
> built above QUIC to do its own framing.
>
> Second Kazuho on this one.
>

+1. This is the biggest argument for bidirectionality -- most applications
need that, and expecting them to all create their own correlators and state
machine to manage bidirectionality goes against what I'd consider useful
transport API design. Extremely common design patterns, such as
bidirectionality, should be part of the transport.

- jana

Subodh
>
> ------------------------------
> *From:* QUIC <quic-bounces@ietf.org> on behalf of Lubashev, Igor <
> ilubashe@akamai.com>
> *Sent:* Wednesday, July 5, 2017 8:50:05 PM
> *To:* Kazuho Oku; Ian Swett
> *Cc:* Mike Bishop; Dmitri Tikhonov; Swindells, Thomas (Nokia -
> GB/Cambridge, UK); Jo Kulik; Mikkel Fahn=C3=B8e J=C3=B8rgensen; QUIC WG; =
Martin
> Thomson
>
> *Subject:* RE: Unidirectional streams PR
>
> > If a client needs a way to reset the server's response before observing
> the first frame, it cannot use FIN as an indicator of the end of the
> request.
>
> There is a DISINTEREST frame proposal (PR #171: https://github.com/quicwg=
/
> base-drafts/pull/171).  That's something that I believe is valuable
> independent of this Unidirectional streams PR.
>
> - Igor
>
>
> -----Original Message-----
> From: Kazuho Oku [mailto:kazuhooku@gmail.com <kazuhooku@gmail.com>]
> Sent: Wednesday, July 05, 2017 1:41 AM
> To: Ian Swett <ianswett@google.com>
> Cc: Lubashev, Igor <ilubashe@akamai.com>; Mike Bishop <
> Michael.Bishop@microsoft.com>; Dmitri Tikhonov <
> dtikhonov@litespeedtech.com>; Swindells, Thomas (Nokia - GB/Cambridge,
> UK) <thomas.swindells@nokia.com>; Jo Kulik <jokulik@google.com>; Mikkel
> Fahn=C3=B8e J=C3=B8rgensen <mikkelfj@gmail.com>; QUIC WG <quic@ietf.org>;=
 Martin
> Thomson <martin.thomson@gmail.com>
> Subject: Re: Unidirectional streams PR
>
> 2017-06-29 10:23 GMT+09:00 Ian Swett <ianswett@google.com>:
> > I updated my PR(#656) today, sorry for the delay.  I attempted to
> > address the issues identified with text.  Some may prefer more tweaks
> > to the state diagram, which are also possible, so I'm open to
> suggestions.
>
> After all, I think that the approach proposed here is the most
> well-balanced one.
>
> As much as I think that having first-class support for unidirectional
> streams is preferable, I also think that we should keep the overall
> architecture (i.e. sum of the complexity in the transport layer and the
> application layer) as simple as possible.
>
> IMO having support for bidirectional streams (along with support for
> unidirectional streams) aligns with such intention.
>
> Most of the application protocols that will be deployed over the QUIC
> transport will be in request-response style, at least to some extent.
> Hence it is preferable for the transport layer to provide a framework tha=
t
> fits such style.
>
> Bidirectional streams provide the necessary features. FIN provides a way
> to indicate the end of the message. RST provides a way to cancel the
> exchange of the message in both directions.
>
> IMO the biggest issue with the unidirectional-only approach is that you
> cannot have the two features together. If a client needs a way to reset t=
he
> server's response before observing the first frame, it cannot use FIN as =
an
> indicator of the end of the request.
>
> It is true that the issue can be evaded by doing one's own framing in the
> application layer. #643 does that by introducing a CANCEL_REQUEST frame.
>
> But I do not think that we should require every application protocol buil=
t
> above QUIC to do its own framing. In addition to that, need to keep two
> uni-directional streams open would consume more resources than being able
> to close one direction of a bi-directional stream at an earlier moment.
>
> > In the meantime, I've been considering other alternatives, including
> > variations on Mike's direction and a variation of the "Do Nothing"
> > option which involved the application signaling to the transport that
> > streams of a certain sort(ie: server to client for server push) were
> > unidirectional, as GQUIC does today.  Overall, I think the approach
> > I've outlined does a good job of iterating on existing deployment
> > experience and adding explicit signaling for unidirectional streams
> > instead of implicit signaling at the application layer.  There are
> > pros and cons to both explicit and implicit signaling, but I think
> > explicit signaling is more complete and less prone to application error=
.
> >
> > Thanks, Ian
> >
> >
> > On Wed, Jun 28, 2017 at 8:14 PM, Lubashev, Igor <ilubashe@akamai.com>
> wrote:
> >>
> >> > unless what the transport provides is a perfect fit for application
> >> > semantics, you end up building those semantics into the application
> anyway.
> >>
> >> I agree with this. We should avoid adding complexity into transport
> >> for rare use cases, since it goes against KISS principle.
> >>
> >> On the other hand, adding support for a by far the most common use
> >> case makes a lot of sense.  This helps apps avoid screwing up
> >> implementing that common case and lets us optimize that common case
> >> in the lower layer. BiDi streams are such common cases. Uni streams
> >> are likely to be the second-most-common cases (hence you offered this
> PR to optimize them).
> >>
> >>
> >> The Associated Streams proposal offers extra semantic flexibility at
> >> a cost of some semantic complexity (someone would need to verify that
> >> the associated stream numbers make sense -- api? apps?) and a few extr=
a
> bytes.
> >>
> >> I'd like to wait to see Ian's revised proposal.  The initial proposal
> >> offered to do only one thing -- offer a choice of uni/bi-directional
> >> streams
> >> -- but it did it in a very simple way, which is nice.
> >>
> >> - Igor
> >>
> >>
> >> -----Original Message-----
> >> From: Martin Thomson [mailto:martin.thomson@gmail.com
> <martin.thomson@gmail.com>]
> >> Sent: Wednesday, June 28, 2017 7:28 PM
> >> To: Mike Bishop <Michael.Bishop@microsoft.com>
> >> Cc: Swindells, Thomas (Nokia - GB/Cambridge, UK)
> >> <thomas.swindells@nokia.com>; QUIC WG <quic@ietf.org>; Mikkel Fahn=C3=
=B8e
> >> J=C3=B8rgensen <mikkelfj@gmail.com>; Dmitri Tikhonov
> >> <dtikhonov@litespeedtech.com>; Jo Kulik <jokulik@google.com>
> >> Subject: Re: Unidirectional streams PR
> >>
> >> There is probably a simpler approach here, take a bit (as Ian did)
> >> and say that if that bit is set, then the stream is in response to
> >> another and the stream ID of the stream to which this is responding
> >> follows immediately after the stream ID of the stream itself.  You
> >> could then include that only at the start of the stream, or in multipl=
e
> frames (or as we decide).
> >>
> >> The problem with this, as with several of the other issues we're
> >> discussing, is that unless what the transport provides is a perfect
> >> fit for application semantics, you end up building those semantics
> >> into the application anyway.  HTTP certainly can't survive without
> >> its own association semantics for pushes.  That suggests to me that
> >> having bidirectional semantics in the transport creates more
> >> duplication than otherwise.  Hence my proposal.
> >>
> >> On 28 June 2017 at 15:26, Mike Bishop <Michael.Bishop@microsoft.com>
> >> wrote:
> >> > As promised, a PR for adding =E2=80=9Cassociated streams=E2=80=9D is=
 at
> >> > https://github.com/quicwg/base-drafts/pull/672.  This very
> >> > deliberately builds on top of MT=E2=80=99s PR =E2=80=93 it=E2=80=99s=
 adding a primitive
> >> > which can be used to construct various abstractions atop
> >> > unidirectional streams, but the lifecycle is still fundamentally
> unidirectional.
> >> >
> >> >
> >> >
> >> > Copying my notes here for list discussion purposes.
> >> >
> >> > Major changes
> >> >
> >> > Leveraging @igorlord's insight that OO=3D00 only occurs on the first
> >> > STREAM frame of a stream, I used that as the trigger for a Stream
> >> > Properties byte.
> >> > Two bits of that byte describe the directionality of the stream:
> >> >
> >> > Unidirectional (no response expected) Initial bidirectional (one
> >> > response expected) Initial multi-response (one or more responses
> >> > expected; needs a better name) Response
> >> >
> >> > If the type is Response, there's an Associated Stream ID field,
> >> > length given by two more bits following the same pattern as the SS
> >> > bits in the STREAM frame ID.
> >> >
> >> > Personal Opinion
> >> >
> >> > On the plus side, these stream types seem to cover the abstractions
> >> > I can envision for most applications. You can unilaterally send
> >> > something (unidirectional), do request/response (bidirectional), or
> >> > pub/sub (single subscription stream, series of update streams).
> >> >
> >> > I don't care for the fact that I still need the stream type header
> >> > in HTTP after putting this in the transport. That will be
> >> > ameliorated if we go back to one stream per request, since all
> >> > unidirectional streams will be push streams. (As a side-note, I
> >> > considered using the multiple-response option in the HTTP mapping,
> >> > but then I need a stream header again to indicate which is the
> >> > response and which the pushes.)
> >> >
> >> > I particularly don't like that you now have to look at the frame
> >> > type header to find out whether a field exists which tells you the
> >> > length of something else in the header. I'd like to simplify that.
> >> > I went with this model over a CREATE_STREAM frame because of
> >> > @mikkelfj's use-case of very small messages
> >> > -- this adds only one byte to the first frame on a stream in one
> >> > direction and 2-5 bytes to the first frame of response streams. A
> >> > separate frame type would be somewhat larger, but could be cleaner
> >> > in that respect.
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > From: QUIC [mailto:quic-bounces@ietf.org <quic-bounces@ietf.org>] On
> Behalf Of Swindells,
> >> > Thomas (Nokia - GB/Cambridge, UK)
> >> > Sent: Wednesday, June 28, 2017 7:56 AM
> >> > To: Jo Kulik <jokulik@google.com>; Mikkel Fahn=C3=B8e J=C3=B8rgensen
> >> > <mikkelfj@gmail.com>
> >> > Cc: QUIC WG <quic@ietf.org>; Dmitri Tikhonov
> >> > <dtikhonov@litespeedtech.com>
> >> > Subject: RE: Unidirectional streams PR
> >> >
> >> >
> >> >
> >> > I agree that looking at the layers of abstraction is useful. In
> >> > principle having the wire protocol just have constructs for
> >> > unidirectional streams does not in itself limit creating
> >> > bi-directional communication flows, supported at either the library
> >> > or application layer.
> >> >
> >> >
> >> >
> >> > However, there need to be a standard way of doing bi-directional
> >> > communication for migrating applications implemented using a socket
> >> > style api. It needs to be easy to move an existing application from
> >> > TCP to QUIC.
> >> > This move may be attractive in many situations as QUIC gives
> >> > improved security and may allow greater throughput due to the more
> >> > modern (and
> >> > customizable) congestion control algorithms compared to the OS TCP
> >> > stack.
> >> >
> >> >
> >> >
> >> > For migrating standard socket api applications I don=E2=80=99t think=
 it
> >> > would be appropriate to leave the work to the application to do
> >> > correlation, at least the library should be providing this service
> >> > using the wire protocol as appropriate. Clearly we want a client
> >> > written with one library to be able to communicate successfully
> >> > with a server written using a different library.
> >> > This needs some form of standardization of the signalling. This
> >> > could either be a building block overlay on top of QUIC, or
> >> > implemented at the wire protocol level.
> >> >
> >> >
> >> >
> >> > In terms of patterns I think the following may be some of the most
> >> > common patterns (with potential to be provided at the library and
> >> > or wire protocol level).
> >> >
> >> > I/O pattern  : Example
> >> >
> >> > 1/0   : An input only flow, perhaps a data logger like syslog with n=
o
> >> > confirmation/feedback
> >> >
> >> > 0/1  : an output only flow, perhaps a topic message bus service
> >> > with no confirmation/feedback
> >> >
> >> > 1/1 : standard TCP applications with a single flow per connection
> >> >
> >> > 1/* : single input, many output, modelling STDIN/STDOUT+STDERR
> >> >
> >> > (1/1)* : multiplexed pairs of flows =E2=80=93 supporting multiple so=
ckets
> >> > muxed onto a single QUIC connection
> >> >
> >> >
> >> >
> >> > Obviously, an application would always have the option to combine
> >> > any single direction flows with application level correlators to
> >> > construct more complex flows if desired.
> >> >
> >> >
> >> >
> >> > At the moment my gut says the 1/1 use-case is common enough that
> >> > the wire protocol should provide a standard mechanism to support it
> >> > as a standard overlay would probably end up being treated as part
> >> > of the wire format anyway.
> >> >
> >> >
> >> >
> >> > Perhaps streams should be explicitly created with a CREATE_STREAM
> >> > frame which would be capable of defining multiple related streams?
> >> >
> >> > There is the option of whether only (1/1) pairs can be created this
> >> > way, or
> >> > (1/n) combinations could be supported (with an application defined
> >> > way to identify the use of each of the output streams). A step
> >> > further may be that there is a transport parameter that defines
> >> > whether the server is allowed to create additional streams, or if
> >> > stream creation is purely client driven (like TCP). I don=E2=80=99t =
know if
> >> > either of these would simplify how to handle stream accounting, and
> >> > in particular only creating a flow when all parties have sufficient
> allowances left.
> >> >
> >> >
> >> >
> >> > Thomas
> >> >
> >> >
> >> >
> >> > From: QUIC [mailto:quic-bounces@ietf.org <quic-bounces@ietf.org>] On
> Behalf Of Jo Kulik
> >> > Sent: 28 June 2017 15:09
> >> > To: Mikkel Fahn=C3=B8e J=C3=B8rgensen <mikkelfj@gmail.com>
> >> > Cc: QUIC WG <quic@ietf.org>; Dmitri Tikhonov
> >> > <dtikhonov@litespeedtech.com>
> >> > Subject: Re: Unidirectional streams PR
> >> >
> >> >
> >> >
> >> > I'd like to pop back up to a comment Igor made last week, because I
> >> > find it helpful in thinking about the design space:
> >> >
> >> >
> >> >
> >> > I think of three layers of abstraction:
> >> >
> >> > 1.       QUIC Wire Protocol (the thing described by the QUIC Transpo=
rt
> >> > RFC)
> >> > 2.       QUIC Library API (a library exposing some useful abstractio=
ns
> >> > --
> >> > such as blocking/non-blocking unidirectional streams and
> >> > bidirectional =E2=80=9Csockets=E2=80=9D -- and implementing them usi=
ng QUIC Wire
> Protocol)
> >> > 3.       Application (something that uses QUIC Library APIs)
> >> >
> >> > I think there is some argument to be made that Martin's original
> >> > proposal did not take into account how we would achieve (2) for
> >> > bi-directional streams.  (I don't think it strictly said "thou
> >> > shalt not do (2)" either, but that is up to interpretation.)
> >> >
> >> >
> >> >
> >> > Several people have argued that we do not want every application to
> >> > have to re-implement bi-directional streams (3) for every
> >> > application, and this is not how g-quic (our largest deployment)
> works right now.
> >> > These arguments make sense to me, but YMMV.
> >> >
> >> >
> >> >
> >> > Just because the particular *mechanism* that is being proposed has
> >> > some issues, however, doesn't scream out to me, at least, that we
> >> > should abandon this particular *design goal*.  The goal being a
> >> > transport protocol that can elegantly fit with a uni/bi stream model=
.
> >> > Now, if we conclude that there can never be an elegant model that
> >> > achieves this goal, then so be it.  But I also feel like we haven't
> >> > reached that point in the discussion yet.  (At the very least, this
> >> > discussion has been fruitful to me in terms of mapping the design
> >> > space and elucidating requirements).
> >> >
> >> >
> >> >
> >> > One of the reasons I still think this design goal is under
> >> > consideration is that Ian and Igor/Mike have been talking about
> >> > alternate solutions which have a similar flavor.  During the recent
> >> > "quiet"ness on the thread, personally, I've been waiting to hear
> >> > more from them.
> >> >
> >> >
> >> >
> >> > On Wed, Jun 28, 2017 at 9:41 AM, Mikkel Fahn=C3=B8e J=C3=B8rgensen
> >> > <mikkelfj@gmail.com> wrote:
> >> >
> >> > In reply to Ranjeeth
> >> >
> >> >
> >> >
> >> > It is not only a matter of simplicity for the sake of simplicity:
> >> >
> >> >
> >> >
> >> > - A complex transport layer might end up being poorly implemented
> >> > leading to reduced interoperability and ultimately adoption. This
> >> > complexity is not only in implementation but also in understanding
> >> > the exact semantics of stream lifetime. Even if the spec is
> >> > sufficiently clear, it will still be open to misinterpretations.
> >> >
> >> >
> >> >
> >> > - Bi-directional state may have to be maintained longer and with
> >> > more overhead than with uni-directional streams, especially under
> >> > loss, potentially leading to poor performance and poor resource
> >> > utilisation because the transport layer has insufficient information=
.
> >> >
> >> >
> >> >
> >> > - The extra complexity at the application layer may be overstated -
> >> > it is significantly simpler to manage a map that associates to two
> >> > streams than it is to maintain bi-directional state at the
> >> > transport layer. It is even possible to implicitly link streams
> >> > with same identifiers, e.g. in a RPC scenario. That said, I do see
> >> > a potential benefit of a wrapper that implements the common
> bi-directional case.
> >> >
> >> >
> >> >
> >> > - Complexity at the application layer may be duplicated, but
> >> > implementation errors are also isolated to that application.
> >> > Specifically for HTTP I would assume that QUIC transport and QUIC
> >> > HTTP implementers would be large the same for a long time to come,
> >> > so I would not expect the tradeoff here to be particularly concernin=
g.
> >> >
> >> >
> >> >
> >> > - Unix pipes are traditionally constructed as a pair of
> >> > uni-directional file descriptors and that is a reasonably proven
> >> > model. C=E2=80=99s standard library stdin, stdout and stderr is an e=
xample
> >> > of an asymmetric model with implicit linkage between
> >> > uni-directional file descriptors.
> >> >
> >> >
> >> >
> >> > - There are lots of use cases for non-HTTP like connectivity -
> >> > Kafka high volume message queuing for example. The industry trend
> >> > appears to move towards asynchronous processing and messaging. It
> >> > depends on whether you look at QUIC as a TCP + TLS replacement, or
> >> > as a HTTPS / REST RPC replacement.
> >> >
> >> >
> >> >
> >> > - Uni-directional streams may currently be unproven in the wild,
> >> > but a proposal is needed before an implementation can be made and
> >> > testet. I agree that it is easy to design into wrong assumptions
> >> > without real world testing.
> >> >
> >> >
> >> >
> >> > - There will hopefully not be a large number of successors to QUIC
> >> > - perhaps some purpose specific variants, e.g. for embedded use.
> >> > Widespread adaptation and compatibility is very necessary so it
> >> > makes sense to have QUIC being sufficiently simple and expressive
> >> > to achieve this goal. A polymorf QUIC will not achieve that goal.
> >> > On the other hand, a solid QUIC foundation can be used for a large
> >> > number of application protocols.
> >> >
> >> >
> >> >
> >> > - Finally, it may turn out that uni-directional streams just is a
> >> > bad idea - I doubt it, but I do believe real world tests are needed.
> >> >
> >> >
> >> >
> >> > Kind Regards,
> >> >
> >> > Mikkel Fahn=C3=B8e J=C3=B8rgensen
> >> >
> >> >
> >> >
> >> > On 28 June 2017 at 14.42.36, Dmitri Tikhonov
> >> > (dtikhonov@litespeedtech.com)
> >> > wrote:
> >> >
> >> > On Tue, Jun 27, 2017 at 02:31:38PM -0700, Ranjeeth Kumar Dasineni
> wrote:
> >> >> 2. We are overplaying the simplicity of design. Even if we deem
> >> >> deployment experience not a concern, if every application layer
> >> >> protocol that needs support for bidirectional streams has to
> >> >> implement some correlators and such above, that's a net negative
> >> >> in terms of complexity.
> >> >
> >> > This is an important point: we want QUIC adoption to be made easy.
> >> > A program that speaks HTTP today should be able to use an existing
> >> > QUIC library without having to emulate bidirectional streams in
> >> > order to fit it into HTTP usage pattern. Forcing every one of these
> >> > programs to do this is certainly a hurdle.
> >> >
> >> > - Dmitri.
> >> >
> >> >
> >>
> >
>
>
>
> --
> Kazuho Oku
>

--001a1139535872b2120553b06f38
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On W=
ed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <span dir=3D"ltr">&lt;<a href=
=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt;</span> wr=
ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div>


<div dir=3D"ltr">
<div id=3D"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" =
style=3D"font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans=
-serif"><span class=3D"gmail-">
<p></p>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:1=
6px;margin-top:0px;margin-bottom:0px">
&gt;=C2=A0<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"=
 size=3D"2"><span style=3D"font-size:14.67px">Without such a signal, a gene=
ric proxy that is not aware of your application internals is not able to kn=
ow when to send the FIN</span></font><font face=3D"Calibri,Arial,Helvetica,=
sans-serif,serif,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><b=
r>
</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px"><br>
</span></font></div>
</span><div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,Emo=
jiFont,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEm=
oji,&quot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font=
-size:16px;margin-top:0px;margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">I see, this use case does make somewhat=
 sense, however I&#39;m curious if=C2=A0someone has=C2=A0a concrete=C2=A0us=
e case for a generic QUIC proxy which is not aware of the
 application protocol at all. In TCP this was more common for middleboxes t=
o do because there was no end to end encryption of the transport, however Q=
UIC is encrypted. Even with cases when we=C2=A0tunneling protocols at our e=
nd, we usually have some knowledge of
 the app that we are running because we need to route them differently to d=
ifferent backends.=C2=A0I was mostly thinking that=C2=A0proxies would at le=
ast have some knowledge=C2=A0about HTTP/2 or app protocols.
</span></font></div></div></div></div></blockquote><div><br></div><div>This=
 is my thinking too. I&#39;m not sure I understand what sort of proxy would=
 want to know about stream closures... but if such a proxy exists, it justi=
fies the explicit signal.</div><div><br></div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex"><div><div dir=3D"ltr"><div id=3D"gmail-m_-630294630734=
7034312x_divtagdefaultwrapper" dir=3D"ltr" style=3D"font-size:12pt;color:rg=
b(0,0,0);font-family:Calibri,Helvetica,sans-serif"><div style=3D"font-famil=
y:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,&quot;Apple Color Emoji&=
quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&quot;Segoe UI Symbol&quot;=
,&quot;Android Emoji&quot;,EmojiSymbols;font-size:16px;margin-top:0px;margi=
n-bottom:0px"><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px">
Maybe it is=C2=A0possible to make #656 more palatable, at least to me. I ha=
d 2 things against it initially, which were:<br>
<br>
<ol style=3D"margin-bottom:0px;margin-top:0px">
<li>We might need to add another state to the machine to the sender state, =
i.e. normally when sending a FIN, it is ok to keep receiving stream frames =
after, however in a uni directional stream it is illegal to get a stream fr=
ame.</li><li>In its current form it also has an implicit requirement to not=
 open lower streams. I think opening lower streams have some desirable prop=
erties which I&#39;ve commented on in=C2=A0<a href=3D"https://github.com/qu=
icwg/base-drafts/issues/662" class=3D"gmail-m_-6302946307347034312x_OWAAuto=
Link" id=3D"gmail-m_-6302946307347034312LPlnk402095" target=3D"_blank">http=
s://github.com/quicwg/<wbr>base-drafts/issues/662</a>.</li></ol>
<div><br>
</div>
<div>An implementation could probably implement 1. with not too much troubl=
e by doing a special case in the stream state machine when it receives a st=
ream frame in the half closed local state.<br></div></span></font></div></d=
iv></div></div></blockquote><div><br></div><div>I think this is covered by =
the current half-closed state. When an outgoing uni stream is created, it s=
hould have a final received offset of 0. If any STREAM frames are received =
that have data at an offset &gt; the final received offset (which is 0 in t=
his case), then the connection is torn down with QUIC_STREAM_DATA_AFTER_TER=
MINATION error (see <a href=3D"https://tools.ietf.org/html/draft-ietf-quic-=
transport-04#section-11.3">Section 11.3</a>).</div><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex"><div><div dir=3D"ltr"><div id=3D=
"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" style=3D"f=
ont-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif"><d=
iv style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,&q=
uot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&quot=
;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:16p=
x;margin-top:0px;margin-bottom:0px"><font face=3D"Calibri,Arial,Helvetica,s=
ans-serif,serif,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><di=
v>
For 2. thinking about it a bit more I think the underlying question here is=
=C2=A0who enforces directionality, i.e. did I receive data I should not hav=
e. If it is the transport, then we need to answer that question with issue =
#662, however if it can be the application
 or a higher layer API between the application and transport that enforces =
directionality then we don&#39;t need to know whether a lower stream is bi-=
directional or not. I&#39;m leaning towards an API between the transport an=
d application enforcing directionality.
 The reason for that is that an application that needs to use unidirectiona=
lity=C2=A0needs to use a different API anyway.=C2=A0Given that we could lea=
ve lower streams to be opened as it is now, but leaving the exact semantics=
 of enforcing bi-directionality or uni-directionality
 to a higher layer. That should suffice for even a generic proxy right?=C2=
=A0</div></span></font></div></div></div></div></blockquote><div><div><br c=
lass=3D"gmail-Apple-interchange-newline">I thought about this, and I&#39;m =
leaning towards having the transport enforce this.=C2=A0</div><div><div><br=
></div><div>I like your suggestion of moving this logic up to the applicati=
on. Implicit open is then just &quot;open&quot;, and then the stream moves =
into half-closed state as it receives an application signal or a STREAM fra=
me with the bit set. The tradeoff to consider here is that an implementatio=
n will not be able to instantiate an &quot;optimized&quot; uni stream on im=
plicit creation (or will have to swap a bidirectional stream with a uni one=
). There&#39;s value in allowing implementations to implement optimized uni=
/bi stream objects, which would mean that the transport ought to be able to=
 create one of these two types of objects, therefore allowing (requiring?) =
enforcement of directionality in the transport.</div></div><div><br></div><=
div>Can you resolve #662 with a separate state? Meaning that implicitly ope=
n streams are now considered &quot;reserved&quot; (or some such). This allo=
ws you to have a separate state until you know for sure which type of strea=
m you&#39;re constructing, which can happen via an application signal or fr=
om a received STREAM frame.</div></div><div><br></div><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex"><div><div dir=3D"ltr"><div id=3D"gmail-m_-6302=
946307347034312x_divtagdefaultwrapper" dir=3D"ltr" style=3D"font-size:12pt;=
color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif"><div style=3D"fo=
nt-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,&quot;Apple Colo=
r Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&quot;Segoe UI Symb=
ol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:16px;margin-top:0=
px;margin-bottom:0px"><font face=3D"Calibri,Arial,Helvetica,sans-serif,seri=
f,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><div>
I still prefer do nothing with app directed close=C2=A0though.</div></span>=
</font></div></div></div></div></blockquote><div><br></div><div>Having an e=
xplicit bit in the frame does allow for some more flexibility, which may be=
 useful.</div><div><br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1=
ex"><div><div dir=3D"ltr"><div id=3D"gmail-m_-6302946307347034312x_divtagde=
faultwrapper" dir=3D"ltr" style=3D"font-size:12pt;color:rgb(0,0,0);font-fam=
ily:Calibri,Helvetica,sans-serif">
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:1=
6px;margin-top:0px;margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">&gt;=C2=A0<span style=3D"color:rgb(33,3=
3,33);font-family:wf_segoe-ui_normal,&quot;Segoe UI&quot;,&quot;Segoe WP&qu=
ot;,Tahoma,Arial,sans-serif,serif,EmojiFont;font-size:13.3333px">But
 I do not think that we should require every application protocol built abo=
ve QUIC to do its own framing.
<br>
<br>
Second Kazuho on this one.</span></span></font></div></div></div></div></bl=
ockquote><div><br></div><div>+1. This is the biggest argument for bidirecti=
onality -- most applications need that, and expecting them to all create th=
eir own correlators and state machine to manage bidirectionality goes again=
st what I&#39;d consider useful transport API design. Extremely common desi=
gn patterns, such as bidirectionality, should be part of the transport.</di=
v><div>=C2=A0</div><div>- jana</div><div><br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,2=
04,204);padding-left:1ex"><div><div dir=3D"ltr"><div id=3D"gmail-m_-6302946=
307347034312x_divtagdefaultwrapper" dir=3D"ltr" style=3D"font-size:12pt;col=
or:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif">
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:1=
6px;margin-top:0px;margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">Subodh</span></font></div>
<p></p>
</div>
<hr style=3D"display:inline-block;width:98%">
<div id=3D"gmail-m_-6302946307347034312x_divRplyFwdMsg" dir=3D"ltr"><font f=
ace=3D"Calibri, sans-serif" color=3D"#000000" style=3D"font-size:11pt"><b>F=
rom:</b> QUIC &lt;<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank=
">quic-bounces@ietf.org</a>&gt; on behalf of Lubashev, Igor &lt;<a href=3D"=
mailto:ilubashe@akamai.com" target=3D"_blank">ilubashe@akamai.com</a>&gt;<b=
r>
<b>Sent:</b> Wednesday, July 5, 2017 8:50:05 PM<br>
<b>To:</b> Kazuho Oku; Ian Swett<br>
<b>Cc:</b> Mike Bishop; Dmitri Tikhonov; Swindells, Thomas (Nokia - GB/Camb=
ridge, UK); Jo Kulik; Mikkel Fahn=C3=B8e J=C3=B8rgensen; QUIC WG; Martin Th=
omson<div><div class=3D"gmail-h5"><br>
<b>Subject:</b> RE: Unidirectional streams PR</div></div></font>
<div>=C2=A0</div>
</div>
</div><div><div class=3D"gmail-h5">
<font size=3D"2"><span style=3D"font-size:10pt">
<div class=3D"gmail-m_-6302946307347034312PlainText">&gt; If a client needs=
 a way to reset the server&#39;s response before observing the first frame,=
 it cannot use FIN as an indicator of the end of the request.<br>
<br>
There is a DISINTEREST frame proposal (PR #171: <a href=3D"https://github.c=
om/quicwg/base-drafts/pull/171" target=3D"_blank">
https://github.com/quicwg/<wbr>base-drafts/pull/171</a>).=C2=A0 That&#39;s =
something that I believe is valuable independent of this Unidirectional str=
eams PR.<br>
<br>
- Igor<br>
<br>
<br>
-----Original Message-----<br>
From: Kazuho Oku [<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">=
mailto:kazuhooku@gmail.com</a>]
<br>
Sent: Wednesday, July 05, 2017 1:41 AM<br>
To: Ian Swett &lt;<a href=3D"mailto:ianswett@google.com" target=3D"_blank">=
ianswett@google.com</a>&gt;<br>
Cc: Lubashev, Igor &lt;<a href=3D"mailto:ilubashe@akamai.com" target=3D"_bl=
ank">ilubashe@akamai.com</a>&gt;; Mike Bishop &lt;<a href=3D"mailto:Michael=
.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@microsoft.com</a>&g=
t;<wbr>; Dmitri Tikhonov &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com"=
 target=3D"_blank">dtikhonov@litespeedtech.com</a>&gt;; Swindells, Thomas (=
Nokia - GB/Cambridge, UK) &lt;<a href=3D"mailto:thomas.swindells@nokia.com"=
 target=3D"_blank">thomas.swindells@nokia.com</a>&gt;; Jo Kulik &lt;<a href=
=3D"mailto:jokulik@google.com" target=3D"_blank">jokulik@google.com</a>&gt;=
; Mikkel Fahn=C3=B8e J=C3=B8rgensen
 &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_blank">mikkelfj@gmail=
.com</a>&gt;; QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_blank=
">quic@ietf.org</a>&gt;; Martin Thomson &lt;<a href=3D"mailto:martin.thomso=
n@gmail.com" target=3D"_blank">martin.thomson@gmail.com</a>&gt;<br>
Subject: Re: Unidirectional streams PR<br>
<br>
2017-06-29 10:23 GMT+09:00 Ian Swett &lt;<a href=3D"mailto:ianswett@google.=
com" target=3D"_blank">ianswett@google.com</a>&gt;:<br>
&gt; I updated my PR(#656) today, sorry for the delay.=C2=A0 I attempted to=
 <br>
&gt; address the issues identified with text.=C2=A0 Some may prefer more tw=
eaks <br>
&gt; to the state diagram, which are also possible, so I&#39;m open to sugg=
estions.<br>
<br>
After all, I think that the approach proposed here is the most well-balance=
d one.<br>
<br>
As much as I think that having first-class support for unidirectional strea=
ms is preferable, I also think that we should keep the overall architecture=
 (i.e. sum of the complexity in the transport layer and the application lay=
er) as simple as possible.<br>
<br>
IMO having support for bidirectional streams (along with support for unidir=
ectional streams) aligns with such intention.<br>
<br>
Most of the application protocols that will be deployed over the QUIC trans=
port will be in request-response style, at least to some extent.<br>
Hence it is preferable for the transport layer to provide a framework that =
fits such style.<br>
<br>
Bidirectional streams provide the necessary features. FIN provides a way to=
 indicate the end of the message. RST provides a way to cancel the exchange=
 of the message in both directions.<br>
<br>
IMO the biggest issue with the unidirectional-only approach is that you can=
not have the two features together. If a client needs a way to reset the se=
rver&#39;s response before observing the first frame, it cannot use FIN as =
an indicator of the end of the request.<br>
<br>
It is true that the issue can be evaded by doing one&#39;s own framing in t=
he application layer. #643 does that by introducing a CANCEL_REQUEST frame.=
<br>
<br>
But I do not think that we should require every application protocol built =
above QUIC to do its own framing. In addition to that, need to keep two uni=
-directional streams open would consume more resources than being able to c=
lose one direction of a bi-directional
 stream at an earlier moment.<br>
<br>
&gt; In the meantime, I&#39;ve been considering other alternatives, includi=
ng <br>
&gt; variations on Mike&#39;s direction and a variation of the &quot;Do Not=
hing&quot; <br>
&gt; option which involved the application signaling to the transport that =
<br>
&gt; streams of a certain sort(ie: server to client for server push) were <=
br>
&gt; unidirectional, as GQUIC does today.=C2=A0 Overall, I think the approa=
ch <br>
&gt; I&#39;ve outlined does a good job of iterating on existing deployment =
<br>
&gt; experience and adding explicit signaling for unidirectional streams <b=
r>
&gt; instead of implicit signaling at the application layer.=C2=A0 There ar=
e <br>
&gt; pros and cons to both explicit and implicit signaling, but I think <br=
>
&gt; explicit signaling is more complete and less prone to application erro=
r.<br>
&gt;<br>
&gt; Thanks, Ian<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Jun 28, 2017 at 8:14 PM, Lubashev, Igor &lt;<a href=3D"mailto:=
ilubashe@akamai.com" target=3D"_blank">ilubashe@akamai.com</a>&gt; wrote:<b=
r>
&gt;&gt;<br>
&gt;&gt; &gt; unless what the transport provides is a perfect fit for appli=
cation <br>
&gt;&gt; &gt; semantics, you end up building those semantics into the appli=
cation anyway.<br>
&gt;&gt;<br>
&gt;&gt; I agree with this. We should avoid adding complexity into transpor=
t <br>
&gt;&gt; for rare use cases, since it goes against KISS principle.<br>
&gt;&gt;<br>
&gt;&gt; On the other hand, adding support for a by far the most common use=
 <br>
&gt;&gt; case makes a lot of sense.=C2=A0 This helps apps avoid screwing up=
 <br>
&gt;&gt; implementing that common case and lets us optimize that common cas=
e <br>
&gt;&gt; in the lower layer. BiDi streams are such common cases. Uni stream=
s <br>
&gt;&gt; are likely to be the second-most-common cases (hence you offered t=
his PR to optimize them).<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The Associated Streams proposal offers extra semantic flexibility =
at <br>
&gt;&gt; a cost of some semantic complexity (someone would need to verify t=
hat <br>
&gt;&gt; the associated stream numbers make sense -- api? apps?) and a few =
extra bytes.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;d like to wait to see Ian&#39;s revised proposal.=C2=A0 The =
initial proposal <br>
&gt;&gt; offered to do only one thing -- offer a choice of uni/bi-direction=
al <br>
&gt;&gt; streams<br>
&gt;&gt; -- but it did it in a very simple way, which is nice.<br>
&gt;&gt;<br>
&gt;&gt; - Igor<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; -----Original Message-----<br>
&gt;&gt; From: Martin Thomson [<a href=3D"mailto:martin.thomson@gmail.com" =
target=3D"_blank">mailto:martin.thomson@gmail.<wbr>com</a>]<br>
&gt;&gt; Sent: Wednesday, June 28, 2017 7:28 PM<br>
&gt;&gt; To: Mike Bishop &lt;<a href=3D"mailto:Michael.Bishop@microsoft.com=
" target=3D"_blank">Michael.Bishop@microsoft.com</a>&gt;<br>
&gt;&gt; Cc: Swindells, Thomas (Nokia - GB/Cambridge, UK) <br>
&gt;&gt; &lt;<a href=3D"mailto:thomas.swindells@nokia.com" target=3D"_blank=
">thomas.swindells@nokia.com</a>&gt;; QUIC WG &lt;<a href=3D"mailto:quic@ie=
tf.org" target=3D"_blank">quic@ietf.org</a>&gt;; Mikkel Fahn=C3=B8e <br>
&gt;&gt; J=C3=B8rgensen &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D=
"_blank">mikkelfj@gmail.com</a>&gt;; Dmitri Tikhonov <br>
&gt;&gt; &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"_blan=
k">dtikhonov@litespeedtech.com</a>&gt;; Jo Kulik &lt;<a href=3D"mailto:joku=
lik@google.com" target=3D"_blank">jokulik@google.com</a>&gt;<br>
&gt;&gt; Subject: Re: Unidirectional streams PR<br>
&gt;&gt;<br>
&gt;&gt; There is probably a simpler approach here, take a bit (as Ian did)=
 <br>
&gt;&gt; and say that if that bit is set, then the stream is in response to=
 <br>
&gt;&gt; another and the stream ID of the stream to which this is respondin=
g <br>
&gt;&gt; follows immediately after the stream ID of the stream itself.=C2=
=A0 You <br>
&gt;&gt; could then include that only at the start of the stream, or in mul=
tiple frames (or as we decide).<br>
&gt;&gt;<br>
&gt;&gt; The problem with this, as with several of the other issues we&#39;=
re <br>
&gt;&gt; discussing, is that unless what the transport provides is a perfec=
t <br>
&gt;&gt; fit for application semantics, you end up building those semantics=
 <br>
&gt;&gt; into the application anyway.=C2=A0 HTTP certainly can&#39;t surviv=
e without <br>
&gt;&gt; its own association semantics for pushes.=C2=A0 That suggests to m=
e that <br>
&gt;&gt; having bidirectional semantics in the transport creates more <br>
&gt;&gt; duplication than otherwise.=C2=A0 Hence my proposal.<br>
&gt;&gt;<br>
&gt;&gt; On 28 June 2017 at 15:26, Mike Bishop &lt;<a href=3D"mailto:Michae=
l.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@microsoft.com</a>&=
gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; As promised, a PR for adding =E2=80=9Cassociated streams=E2=
=80=9D is at <br>
&gt;&gt; &gt; <a href=3D"https://github.com/quicwg/base-drafts/pull/672" ta=
rget=3D"_blank">https://github.com/quicwg/<wbr>base-drafts/pull/672</a>.=C2=
=A0 This very
<br>
&gt;&gt; &gt; deliberately builds on top of MT=E2=80=99s PR =E2=80=93 it=E2=
=80=99s adding a primitive <br>
&gt;&gt; &gt; which can be used to construct various abstractions atop <br>
&gt;&gt; &gt; unidirectional streams, but the lifecycle is still fundamenta=
lly unidirectional.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Copying my notes here for list discussion purposes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Major changes<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Leveraging @igorlord&#39;s insight that OO=3D00 only occurs o=
n the first <br>
&gt;&gt; &gt; STREAM frame of a stream, I used that as the trigger for a St=
ream <br>
&gt;&gt; &gt; Properties byte.<br>
&gt;&gt; &gt; Two bits of that byte describe the directionality of the stre=
am:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Unidirectional (no response expected) Initial bidirectional (=
one <br>
&gt;&gt; &gt; response expected) Initial multi-response (one or more respon=
ses <br>
&gt;&gt; &gt; expected; needs a better name) Response<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; If the type is Response, there&#39;s an Associated Stream ID =
field, <br>
&gt;&gt; &gt; length given by two more bits following the same pattern as t=
he SS <br>
&gt;&gt; &gt; bits in the STREAM frame ID.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Personal Opinion<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On the plus side, these stream types seem to cover the abstra=
ctions <br>
&gt;&gt; &gt; I can envision for most applications. You can unilaterally se=
nd <br>
&gt;&gt; &gt; something (unidirectional), do request/response (bidirectiona=
l), or <br>
&gt;&gt; &gt; pub/sub (single subscription stream, series of update streams=
).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I don&#39;t care for the fact that I still need the stream ty=
pe header <br>
&gt;&gt; &gt; in HTTP after putting this in the transport. That will be <br=
>
&gt;&gt; &gt; ameliorated if we go back to one stream per request, since al=
l <br>
&gt;&gt; &gt; unidirectional streams will be push streams. (As a side-note,=
 I <br>
&gt;&gt; &gt; considered using the multiple-response option in the HTTP map=
ping, <br>
&gt;&gt; &gt; but then I need a stream header again to indicate which is th=
e <br>
&gt;&gt; &gt; response and which the pushes.)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I particularly don&#39;t like that you now have to look at th=
e frame <br>
&gt;&gt; &gt; type header to find out whether a field exists which tells yo=
u the <br>
&gt;&gt; &gt; length of something else in the header. I&#39;d like to simpl=
ify that. <br>
&gt;&gt; &gt; I went with this model over a CREATE_STREAM frame because of =
<br>
&gt;&gt; &gt; @mikkelfj&#39;s use-case of very small messages<br>
&gt;&gt; &gt; -- this adds only one byte to the first frame on a stream in =
one <br>
&gt;&gt; &gt; direction and 2-5 bytes to the first frame of response stream=
s. A <br>
&gt;&gt; &gt; separate frame type would be somewhat larger, but could be cl=
eaner <br>
&gt;&gt; &gt; in that respect.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; From: QUIC [<a href=3D"mailto:quic-bounces@ietf.org" target=
=3D"_blank">mailto:quic-bounces@ietf.org</a>] On Behalf Of Swindells,
<br>
&gt;&gt; &gt; Thomas (Nokia - GB/Cambridge, UK)<br>
&gt;&gt; &gt; Sent: Wednesday, June 28, 2017 7:56 AM<br>
&gt;&gt; &gt; To: Jo Kulik &lt;<a href=3D"mailto:jokulik@google.com" target=
=3D"_blank">jokulik@google.com</a>&gt;; Mikkel Fahn=C3=B8e J=C3=B8rgensen <=
br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_blank">m=
ikkelfj@gmail.com</a>&gt;<br>
&gt;&gt; &gt; Cc: QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_b=
lank">quic@ietf.org</a>&gt;; Dmitri Tikhonov <br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"=
_blank">dtikhonov@litespeedtech.com</a>&gt;<br>
&gt;&gt; &gt; Subject: RE: Unidirectional streams PR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I agree that looking at the layers of abstraction is useful. =
In <br>
&gt;&gt; &gt; principle having the wire protocol just have constructs for <=
br>
&gt;&gt; &gt; unidirectional streams does not in itself limit creating <br>
&gt;&gt; &gt; bi-directional communication flows, supported at either the l=
ibrary <br>
&gt;&gt; &gt; or application layer.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; However, there need to be a standard way of doing bi-directio=
nal <br>
&gt;&gt; &gt; communication for migrating applications implemented using a =
socket <br>
&gt;&gt; &gt; style api. It needs to be easy to move an existing applicatio=
n from <br>
&gt;&gt; &gt; TCP to QUIC.<br>
&gt;&gt; &gt; This move may be attractive in many situations as QUIC gives =
<br>
&gt;&gt; &gt; improved security and may allow greater throughput due to the=
 more <br>
&gt;&gt; &gt; modern (and<br>
&gt;&gt; &gt; customizable) congestion control algorithms compared to the O=
S TCP <br>
&gt;&gt; &gt; stack.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; For migrating standard socket api applications I don=E2=80=99=
t think it <br>
&gt;&gt; &gt; would be appropriate to leave the work to the application to =
do <br>
&gt;&gt; &gt; correlation, at least the library should be providing this se=
rvice <br>
&gt;&gt; &gt; using the wire protocol as appropriate. Clearly we want a cli=
ent <br>
&gt;&gt; &gt; written with one library to be able to communicate successful=
ly <br>
&gt;&gt; &gt; with a server written using a different library.<br>
&gt;&gt; &gt; This needs some form of standardization of the signalling. Th=
is <br>
&gt;&gt; &gt; could either be a building block overlay on top of QUIC, or <=
br>
&gt;&gt; &gt; implemented at the wire protocol level.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In terms of patterns I think the following may be some of the=
 most <br>
&gt;&gt; &gt; common patterns (with potential to be provided at the library=
 and <br>
&gt;&gt; &gt; or wire protocol level).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I/O pattern=C2=A0 : Example<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/0=C2=A0=C2=A0 : An input only flow, perhaps a data logger l=
ike syslog with no<br>
&gt;&gt; &gt; confirmation/feedback<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 0/1=C2=A0 : an output only flow, perhaps a topic message bus =
service <br>
&gt;&gt; &gt; with no confirmation/feedback<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/1 : standard TCP applications with a single flow per connec=
tion<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/* : single input, many output, modelling STDIN/STDOUT+STDER=
R<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; (1/1)* : multiplexed pairs of flows =E2=80=93 supporting mult=
iple sockets <br>
&gt;&gt; &gt; muxed onto a single QUIC connection<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Obviously, an application would always have the option to com=
bine <br>
&gt;&gt; &gt; any single direction flows with application level correlators=
 to <br>
&gt;&gt; &gt; construct more complex flows if desired.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; At the moment my gut says the 1/1 use-case is common enough t=
hat <br>
&gt;&gt; &gt; the wire protocol should provide a standard mechanism to supp=
ort it <br>
&gt;&gt; &gt; as a standard overlay would probably end up being treated as =
part <br>
&gt;&gt; &gt; of the wire format anyway.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Perhaps streams should be explicitly created with a CREATE_ST=
REAM <br>
&gt;&gt; &gt; frame which would be capable of defining multiple related str=
eams?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; There is the option of whether only (1/1) pairs can be create=
d this <br>
&gt;&gt; &gt; way, or<br>
&gt;&gt; &gt; (1/n) combinations could be supported (with an application de=
fined <br>
&gt;&gt; &gt; way to identify the use of each of the output streams). A ste=
p <br>
&gt;&gt; &gt; further may be that there is a transport parameter that defin=
es <br>
&gt;&gt; &gt; whether the server is allowed to create additional streams, o=
r if <br>
&gt;&gt; &gt; stream creation is purely client driven (like TCP). I don=E2=
=80=99t know if <br>
&gt;&gt; &gt; either of these would simplify how to handle stream accountin=
g, and <br>
&gt;&gt; &gt; in particular only creating a flow when all parties have suff=
icient allowances left.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thomas<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; From: QUIC [<a href=3D"mailto:quic-bounces@ietf.org" target=
=3D"_blank">mailto:quic-bounces@ietf.org</a>] On Behalf Of Jo Kulik<br>
&gt;&gt; &gt; Sent: 28 June 2017 15:09<br>
&gt;&gt; &gt; To: Mikkel Fahn=C3=B8e J=C3=B8rgensen &lt;<a href=3D"mailto:m=
ikkelfj@gmail.com" target=3D"_blank">mikkelfj@gmail.com</a>&gt;<br>
&gt;&gt; &gt; Cc: QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_b=
lank">quic@ietf.org</a>&gt;; Dmitri Tikhonov <br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"=
_blank">dtikhonov@litespeedtech.com</a>&gt;<br>
&gt;&gt; &gt; Subject: Re: Unidirectional streams PR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;d like to pop back up to a comment Igor made last week,=
 because I <br>
&gt;&gt; &gt; find it helpful in thinking about the design space:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I think of three layers of abstraction:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 QUIC Wire Protocol (th=
e thing described by the QUIC Transport<br>
&gt;&gt; &gt; RFC)<br>
&gt;&gt; &gt; 2.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 QUIC Library API (a li=
brary exposing some useful abstractions<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; such as blocking/non-blocking unidirectional streams and <br>
&gt;&gt; &gt; bidirectional =E2=80=9Csockets=E2=80=9D -- and implementing t=
hem using QUIC Wire Protocol)<br>
&gt;&gt; &gt; 3.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Application (something=
 that uses QUIC Library APIs)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I think there is some argument to be made that Martin&#39;s o=
riginal <br>
&gt;&gt; &gt; proposal did not take into account how we would achieve (2) f=
or <br>
&gt;&gt; &gt; bi-directional streams.=C2=A0 (I don&#39;t think it strictly =
said &quot;thou <br>
&gt;&gt; &gt; shalt not do (2)&quot; either, but that is up to interpretati=
on.)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Several people have argued that we do not want every applicat=
ion to <br>
&gt;&gt; &gt; have to re-implement bi-directional streams (3) for every <br=
>
&gt;&gt; &gt; application, and this is not how g-quic (our largest deployme=
nt) works right now.<br>
&gt;&gt; &gt; These arguments make sense to me, but YMMV.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Just because the particular *mechanism* that is being propose=
d has <br>
&gt;&gt; &gt; some issues, however, doesn&#39;t scream out to me, at least,=
 that we <br>
&gt;&gt; &gt; should abandon this particular *design goal*.=C2=A0 The goal =
being a <br>
&gt;&gt; &gt; transport protocol that can elegantly fit with a uni/bi strea=
m model.<br>
&gt;&gt; &gt; Now, if we conclude that there can never be an elegant model =
that <br>
&gt;&gt; &gt; achieves this goal, then so be it.=C2=A0 But I also feel like=
 we haven&#39;t <br>
&gt;&gt; &gt; reached that point in the discussion yet.=C2=A0 (At the very =
least, this <br>
&gt;&gt; &gt; discussion has been fruitful to me in terms of mapping the de=
sign <br>
&gt;&gt; &gt; space and elucidating requirements).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; One of the reasons I still think this design goal is under <b=
r>
&gt;&gt; &gt; consideration is that Ian and Igor/Mike have been talking abo=
ut <br>
&gt;&gt; &gt; alternate solutions which have a similar flavor.=C2=A0 During=
 the recent <br>
&gt;&gt; &gt; &quot;quiet&quot;ness on the thread, personally, I&#39;ve bee=
n waiting to hear <br>
&gt;&gt; &gt; more from them.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Wed, Jun 28, 2017 at 9:41 AM, Mikkel Fahn=C3=B8e J=C3=B8rg=
ensen <br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_blank">m=
ikkelfj@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In reply to Ranjeeth<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It is not only a matter of simplicity for the sake of simplic=
ity:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - A complex transport layer might end up being poorly impleme=
nted <br>
&gt;&gt; &gt; leading to reduced interoperability and ultimately adoption. =
This <br>
&gt;&gt; &gt; complexity is not only in implementation but also in understa=
nding <br>
&gt;&gt; &gt; the exact semantics of stream lifetime. Even if the spec is <=
br>
&gt;&gt; &gt; sufficiently clear, it will still be open to misinterpretatio=
ns.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Bi-directional state may have to be maintained longer and w=
ith <br>
&gt;&gt; &gt; more overhead than with uni-directional streams, especially u=
nder <br>
&gt;&gt; &gt; loss, potentially leading to poor performance and poor resour=
ce <br>
&gt;&gt; &gt; utilisation because the transport layer has insufficient info=
rmation.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - The extra complexity at the application layer may be overst=
ated - <br>
&gt;&gt; &gt; it is significantly simpler to manage a map that associates t=
o two <br>
&gt;&gt; &gt; streams than it is to maintain bi-directional state at the <b=
r>
&gt;&gt; &gt; transport layer. It is even possible to implicitly link strea=
ms <br>
&gt;&gt; &gt; with same identifiers, e.g. in a RPC scenario. That said, I d=
o see <br>
&gt;&gt; &gt; a potential benefit of a wrapper that implements the common b=
i-directional case.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Complexity at the application layer may be duplicated, but =
<br>
&gt;&gt; &gt; implementation errors are also isolated to that application.<=
br>
&gt;&gt; &gt; Specifically for HTTP I would assume that QUIC transport and =
QUIC <br>
&gt;&gt; &gt; HTTP implementers would be large the same for a long time to =
come, <br>
&gt;&gt; &gt; so I would not expect the tradeoff here to be particularly co=
ncerning.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Unix pipes are traditionally constructed as a pair of <br>
&gt;&gt; &gt; uni-directional file descriptors and that is a reasonably pro=
ven <br>
&gt;&gt; &gt; model. C=E2=80=99s standard library stdin, stdout and stderr =
is an example <br>
&gt;&gt; &gt; of an asymmetric model with implicit linkage between <br>
&gt;&gt; &gt; uni-directional file descriptors.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - There are lots of use cases for non-HTTP like connectivity =
- <br>
&gt;&gt; &gt; Kafka high volume message queuing for example. The industry t=
rend <br>
&gt;&gt; &gt; appears to move towards asynchronous processing and messaging=
. It <br>
&gt;&gt; &gt; depends on whether you look at QUIC as a TCP + TLS replacemen=
t, or <br>
&gt;&gt; &gt; as a HTTPS / REST RPC replacement.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Uni-directional streams may currently be unproven in the wi=
ld, <br>
&gt;&gt; &gt; but a proposal is needed before an implementation can be made=
 and <br>
&gt;&gt; &gt; testet. I agree that it is easy to design into wrong assumpti=
ons <br>
&gt;&gt; &gt; without real world testing.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - There will hopefully not be a large number of successors to=
 QUIC <br>
&gt;&gt; &gt; - perhaps some purpose specific variants, e.g. for embedded u=
se.<br>
&gt;&gt; &gt; Widespread adaptation and compatibility is very necessary so =
it <br>
&gt;&gt; &gt; makes sense to have QUIC being sufficiently simple and expres=
sive <br>
&gt;&gt; &gt; to achieve this goal. A polymorf QUIC will not achieve that g=
oal. <br>
&gt;&gt; &gt; On the other hand, a solid QUIC foundation can be used for a =
large <br>
&gt;&gt; &gt; number of application protocols.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Finally, it may turn out that uni-directional streams just =
is a <br>
&gt;&gt; &gt; bad idea - I doubt it, but I do believe real world tests are =
needed.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Kind Regards,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Mikkel Fahn=C3=B8e J=C3=B8rgensen<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On 28 June 2017 at 14.42.36, Dmitri Tikhonov<br>
&gt;&gt; &gt; (<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"_bl=
ank">dtikhonov@litespeedtech.com</a>)<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Jun 27, 2017 at 02:31:38PM -0700, Ranjeeth Kumar Dasi=
neni wrote:<br>
&gt;&gt; &gt;&gt; 2. We are overplaying the simplicity of design. Even if w=
e deem <br>
&gt;&gt; &gt;&gt; deployment experience not a concern, if every application=
 layer <br>
&gt;&gt; &gt;&gt; protocol that needs support for bidirectional streams has=
 to <br>
&gt;&gt; &gt;&gt; implement some correlators and such above, that&#39;s a n=
et negative <br>
&gt;&gt; &gt;&gt; in terms of complexity.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; This is an important point: we want QUIC adoption to be made =
easy.<br>
&gt;&gt; &gt; A program that speaks HTTP today should be able to use an exi=
sting <br>
&gt;&gt; &gt; QUIC library without having to emulate bidirectional streams =
in <br>
&gt;&gt; &gt; order to fit it into HTTP usage pattern. Forcing every one of=
 these <br>
&gt;&gt; &gt; programs to do this is certainly a hurdle.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Dmitri.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Kazuho Oku<br>
</div>
</span></font>
</div></div></div>

</blockquote></div><br></div></div>

--001a1139535872b2120553b06f38--


From nobody Thu Jul  6 19:05:04 2017
Return-Path: <martin.thomson@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 811EC131537 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 19:05:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 tEcodrBatZ4N for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 19:05:01 -0700 (PDT)
Received: from mail-it0-x236.google.com (mail-it0-x236.google.com [IPv6:2607:f8b0:4001:c0b::236]) (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 1D706129B17 for <quic@ietf.org>; Thu,  6 Jul 2017 19:05:01 -0700 (PDT)
Received: by mail-it0-x236.google.com with SMTP id 188so879263itx.0 for <quic@ietf.org>; Thu, 06 Jul 2017 19:05:01 -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=ee5glioYRs5C6TmqxKQj92c4rh7P4eDVfHMLb0AQCts=; b=nRcdCnTps+67Yxdj1vEVfmc3GqVjZVz1R/MF5KZOHQFSfC4CuAG9wuKCj7dJoJRvUS sTOK9SKJs3rGwJ0jCOzUPiTinGZbkGBcbWy2HVsj217ZrsTmyhv16cHaqtMWPx2hriUe GAmlE74jxYwn5Nsb7mpadHY21FCvY4pg4rQjOYz2vNVfspHSAhlahzIoXNFFxjXBGPjH zFbrWL94PKA6Cdek7JPN1U3xNWkfixZB79gnzQ/nbD0UQvXfrFyHUjlH/j+Md7C/f29j +oq94fwF8zdl7x/j3t4vRJb2MjGwz0lzCNljY3klOKfB19pjIF8kdNW2scl1zQoZOfWD IVeA==
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=ee5glioYRs5C6TmqxKQj92c4rh7P4eDVfHMLb0AQCts=; b=bEuUPA4V2XDMzE72LMUzmB+xXrRjqDnPorsgygDjJoVpilrae4nNVfZoP/V3zhWd09 fqhJqDl0Efqrjx1fyQ0ShfiA5z1JDSNMIQew6OqTUhbgJKtDwL54nMACoPVL57Xe1F64 quXg0/siu5v00LAhX4yE8CIva/wyJIGjx98pRWjH8ww3oqwHiXZIgi85lAPo4d+PYVXO liKBX5IXrmt5JYMgLpLq+nfkHlnm9VdKAPxTZ4Kw5aJJhtOlC9jEwl6pP7SSkX1fNvtO Mg8SO5pK1s5ECZCktluc5ddAPaNtoiuLgxpzUhPyF0Zsv+EJg2mxrL0F4KK8XyH7sxdi hIQA==
X-Gm-Message-State: AIVw112plHeUqJQwQQGFluU0zzvuwhCjBi4y+cQDz8PLzkqvzAQ8c4c6 TQghowxbfIdeSTZa2w1BgQDW3a33xHJc
X-Received: by 10.36.125.81 with SMTP id b78mr806715itc.26.1499393100525; Thu, 06 Jul 2017 19:05:00 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.129.162 with HTTP; Thu, 6 Jul 2017 19:04:59 -0700 (PDT)
In-Reply-To: <CANatvzw6VGMH8tJbhCxmgTR8_uuxtodiwS2-LT6XkyuBHJz+Fg@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com> <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com> <CANatvzw6VGMH8tJbhCxmgTR8_uuxtodiwS2-LT6XkyuBHJz+Fg@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 7 Jul 2017 12:04:59 +1000
Message-ID: <CABkgnnUUd4B4HLzAb1OVVtG3KdNuyH3Cz+4GuyX-AqH5c26L6w@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Wo2NVojRwubCM6xnKf3feMlRS_s>
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: Fri, 07 Jul 2017 02:05:02 -0000

On 7 July 2017 at 11:43, Kazuho Oku <kazuhooku@gmail.com> wrote:
> So it would be sensible to stop initiating new requests on an existing
> connection when the number of unused stream IDs of the peer becomes as
> low as max-concurrent-streams multiplied by some safety factor
> (something like 10 would be enough, considering the probability of
> loss or reordering of packets carrying DATA frames and consecutive
> MAX_STREAM_ID frames).

Yeah, you have to allow for the possibility of the server wanting to
push some number of times in response to each of your requests.  I was
originally going to say that you hit the wall only once you
MAX_STREAM_ID hits the limit, but the server can always promise in
excess of this limit.  If you want those promises to be resolved, then
allowing more space is reasonable.  10 sounds reasonable, but we can't
know the distribution of pushes to requests (today it is close to 0 in
the aggregate, but this could change).


From nobody Thu Jul  6 19:21:15 2017
Return-Path: <kazuhooku@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 BA80E1316B7 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 19:21:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 S5VMynPwk20J for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 19:21:13 -0700 (PDT)
Received: from mail-pg0-x22a.google.com (mail-pg0-x22a.google.com [IPv6:2607:f8b0:400e:c05::22a]) (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 75026131684 for <quic@ietf.org>; Thu,  6 Jul 2017 19:21:13 -0700 (PDT)
Received: by mail-pg0-x22a.google.com with SMTP id t186so9762277pgb.1 for <quic@ietf.org>; Thu, 06 Jul 2017 19:21:13 -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=5OzlgaxG21ScD3tYYOA+lY+RkvRdPUtULwul7m/RMEY=; b=VoLVESNm3zLvVoB/hco699VGLx+h6kVBCjlsTY64lmNsoKM/+pk7ZQt9oZWykrf27G JeYmdsVpd1uL3zRH/VwmO1+QqHx9o8j8e3yfqNz2DkSl6tlePz/B/Lm4EpHyog8CQJGM nMC6W87xY9Trcy2ueXub0fsNfnHWZPJPI4az0v9tae0nKvIdmynhQu8VRQ1//cUQLmer lLnRB2GYX6mK7BzjDKMAuim79oxk8NvUgT8CmqP7BDHnehezhVXpDGOTvbdmUXthkOTd B10RSOuBltsrxkZMTogtzis2/ZLdcdf9Osw4HCoNk4M9V0yI73fp/JYW2Nx6IpRO4sOk qJrg==
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=5OzlgaxG21ScD3tYYOA+lY+RkvRdPUtULwul7m/RMEY=; b=nj1qgzqK409+OLafIQhzZdiWhCevmrtQw0aLDyABMVI1Wow3AojMhHKAKGTv3v30P5 o7AAz5scYm5W5Cd8TGIXoyoilfG3Lp/RoE234apsOsV0iR4Jo12hnBlnqUWg0H5yHACa MxcBsWHqsUomhGbjl5abkN0m2FmrTr/FqoYxrty+b2MHLs7o0knmxzAuFqIofu6PMVfx GSqZfcqlNrZlsuOQwk01cq9RKNr+pAmkFJzK9h5yFmZ71hWqcnJlH41S6JCA2uxyPvEv oWsOSiQ9fV9TTmGnjUmhbTFmoE9KHmBMFcuSNiyb3f2RyuQFRWWM8hDtsIuAJ5F1uH92 hwMA==
X-Gm-Message-State: AIVw113DkufFCkL8zqxAKbQbHqBBhB5ieGH77ykj3FDEcgSkQ+tz8rPk iGJfl74mYw0d3zDJN/2ryLgdVHPUdw==
X-Received: by 10.84.231.197 with SMTP id g5mr289692pln.71.1499394073075; Thu, 06 Jul 2017 19:21:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Thu, 6 Jul 2017 19:21:11 -0700 (PDT)
In-Reply-To: <CABkgnnUUd4B4HLzAb1OVVtG3KdNuyH3Cz+4GuyX-AqH5c26L6w@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com> <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com> <CANatvzw6VGMH8tJbhCxmgTR8_uuxtodiwS2-LT6XkyuBHJz+Fg@mail.gmail.com> <CABkgnnUUd4B4HLzAb1OVVtG3KdNuyH3Cz+4GuyX-AqH5c26L6w@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 7 Jul 2017 11:21:11 +0900
Message-ID: <CANatvzzxWze+tDf6TUHRpw7z4Mi9cCZX5OUWydMi+fXRx=Zcmw@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Martin Thomson <martin.thomson@gmail.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/9f6yLvY8ueTiihO1vTIjvhw04iU>
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: Fri, 07 Jul 2017 02:21:15 -0000

2017-07-07 11:04 GMT+09:00 Martin Thomson <martin.thomson@gmail.com>:
> On 7 July 2017 at 11:43, Kazuho Oku <kazuhooku@gmail.com> wrote:
>> So it would be sensible to stop initiating new requests on an existing
>> connection when the number of unused stream IDs of the peer becomes as
>> low as max-concurrent-streams multiplied by some safety factor
>> (something like 10 would be enough, considering the probability of
>> loss or reordering of packets carrying DATA frames and consecutive
>> MAX_STREAM_ID frames).
>
> Yeah, you have to allow for the possibility of the server wanting to
> push some number of times in response to each of your requests.  I was
> originally going to say that you hit the wall only once you
> MAX_STREAM_ID hits the limit, but the server can always promise in
> excess of this limit.  If you want those promises to be resolved, then
> allowing more space is reasonable.  10 sounds reasonable, but we can't
> know the distribution of pushes to requests (today it is close to 0 in
> the aggregate, but this could change).

That's a good point.

Considering the complexity of guessing when the server runs out of
stream IDs, it might be easier if we could use a server-sent
CANCEL_REQUEST frame as an indication that the client needs to resend
the request on a new connection.

-- 
Kazuho Oku


From nobody Thu Jul  6 20:07:39 2017
Return-Path: <ilubashe@akamai.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 16D2E127698 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 20:07:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.01
X-Spam-Level: 
X-Spam-Status: No, score=-0.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 Wg_OfUPdY-4X for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 20:07:32 -0700 (PDT)
Received: from mx0b-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7E2D0126E3A for <quic@ietf.org>; Thu,  6 Jul 2017 20:07:32 -0700 (PDT)
Received: from pps.filterd (m0050093.ppops.net [127.0.0.1]) by m0050093.ppops.net-00190b01. (8.16.0.21/8.16.0.21) with SMTP id v6737R23017678; Fri, 7 Jul 2017 04:07:27 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=jan2016.eng; bh=FQw1ZLc35Qvc51o3AQD1SpgfjEAuCg+UIyleoisedWQ=; b=OGQY8O1ZFkg9Nl6i6GmFstmCpaIe9x4UukNMDI4YuQ6Wa1yEe9UmPFTPwcwPDBfxjqkL TRaozNeT+KMVse/4224xf4Z9LccY2jsWFDOGP1KmCbxvHMU8UFFgEi2LxNAZcPD516M8 uMRDlLOFckPXlEfGNBWRWXVqRnwFFLUXbWM5rqoeJKIWSozZYoS6ZfHY2HRDGBIANuAH dZQXNPuirJ+aGqb6KOw9CKOUf12bXmj2oSwtdxpadoYy270Z0oOkp1cZB307xSy9I6a/ Ze4oqKHUTQ0BEaHOpBhHr3+utYxTJlZmokioH/Rf+Xv7hWzMwavJcZAwPgUL/cf6Lbvv Qw== 
Received: from prod-mail-ppoint1 (a184-51-33-18.deploy.static.akamaitechnologies.com [184.51.33.18] (may be forged)) by m0050093.ppops.net-00190b01. with ESMTP id 2bhry222mf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 07 Jul 2017 04:07:26 +0100
Received: from pps.filterd (prod-mail-ppoint1.akamai.com [127.0.0.1]) by prod-mail-ppoint1.akamai.com (8.16.0.17/8.16.0.17) with SMTP id v6735b0G029019; Thu, 6 Jul 2017 23:07:25 -0400
Received: from email.msg.corp.akamai.com ([172.27.123.34]) by prod-mail-ppoint1.akamai.com with ESMTP id 2be72uem38-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 06 Jul 2017 23:07:24 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag1mb1.msg.corp.akamai.com (172.27.123.101) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Thu, 6 Jul 2017 23:07:23 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com ([172.27.123.105]) by usma1ex-dag1mb5.msg.corp.akamai.com ([172.27.123.105]) with mapi id 15.00.1263.000; Thu, 6 Jul 2017 23:07:24 -0400
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: "jri@google.com" <jri@google.com>, "subodh@fb.com" <subodh@fb.com>
CC: "quic@ietf.org" <quic@ietf.org>, "kazuhooku@gmail.com" <kazuhooku@gmail.com>, "martin.thomson@gmail.com" <martin.thomson@gmail.com>, "ianswett@google.com" <ianswett@google.com>, "dtikhonov@litespeedtech.com" <dtikhonov@litespeedtech.com>, "mikkelfj@gmail.com" <mikkelfj@gmail.com>, "thomas.swindells@nokia.com" <thomas.swindells@nokia.com>, "jokulik@google.com" <jokulik@google.com>, "Michael.Bishop@microsoft.com" <Michael.Bishop@microsoft.com>
Subject: RE: Unidirectional streams PR
Thread-Topic: Unidirectional streams PR
Thread-Index: AQHS7K8qFJcNmOfPnkGlJjRXQ/9soKI0ttCAgATMZACAAP5zgIAAEIwAgAAHqgCAAA02gIAAfdKAgAARSAD//8GgUIAAXnCAgAm2IgCAAS8I8IAAXHQAgAFYMoD//9Lj2Q==
Date: Fri, 7 Jul 2017 03:07:23 +0000
Message-ID: <070fb70b3674407b817da845f8ed524c@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com>, <CAGD1bZYapGBZ=giDmUbCx+-abA7DCQmO08rLnRn_+DtTRg=Wug@mail.gmail.com>
In-Reply-To: <CAGD1bZYapGBZ=giDmUbCx+-abA7DCQmO08rLnRn_+DtTRg=Wug@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
Content-Type: multipart/alternative; boundary="_000_070fb70b3674407b817da845f8ed524cusma1exdag1mb5msgcorpak_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-07_02:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707070046
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-07_02:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707070047
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/6aPQ220pauXnzae3ZuVu-kgRydg>
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: Fri, 07 Jul 2017 03:07:37 -0000

--_000_070fb70b3674407b817da845f8ed524cusma1exdag1mb5msgcorpak_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

> I'm not sure I understand what sort of proxy would want to know about str=
eam closures...

Any proxy that keeps per-stream state would want to know about stream closu=
res (just like the endpoint transport implementation would).

Say you have a fast and reliable network to which devices with very limited=
 amount of memory are attached (sensors on a Mars station connected to the =
station network). But this network is connected to the Internet via a slow =
and unreliable link (satellite?). To communicate with far-away endpoints ov=
er slow and unreliable links, you need a lot of memory, or your throughput =
suffers. The solution could be a proxy on the border of this network. Such =
proxy would mediate QUIC connections between the limited-memory devices and=
 Internet endpoints. The proxy would ACK all packets itself, while maintain=
ing big enough buffers to retransmit stream data sent to the Internet and r=
eassemble streams from the Internet. (One can think of similar situations c=
loser to Earth, of course.)

-----Original Message-----
From: Jana Iyengar [jri@google.com]
Received: Thursday, 06 Jul 2017, 9:48PM
To: Subodh Iyengar [subodh@fb.com]
CC: Lubashev, Igor [ilubashe@akamai.com]; Kazuho Oku [kazuhooku@gmail.com];=
 Ian Swett [ianswett@google.com]; Mike Bishop [Michael.Bishop@microsoft.com=
]; Dmitri Tikhonov [dtikhonov@litespeedtech.com]; Swindells, Thomas (Nokia =
- GB/Cambridge, UK) [thomas.swindells@nokia.com]; Jo Kulik [jokulik@google.=
com]; Mikkel Fahn=F8e J=F8rgensen [mikkelfj@gmail.com]; QUIC WG [quic@ietf.=
org]; Martin Thomson [martin.thomson@gmail.com]
Subject: Re: Unidirectional streams PR

On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <subodh@fb.com<mailto:subod=
h@fb.com>> wrote:

> Without such a signal, a generic proxy that is not aware of your applicat=
ion internals is not able to know when to send the FIN

I see, this use case does make somewhat sense, however I'm curious if someo=
ne has a concrete use case for a generic QUIC proxy which is not aware of t=
he application protocol at all. In TCP this was more common for middleboxes=
 to do because there was no end to end encryption of the transport, however=
 QUIC is encrypted. Even with cases when we tunneling protocols at our end,=
 we usually have some knowledge of the app that we are running because we n=
eed to route them differently to different backends. I was mostly thinking =
that proxies would at least have some knowledge about HTTP/2 or app protoco=
ls.

This is my thinking too. I'm not sure I understand what sort of proxy would=
 want to know about stream closures... but if such a proxy exists, it justi=
fies the explicit signal.

Maybe it is possible to make #656 more palatable, at least to me. I had 2 t=
hings against it initially, which were:


  1.  We might need to add another state to the machine to the sender state=
, i.e. normally when sending a FIN, it is ok to keep receiving stream frame=
s after, however in a uni directional stream it is illegal to get a stream =
frame.
  2.  In its current form it also has an implicit requirement to not open l=
ower streams. I think opening lower streams have some desirable properties =
which I've commented on in https://github.com/quicwg/base-drafts/issues/662=
<https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__github.com_quicwg_b=
ase-2Ddrafts_issues_662&d=3DDwMFaQ&c=3D96ZbZZcaMF4w0F4jpN6LZg&r=3DDjn3bQ5uN=
JDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&m=3DnUIKlIBqPqjVljTh1PhBhHP75fAW7-4WhWrK=
D26rfz4&s=3DSZ7WecZx9-JS9RjTS0c2nhWXRlgScSi1XqtFOSDn9W8&e=3D>.

An implementation could probably implement 1. with not too much trouble by =
doing a special case in the stream state machine when it receives a stream =
frame in the half closed local state.

I think this is covered by the current half-closed state. When an outgoing =
uni stream is created, it should have a final received offset of 0. If any =
STREAM frames are received that have data at an offset > the final received=
 offset (which is 0 in this case), then the connection is torn down with QU=
IC_STREAM_DATA_AFTER_TERMINATION error (see Section 11.3<https://urldefense=
.proofpoint.com/v2/url?u=3Dhttps-3A__tools.ietf.org_html_draft-2Dietf-2Dqui=
c-2Dtransport-2D04-23section-2D11.3&d=3DDwMFaQ&c=3D96ZbZZcaMF4w0F4jpN6LZg&r=
=3DDjn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&m=3DnUIKlIBqPqjVljTh1PhBhHP7=
5fAW7-4WhWrKD26rfz4&s=3DuCU3ExruisXB9KCiImOF2DuRt36XRdn2Tn6n3tqg2YM&e=3D>).

For 2. thinking about it a bit more I think the underlying question here is=
 who enforces directionality, i.e. did I receive data I should not have. If=
 it is the transport, then we need to answer that question with issue #662,=
 however if it can be the application or a higher layer API between the app=
lication and transport that enforces directionality then we don't need to k=
now whether a lower stream is bi-directional or not. I'm leaning towards an=
 API between the transport and application enforcing directionality. The re=
ason for that is that an application that needs to use unidirectionality ne=
eds to use a different API anyway. Given that we could leave lower streams =
to be opened as it is now, but leaving the exact semantics of enforcing bi-=
directionality or uni-directionality to a higher layer. That should suffice=
 for even a generic proxy right?

I thought about this, and I'm leaning towards having the transport enforce =
this.

I like your suggestion of moving this logic up to the application. Implicit=
 open is then just "open", and then the stream moves into half-closed state=
 as it receives an application signal or a STREAM frame with the bit set. T=
he tradeoff to consider here is that an implementation will not be able to =
instantiate an "optimized" uni stream on implicit creation (or will have to=
 swap a bidirectional stream with a uni one). There's value in allowing imp=
lementations to implement optimized uni/bi stream objects, which would mean=
 that the transport ought to be able to create one of these two types of ob=
jects, therefore allowing (requiring?) enforcement of directionality in the=
 transport.

Can you resolve #662 with a separate state? Meaning that implicitly open st=
reams are now considered "reserved" (or some such). This allows you to have=
 a separate state until you know for sure which type of stream you're const=
ructing, which can happen via an application signal or from a received STRE=
AM frame.

I still prefer do nothing with app directed close though.

Having an explicit bit in the frame does allow for some more flexibility, w=
hich may be useful.

> But I do not think that we should require every application protocol buil=
t above QUIC to do its own framing.

Second Kazuho on this one.

+1. This is the biggest argument for bidirectionality -- most applications =
need that, and expecting them to all create their own correlators and state=
 machine to manage bidirectionality goes against what I'd consider useful t=
ransport API design. Extremely common design patterns, such as bidirectiona=
lity, should be part of the transport.

- jana

Subodh

________________________________
From: QUIC <quic-bounces@ietf.org<mailto:quic-bounces@ietf.org>> on behalf =
of Lubashev, Igor <ilubashe@akamai.com<mailto:ilubashe@akamai.com>>
Sent: Wednesday, July 5, 2017 8:50:05 PM
To: Kazuho Oku; Ian Swett
Cc: Mike Bishop; Dmitri Tikhonov; Swindells, Thomas (Nokia - GB/Cambridge, =
UK); Jo Kulik; Mikkel Fahn=F8e J=F8rgensen; QUIC WG; Martin Thomson

Subject: RE: Unidirectional streams PR

> If a client needs a way to reset the server's response before observing t=
he first frame, it cannot use FIN as an indicator of the end of the request=
.

There is a DISINTEREST frame proposal (PR #171: https://github.com/quicwg/b=
ase-drafts/pull/171<https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__=
github.com_quicwg_base-2Ddrafts_pull_171&d=3DDwMFaQ&c=3D96ZbZZcaMF4w0F4jpN6=
LZg&r=3DDjn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&m=3DnUIKlIBqPqjVljTh1Ph=
BhHP75fAW7-4WhWrKD26rfz4&s=3DvUU1jpQB1L_xAsDNdBWa6XhQ8_fzM4EF2uP5uq57dEo&e=
=3D>).  That's something that I believe is valuable independent of this Uni=
directional streams PR.

- Igor


-----Original Message-----
From: Kazuho Oku [mailto:kazuhooku@gmail.com]
Sent: Wednesday, July 05, 2017 1:41 AM
To: Ian Swett <ianswett@google.com<mailto:ianswett@google.com>>
Cc: Lubashev, Igor <ilubashe@akamai.com<mailto:ilubashe@akamai.com>>; Mike =
Bishop <Michael.Bishop@microsoft.com<mailto:Michael.Bishop@microsoft.com>>;=
 Dmitri Tikhonov <dtikhonov@litespeedtech.com<mailto:dtikhonov@litespeedtec=
h.com>>; Swindells, Thomas (Nokia - GB/Cambridge, UK) <thomas.swindells@nok=
ia.com<mailto:thomas.swindells@nokia.com>>; Jo Kulik <jokulik@google.com<ma=
ilto:jokulik@google.com>>; Mikkel Fahn=F8e J=F8rgensen <mikkelfj@gmail.com<=
mailto:mikkelfj@gmail.com>>; QUIC WG <quic@ietf.org<mailto:quic@ietf.org>>;=
 Martin Thomson <martin.thomson@gmail.com<mailto:martin.thomson@gmail.com>>
Subject: Re: Unidirectional streams PR

2017-06-29 10:23 GMT+09:00 Ian Swett <ianswett@google.com<mailto:ianswett@g=
oogle.com>>:
> I updated my PR(#656) today, sorry for the delay.  I attempted to
> address the issues identified with text.  Some may prefer more tweaks
> to the state diagram, which are also possible, so I'm open to suggestions=
.

After all, I think that the approach proposed here is the most well-balance=
d one.

As much as I think that having first-class support for unidirectional strea=
ms is preferable, I also think that we should keep the overall architecture=
 (i.e. sum of the complexity in the transport layer and the application lay=
er) as simple as possible.

IMO having support for bidirectional streams (along with support for unidir=
ectional streams) aligns with such intention.

Most of the application protocols that will be deployed over the QUIC trans=
port will be in request-response style, at least to some extent.
Hence it is preferable for the transport layer to provide a framework that =
fits such style.

Bidirectional streams provide the necessary features. FIN provides a way to=
 indicate the end of the message. RST provides a way to cancel the exchange=
 of the message in both directions.

IMO the biggest issue with the unidirectional-only approach is that you can=
not have the two features together. If a client needs a way to reset the se=
rver's response before observing the first frame, it cannot use FIN as an i=
ndicator of the end of the request.

It is true that the issue can be evaded by doing one's own framing in the a=
pplication layer. #643 does that by introducing a CANCEL_REQUEST frame.

But I do not think that we should require every application protocol built =
above QUIC to do its own framing. In addition to that, need to keep two uni=
-directional streams open would consume more resources than being able to c=
lose one direction of a bi-directional stream at an earlier moment.

> In the meantime, I've been considering other alternatives, including
> variations on Mike's direction and a variation of the "Do Nothing"
> option which involved the application signaling to the transport that
> streams of a certain sort(ie: server to client for server push) were
> unidirectional, as GQUIC does today.  Overall, I think the approach
> I've outlined does a good job of iterating on existing deployment
> experience and adding explicit signaling for unidirectional streams
> instead of implicit signaling at the application layer.  There are
> pros and cons to both explicit and implicit signaling, but I think
> explicit signaling is more complete and less prone to application error.
>
> Thanks, Ian
>
>
> On Wed, Jun 28, 2017 at 8:14 PM, Lubashev, Igor <ilubashe@akamai.com<mail=
to:ilubashe@akamai.com>> wrote:
>>
>> > unless what the transport provides is a perfect fit for application
>> > semantics, you end up building those semantics into the application an=
yway.
>>
>> I agree with this. We should avoid adding complexity into transport
>> for rare use cases, since it goes against KISS principle.
>>
>> On the other hand, adding support for a by far the most common use
>> case makes a lot of sense.  This helps apps avoid screwing up
>> implementing that common case and lets us optimize that common case
>> in the lower layer. BiDi streams are such common cases. Uni streams
>> are likely to be the second-most-common cases (hence you offered this PR=
 to optimize them).
>>
>>
>> The Associated Streams proposal offers extra semantic flexibility at
>> a cost of some semantic complexity (someone would need to verify that
>> the associated stream numbers make sense -- api? apps?) and a few extra =
bytes.
>>
>> I'd like to wait to see Ian's revised proposal.  The initial proposal
>> offered to do only one thing -- offer a choice of uni/bi-directional
>> streams
>> -- but it did it in a very simple way, which is nice.
>>
>> - Igor
>>
>>
>> -----Original Message-----
>> From: Martin Thomson [mailto:martin.thomson@gmail.com]
>> Sent: Wednesday, June 28, 2017 7:28 PM
>> To: Mike Bishop <Michael.Bishop@microsoft.com<mailto:Michael.Bishop@micr=
osoft.com>>
>> Cc: Swindells, Thomas (Nokia - GB/Cambridge, UK)
>> <thomas.swindells@nokia.com<mailto:thomas.swindells@nokia.com>>; QUIC WG=
 <quic@ietf.org<mailto:quic@ietf.org>>; Mikkel Fahn=F8e
>> J=F8rgensen <mikkelfj@gmail.com<mailto:mikkelfj@gmail.com>>; Dmitri Tikh=
onov
>> <dtikhonov@litespeedtech.com<mailto:dtikhonov@litespeedtech.com>>; Jo Ku=
lik <jokulik@google.com<mailto:jokulik@google.com>>
>> Subject: Re: Unidirectional streams PR
>>
>> There is probably a simpler approach here, take a bit (as Ian did)
>> and say that if that bit is set, then the stream is in response to
>> another and the stream ID of the stream to which this is responding
>> follows immediately after the stream ID of the stream itself.  You
>> could then include that only at the start of the stream, or in multiple =
frames (or as we decide).
>>
>> The problem with this, as with several of the other issues we're
>> discussing, is that unless what the transport provides is a perfect
>> fit for application semantics, you end up building those semantics
>> into the application anyway.  HTTP certainly can't survive without
>> its own association semantics for pushes.  That suggests to me that
>> having bidirectional semantics in the transport creates more
>> duplication than otherwise.  Hence my proposal.
>>
>> On 28 June 2017 at 15:26, Mike Bishop <Michael.Bishop@microsoft.com<mail=
to:Michael.Bishop@microsoft.com>>
>> wrote:
>> > As promised, a PR for adding =93associated streams=94 is at
>> > https://github.com/quicwg/base-drafts/pull/672<https://urldefense.proo=
fpoint.com/v2/url?u=3Dhttps-3A__github.com_quicwg_base-2Ddrafts_pull_672&d=
=3DDwMFaQ&c=3D96ZbZZcaMF4w0F4jpN6LZg&r=3DDjn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn=
_m55KPmlo&m=3DnUIKlIBqPqjVljTh1PhBhHP75fAW7-4WhWrKD26rfz4&s=3DBpuekjI8WR8_G=
GDuIgRp0wW2dylR52OtLbuxONJGujY&e=3D>.  This very
>> > deliberately builds on top of MT=92s PR =96 it=92s adding a primitive
>> > which can be used to construct various abstractions atop
>> > unidirectional streams, but the lifecycle is still fundamentally unidi=
rectional.
>> >
>> >
>> >
>> > Copying my notes here for list discussion purposes.
>> >
>> > Major changes
>> >
>> > Leveraging @igorlord's insight that OO=3D00 only occurs on the first
>> > STREAM frame of a stream, I used that as the trigger for a Stream
>> > Properties byte.
>> > Two bits of that byte describe the directionality of the stream:
>> >
>> > Unidirectional (no response expected) Initial bidirectional (one
>> > response expected) Initial multi-response (one or more responses
>> > expected; needs a better name) Response
>> >
>> > If the type is Response, there's an Associated Stream ID field,
>> > length given by two more bits following the same pattern as the SS
>> > bits in the STREAM frame ID.
>> >
>> > Personal Opinion
>> >
>> > On the plus side, these stream types seem to cover the abstractions
>> > I can envision for most applications. You can unilaterally send
>> > something (unidirectional), do request/response (bidirectional), or
>> > pub/sub (single subscription stream, series of update streams).
>> >
>> > I don't care for the fact that I still need the stream type header
>> > in HTTP after putting this in the transport. That will be
>> > ameliorated if we go back to one stream per request, since all
>> > unidirectional streams will be push streams. (As a side-note, I
>> > considered using the multiple-response option in the HTTP mapping,
>> > but then I need a stream header again to indicate which is the
>> > response and which the pushes.)
>> >
>> > I particularly don't like that you now have to look at the frame
>> > type header to find out whether a field exists which tells you the
>> > length of something else in the header. I'd like to simplify that.
>> > I went with this model over a CREATE_STREAM frame because of
>> > @mikkelfj's use-case of very small messages
>> > -- this adds only one byte to the first frame on a stream in one
>> > direction and 2-5 bytes to the first frame of response streams. A
>> > separate frame type would be somewhat larger, but could be cleaner
>> > in that respect.
>> >
>> >
>> >
>> >
>> >
>> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Swindells,
>> > Thomas (Nokia - GB/Cambridge, UK)
>> > Sent: Wednesday, June 28, 2017 7:56 AM
>> > To: Jo Kulik <jokulik@google.com<mailto:jokulik@google.com>>; Mikkel F=
ahn=F8e J=F8rgensen
>> > <mikkelfj@gmail.com<mailto:mikkelfj@gmail.com>>
>> > Cc: QUIC WG <quic@ietf.org<mailto:quic@ietf.org>>; Dmitri Tikhonov
>> > <dtikhonov@litespeedtech.com<mailto:dtikhonov@litespeedtech.com>>
>> > Subject: RE: Unidirectional streams PR
>> >
>> >
>> >
>> > I agree that looking at the layers of abstraction is useful. In
>> > principle having the wire protocol just have constructs for
>> > unidirectional streams does not in itself limit creating
>> > bi-directional communication flows, supported at either the library
>> > or application layer.
>> >
>> >
>> >
>> > However, there need to be a standard way of doing bi-directional
>> > communication for migrating applications implemented using a socket
>> > style api. It needs to be easy to move an existing application from
>> > TCP to QUIC.
>> > This move may be attractive in many situations as QUIC gives
>> > improved security and may allow greater throughput due to the more
>> > modern (and
>> > customizable) congestion control algorithms compared to the OS TCP
>> > stack.
>> >
>> >
>> >
>> > For migrating standard socket api applications I don=92t think it
>> > would be appropriate to leave the work to the application to do
>> > correlation, at least the library should be providing this service
>> > using the wire protocol as appropriate. Clearly we want a client
>> > written with one library to be able to communicate successfully
>> > with a server written using a different library.
>> > This needs some form of standardization of the signalling. This
>> > could either be a building block overlay on top of QUIC, or
>> > implemented at the wire protocol level.
>> >
>> >
>> >
>> > In terms of patterns I think the following may be some of the most
>> > common patterns (with potential to be provided at the library and
>> > or wire protocol level).
>> >
>> > I/O pattern  : Example
>> >
>> > 1/0   : An input only flow, perhaps a data logger like syslog with no
>> > confirmation/feedback
>> >
>> > 0/1  : an output only flow, perhaps a topic message bus service
>> > with no confirmation/feedback
>> >
>> > 1/1 : standard TCP applications with a single flow per connection
>> >
>> > 1/* : single input, many output, modelling STDIN/STDOUT+STDERR
>> >
>> > (1/1)* : multiplexed pairs of flows =96 supporting multiple sockets
>> > muxed onto a single QUIC connection
>> >
>> >
>> >
>> > Obviously, an application would always have the option to combine
>> > any single direction flows with application level correlators to
>> > construct more complex flows if desired.
>> >
>> >
>> >
>> > At the moment my gut says the 1/1 use-case is common enough that
>> > the wire protocol should provide a standard mechanism to support it
>> > as a standard overlay would probably end up being treated as part
>> > of the wire format anyway.
>> >
>> >
>> >
>> > Perhaps streams should be explicitly created with a CREATE_STREAM
>> > frame which would be capable of defining multiple related streams?
>> >
>> > There is the option of whether only (1/1) pairs can be created this
>> > way, or
>> > (1/n) combinations could be supported (with an application defined
>> > way to identify the use of each of the output streams). A step
>> > further may be that there is a transport parameter that defines
>> > whether the server is allowed to create additional streams, or if
>> > stream creation is purely client driven (like TCP). I don=92t know if
>> > either of these would simplify how to handle stream accounting, and
>> > in particular only creating a flow when all parties have sufficient al=
lowances left.
>> >
>> >
>> >
>> > Thomas
>> >
>> >
>> >
>> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Jo Kulik
>> > Sent: 28 June 2017 15:09
>> > To: Mikkel Fahn=F8e J=F8rgensen <mikkelfj@gmail.com<mailto:mikkelfj@gm=
ail.com>>
>> > Cc: QUIC WG <quic@ietf.org<mailto:quic@ietf.org>>; Dmitri Tikhonov
>> > <dtikhonov@litespeedtech.com<mailto:dtikhonov@litespeedtech.com>>
>> > Subject: Re: Unidirectional streams PR
>> >
>> >
>> >
>> > I'd like to pop back up to a comment Igor made last week, because I
>> > find it helpful in thinking about the design space:
>> >
>> >
>> >
>> > I think of three layers of abstraction:
>> >
>> > 1.       QUIC Wire Protocol (the thing described by the QUIC Transport
>> > RFC)
>> > 2.       QUIC Library API (a library exposing some useful abstractions
>> > --
>> > such as blocking/non-blocking unidirectional streams and
>> > bidirectional =93sockets=94 -- and implementing them using QUIC Wire P=
rotocol)
>> > 3.       Application (something that uses QUIC Library APIs)
>> >
>> > I think there is some argument to be made that Martin's original
>> > proposal did not take into account how we would achieve (2) for
>> > bi-directional streams.  (I don't think it strictly said "thou
>> > shalt not do (2)" either, but that is up to interpretation.)
>> >
>> >
>> >
>> > Several people have argued that we do not want every application to
>> > have to re-implement bi-directional streams (3) for every
>> > application, and this is not how g-quic (our largest deployment) works=
 right now.
>> > These arguments make sense to me, but YMMV.
>> >
>> >
>> >
>> > Just because the particular *mechanism* that is being proposed has
>> > some issues, however, doesn't scream out to me, at least, that we
>> > should abandon this particular *design goal*.  The goal being a
>> > transport protocol that can elegantly fit with a uni/bi stream model.
>> > Now, if we conclude that there can never be an elegant model that
>> > achieves this goal, then so be it.  But I also feel like we haven't
>> > reached that point in the discussion yet.  (At the very least, this
>> > discussion has been fruitful to me in terms of mapping the design
>> > space and elucidating requirements).
>> >
>> >
>> >
>> > One of the reasons I still think this design goal is under
>> > consideration is that Ian and Igor/Mike have been talking about
>> > alternate solutions which have a similar flavor.  During the recent
>> > "quiet"ness on the thread, personally, I've been waiting to hear
>> > more from them.
>> >
>> >
>> >
>> > On Wed, Jun 28, 2017 at 9:41 AM, Mikkel Fahn=F8e J=F8rgensen
>> > <mikkelfj@gmail.com<mailto:mikkelfj@gmail.com>> wrote:
>> >
>> > In reply to Ranjeeth
>> >
>> >
>> >
>> > It is not only a matter of simplicity for the sake of simplicity:
>> >
>> >
>> >
>> > - A complex transport layer might end up being poorly implemented
>> > leading to reduced interoperability and ultimately adoption. This
>> > complexity is not only in implementation but also in understanding
>> > the exact semantics of stream lifetime. Even if the spec is
>> > sufficiently clear, it will still be open to misinterpretations.
>> >
>> >
>> >
>> > - Bi-directional state may have to be maintained longer and with
>> > more overhead than with uni-directional streams, especially under
>> > loss, potentially leading to poor performance and poor resource
>> > utilisation because the transport layer has insufficient information.
>> >
>> >
>> >
>> > - The extra complexity at the application layer may be overstated -
>> > it is significantly simpler to manage a map that associates to two
>> > streams than it is to maintain bi-directional state at the
>> > transport layer. It is even possible to implicitly link streams
>> > with same identifiers, e.g. in a RPC scenario. That said, I do see
>> > a potential benefit of a wrapper that implements the common bi-directi=
onal case.
>> >
>> >
>> >
>> > - Complexity at the application layer may be duplicated, but
>> > implementation errors are also isolated to that application.
>> > Specifically for HTTP I would assume that QUIC transport and QUIC
>> > HTTP implementers would be large the same for a long time to come,
>> > so I would not expect the tradeoff here to be particularly concerning.
>> >
>> >
>> >
>> > - Unix pipes are traditionally constructed as a pair of
>> > uni-directional file descriptors and that is a reasonably proven
>> > model. C=92s standard library stdin, stdout and stderr is an example
>> > of an asymmetric model with implicit linkage between
>> > uni-directional file descriptors.
>> >
>> >
>> >
>> > - There are lots of use cases for non-HTTP like connectivity -
>> > Kafka high volume message queuing for example. The industry trend
>> > appears to move towards asynchronous processing and messaging. It
>> > depends on whether you look at QUIC as a TCP + TLS replacement, or
>> > as a HTTPS / REST RPC replacement.
>> >
>> >
>> >
>> > - Uni-directional streams may currently be unproven in the wild,
>> > but a proposal is needed before an implementation can be made and
>> > testet. I agree that it is easy to design into wrong assumptions
>> > without real world testing.
>> >
>> >
>> >
>> > - There will hopefully not be a large number of successors to QUIC
>> > - perhaps some purpose specific variants, e.g. for embedded use.
>> > Widespread adaptation and compatibility is very necessary so it
>> > makes sense to have QUIC being sufficiently simple and expressive
>> > to achieve this goal. A polymorf QUIC will not achieve that goal.
>> > On the other hand, a solid QUIC foundation can be used for a large
>> > number of application protocols.
>> >
>> >
>> >
>> > - Finally, it may turn out that uni-directional streams just is a
>> > bad idea - I doubt it, but I do believe real world tests are needed.
>> >
>> >
>> >
>> > Kind Regards,
>> >
>> > Mikkel Fahn=F8e J=F8rgensen
>> >
>> >
>> >
>> > On 28 June 2017 at 14.42.36, Dmitri Tikhonov
>> > (dtikhonov@litespeedtech.com<mailto:dtikhonov@litespeedtech.com>)
>> > wrote:
>> >
>> > On Tue, Jun 27, 2017 at 02:31:38PM -0700, Ranjeeth Kumar Dasineni wrot=
e:
>> >> 2. We are overplaying the simplicity of design. Even if we deem
>> >> deployment experience not a concern, if every application layer
>> >> protocol that needs support for bidirectional streams has to
>> >> implement some correlators and such above, that's a net negative
>> >> in terms of complexity.
>> >
>> > This is an important point: we want QUIC adoption to be made easy.
>> > A program that speaks HTTP today should be able to use an existing
>> > QUIC library without having to emulate bidirectional streams in
>> > order to fit it into HTTP usage pattern. Forcing every one of these
>> > programs to do this is certainly a hurdle.
>> >
>> > - Dmitri.
>> >
>> >
>>
>



--
Kazuho Oku


--_000_070fb70b3674407b817da845f8ed524cusma1exdag1mb5msgcorpak_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta content=3D"text/html; charset=3Dutf-8">
</head>
<body>
<span style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:11=
pt; color:black">&gt; I'm not sure I understand what sort of proxy would wa=
nt to know about stream closures...<br>
<br>
Any proxy that keeps per-stream state would want to know about stream closu=
res (just like the endpoint transport implementation would).<br>
<br>
Say you have a fast and reliable network to which devices with very limited=
 amount of memory are attached (sensors on a Mars station connected to the =
station network). But this network is connected to the Internet via a slow =
and unreliable link (satellite?).
 To communicate with far-away endpoints over slow and unreliable links, you=
 need a lot of memory, or your throughput suffers. The solution could be a =
proxy on the border of this network. Such proxy would mediate QUIC connecti=
ons between the limited-memory devices
 and Internet endpoints. The proxy would ACK all packets itself, while main=
taining big enough buffers to retransmit stream data sent to the Internet a=
nd reassemble streams from the Internet. (One can think of similar situatio=
ns closer to Earth, of course.)<br>
<br>
<span style=3D"color:black">-----Original Message----- <br>
<b>From:</b> Jana Iyengar [jri@google.com]<br>
<b>Received:</b> Thursday, 06 Jul 2017, 9:48PM<br>
<b>To:</b> Subodh Iyengar [subodh@fb.com]<br>
<b>CC:</b> Lubashev, Igor [ilubashe@akamai.com]; Kazuho Oku [kazuhooku@gmai=
l.com]; Ian Swett [ianswett@google.com]; Mike Bishop [Michael.Bishop@micros=
oft.com]; Dmitri Tikhonov [dtikhonov@litespeedtech.com]; Swindells, Thomas =
(Nokia - GB/Cambridge, UK) [thomas.swindells@nokia.com];
 Jo Kulik [jokulik@google.com]; Mikkel Fahn=F8e J=F8rgensen [mikkelfj@gmail=
.com]; QUIC WG [quic@ietf.org]; Martin Thomson [martin.thomson@gmail.com]<b=
r>
<b>Subject:</b> Re: Unidirectional streams PR<br>
<br>
</span></span>
<div>
<div dir=3D"ltr">
<div class=3D"gmail_extra">
<div class=3D"gmail_quote">On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar =
<span dir=3D"ltr">
&lt;<a href=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt=
;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex; border=
-left:1px solid rgb(204,204,204); padding-left:1ex">
<div>
<div dir=3D"ltr">
<div id=3D"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" =
style=3D"font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sa=
ns-serif">
<span class=3D"gmail-">
<p></p>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
&gt;&nbsp;<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"=
 size=3D"2"><span style=3D"font-size:14.67px">Without such a signal, a gene=
ric proxy that is not aware of your application internals is not able to kn=
ow when to send the FIN</span></font><font face=3D"Calibri,Arial,Helvetica,=
sans-serif,serif,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><b=
r>
</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px"><br>
</span></font></div>
</span>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">I see, this use case does make somewhat=
 sense, however I'm curious if&nbsp;someone has&nbsp;a concrete&nbsp;use ca=
se for a generic QUIC proxy which is not aware of the
 application protocol at all. In TCP this was more common for middleboxes t=
o do because there was no end to end encryption of the transport, however Q=
UIC is encrypted. Even with cases when we&nbsp;tunneling protocols at our e=
nd, we usually have some knowledge of
 the app that we are running because we need to route them differently to d=
ifferent backends.&nbsp;I was mostly thinking that&nbsp;proxies would at le=
ast have some knowledge&nbsp;about HTTP/2 or app protocols.
</span></font></div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>This is my thinking too. I'm not sure I understand what sort of proxy =
would want to know about stream closures... but if such a proxy exists, it =
justifies the explicit signal.</div>
<div><br>
</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex; border=
-left:1px solid rgb(204,204,204); padding-left:1ex">
<div>
<div dir=3D"ltr">
<div id=3D"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" =
style=3D"font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sa=
ns-serif">
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">Maybe it is&nbsp;possible to make #656 =
more palatable, at least to me. I had 2 things against it initially, which =
were:<br>
<br>
<ol style=3D"margin-bottom:0px; margin-top:0px">
<li>We might need to add another state to the machine to the sender state, =
i.e. normally when sending a FIN, it is ok to keep receiving stream frames =
after, however in a uni directional stream it is illegal to get a stream fr=
ame.</li><li>In its current form it also has an implicit requirement to not=
 open lower streams. I think opening lower streams have some desirable prop=
erties which I've commented on in&nbsp;<a href=3D"https://urldefense.proofp=
oint.com/v2/url?u=3Dhttps-3A__github.com_quicwg_base-2Ddrafts_issues_662&am=
p;d=3DDwMFaQ&amp;c=3D96ZbZZcaMF4w0F4jpN6LZg&amp;r=3DDjn3bQ5uNJDPM_2skfL3rW1=
tzcIxyjUZdn_m55KPmlo&amp;m=3DnUIKlIBqPqjVljTh1PhBhHP75fAW7-4WhWrKD26rfz4&am=
p;s=3DSZ7WecZx9-JS9RjTS0c2nhWXRlgScSi1XqtFOSDn9W8&amp;e=3D" class=3D"gmail-=
m_-6302946307347034312x_OWAAutoLink" id=3D"gmail-m_-6302946307347034312LPln=
k402095" target=3D"_blank">https://github.com/quicwg/<wbr>base-drafts/issue=
s/662</a>.</li></ol>
<div><br>
</div>
<div>An implementation could probably implement 1. with not too much troubl=
e by doing a special case in the stream state machine when it receives a st=
ream frame in the half closed local state.<br>
</div>
</span></font></div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>I think this is covered by the current half-closed state. When an outg=
oing uni stream is created, it should have a final received offset of 0. If=
 any STREAM frames are received that have data at an offset &gt; the final =
received offset (which is 0 in this
 case), then the connection is torn down with QUIC_STREAM_DATA_AFTER_TERMIN=
ATION error (see
<a href=3D"https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__tools.iet=
f.org_html_draft-2Dietf-2Dquic-2Dtransport-2D04-23section-2D11.3&amp;d=3DDw=
MFaQ&amp;c=3D96ZbZZcaMF4w0F4jpN6LZg&amp;r=3DDjn3bQ5uNJDPM_2skfL3rW1tzcIxyjU=
Zdn_m55KPmlo&amp;m=3DnUIKlIBqPqjVljTh1PhBhHP75fAW7-4WhWrKD26rfz4&amp;s=3DuC=
U3ExruisXB9KCiImOF2DuRt36XRdn2Tn6n3tqg2YM&amp;e=3D">
Section 11.3</a>).</div>
<div>&nbsp;</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex; border=
-left:1px solid rgb(204,204,204); padding-left:1ex">
<div>
<div dir=3D"ltr">
<div id=3D"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" =
style=3D"font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sa=
ns-serif">
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">
<div>For 2. thinking about it a bit more I think the underlying question he=
re is&nbsp;who enforces directionality, i.e. did I receive data I should no=
t have. If it is the transport, then we need to answer that question with i=
ssue #662, however if it can be the application
 or a higher layer API between the application and transport that enforces =
directionality then we don't need to know whether a lower stream is bi-dire=
ctional or not. I'm leaning towards an API between the transport and applic=
ation enforcing directionality.
 The reason for that is that an application that needs to use unidirectiona=
lity&nbsp;needs to use a different API anyway.&nbsp;Given that we could lea=
ve lower streams to be opened as it is now, but leaving the exact semantics=
 of enforcing bi-directionality or uni-directionality
 to a higher layer. That should suffice for even a generic proxy right?&nbs=
p;</div>
</span></font></div>
</div>
</div>
</div>
</blockquote>
<div>
<div><br class=3D"gmail-Apple-interchange-newline">
I thought about this, and I'm leaning towards having the transport enforce =
this.&nbsp;</div>
<div>
<div><br>
</div>
<div>I like your suggestion of moving this logic up to the application. Imp=
licit open is then just &quot;open&quot;, and then the stream moves into ha=
lf-closed state as it receives an application signal or a STREAM frame with=
 the bit set. The tradeoff to consider here
 is that an implementation will not be able to instantiate an &quot;optimiz=
ed&quot; uni stream on implicit creation (or will have to swap a bidirectio=
nal stream with a uni one). There's value in allowing implementations to im=
plement optimized uni/bi stream objects, which
 would mean that the transport ought to be able to create one of these two =
types of objects, therefore allowing (requiring?) enforcement of directiona=
lity in the transport.</div>
</div>
<div><br>
</div>
<div>Can you resolve #662 with a separate state? Meaning that implicitly op=
en streams are now considered &quot;reserved&quot; (or some such). This all=
ows you to have a separate state until you know for sure which type of stre=
am you're constructing, which can happen via
 an application signal or from a received STREAM frame.</div>
</div>
<div><br>
</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex; border=
-left:1px solid rgb(204,204,204); padding-left:1ex">
<div>
<div dir=3D"ltr">
<div id=3D"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" =
style=3D"font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sa=
ns-serif">
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">
<div>I still prefer do nothing with app directed close&nbsp;though.</div>
</span></font></div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Having an explicit bit in the frame does allow for some more flexibili=
ty, which may be useful.</div>
<div><br>
</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex; border=
-left:1px solid rgb(204,204,204); padding-left:1ex">
<div>
<div dir=3D"ltr">
<div id=3D"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" =
style=3D"font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sa=
ns-serif">
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">&gt;&nbsp;<span style=3D"color:rgb(33,3=
3,33); font-family:wf_segoe-ui_normal,&quot;Segoe UI&quot;,&quot;Segoe WP&q=
uot;,Tahoma,Arial,sans-serif,serif,EmojiFont; font-size:13.3333px">But
 I do not think that we should require every application protocol built abo=
ve QUIC to do its own framing.
<br>
<br>
Second Kazuho on this one.</span></span></font></div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>&#43;1. This is the biggest argument for bidirectionality -- most appl=
ications need that, and expecting them to all create their own correlators =
and state machine to manage bidirectionality goes against what I'd consider=
 useful transport API design. Extremely
 common design patterns, such as bidirectionality, should be part of the tr=
ansport.</div>
<div>&nbsp;</div>
<div>- jana</div>
<div><br>
</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex; border=
-left:1px solid rgb(204,204,204); padding-left:1ex">
<div>
<div dir=3D"ltr">
<div id=3D"gmail-m_-6302946307347034312x_divtagdefaultwrapper" dir=3D"ltr" =
style=3D"font-size:12pt; color:rgb(0,0,0); font-family:Calibri,Helvetica,sa=
ns-serif">
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols; font-size:=
16px; margin-top:0px; margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">Subodh</span></font></div>
<p></p>
</div>
<hr style=3D"display:inline-block; width:98%">
<div id=3D"gmail-m_-6302946307347034312x_divRplyFwdMsg" dir=3D"ltr"><font f=
ace=3D"Calibri, sans-serif" color=3D"#000000" style=3D"font-size:11pt"><b>F=
rom:</b> QUIC &lt;<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank=
">quic-bounces@ietf.org</a>&gt; on behalf of Lubashev,
 Igor &lt;<a href=3D"mailto:ilubashe@akamai.com" target=3D"_blank">ilubashe=
@akamai.com</a>&gt;<br>
<b>Sent:</b> Wednesday, July 5, 2017 8:50:05 PM<br>
<b>To:</b> Kazuho Oku; Ian Swett<br>
<b>Cc:</b> Mike Bishop; Dmitri Tikhonov; Swindells, Thomas (Nokia - GB/Camb=
ridge, UK); Jo Kulik; Mikkel Fahn=F8e J=F8rgensen; QUIC WG; Martin Thomson
<div>
<div class=3D"gmail-h5"><br>
<b>Subject:</b> RE: Unidirectional streams PR</div>
</div>
</font>
<div>&nbsp;</div>
</div>
</div>
<div>
<div class=3D"gmail-h5"><font size=3D"2"><span style=3D"font-size:10pt">
<div class=3D"gmail-m_-6302946307347034312PlainText">&gt; If a client needs=
 a way to reset the server's response before observing the first frame, it =
cannot use FIN as an indicator of the end of the request.<br>
<br>
There is a DISINTEREST frame proposal (PR #171: <a href=3D"https://urldefen=
se.proofpoint.com/v2/url?u=3Dhttps-3A__github.com_quicwg_base-2Ddrafts_pull=
_171&amp;d=3DDwMFaQ&amp;c=3D96ZbZZcaMF4w0F4jpN6LZg&amp;r=3DDjn3bQ5uNJDPM_2s=
kfL3rW1tzcIxyjUZdn_m55KPmlo&amp;m=3DnUIKlIBqPqjVljTh1PhBhHP75fAW7-4WhWrKD26=
rfz4&amp;s=3DvUU1jpQB1L_xAsDNdBWa6XhQ8_fzM4EF2uP5uq57dEo&amp;e=3D" target=
=3D"_blank">
https://github.com/quicwg/<wbr>base-drafts/pull/171</a>).&nbsp; That's some=
thing that I believe is valuable independent of this Unidirectional streams=
 PR.<br>
<br>
- Igor<br>
<br>
<br>
-----Original Message-----<br>
From: Kazuho Oku [<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">=
mailto:kazuhooku@gmail.com</a>]
<br>
Sent: Wednesday, July 05, 2017 1:41 AM<br>
To: Ian Swett &lt;<a href=3D"mailto:ianswett@google.com" target=3D"_blank">=
ianswett@google.com</a>&gt;<br>
Cc: Lubashev, Igor &lt;<a href=3D"mailto:ilubashe@akamai.com" target=3D"_bl=
ank">ilubashe@akamai.com</a>&gt;; Mike Bishop &lt;<a href=3D"mailto:Michael=
.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@microsoft.com</a>&g=
t;<wbr>; Dmitri Tikhonov &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com"=
 target=3D"_blank">dtikhonov@litespeedtech.com</a>&gt;;
 Swindells, Thomas (Nokia - GB/Cambridge, UK) &lt;<a href=3D"mailto:thomas.=
swindells@nokia.com" target=3D"_blank">thomas.swindells@nokia.com</a>&gt;; =
Jo Kulik &lt;<a href=3D"mailto:jokulik@google.com" target=3D"_blank">jokuli=
k@google.com</a>&gt;; Mikkel Fahn=F8e J=F8rgensen &lt;<a href=3D"mailto:mik=
kelfj@gmail.com" target=3D"_blank">mikkelfj@gmail.com</a>&gt;;
 QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_blank">quic@ietf.o=
rg</a>&gt;; Martin Thomson &lt;<a href=3D"mailto:martin.thomson@gmail.com" =
target=3D"_blank">martin.thomson@gmail.com</a>&gt;<br>
Subject: Re: Unidirectional streams PR<br>
<br>
2017-06-29 10:23 GMT&#43;09:00 Ian Swett &lt;<a href=3D"mailto:ianswett@goo=
gle.com" target=3D"_blank">ianswett@google.com</a>&gt;:<br>
&gt; I updated my PR(#656) today, sorry for the delay.&nbsp; I attempted to=
 <br>
&gt; address the issues identified with text.&nbsp; Some may prefer more tw=
eaks <br>
&gt; to the state diagram, which are also possible, so I'm open to suggesti=
ons.<br>
<br>
After all, I think that the approach proposed here is the most well-balance=
d one.<br>
<br>
As much as I think that having first-class support for unidirectional strea=
ms is preferable, I also think that we should keep the overall architecture=
 (i.e. sum of the complexity in the transport layer and the application lay=
er) as simple as possible.<br>
<br>
IMO having support for bidirectional streams (along with support for unidir=
ectional streams) aligns with such intention.<br>
<br>
Most of the application protocols that will be deployed over the QUIC trans=
port will be in request-response style, at least to some extent.<br>
Hence it is preferable for the transport layer to provide a framework that =
fits such style.<br>
<br>
Bidirectional streams provide the necessary features. FIN provides a way to=
 indicate the end of the message. RST provides a way to cancel the exchange=
 of the message in both directions.<br>
<br>
IMO the biggest issue with the unidirectional-only approach is that you can=
not have the two features together. If a client needs a way to reset the se=
rver's response before observing the first frame, it cannot use FIN as an i=
ndicator of the end of the request.<br>
<br>
It is true that the issue can be evaded by doing one's own framing in the a=
pplication layer. #643 does that by introducing a CANCEL_REQUEST frame.<br>
<br>
But I do not think that we should require every application protocol built =
above QUIC to do its own framing. In addition to that, need to keep two uni=
-directional streams open would consume more resources than being able to c=
lose one direction of a bi-directional
 stream at an earlier moment.<br>
<br>
&gt; In the meantime, I've been considering other alternatives, including <=
br>
&gt; variations on Mike's direction and a variation of the &quot;Do Nothing=
&quot; <br>
&gt; option which involved the application signaling to the transport that =
<br>
&gt; streams of a certain sort(ie: server to client for server push) were <=
br>
&gt; unidirectional, as GQUIC does today.&nbsp; Overall, I think the approa=
ch <br>
&gt; I've outlined does a good job of iterating on existing deployment <br>
&gt; experience and adding explicit signaling for unidirectional streams <b=
r>
&gt; instead of implicit signaling at the application layer.&nbsp; There ar=
e <br>
&gt; pros and cons to both explicit and implicit signaling, but I think <br=
>
&gt; explicit signaling is more complete and less prone to application erro=
r.<br>
&gt;<br>
&gt; Thanks, Ian<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Jun 28, 2017 at 8:14 PM, Lubashev, Igor &lt;<a href=3D"mailto:=
ilubashe@akamai.com" target=3D"_blank">ilubashe@akamai.com</a>&gt; wrote:<b=
r>
&gt;&gt;<br>
&gt;&gt; &gt; unless what the transport provides is a perfect fit for appli=
cation <br>
&gt;&gt; &gt; semantics, you end up building those semantics into the appli=
cation anyway.<br>
&gt;&gt;<br>
&gt;&gt; I agree with this. We should avoid adding complexity into transpor=
t <br>
&gt;&gt; for rare use cases, since it goes against KISS principle.<br>
&gt;&gt;<br>
&gt;&gt; On the other hand, adding support for a by far the most common use=
 <br>
&gt;&gt; case makes a lot of sense.&nbsp; This helps apps avoid screwing up=
 <br>
&gt;&gt; implementing that common case and lets us optimize that common cas=
e <br>
&gt;&gt; in the lower layer. BiDi streams are such common cases. Uni stream=
s <br>
&gt;&gt; are likely to be the second-most-common cases (hence you offered t=
his PR to optimize them).<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The Associated Streams proposal offers extra semantic flexibility =
at <br>
&gt;&gt; a cost of some semantic complexity (someone would need to verify t=
hat <br>
&gt;&gt; the associated stream numbers make sense -- api? apps?) and a few =
extra bytes.<br>
&gt;&gt;<br>
&gt;&gt; I'd like to wait to see Ian's revised proposal.&nbsp; The initial =
proposal <br>
&gt;&gt; offered to do only one thing -- offer a choice of uni/bi-direction=
al <br>
&gt;&gt; streams<br>
&gt;&gt; -- but it did it in a very simple way, which is nice.<br>
&gt;&gt;<br>
&gt;&gt; - Igor<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; -----Original Message-----<br>
&gt;&gt; From: Martin Thomson [<a href=3D"mailto:martin.thomson@gmail.com" =
target=3D"_blank">mailto:martin.thomson@gmail.<wbr>com</a>]<br>
&gt;&gt; Sent: Wednesday, June 28, 2017 7:28 PM<br>
&gt;&gt; To: Mike Bishop &lt;<a href=3D"mailto:Michael.Bishop@microsoft.com=
" target=3D"_blank">Michael.Bishop@microsoft.com</a>&gt;<br>
&gt;&gt; Cc: Swindells, Thomas (Nokia - GB/Cambridge, UK) <br>
&gt;&gt; &lt;<a href=3D"mailto:thomas.swindells@nokia.com" target=3D"_blank=
">thomas.swindells@nokia.com</a>&gt;; QUIC WG &lt;<a href=3D"mailto:quic@ie=
tf.org" target=3D"_blank">quic@ietf.org</a>&gt;; Mikkel Fahn=F8e
<br>
&gt;&gt; J=F8rgensen &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_b=
lank">mikkelfj@gmail.com</a>&gt;; Dmitri Tikhonov
<br>
&gt;&gt; &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"_blan=
k">dtikhonov@litespeedtech.com</a>&gt;; Jo Kulik &lt;<a href=3D"mailto:joku=
lik@google.com" target=3D"_blank">jokulik@google.com</a>&gt;<br>
&gt;&gt; Subject: Re: Unidirectional streams PR<br>
&gt;&gt;<br>
&gt;&gt; There is probably a simpler approach here, take a bit (as Ian did)=
 <br>
&gt;&gt; and say that if that bit is set, then the stream is in response to=
 <br>
&gt;&gt; another and the stream ID of the stream to which this is respondin=
g <br>
&gt;&gt; follows immediately after the stream ID of the stream itself.&nbsp=
; You <br>
&gt;&gt; could then include that only at the start of the stream, or in mul=
tiple frames (or as we decide).<br>
&gt;&gt;<br>
&gt;&gt; The problem with this, as with several of the other issues we're <=
br>
&gt;&gt; discussing, is that unless what the transport provides is a perfec=
t <br>
&gt;&gt; fit for application semantics, you end up building those semantics=
 <br>
&gt;&gt; into the application anyway.&nbsp; HTTP certainly can't survive wi=
thout <br>
&gt;&gt; its own association semantics for pushes.&nbsp; That suggests to m=
e that <br>
&gt;&gt; having bidirectional semantics in the transport creates more <br>
&gt;&gt; duplication than otherwise.&nbsp; Hence my proposal.<br>
&gt;&gt;<br>
&gt;&gt; On 28 June 2017 at 15:26, Mike Bishop &lt;<a href=3D"mailto:Michae=
l.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@microsoft.com</a>&=
gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; As promised, a PR for adding =93associated streams=94 is at <=
br>
&gt;&gt; &gt; <a href=3D"https://urldefense.proofpoint.com/v2/url?u=3Dhttps=
-3A__github.com_quicwg_base-2Ddrafts_pull_672&amp;d=3DDwMFaQ&amp;c=3D96ZbZZ=
caMF4w0F4jpN6LZg&amp;r=3DDjn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&amp;m=
=3DnUIKlIBqPqjVljTh1PhBhHP75fAW7-4WhWrKD26rfz4&amp;s=3DBpuekjI8WR8_GGDuIgRp=
0wW2dylR52OtLbuxONJGujY&amp;e=3D" target=3D"_blank">
https://github.com/quicwg/<wbr>base-drafts/pull/672</a>.&nbsp; This very <b=
r>
&gt;&gt; &gt; deliberately builds on top of MT=92s PR =96 it=92s adding a p=
rimitive <br>
&gt;&gt; &gt; which can be used to construct various abstractions atop <br>
&gt;&gt; &gt; unidirectional streams, but the lifecycle is still fundamenta=
lly unidirectional.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Copying my notes here for list discussion purposes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Major changes<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Leveraging @igorlord's insight that OO=3D00 only occurs on th=
e first <br>
&gt;&gt; &gt; STREAM frame of a stream, I used that as the trigger for a St=
ream <br>
&gt;&gt; &gt; Properties byte.<br>
&gt;&gt; &gt; Two bits of that byte describe the directionality of the stre=
am:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Unidirectional (no response expected) Initial bidirectional (=
one <br>
&gt;&gt; &gt; response expected) Initial multi-response (one or more respon=
ses <br>
&gt;&gt; &gt; expected; needs a better name) Response<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; If the type is Response, there's an Associated Stream ID fiel=
d, <br>
&gt;&gt; &gt; length given by two more bits following the same pattern as t=
he SS <br>
&gt;&gt; &gt; bits in the STREAM frame ID.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Personal Opinion<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On the plus side, these stream types seem to cover the abstra=
ctions <br>
&gt;&gt; &gt; I can envision for most applications. You can unilaterally se=
nd <br>
&gt;&gt; &gt; something (unidirectional), do request/response (bidirectiona=
l), or <br>
&gt;&gt; &gt; pub/sub (single subscription stream, series of update streams=
).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I don't care for the fact that I still need the stream type h=
eader <br>
&gt;&gt; &gt; in HTTP after putting this in the transport. That will be <br=
>
&gt;&gt; &gt; ameliorated if we go back to one stream per request, since al=
l <br>
&gt;&gt; &gt; unidirectional streams will be push streams. (As a side-note,=
 I <br>
&gt;&gt; &gt; considered using the multiple-response option in the HTTP map=
ping, <br>
&gt;&gt; &gt; but then I need a stream header again to indicate which is th=
e <br>
&gt;&gt; &gt; response and which the pushes.)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I particularly don't like that you now have to look at the fr=
ame <br>
&gt;&gt; &gt; type header to find out whether a field exists which tells yo=
u the <br>
&gt;&gt; &gt; length of something else in the header. I'd like to simplify =
that. <br>
&gt;&gt; &gt; I went with this model over a CREATE_STREAM frame because of =
<br>
&gt;&gt; &gt; @mikkelfj's use-case of very small messages<br>
&gt;&gt; &gt; -- this adds only one byte to the first frame on a stream in =
one <br>
&gt;&gt; &gt; direction and 2-5 bytes to the first frame of response stream=
s. A <br>
&gt;&gt; &gt; separate frame type would be somewhat larger, but could be cl=
eaner <br>
&gt;&gt; &gt; in that respect.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; From: QUIC [<a href=3D"mailto:quic-bounces@ietf.org" target=
=3D"_blank">mailto:quic-bounces@ietf.org</a>] On Behalf Of Swindells,
<br>
&gt;&gt; &gt; Thomas (Nokia - GB/Cambridge, UK)<br>
&gt;&gt; &gt; Sent: Wednesday, June 28, 2017 7:56 AM<br>
&gt;&gt; &gt; To: Jo Kulik &lt;<a href=3D"mailto:jokulik@google.com" target=
=3D"_blank">jokulik@google.com</a>&gt;; Mikkel Fahn=F8e J=F8rgensen
<br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_blank">m=
ikkelfj@gmail.com</a>&gt;<br>
&gt;&gt; &gt; Cc: QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_b=
lank">quic@ietf.org</a>&gt;; Dmitri Tikhonov
<br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"=
_blank">dtikhonov@litespeedtech.com</a>&gt;<br>
&gt;&gt; &gt; Subject: RE: Unidirectional streams PR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I agree that looking at the layers of abstraction is useful. =
In <br>
&gt;&gt; &gt; principle having the wire protocol just have constructs for <=
br>
&gt;&gt; &gt; unidirectional streams does not in itself limit creating <br>
&gt;&gt; &gt; bi-directional communication flows, supported at either the l=
ibrary <br>
&gt;&gt; &gt; or application layer.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; However, there need to be a standard way of doing bi-directio=
nal <br>
&gt;&gt; &gt; communication for migrating applications implemented using a =
socket <br>
&gt;&gt; &gt; style api. It needs to be easy to move an existing applicatio=
n from <br>
&gt;&gt; &gt; TCP to QUIC.<br>
&gt;&gt; &gt; This move may be attractive in many situations as QUIC gives =
<br>
&gt;&gt; &gt; improved security and may allow greater throughput due to the=
 more <br>
&gt;&gt; &gt; modern (and<br>
&gt;&gt; &gt; customizable) congestion control algorithms compared to the O=
S TCP <br>
&gt;&gt; &gt; stack.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; For migrating standard socket api applications I don=92t thin=
k it <br>
&gt;&gt; &gt; would be appropriate to leave the work to the application to =
do <br>
&gt;&gt; &gt; correlation, at least the library should be providing this se=
rvice <br>
&gt;&gt; &gt; using the wire protocol as appropriate. Clearly we want a cli=
ent <br>
&gt;&gt; &gt; written with one library to be able to communicate successful=
ly <br>
&gt;&gt; &gt; with a server written using a different library.<br>
&gt;&gt; &gt; This needs some form of standardization of the signalling. Th=
is <br>
&gt;&gt; &gt; could either be a building block overlay on top of QUIC, or <=
br>
&gt;&gt; &gt; implemented at the wire protocol level.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In terms of patterns I think the following may be some of the=
 most <br>
&gt;&gt; &gt; common patterns (with potential to be provided at the library=
 and <br>
&gt;&gt; &gt; or wire protocol level).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I/O pattern&nbsp; : Example<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/0&nbsp;&nbsp; : An input only flow, perhaps a data logger l=
ike syslog with no<br>
&gt;&gt; &gt; confirmation/feedback<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 0/1&nbsp; : an output only flow, perhaps a topic message bus =
service <br>
&gt;&gt; &gt; with no confirmation/feedback<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/1 : standard TCP applications with a single flow per connec=
tion<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1/* : single input, many output, modelling STDIN/STDOUT&#43;S=
TDERR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; (1/1)* : multiplexed pairs of flows =96 supporting multiple s=
ockets <br>
&gt;&gt; &gt; muxed onto a single QUIC connection<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Obviously, an application would always have the option to com=
bine <br>
&gt;&gt; &gt; any single direction flows with application level correlators=
 to <br>
&gt;&gt; &gt; construct more complex flows if desired.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; At the moment my gut says the 1/1 use-case is common enough t=
hat <br>
&gt;&gt; &gt; the wire protocol should provide a standard mechanism to supp=
ort it <br>
&gt;&gt; &gt; as a standard overlay would probably end up being treated as =
part <br>
&gt;&gt; &gt; of the wire format anyway.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Perhaps streams should be explicitly created with a CREATE_ST=
REAM <br>
&gt;&gt; &gt; frame which would be capable of defining multiple related str=
eams?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; There is the option of whether only (1/1) pairs can be create=
d this <br>
&gt;&gt; &gt; way, or<br>
&gt;&gt; &gt; (1/n) combinations could be supported (with an application de=
fined <br>
&gt;&gt; &gt; way to identify the use of each of the output streams). A ste=
p <br>
&gt;&gt; &gt; further may be that there is a transport parameter that defin=
es <br>
&gt;&gt; &gt; whether the server is allowed to create additional streams, o=
r if <br>
&gt;&gt; &gt; stream creation is purely client driven (like TCP). I don=92t=
 know if <br>
&gt;&gt; &gt; either of these would simplify how to handle stream accountin=
g, and <br>
&gt;&gt; &gt; in particular only creating a flow when all parties have suff=
icient allowances left.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thomas<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; From: QUIC [<a href=3D"mailto:quic-bounces@ietf.org" target=
=3D"_blank">mailto:quic-bounces@ietf.org</a>] On Behalf Of Jo Kulik<br>
&gt;&gt; &gt; Sent: 28 June 2017 15:09<br>
&gt;&gt; &gt; To: Mikkel Fahn=F8e J=F8rgensen &lt;<a href=3D"mailto:mikkelf=
j@gmail.com" target=3D"_blank">mikkelfj@gmail.com</a>&gt;<br>
&gt;&gt; &gt; Cc: QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_b=
lank">quic@ietf.org</a>&gt;; Dmitri Tikhonov
<br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"=
_blank">dtikhonov@litespeedtech.com</a>&gt;<br>
&gt;&gt; &gt; Subject: Re: Unidirectional streams PR<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I'd like to pop back up to a comment Igor made last week, bec=
ause I <br>
&gt;&gt; &gt; find it helpful in thinking about the design space:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I think of three layers of abstraction:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QUIC Wire Protocol (th=
e thing described by the QUIC Transport<br>
&gt;&gt; &gt; RFC)<br>
&gt;&gt; &gt; 2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QUIC Library API (a li=
brary exposing some useful abstractions<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; such as blocking/non-blocking unidirectional streams and <br>
&gt;&gt; &gt; bidirectional =93sockets=94 -- and implementing them using QU=
IC Wire Protocol)<br>
&gt;&gt; &gt; 3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application (something=
 that uses QUIC Library APIs)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I think there is some argument to be made that Martin's origi=
nal <br>
&gt;&gt; &gt; proposal did not take into account how we would achieve (2) f=
or <br>
&gt;&gt; &gt; bi-directional streams.&nbsp; (I don't think it strictly said=
 &quot;thou <br>
&gt;&gt; &gt; shalt not do (2)&quot; either, but that is up to interpretati=
on.)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Several people have argued that we do not want every applicat=
ion to <br>
&gt;&gt; &gt; have to re-implement bi-directional streams (3) for every <br=
>
&gt;&gt; &gt; application, and this is not how g-quic (our largest deployme=
nt) works right now.<br>
&gt;&gt; &gt; These arguments make sense to me, but YMMV.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Just because the particular *mechanism* that is being propose=
d has <br>
&gt;&gt; &gt; some issues, however, doesn't scream out to me, at least, tha=
t we <br>
&gt;&gt; &gt; should abandon this particular *design goal*.&nbsp; The goal =
being a <br>
&gt;&gt; &gt; transport protocol that can elegantly fit with a uni/bi strea=
m model.<br>
&gt;&gt; &gt; Now, if we conclude that there can never be an elegant model =
that <br>
&gt;&gt; &gt; achieves this goal, then so be it.&nbsp; But I also feel like=
 we haven't <br>
&gt;&gt; &gt; reached that point in the discussion yet.&nbsp; (At the very =
least, this <br>
&gt;&gt; &gt; discussion has been fruitful to me in terms of mapping the de=
sign <br>
&gt;&gt; &gt; space and elucidating requirements).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; One of the reasons I still think this design goal is under <b=
r>
&gt;&gt; &gt; consideration is that Ian and Igor/Mike have been talking abo=
ut <br>
&gt;&gt; &gt; alternate solutions which have a similar flavor.&nbsp; During=
 the recent <br>
&gt;&gt; &gt; &quot;quiet&quot;ness on the thread, personally, I've been wa=
iting to hear <br>
&gt;&gt; &gt; more from them.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Wed, Jun 28, 2017 at 9:41 AM, Mikkel Fahn=F8e J=F8rgensen =
<br>
&gt;&gt; &gt; &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_blank">m=
ikkelfj@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In reply to Ranjeeth<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It is not only a matter of simplicity for the sake of simplic=
ity:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - A complex transport layer might end up being poorly impleme=
nted <br>
&gt;&gt; &gt; leading to reduced interoperability and ultimately adoption. =
This <br>
&gt;&gt; &gt; complexity is not only in implementation but also in understa=
nding <br>
&gt;&gt; &gt; the exact semantics of stream lifetime. Even if the spec is <=
br>
&gt;&gt; &gt; sufficiently clear, it will still be open to misinterpretatio=
ns.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Bi-directional state may have to be maintained longer and w=
ith <br>
&gt;&gt; &gt; more overhead than with uni-directional streams, especially u=
nder <br>
&gt;&gt; &gt; loss, potentially leading to poor performance and poor resour=
ce <br>
&gt;&gt; &gt; utilisation because the transport layer has insufficient info=
rmation.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - The extra complexity at the application layer may be overst=
ated - <br>
&gt;&gt; &gt; it is significantly simpler to manage a map that associates t=
o two <br>
&gt;&gt; &gt; streams than it is to maintain bi-directional state at the <b=
r>
&gt;&gt; &gt; transport layer. It is even possible to implicitly link strea=
ms <br>
&gt;&gt; &gt; with same identifiers, e.g. in a RPC scenario. That said, I d=
o see <br>
&gt;&gt; &gt; a potential benefit of a wrapper that implements the common b=
i-directional case.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Complexity at the application layer may be duplicated, but =
<br>
&gt;&gt; &gt; implementation errors are also isolated to that application.<=
br>
&gt;&gt; &gt; Specifically for HTTP I would assume that QUIC transport and =
QUIC <br>
&gt;&gt; &gt; HTTP implementers would be large the same for a long time to =
come, <br>
&gt;&gt; &gt; so I would not expect the tradeoff here to be particularly co=
ncerning.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Unix pipes are traditionally constructed as a pair of <br>
&gt;&gt; &gt; uni-directional file descriptors and that is a reasonably pro=
ven <br>
&gt;&gt; &gt; model. C=92s standard library stdin, stdout and stderr is an =
example <br>
&gt;&gt; &gt; of an asymmetric model with implicit linkage between <br>
&gt;&gt; &gt; uni-directional file descriptors.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - There are lots of use cases for non-HTTP like connectivity =
- <br>
&gt;&gt; &gt; Kafka high volume message queuing for example. The industry t=
rend <br>
&gt;&gt; &gt; appears to move towards asynchronous processing and messaging=
. It <br>
&gt;&gt; &gt; depends on whether you look at QUIC as a TCP &#43; TLS replac=
ement, or <br>
&gt;&gt; &gt; as a HTTPS / REST RPC replacement.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Uni-directional streams may currently be unproven in the wi=
ld, <br>
&gt;&gt; &gt; but a proposal is needed before an implementation can be made=
 and <br>
&gt;&gt; &gt; testet. I agree that it is easy to design into wrong assumpti=
ons <br>
&gt;&gt; &gt; without real world testing.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - There will hopefully not be a large number of successors to=
 QUIC <br>
&gt;&gt; &gt; - perhaps some purpose specific variants, e.g. for embedded u=
se.<br>
&gt;&gt; &gt; Widespread adaptation and compatibility is very necessary so =
it <br>
&gt;&gt; &gt; makes sense to have QUIC being sufficiently simple and expres=
sive <br>
&gt;&gt; &gt; to achieve this goal. A polymorf QUIC will not achieve that g=
oal. <br>
&gt;&gt; &gt; On the other hand, a solid QUIC foundation can be used for a =
large <br>
&gt;&gt; &gt; number of application protocols.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Finally, it may turn out that uni-directional streams just =
is a <br>
&gt;&gt; &gt; bad idea - I doubt it, but I do believe real world tests are =
needed.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Kind Regards,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Mikkel Fahn=F8e J=F8rgensen<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On 28 June 2017 at 14.42.36, Dmitri Tikhonov<br>
&gt;&gt; &gt; (<a href=3D"mailto:dtikhonov@litespeedtech.com" target=3D"_bl=
ank">dtikhonov@litespeedtech.com</a>)<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Jun 27, 2017 at 02:31:38PM -0700, Ranjeeth Kumar Dasi=
neni wrote:<br>
&gt;&gt; &gt;&gt; 2. We are overplaying the simplicity of design. Even if w=
e deem <br>
&gt;&gt; &gt;&gt; deployment experience not a concern, if every application=
 layer <br>
&gt;&gt; &gt;&gt; protocol that needs support for bidirectional streams has=
 to <br>
&gt;&gt; &gt;&gt; implement some correlators and such above, that's a net n=
egative <br>
&gt;&gt; &gt;&gt; in terms of complexity.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; This is an important point: we want QUIC adoption to be made =
easy.<br>
&gt;&gt; &gt; A program that speaks HTTP today should be able to use an exi=
sting <br>
&gt;&gt; &gt; QUIC library without having to emulate bidirectional streams =
in <br>
&gt;&gt; &gt; order to fit it into HTTP usage pattern. Forcing every one of=
 these <br>
&gt;&gt; &gt; programs to do this is certainly a hurdle.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; - Dmitri.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Kazuho Oku<br>
</div>
</span></font></div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</body>
</html>

--_000_070fb70b3674407b817da845f8ed524cusma1exdag1mb5msgcorpak_--


From nobody Thu Jul  6 20:33:55 2017
Return-Path: <martin.thomson@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 D0217129B67 for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 20:33:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 pDIc-ouC6cmt for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 20:33:52 -0700 (PDT)
Received: from mail-it0-x229.google.com (mail-it0-x229.google.com [IPv6:2607:f8b0:4001:c0b::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 1EF8D12741D for <quic@ietf.org>; Thu,  6 Jul 2017 20:33:52 -0700 (PDT)
Received: by mail-it0-x229.google.com with SMTP id m68so20698933ith.1 for <quic@ietf.org>; Thu, 06 Jul 2017 20:33:52 -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=DpCpQOX0Mnrp5rf9gUFAz2saKf0pUjpq0JS+BHEIITY=; b=KUCa9oJIO1cWVPoC3G4SOQ4cLv0XAmw/rPfF3UGFNmxnhCcmvA+Dda712m6K8w+CfA N17xxhaIaely8m6iwRy+P0Ajq5/YNKd7IHFCFoDbtZ1vQtPSw1Cr9wJREvh79qaw6BD1 VX9wS70DGWSj4WghPSksQ6FlyPfnN1yR/Es/B/khyPj/Tk1vOz0WPRvVk4SlMcLyrkfW gUWrRa2cWssOLQgDB0LX214wbF0S1NI0v0l8DehbnTwn1pxFuUrnEwewrN6PmkEu7uYf t4fkOuoDk5SnpTtYrqil2JTAv0qeB982fKuBlX2Q8un1urMU5Z0JvHtm0NQEFwdfzJHT nrCQ==
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=DpCpQOX0Mnrp5rf9gUFAz2saKf0pUjpq0JS+BHEIITY=; b=e/yJDUmQnoJngCZAEnLM2TDfaS7BblbH7EiOXsooK78/HL+Pd7qclFsQ2nGtpMD3mH BVSZInXBGCU8I5M9xGKtU0Twtdl9rs4r3r4/EVlBV1Pq9Gi+VLNqrO+qBEtobV9U9JJ5 c/KzdRijmFoUBXieY+PmojD3UcpnMJ3nE789+fzX/mSIMamdMtKnrNeS/LM24N9JFAT+ BtKYXr24Wluvfk94rD0aG46loZM5ee2/TZlCu95TDpB6q4hggLZFaOnQ2qGsHuCJbS+p 0kuImv+gOjJfv+4TzSjJK8vRq2liUuVMW1sY5cY43J+RDzTkIV1avJnBdEJ7JbGhjPDf VsQQ==
X-Gm-Message-State: AKS2vOwKByWQfvrz+52iRTDCvOHmMGyJikqdm8wgM4iz1DWuILKkWYC2 wQLHl/euRGnDAdd7COwiIO2TIL8kBg==
X-Received: by 10.107.133.84 with SMTP id h81mr49701597iod.230.1499398431486;  Thu, 06 Jul 2017 20:33:51 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.129.162 with HTTP; Thu, 6 Jul 2017 20:33:50 -0700 (PDT)
In-Reply-To: <CANatvzzxWze+tDf6TUHRpw7z4Mi9cCZX5OUWydMi+fXRx=Zcmw@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com> <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com> <CANatvzw6VGMH8tJbhCxmgTR8_uuxtodiwS2-LT6XkyuBHJz+Fg@mail.gmail.com> <CABkgnnUUd4B4HLzAb1OVVtG3KdNuyH3Cz+4GuyX-AqH5c26L6w@mail.gmail.com> <CANatvzzxWze+tDf6TUHRpw7z4Mi9cCZX5OUWydMi+fXRx=Zcmw@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 7 Jul 2017 13:33:50 +1000
Message-ID: <CABkgnnX2fCyNziO0dRy_ka3gbuV=4L+TuK25svoF=i6iwy8-RA@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/3NuIU13HbQEcUNoURs6cLyO_vn4>
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: Fri, 07 Jul 2017 03:33:54 -0000

On 7 July 2017 at 12:21, Kazuho Oku <kazuhooku@gmail.com> wrote:
> Considering the complexity of guessing when the server runs out of
> stream IDs, it might be easier if we could use a server-sent
> CANCEL_REQUEST frame as an indication that the client needs to resend
> the request on a new connection.

If we ever get to the point where we have a good graceful shutdown,
then that should mostly cover this.  CANCEL_REQUEST is likely still
useful here to cover reordering.

Here's my thinking on this: the server sends a GOAWAY identifying the
highest numbered request that it has accepted (requests, not pushes).
Anything higher than this will not be processed.  The connection goes
away when responses to all those requests have been delivered,
including all the promises that attach to those.

The only trick here is that the server might be able to answer a
request on stream X, but find that it can't answer X-1, which could
arrive out of order.  So, yeah, CANCEL_REQUEST is a good fit for that.
RST_STREAM isn't useful here because the stream can be closed when the
server makes this discovery.

Either way, having the server being able to cancel requests is good
practice, because it might not be in a position to use RST_STREAM.


From nobody Thu Jul  6 22:05:06 2017
Return-Path: <kazuhooku@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 D769F12EC4D for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 22:05:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 WZ6wkhKDBUux for <quic@ietfa.amsl.com>; Thu,  6 Jul 2017 22:05:03 -0700 (PDT)
Received: from mail-pf0-x233.google.com (mail-pf0-x233.google.com [IPv6:2607:f8b0:400e:c00::233]) (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 26D02129AF6 for <quic@ietf.org>; Thu,  6 Jul 2017 22:05:03 -0700 (PDT)
Received: by mail-pf0-x233.google.com with SMTP id e7so11447364pfk.0 for <quic@ietf.org>; Thu, 06 Jul 2017 22:05:03 -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=thquKinraqaxiullo4UFfBWeW8ZQV0ZhSJTZp/wK454=; b=RReRGTtXxvtuwVm9ps8TNKBQhV4/xSdTmqCDvLNu64kCc/uNQzvJqG1RPmUUcwS29T 4z+dJq4GA9ztitvkVinvRdL1KUusDywzlEg0x2+ytuOJUIhSK81LTCG5fS7HS4AM4zFV mW5qLVajVMYJkFs4RCX/ayWfe7A5EucUJv2EVnkZNTaNzwCNiGQnh9YKr8G36wjIfLvk KFO+6E8jto5ldtSSknkbIR2358sgsN6ElHFg6CxTM991Jwj34tv8P1hYF+cRpLZJjGsH j5tYBr15lt+ZhX+CybkLTdL2/xrU67VDp5kBlvu4u5/wGO/s4TJOGQKcwHFMYGj1zNYT NQew==
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=thquKinraqaxiullo4UFfBWeW8ZQV0ZhSJTZp/wK454=; b=OmxFcIRNfHdN//RMcufcKFh86BCSQhXQVKIJLIxs2I24A+RSuOXmyUsc9MuyU/WKvz o8mN7RKNO5aTeOaGkCkRbUeMpT+K+EDi1dxXOt3gPyfaDyF1IuPf+t46rxbsJh5yhUK5 SvSHwtUpW1XhDBJVbEBhKtTyd9ZfkfYl3mXZPDk3VFtq2PjEGtYQe+35CTVBWd89E3ER PDUR7akRyYUl1dDz9v/tWOM5OHFqevOXQnJ6o/+FVN1yONURKwhGVPfJ6WRjTb+q4jKy tFi/SpAXFpXlaB0dx5BMwtrZUSTdxDzoHSedYPwP3u46Vwzy6FCDY1AbldFSqzACLno/ ENwQ==
X-Gm-Message-State: AIVw1110rqKKzAYOEUSDtHmTJbH0CpkxlITpsq7aA3cQIh+Ceyp9WeyU ej6Tv72HI+5OQMAl2u9qnnQmBdjdzw==
X-Received: by 10.98.38.129 with SMTP id m123mr29262988pfm.183.1499403902636;  Thu, 06 Jul 2017 22:05:02 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Thu, 6 Jul 2017 22:05:01 -0700 (PDT)
In-Reply-To: <CABkgnnX2fCyNziO0dRy_ka3gbuV=4L+TuK25svoF=i6iwy8-RA@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com> <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com> <CANatvzw6VGMH8tJbhCxmgTR8_uuxtodiwS2-LT6XkyuBHJz+Fg@mail.gmail.com> <CABkgnnUUd4B4HLzAb1OVVtG3KdNuyH3Cz+4GuyX-AqH5c26L6w@mail.gmail.com> <CANatvzzxWze+tDf6TUHRpw7z4Mi9cCZX5OUWydMi+fXRx=Zcmw@mail.gmail.com> <CABkgnnX2fCyNziO0dRy_ka3gbuV=4L+TuK25svoF=i6iwy8-RA@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 7 Jul 2017 14:05:01 +0900
Message-ID: <CANatvzwHstNdbqaeOz8qK2ZATDPK8QFpXLzWcTGhFXFS9k_TKA@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Martin Thomson <martin.thomson@gmail.com>, "Lubashev, Igor" <ilubashe@akamai.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/D-24EcBk2ldWPb7qXQiMEo6HhbQ>
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: Fri, 07 Jul 2017 05:05:05 -0000

2017-07-07 12:33 GMT+09:00 Martin Thomson <martin.thomson@gmail.com>:
> On 7 July 2017 at 12:21, Kazuho Oku <kazuhooku@gmail.com> wrote:
>> Considering the complexity of guessing when the server runs out of
>> stream IDs, it might be easier if we could use a server-sent
>> CANCEL_REQUEST frame as an indication that the client needs to resend
>> the request on a new connection.
>
> If we ever get to the point where we have a good graceful shutdown,
> then that should mostly cover this.  CANCEL_REQUEST is likely still
> useful here to cover reordering.
>
> Here's my thinking on this: the server sends a GOAWAY identifying the
> highest numbered request that it has accepted (requests, not pushes).
> Anything higher than this will not be processed.  The connection goes
> away when responses to all those requests have been delivered,
> including all the promises that attach to those.
>
> The only trick here is that the server might be able to answer a
> request on stream X, but find that it can't answer X-1, which could
> arrive out of order.  So, yeah, CANCEL_REQUEST is a good fit for that.
> RST_STREAM isn't useful here because the stream can be closed when the
> server makes this discovery.
>
> Either way, having the server being able to cancel requests is good
> practice, because it might not be in a position to use RST_STREAM.

Thank you for the answer. I agree with your observations.

In https://mailarchive.ietf.org/arch/msg/quic/9VqjoX4acCDrxMKV2AmOQjspe3Q
Igor has suggested using DISINTEREST frame for cancelling requests
from the client-side. In the end, it might make sense for the
uni-directional-stream-only approach to have a frame that can be sent
in any direction for cancelling a request.

-- 
Kazuho Oku


From nobody Fri Jul  7 09:48:28 2017
Return-Path: <martin.h.duke@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 F295D131777 for <quic@ietfa.amsl.com>; Fri,  7 Jul 2017 09:48:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 HTzzRyB_SK1C for <quic@ietfa.amsl.com>; Fri,  7 Jul 2017 09:48:25 -0700 (PDT)
Received: from mail-qt0-x236.google.com (mail-qt0-x236.google.com [IPv6:2607:f8b0:400d:c0d::236]) (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 346BD131765 for <quic@ietf.org>; Fri,  7 Jul 2017 09:48:25 -0700 (PDT)
Received: by mail-qt0-x236.google.com with SMTP id i2so31668596qta.3 for <quic@ietf.org>; Fri, 07 Jul 2017 09:48:25 -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=vlpB2uUlBoMioH0OHbkxtxcCH4E8uecT4lfGspuEVfI=; b=YwwXyHWStpvjF9nQO17Hs1bOJBofsjiQH/l5cr3WABnfPLrDABg/jo2oP3Ex7jrUNd vUCjl/3go7lSa2YljqKAojg8G3tHyA9vYjW+zpfWyqe8KVX40Knu27ZjY6kpBM4l8yw2 Xla7rc5alKcQwxpu7rZtNwR91WJPSYEXNtIagcELNW2R8stmBRHUZVmtJphel9FpW+II XiLUvMcg39eNqOzyMYwMalAwI8PJVawi9agNl83O058UYkHcrS4748XJumaWdGemBca7 MXMpb8fbuQQoGkalUtB9UYZ1GD5aLt4SsLWPILRmaiQATKnw2eWWe0LM7f4JDaMvrZLk EMcQ==
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=vlpB2uUlBoMioH0OHbkxtxcCH4E8uecT4lfGspuEVfI=; b=H16O8ONOww0vSbFlJXJLJqFjdZAZU0h8JPGBzxMiW+cK7a6Fc2HGoWD0v3Lgbd+7Kh fBneWGbyys5Bixip1+Xb3+6TK0T4wDQdiCXmc9D5e3wTG/f+i3W4SP0dKiRaq4hM63k9 QFgD5YspyigEZ26l1U358X4dfSMjyR8HX79XQbNYGftXzOGigZcxGdD1R2zLcVw/246x 2NMrQ1ZtORgSMP+J3AZll3iVDSPsiiUsBqJxzGEqkzJNrIxFHDNmOV9jk2Rw7vfiViBz zCyFUEnjwZDkFHGPO3XKtFFMY9qdVfiFwCexamiCPXLtaLI2QaEsWZAi2k76Pif3atpB F+LA==
X-Gm-Message-State: AIVw110zUBnMJOc7pEg8EMPf2EHUYZfP9yD3Oo3kMT+9ZKd2PDvO7zz/ UUlhaPiERQ+XRSB2PKRLGlA6xrpauw==
X-Received: by 10.237.47.39 with SMTP id l36mr18156775qtd.181.1499446104414; Fri, 07 Jul 2017 09:48:24 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.140.91.71 with HTTP; Fri, 7 Jul 2017 09:48:23 -0700 (PDT)
In-Reply-To: <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Fri, 7 Jul 2017 09:48:23 -0700
Message-ID: <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Subodh Iyengar <subodh@fb.com>
Cc: "Lubashev, Igor" <ilubashe@akamai.com>, Kazuho Oku <kazuhooku@gmail.com>,  Ian Swett <ianswett@google.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Jo Kulik <jokulik@google.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary="94eb2c0d03ba69ddb50553bd0073"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/KAPiKwSdznOV2q99ZG8i6qP1asA>
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: Fri, 07 Jul 2017 16:48:27 -0000

--94eb2c0d03ba69ddb50553bd0073
Content-Type: text/plain; charset="UTF-8"

On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <subodh@fb.com> wrote:

> > Without such a signal, a generic proxy that is not aware of your
> application internals is not able to know when to send the FIN
>
> I see, this use case does make somewhat sense, however I'm curious
> if someone has a concrete use case for a generic QUIC proxy which is not
> aware of the application protocol at all. In TCP this was more common for
> middleboxes to do because there was no end to end encryption of the
> transport, however QUIC is encrypted. Even with cases when we tunneling
> protocols at our end, we usually have some knowledge of the app that we are
> running because we need to route them differently to different backends. I
> was mostly thinking that proxies would at least have some knowledge about
> HTTP/2 or app protocols.
>

Some load balancers (including ours) terminate the transport connection.
Being trusted middleboxes, they have the certificates and this sort of
thing works in principle.

That said, in such a case it's entirely feasible to implement HTTP/2 on the
middlebox as well.

However, I think we should look forward to the day where QUIC is
implemented in kernel space and HTTP/2 (and everything else) remains an
application. I imagine counting on all applications to do this kind of
garbage collection could cause problems.

--94eb2c0d03ba69ddb50553bd0073
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <span dir=3D"ltr">&lt;<=
a href=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">





<div>


<div dir=3D"ltr">
<div id=3D"m_122988482497302725x_divtagdefaultwrapper" dir=3D"ltr" style=3D=
"font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif"><sp=
an class=3D"">
<p></p>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:1=
6px;margin-top:0px;margin-bottom:0px">
&gt;=C2=A0<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"=
 size=3D"2"><span style=3D"font-size:14.67px">Without such a signal, a gene=
ric proxy that is not aware of your application internals is not able to kn=
ow when to send the FIN</span></font><font face=3D"Calibri,Arial,Helvetica,=
sans-serif,serif,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><b=
r>
</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px"><br>
</span></font></div>
</span><div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,Emo=
jiFont,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEm=
oji,&quot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font=
-size:16px;margin-top:0px;margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">I see, this use case does make somewhat=
 sense, however I&#39;m curious if=C2=A0someone has=C2=A0a concrete=C2=A0us=
e case for a generic QUIC proxy which is not aware of the
 application protocol at all. In TCP this was more common for middleboxes t=
o do because there was no end to end encryption of the transport, however Q=
UIC is encrypted. Even with cases when we=C2=A0tunneling protocols at our e=
nd, we usually have some knowledge of
 the app that we are running because we need to route them differently to d=
ifferent backends.=C2=A0I was mostly thinking that=C2=A0proxies would at le=
ast have some knowledge=C2=A0about HTTP/2 or app protocols.=C2=A0</span></f=
ont></div></div></div></div></blockquote><div><br></div><div>Some load bala=
ncers (including ours) terminate the transport connection. Being trusted mi=
ddleboxes, they have the certificates and this sort of thing works in princ=
iple.</div><div><br></div><div>That said, in such a case it&#39;s entirely =
feasible to implement HTTP/2 on the middlebox as well.</div><div><br></div>=
<div>However, I think we should look forward to the day where QUIC is imple=
mented in kernel space and HTTP/2 (and everything else) remains an applicat=
ion. I imagine counting on all applications to do this kind of garbage coll=
ection could cause problems.</div></div></div></div>

--94eb2c0d03ba69ddb50553bd0073--


From nobody Fri Jul  7 09:58:26 2017
Return-Path: <jri@google.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 85D47131783 for <quic@ietfa.amsl.com>; Fri,  7 Jul 2017 09:58:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 YrC4hFE4LE7v for <quic@ietfa.amsl.com>; Fri,  7 Jul 2017 09:58:23 -0700 (PDT)
Received: from mail-pg0-x231.google.com (mail-pg0-x231.google.com [IPv6:2607:f8b0:400e:c05::231]) (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 9E93B13173B for <quic@ietf.org>; Fri,  7 Jul 2017 09:58:23 -0700 (PDT)
Received: by mail-pg0-x231.google.com with SMTP id t186so20000153pgb.1 for <quic@ietf.org>; Fri, 07 Jul 2017 09:58:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=jRlps+g6vTcXSAOrBnOLka66EJhUP/buvEP7cl6nrRQ=; b=BlJU3859TwVn2ylJMeFcNEbPK8pFlo5x+edEAHv/wiNcivTb4gXGjpPCU/PrjUIpVt 57s/YFTo2MFXkTDMOdpveaH7OLSYX0WdSN/FCveOm8gCuHNKxmUcGnHOXbagdz7muEtt oyXBXi6cWEz4Ar7jJ8yCe8JRGdIlhnXfdYWjKm8QdaffBcavGhBEW6J5aYQUZAJL99eY //rWOcRUvDlkYJASiIuQ0rxdgL3UBE99XGWP1KTdLuD12yJH7Ngqsto1+a8bj+1to8Bi WRDHIRSElc0FWIhgpnXsH3E+HCwUCcaOEEUnXEX+9gY3BDBAX6cSUmP6ZBAbpg+Eg9Kn Pdww==
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=jRlps+g6vTcXSAOrBnOLka66EJhUP/buvEP7cl6nrRQ=; b=okPfd0nNmi9AZpNAoG9tyznWeJ+ppyWCpYs9oLLL8V6mu2yFAXFSD7/lJQ9CQ3t3rs if0o+aU0sN74mUxXi0dzw6q4o1Bywi4UMiKnnGyF/XXNruyUcaNEvajKdQvBVKwhkSRn WOfJu9DoFj788irYD8KAbgZPsRXwYB7x6vuUEgsuU4d3Osaq262cLovu8MwyMnfiSMea TiMsFs27LMXHTqY38EjJ5QPLcqBsKEHcFwQ96QTvBTdRDZ6xOWCzG0XRHhyHJxmt55uL yipruSFBApiKjIhFKRz1fZe7qHWPSzJ2/pUChxs5VemBei2b1m1/Is1yvUNT2DmbCkto p8kA==
X-Gm-Message-State: AIVw110AcfQqesvaueDwckq5bTyXe4wC8auubWlUEzMfpSZK3bZyUr47 IOKJeExevFboaUCrOomNvEB54xlmZx8X
X-Received: by 10.84.224.11 with SMTP id r11mr3953510plj.267.1499446703003; Fri, 07 Jul 2017 09:58:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.153.19 with HTTP; Fri, 7 Jul 2017 09:58:21 -0700 (PDT)
In-Reply-To: <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com>
From: Jana Iyengar <jri@google.com>
Date: Fri, 7 Jul 2017 09:58:21 -0700
Message-ID: <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Subodh Iyengar <subodh@fb.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett@google.com>, "Lubashev, Igor" <ilubashe@akamai.com>, Jo Kulik <jokulik@google.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="f403043a6168181b630553bd24b4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/jjeInSXLForaBQkemLRBs3PRLfY>
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: Fri, 07 Jul 2017 16:58:25 -0000

--f403043a6168181b630553bd24b4
Content-Type: text/plain; charset="UTF-8"

On Fri, Jul 7, 2017 at 9:48 AM, Martin Duke <martin.h.duke@gmail.com> wrote:

>
>
> On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <subodh@fb.com> wrote:
>
>> > Without such a signal, a generic proxy that is not aware of your
>> application internals is not able to know when to send the FIN
>>
>> I see, this use case does make somewhat sense, however I'm curious
>> if someone has a concrete use case for a generic QUIC proxy which is not
>> aware of the application protocol at all. In TCP this was more common for
>> middleboxes to do because there was no end to end encryption of the
>> transport, however QUIC is encrypted. Even with cases when we tunneling
>> protocols at our end, we usually have some knowledge of the app that we are
>> running because we need to route them differently to different backends. I
>> was mostly thinking that proxies would at least have some knowledge about
>> HTTP/2 or app protocols.
>>
>
> Some load balancers (including ours) terminate the transport connection.
> Being trusted middleboxes, they have the certificates and this sort of
> thing works in principle.
>
> That said, in such a case it's entirely feasible to implement HTTP/2 on
> the middlebox as well.
>

If these middleboxes terminate the transport connection for QUIC, would
they need to understand stream semantics? Or would they simply terminate
the QUIC connection, but relay the STREAM frames without any changes?
I'll note that all transports after TCP have two general parts to them --
the packet transport part, and the application semantics part. Middleboxes
are usually interested in the "lower half" of the transport - the packet
transport part.

That said, I'm not opposed to having an explicit bit. I'm also wondering if
there's a real use case, or if we're provisioning for the future here.

- jana

However, I think we should look forward to the day where QUIC is
> implemented in kernel space and HTTP/2 (and everything else) remains an
> application. I imagine counting on all applications to do this kind of
> garbage collection could cause problems.
>

--f403043a6168181b630553bd24b4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On F=
ri, Jul 7, 2017 at 9:48 AM, Martin Duke <span dir=3D"ltr">&lt;<a href=3D"ma=
ilto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>=
&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><=
div class=3D"gmail_extra"><br><div class=3D"gmail_quote"><span class=3D"">O=
n Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <span dir=3D"ltr">&lt;<a hre=
f=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt;</span> w=
rote:<br></span><span class=3D""><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div>


<div dir=3D"ltr">
<div id=3D"m_-8537692047480604534m_122988482497302725x_divtagdefaultwrapper=
" dir=3D"ltr" style=3D"font-size:12pt;color:#000000;font-family:Calibri,Hel=
vetica,sans-serif"><span>
<p></p>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:1=
6px;margin-top:0px;margin-bottom:0px">
&gt;=C2=A0<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"=
 size=3D"2"><span style=3D"font-size:14.67px">Without such a signal, a gene=
ric proxy that is not aware of your application internals is not able to kn=
ow when to send the FIN</span></font><font face=3D"Calibri,Arial,Helvetica,=
sans-serif,serif,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><b=
r>
</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px"><br>
</span></font></div>
</span><div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,Emo=
jiFont,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEm=
oji,&quot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font=
-size:16px;margin-top:0px;margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">I see, this use case does make somewhat=
 sense, however I&#39;m curious if=C2=A0someone has=C2=A0a concrete=C2=A0us=
e case for a generic QUIC proxy which is not aware of the
 application protocol at all. In TCP this was more common for middleboxes t=
o do because there was no end to end encryption of the transport, however Q=
UIC is encrypted. Even with cases when we=C2=A0tunneling protocols at our e=
nd, we usually have some knowledge of
 the app that we are running because we need to route them differently to d=
ifferent backends.=C2=A0I was mostly thinking that=C2=A0proxies would at le=
ast have some knowledge=C2=A0about HTTP/2 or app protocols.=C2=A0</span></f=
ont></div></div></div></div></blockquote><div><br></div></span><div>Some lo=
ad balancers (including ours) terminate the transport connection. Being tru=
sted middleboxes, they have the certificates and this sort of thing works i=
n principle.</div><div><br></div><div>That said, in such a case it&#39;s en=
tirely feasible to implement HTTP/2 on the middlebox as well.</div></div></=
div></div></blockquote><div><br></div><div>If these middleboxes terminate t=
he transport connection for QUIC, would they need to understand stream sema=
ntics? Or would they simply terminate the QUIC connection, but relay the ST=
REAM frames without any changes?</div><div>I&#39;ll note that all transport=
s after TCP have two general parts to them -- the packet transport part, an=
d the application semantics part. Middleboxes are usually interested in the=
 &quot;lower half&quot; of the transport - the packet transport part.<br></=
div><div><br></div><div>That said, I&#39;m not opposed to having an explici=
t bit. I&#39;m also wondering if there&#39;s a real use case, or if we&#39;=
re provisioning for the future here.</div><div><br></div><div>- jana</div><=
div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D=
"gmail_extra"><div class=3D"gmail_quote"><div>However, I think we should lo=
ok forward to the day where QUIC is implemented in kernel space and HTTP/2 =
(and everything else) remains an application. I imagine counting on all app=
lications to do this kind of garbage collection could cause problems.</div>=
</div></div></div></blockquote><div>=C2=A0</div></div></div></div>

--f403043a6168181b630553bd24b4--


From nobody Fri Jul  7 13:44:44 2017
Return-Path: <martin.h.duke@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 22EBA12EC2F for <quic@ietfa.amsl.com>; Fri,  7 Jul 2017 13:44:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 Jxm30_KLFJ5k for <quic@ietfa.amsl.com>; Fri,  7 Jul 2017 13:44:41 -0700 (PDT)
Received: from mail-wr0-x22e.google.com (mail-wr0-x22e.google.com [IPv6:2a00:1450:400c:c0c::22e]) (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 C0684126D05 for <quic@ietf.org>; Fri,  7 Jul 2017 13:44:40 -0700 (PDT)
Received: by mail-wr0-x22e.google.com with SMTP id k67so61922057wrc.2 for <quic@ietf.org>; Fri, 07 Jul 2017 13:44:40 -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=0imJr9LxatnTh5MAUw0ye5owPAcguX9VOkTCDKF2V6A=; b=vR0TutALgRSx8LRNGb8iO+zYDzN7Ye1Uee7AOV5RF2beaAWDoWXshTJTESTxTRqyew c8IJF0ng8XOhBqseZd0TwUF92dn0Vts+qsbXBuGg4T4g1S7QzX8X4Gxj1LRQoWqPdEy+ 3WrjNsmNlqmJDp52DZ9Sd1639UTmAIRU5SKLnSczthIiKSMvAFaoP/2W+sn4z5QfzFIx lMNc38nuQjc32S3lhCpbm5jfNpOGvUPTYVu4XKzm3eWn49NZYBmHs/wG/AZLz944ibQO 4Ar2m8wgzR+XqmSuQyau+Xqx2jHP1xcBfsEpq+TdyIlvfUCm9paqjJvoWko78h6lSLwc NpKQ==
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=0imJr9LxatnTh5MAUw0ye5owPAcguX9VOkTCDKF2V6A=; b=i4mZ6GIsc3nuqLWxOGMdR8WHBoZayv5vrvIrVsGBGluRUhCoxVnOyGkZZMI949XaZC PwuL5FIRw2HIpJkL/FGgmyyBFJPaHLb/ckwNXt7woehFpLl8FnoWEYCNPlw63gdcFrXo yurR/28uTLC9W3oyL6hCkXHVEi66Q8Xv2Ou7WNNPrPYLfMIm5su8I4XtkioRyiUASMB3 EpErKjk/zUvGTfYjjTlBFS9gG+m6UwLSFH20cB4Wwl5yDmv06tYbOGKPF88/ltUuypoD NcRq9NV769ttBj8By0XV1KaXIslGT3Y0r5SF90HlYYWoUq8LfLSa6my4/UT92RChY3Mv j50g==
X-Gm-Message-State: AIVw112JTjKcqFRILKu5mx6MqD2M5IOEXcDfmzTN2EoGku5JW31Ewm9H meweI0nfShtkQvhkIEEkh9fjx6p/NQ==
X-Received: by 10.28.156.202 with SMTP id f193mr401275wme.22.1499460279260; Fri, 07 Jul 2017 13:44:39 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Fri, 7 Jul 2017 13:44:38 -0700 (PDT)
In-Reply-To: <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Fri, 7 Jul 2017 13:44:38 -0700
Message-ID: <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Jana Iyengar <jri@google.com>
Cc: Subodh Iyengar <subodh@fb.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett@google.com>, "Lubashev, Igor" <ilubashe@akamai.com>, Jo Kulik <jokulik@google.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="001a114b2d104ceb0e0553c04d3b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/j2zEOjoUzu7knP7XAM-J6ymHcNw>
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: Fri, 07 Jul 2017 20:44:43 -0000

--001a114b2d104ceb0e0553c04d3b
Content-Type: text/plain; charset="UTF-8"

As I understand it, QUIC's contract with the upper layer includes streams,
so any such middlebox would maintain state for each stream. In general,
these middleboxes will support awareness of most L7s, and users will turn
it on.

The exceptions are probably kind of corner-case-ish. Perhaps there's a new
application directly on top of QUIC that the middlebox doesn't understand
natively. In that case, with no FIN the middlebox would be forced to hold
stream state until the end of the connection.  I guess one question is if
passing STREAM frames whole (at most changing the stream ID) is stateless
for the middlebox.

Also, I'm not clear where we ended up on silent close. If we're indeed
expecting endpoints to see that all the streams are closed to begin the
shutdown, then we *have to see that all the streams are closed.*

On Fri, Jul 7, 2017 at 9:58 AM, Jana Iyengar <jri@google.com> wrote:

> On Fri, Jul 7, 2017 at 9:48 AM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>>
>>
>> On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <subodh@fb.com> wrote:
>>
>>> > Without such a signal, a generic proxy that is not aware of your
>>> application internals is not able to know when to send the FIN
>>>
>>> I see, this use case does make somewhat sense, however I'm curious
>>> if someone has a concrete use case for a generic QUIC proxy which is not
>>> aware of the application protocol at all. In TCP this was more common for
>>> middleboxes to do because there was no end to end encryption of the
>>> transport, however QUIC is encrypted. Even with cases when we tunneling
>>> protocols at our end, we usually have some knowledge of the app that we are
>>> running because we need to route them differently to different backends. I
>>> was mostly thinking that proxies would at least have some knowledge about
>>> HTTP/2 or app protocols.
>>>
>>
>> Some load balancers (including ours) terminate the transport connection.
>> Being trusted middleboxes, they have the certificates and this sort of
>> thing works in principle.
>>
>> That said, in such a case it's entirely feasible to implement HTTP/2 on
>> the middlebox as well.
>>
>
> If these middleboxes terminate the transport connection for QUIC, would
> they need to understand stream semantics? Or would they simply terminate
> the QUIC connection, but relay the STREAM frames without any changes?
> I'll note that all transports after TCP have two general parts to them --
> the packet transport part, and the application semantics part. Middleboxes
> are usually interested in the "lower half" of the transport - the packet
> transport part.
>
> That said, I'm not opposed to having an explicit bit. I'm also wondering
> if there's a real use case, or if we're provisioning for the future here.
>
> - jana
>
> However, I think we should look forward to the day where QUIC is
>> implemented in kernel space and HTTP/2 (and everything else) remains an
>> application. I imagine counting on all applications to do this kind of
>> garbage collection could cause problems.
>>
>
>

--001a114b2d104ceb0e0553c04d3b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">As I understand it, QUIC&#39;s contract with the upper lay=
er includes streams, so any such middlebox would maintain state for each st=
ream. In general, these middleboxes will support awareness of most L7s, and=
 users will turn it on.<div><br></div><div>The exceptions are probably kind=
 of corner-case-ish. Perhaps there&#39;s a new application directly on top =
of QUIC that the middlebox doesn&#39;t understand natively. In that case, w=
ith no FIN the middlebox would be forced to hold stream state until the end=
 of the connection.=C2=A0 I guess one question is if passing STREAM frames =
whole (at most changing the stream ID) is stateless for the middlebox.</div=
><div><br></div><div>Also, I&#39;m not clear where we ended up on silent cl=
ose. If we&#39;re indeed expecting endpoints to see that all the streams ar=
e closed to begin the shutdown, then we <i>have to see that all the streams=
 are closed.</i></div></div><div class=3D"gmail_extra"><br><div class=3D"gm=
ail_quote">On Fri, Jul 7, 2017 at 9:58 AM, Jana Iyengar <span dir=3D"ltr">&=
lt;<a href=3D"mailto:jri@google.com" target=3D"_blank">jri@google.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div cl=
ass=3D"gmail_extra"><div class=3D"gmail_quote"><span class=3D"">On Fri, Jul=
 7, 2017 at 9:48 AM, Martin Duke <span dir=3D"ltr">&lt;<a href=3D"mailto:ma=
rtin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;</s=
pan> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br><div cla=
ss=3D"gmail_extra"><br><div class=3D"gmail_quote"><span>On Wed, Jul 5, 2017=
 at 10:16 PM, Subodh Iyengar <span dir=3D"ltr">&lt;<a href=3D"mailto:subodh=
@fb.com" target=3D"_blank">subodh@fb.com</a>&gt;</span> wrote:<br></span><s=
pan><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">





<div>


<div dir=3D"ltr">
<div id=3D"m_-6747020987109446363m_-8537692047480604534m_122988482497302725=
x_divtagdefaultwrapper" dir=3D"ltr" style=3D"font-size:12pt;color:#000000;f=
ont-family:Calibri,Helvetica,sans-serif"><span>
<p></p>
<div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,=
&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&qu=
ot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font-size:1=
6px;margin-top:0px;margin-bottom:0px">
&gt;=C2=A0<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"=
 size=3D"2"><span style=3D"font-size:14.67px">Without such a signal, a gene=
ric proxy that is not aware of your application internals is not able to kn=
ow when to send the FIN</span></font><font face=3D"Calibri,Arial,Helvetica,=
sans-serif,serif,EmojiFont" size=3D"2"><span style=3D"font-size:14.67px"><b=
r>
</span></font><font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiF=
ont" size=3D"2"><span style=3D"font-size:14.67px"><br>
</span></font></div>
</span><div style=3D"font-family:Calibri,Helvetica,sans-serif,Helvetica,Emo=
jiFont,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEm=
oji,&quot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;font=
-size:16px;margin-top:0px;margin-bottom:0px">
<font face=3D"Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont" size=3D"2=
"><span style=3D"font-size:14.67px">I see, this use case does make somewhat=
 sense, however I&#39;m curious if=C2=A0someone has=C2=A0a concrete=C2=A0us=
e case for a generic QUIC proxy which is not aware of the
 application protocol at all. In TCP this was more common for middleboxes t=
o do because there was no end to end encryption of the transport, however Q=
UIC is encrypted. Even with cases when we=C2=A0tunneling protocols at our e=
nd, we usually have some knowledge of
 the app that we are running because we need to route them differently to d=
ifferent backends.=C2=A0I was mostly thinking that=C2=A0proxies would at le=
ast have some knowledge=C2=A0about HTTP/2 or app protocols.=C2=A0</span></f=
ont></div></div></div></div></blockquote><div><br></div></span><div>Some lo=
ad balancers (including ours) terminate the transport connection. Being tru=
sted middleboxes, they have the certificates and this sort of thing works i=
n principle.</div><div><br></div><div>That said, in such a case it&#39;s en=
tirely feasible to implement HTTP/2 on the middlebox as well.</div></div></=
div></div></blockquote><div><br></div></span><div>If these middleboxes term=
inate the transport connection for QUIC, would they need to understand stre=
am semantics? Or would they simply terminate the QUIC connection, but relay=
 the STREAM frames without any changes?</div><div>I&#39;ll note that all tr=
ansports after TCP have two general parts to them -- the packet transport p=
art, and the application semantics part. Middleboxes are usually interested=
 in the &quot;lower half&quot; of the transport - the packet transport part=
.<br></div><div><br></div><div>That said, I&#39;m not opposed to having an =
explicit bit. I&#39;m also wondering if there&#39;s a real use case, or if =
we&#39;re provisioning for the future here.</div><span class=3D"HOEnZb"><fo=
nt color=3D"#888888"><div><br></div><div>- jana</div></font></span><span cl=
ass=3D""><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><di=
v class=3D"gmail_extra"><div class=3D"gmail_quote"><div>However, I think we=
 should look forward to the day where QUIC is implemented in kernel space a=
nd HTTP/2 (and everything else) remains an application. I imagine counting =
on all applications to do this kind of garbage collection could cause probl=
ems.</div></div></div></div></blockquote><div>=C2=A0</div></span></div></di=
v></div>
</blockquote></div><br></div>

--001a114b2d104ceb0e0553c04d3b--


From nobody Sat Jul  8 09:45:53 2017
Return-Path: <jri@google.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 7F7BA12EC0F for <quic@ietfa.amsl.com>; Sat,  8 Jul 2017 09:45:52 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 35k3cI8o5wwV for <quic@ietfa.amsl.com>; Sat,  8 Jul 2017 09:45:50 -0700 (PDT)
Received: from mail-pf0-x230.google.com (mail-pf0-x230.google.com [IPv6:2607:f8b0:400e:c00::230]) (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 8018C12EC0C for <quic@ietf.org>; Sat,  8 Jul 2017 09:45:50 -0700 (PDT)
Received: by mail-pf0-x230.google.com with SMTP id q86so30618537pfl.3 for <quic@ietf.org>; Sat, 08 Jul 2017 09:45:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=x3jt/YqeuWT0iNyqyqMTZ4Nb3TbIQO/JeRcij3RxFzM=; b=HGk/QEQN56pvq/edY2TwFE7GZiPCeK2BR67PG5QWipaEPOmd+ClfiQr4o36NZZlEyK gqx8uM/3kHpCUjUwcVKnoyWPahcSwr/+dQiV+SZkwu9dfQ1W6L+ibbBXH6HuQ51QjdwI 51qG7WLeN8A8lZSm4nZYNiFCiDsQa5OrGor/PnroHo2AvoPOm1x1DzbsJoNugVhDkbJs 0xuvEcjvf+pyMrfzDCVfXZ7jW7EwaU//e8Yrsl0tkoCku2pqKtc3SqRvB/b4QQAoucHd PLW1uR7bwLKiYmU3gQaLkZoI9j0owMC7UIEBoX6ZcHS98XoDP/hz7wdO/p8bEOYonp7z 0Ztw==
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=x3jt/YqeuWT0iNyqyqMTZ4Nb3TbIQO/JeRcij3RxFzM=; b=fKSrXlTp43gNG5QIxdApPoVkdPtHtMgGg1VE5ERvs9YGZfjh601jtRLYIunVOzZ/XK fMNIKE3iQV0K6NWj6ZgWjTXHROrK/7WRo26Gvqy4Y09qq6WPFcmbq3lXisLskLdJ38oz jMAz0/9VsfCi/bU4PtuE4YNDcWGWSfjxecYBBimP+ZiKks/qvvCnAGpnt3G28BsHFRhY LVOszB5EP5bGM1zx/RLq/Ir18cL0lGFkXpJVxQYvGtYHLIjiTZokheyTgfLENKoUrMOM vyYbo50pBH8s2eVMItrhjMtE/2VmvqZaFEerlF+g10Y8OsiBTIrWmtaNQZrI9sA4Z22h Q2Kg==
X-Gm-Message-State: AIVw1120Dz2FxAd/v1StNmyY/ml/F7ZZIYyrusMu+WH7C8TnncxtjdaQ PIauAi6zdvWJ26fOvU0yY+GWNieNwlI6F3KG/Q==
X-Received: by 10.84.241.198 with SMTP id t6mr9517075plm.48.1499532349837; Sat, 08 Jul 2017 09:45:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.153.19 with HTTP; Sat, 8 Jul 2017 09:45:49 -0700 (PDT)
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012>
From: Jana Iyengar <jri@google.com>
Date: Sat, 8 Jul 2017 09:45:49 -0700
Message-ID: <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
Cc: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="f403045ee79a0b01ee0553d1154a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/cXvB9Gx90Q_H_7rZXanPx5vE60E>
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: Sat, 08 Jul 2017 16:45:52 -0000

--f403045ee79a0b01ee0553d1154a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I've been thinking about this, and I'm starting to think that we should
cover more ground in the second implementation draft.

I'm hearing about increasing deployments of gQUIC, largely due to market
pressures. The availability of the Chromium implementation makes it
particularly easy for folks to deploy QUIC with that code. I think we need
to move with some urgency, even if we don't change everything about QUIC to
make it perfect, so that we can start getting IETF QUIC deployments out
there. Specifically, I think we should:
1. work out the wire-visible invariants and finalize all of those for the
second impl draft. We know that there are some middleboxes that already
have classifiers for gQUIC, and we need to move quickly and push IETF-QUIC
so we can test that IETF-QUIC is deployable. I fear that the longer we
take, the more widespread gQUIC ossification will be.
2. allow impls to make serious progress towards a basic HTTP mapping over
QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps test a
basic HTTP request-response over QUIC. We can still punt
performance-oriented things such as full loss recovery and congestion
control to later. This forces us to try and finalize the HTTP mapping
details, which is a good thing, IMO.


On Thu, Jun 22, 2017 at 10:07 AM, Lucas Pardue <Lucas.Pardue@bbc.co.uk>
wrote:

> I don=E2=80=99t feel I came away from the Paris Interim with a clear idea=
 of the
> approach to the second implementation draft. There was a lot of discussio=
n
> around whether bugfixes in new I-D drafts (that address issues identified
> in the first implementation draft) would contribute to a first.1
> implementation draft (all the way up to first.N) or if they would be put
> into the second.
>
>
>
> Side note: Personally, I don=E2=80=99t particularly like the terminology =
of first,
> second etc for the reason that it gets hard to rev/iterate on a particula=
r
> one. However, perhaps it was purposely chosen to disambiguate from the I-=
D
> versions?
>
>
>
> The strawman suggests to me that the direction is to lump both fixes and
> new features into the second implementation draft. I don=E2=80=99t necess=
arily have
> an argument against that but think it would help to clearly identify wher=
e
> things have been fixed, changed completely, been overtaken by other chang=
es
> etc. Understandably it is too early to do that at this stage.
>
>
>
> Finally, being super picky, the second implementation doesn=E2=80=99t see=
m to
> cover non-critical shortcomings
>
>
>
> Regards
>
> Lucas
>
>
>
> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Jana Iyengar
> *Sent:* 21 June 2017 22:23
> *To:* Martin Duke <martin.h.duke@gmail.com>
> *Cc:* IETF QUIC WG <quic@ietf.org>
> *Subject:* Re: Second Implementation Draft Guidelines
>
>
>
> This is a great start, thanks for getting it going.
>
> Just one thought: You may want to explicitly "include" fixed-time
> RTO-recovery. It appears right now as a side note in what's not included.
>
>
>
> On Wed, Jun 21, 2017 at 2:11 PM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
> All,
>
>
>
> As promised, I've created a set of guidelines for what should be in the
> Second Implementation draft. If deadlines hold, I believe we will actuall=
y
> start implementing this draft after Seattle in October.
>
>
>
> Once we've reached reasonable consensus, this should serve as a basis for
> prioritizing issues to resolve through Seattle.
>
>
>
> The current version is very much a starting point for discussion. I've
> presented some items I think are important to include, and others that we
> could bring in depending on our appetite for work. The final version will
> simply have "Must Include" and "should not include".
>
>
> <http://goog_314636520>
>
> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>
>
>
> I look forward to your comments.
>
>
>
> Martin
>
>
>

--f403045ee79a0b01ee0553d1154a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I&#39;ve been thinking about this, and I&#39;m starting to=
 think that we should cover more ground in the second implementation draft.=
=C2=A0<div><br></div><div>I&#39;m hearing about increasing deployments of g=
QUIC, largely due to market pressures. The availability of the Chromium imp=
lementation makes it particularly easy for folks to deploy QUIC with that c=
ode. I think we need to move with some urgency, even if we don&#39;t change=
 everything about QUIC to make it perfect, so that we can start getting IET=
F QUIC deployments out there. Specifically, I think we should:</div><div>1.=
 work out the wire-visible invariants and finalize all of those for the sec=
ond impl draft. We know that there are some middleboxes that already have c=
lassifiers for gQUIC, and we need to move quickly and push IETF-QUIC so we =
can test that IETF-QUIC is deployable. I fear that the longer we take, the =
more widespread gQUIC ossification will be.<br></div><div>2. allow impls to=
 make serious progress towards a basic HTTP mapping over QUIC. We can punt =
on header compression (QPACK/QCRAM), but perhaps test a basic HTTP request-=
response over QUIC. We can still punt performance-oriented things such as f=
ull loss recovery and congestion control to later. This forces us to try an=
d finalize the HTTP mapping details, which is a good thing, IMO.</div><div>=
<br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">O=
n Thu, Jun 22, 2017 at 10:07 AM, Lucas Pardue <span dir=3D"ltr">&lt;<a href=
=3D"mailto:Lucas.Pardue@bbc.co.uk" target=3D"_blank">Lucas.Pardue@bbc.co.uk=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-GB" link=3D"blue" vlink=3D"purple">
<div class=3D"m_1783470110431283053WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">I don=E2=80=99t feel I came away from the Paris Int=
erim with a clear idea of the approach to the second implementation draft. =
There was a lot of discussion
 around whether bugfixes in new I-D drafts (that address issues identified =
in the first implementation draft) would contribute to a first.1 implementa=
tion draft (all the way up to first.N) or if they would be put into the sec=
ond.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Side note: Personally, I don=E2=80=99t particularly=
 like the terminology of first, second etc for the reason that it gets hard=
 to rev/iterate on a particular
 one. However, perhaps it was purposely chosen to disambiguate from the I-D=
 versions?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">The strawman suggests to me that the direction is t=
o lump both fixes and new features into the second implementation draft. I =
don=E2=80=99t necessarily have
 an argument against that but think it would help to clearly identify where=
 things have been fixed, changed completely, been overtaken by other change=
s etc. Understandably it is too early to do that at this stage.
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Finally, being super picky, the second implementati=
on doesn=E2=80=99t seem to cover non-critical shortcomings
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Regards<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Lucas<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
QUIC [mailto:<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">qui=
c-bounces@ietf.org</a>]
<b>On Behalf Of </b>Jana Iyengar<br>
<b>Sent:</b> 21 June 2017 22:23<br>
<b>To:</b> Martin Duke &lt;<a href=3D"mailto:martin.h.duke@gmail.com" targe=
t=3D"_blank">martin.h.duke@gmail.com</a>&gt;<br>
<b>Cc:</b> IETF QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_bla=
nk">quic@ietf.org</a>&gt;<br>
<b>Subject:</b> Re: Second Implementation Draft Guidelines<u></u><u></u></s=
pan></p><div><div class=3D"h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">This is a great start, thanks for getting it going.<=
u></u><u></u></p>
<div>
<p class=3D"MsoNormal">Just one thought: You may want to explicitly &quot;i=
nclude&quot; fixed-time RTO-recovery. It appears right now as a side note i=
n what&#39;s not included.<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Wed, Jun 21, 2017 at 2:11 PM, Martin Duke &lt;<a =
href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gma=
il.com</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal">All,<u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">As promised, I&#39;ve created a set of guidelines fo=
r what should be in the Second Implementation draft. If deadlines hold, I b=
elieve we will actually start implementing this draft after Seattle in Octo=
ber.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Once we&#39;ve reached reasonable consensus, this sh=
ould serve as a basis for prioritizing issues to resolve through Seattle.<u=
></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The current version is very much a starting point fo=
r discussion. I&#39;ve presented some items I think are important to includ=
e, and others that we could bring in depending on our appetite for work. Th=
e final version will simply have &quot;Must
 Include&quot; and &quot;should not include&quot;.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><a href=3D"http://goog_314636520" target=3D"_blank">=
<br>
</a><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><a href=3D"https://github.com/quicwg/base-drafts/wik=
i/Second-Implementation-Draft" target=3D"_blank">https://github.com/quicwg/=
<wbr>base-drafts/wiki/Second-<wbr>Implementation-Draft</a><u></u><u></u></p=
>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I look forward to your comments.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#888888"><u></u>=C2=A0<u></u></=
span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#888888">Martin<u></u><u></u></=
span></p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>

</blockquote></div><br></div>

--f403045ee79a0b01ee0553d1154a--


From nobody Sat Jul  8 09:51:24 2017
Return-Path: <jri@google.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 0C7AD12EC0C for <quic@ietfa.amsl.com>; Sat,  8 Jul 2017 09:51:23 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 oVQmmqgRqHvD for <quic@ietfa.amsl.com>; Sat,  8 Jul 2017 09:51:21 -0700 (PDT)
Received: from mail-pf0-x229.google.com (mail-pf0-x229.google.com [IPv6:2607:f8b0:400e:c00::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 BF4C912EC14 for <quic@ietf.org>; Sat,  8 Jul 2017 09:51:21 -0700 (PDT)
Received: by mail-pf0-x229.google.com with SMTP id c73so30705322pfk.2 for <quic@ietf.org>; Sat, 08 Jul 2017 09:51:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=LeBuFbiozkZzeEsxZxQFXj2Y36D2XhiYNFAq6H3bGzM=; b=q4240mNEPAqxGS4lRmgLBkbiaN4IzSehJGrt53SOCSMDgACMty9+eqASz8apwyJYWQ FD7Ett4S+u/E9kzN7HvWrKvhaZTqbNpBRig2b37Z+WGDNYIoYshuLDnou0hcvKXaCT5w 6M8SbNSQykDV1ikcgEJyZklK7s2KDASwsF3NcfO4Hax9+1CuNZzXWFwBXUdLOJHMLZl5 ZzBHKs78WLAj0CA+rfu9p6HuG+eOt8toKWF57HrTZkfsIty3FQVsWgiPId4t9j11IhmO NBgehVGM9NhWUNNVHe5paQzkv0igU7H6XZLkKGFcyILChX/iSryu20hB0NqfFD4AZTIP KqkQ==
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=LeBuFbiozkZzeEsxZxQFXj2Y36D2XhiYNFAq6H3bGzM=; b=O2rhN3vGZcoeeHeNlPZl7EaSFxWWJFXkLNXoExBw2ex4iq4sSYb0aerWNWFfxTcv7p IgMCm1ICQA1WJZYoC3IInHrwYgp0EvMa8mSTbgG3O7ipJBFXXWr69seHIQoQfvO68Ik6 DGdZatWn3Uu86OBkqa50vw6W1hsGVi/zsjb+p4Owt0epTBTJLT9OAtkR3JLmF03o4bes fdkDapu0NqyPxkAIiOvWMJra0EKSLZIbekJW1uINQT31P0YD1vV5SALtZIGSLSe9unOd fljkAsqFjkDvMOt82RzmoX85SzE7J/QJcllJ74x5Wh1Jfq+L1U7OM8rSWXAl2hsnjw4M NMrA==
X-Gm-Message-State: AIVw111pBBdJ8bA+/UM6GietCBPkOwg08smtMQq68AGSlyBVUNgCUhlN aLBlLktRjwOLIkcAma7sxaygW8nejF4D
X-Received: by 10.84.142.1 with SMTP id 1mr9396265plw.130.1499532681105; Sat, 08 Jul 2017 09:51:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.153.19 with HTTP; Sat, 8 Jul 2017 09:51:20 -0700 (PDT)
In-Reply-To: <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com> <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com>
From: Jana Iyengar <jri@google.com>
Date: Sat, 8 Jul 2017 09:51:20 -0700
Message-ID: <CAGD1bZatV_f7ezFkvTGZXbyv=NL7+Bwa3tNj01q5ZWXu0CdHyg@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Subodh Iyengar <subodh@fb.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett@google.com>, "Lubashev, Igor" <ilubashe@akamai.com>, Jo Kulik <jokulik@google.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="94eb2c119e68c9a8660553d12837"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/cQKZsll5mKyhO8_yps1npb8R-Ik>
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: Sat, 08 Jul 2017 16:51:23 -0000

--94eb2c119e68c9a8660553d12837
Content-Type: text/plain; charset="UTF-8"

>
> Also, I'm not clear where we ended up on silent close. If we're indeed
> expecting endpoints to see that all the streams are closed to begin the
> shutdown, then we *have to see that all the streams are closed.*
>

This is a really good point. If an application-agnostic middlebox maintains
state for a QUIC connection, it will likely need to know that all streams
are gone, especially if we do silent close. This argues for having the
explicit bit as Ian's PR proposes.

--94eb2c119e68c9a8660553d12837
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Also, I=
&#39;m not clear where we ended up on silent close. If we&#39;re indeed exp=
ecting endpoints to see that all the streams are closed to begin the shutdo=
wn, then we <i>have to see that all the streams are closed.</i></div></div>=
</blockquote><div><br></div><div>This is a really good point. If an applica=
tion-agnostic middlebox maintains state for a QUIC connection, it will like=
ly need to know that all streams are gone, especially if we do silent close=
. This argues for having the explicit bit as Ian&#39;s PR proposes.</div></=
div></div></div>

--94eb2c119e68c9a8660553d12837--


From nobody Sat Jul  8 23:12:14 2017
Return-Path: <w@1wt.eu>
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 8DC25127369 for <quic@ietfa.amsl.com>; Sat,  8 Jul 2017 23:12:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 siG9NXHuHavl for <quic@ietfa.amsl.com>; Sat,  8 Jul 2017 23:12:10 -0700 (PDT)
Received: from 1wt.eu (wtarreau.pck.nerim.net [62.212.114.60]) by ietfa.amsl.com (Postfix) with ESMTP id 8800C12009C for <quic@ietf.org>; Sat,  8 Jul 2017 23:12:09 -0700 (PDT)
Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id v696C0Qq030788; Sun, 9 Jul 2017 08:12:00 +0200
Date: Sun, 9 Jul 2017 08:12:00 +0200
From: Willy Tarreau <w@1wt.eu>
To: Jana Iyengar <jri@google.com>
Cc: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>
Subject: Re: Second Implementation Draft Guidelines
Message-ID: <20170709061200.GA30751@1wt.eu>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com>
User-Agent: Mutt/1.6.1 (2016-04-27)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/6-WXNQkgzK_wNZIv2y-iZwZ5HAM>
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, 09 Jul 2017 06:12:12 -0000

Hi Jana,

On Sat, Jul 08, 2017 at 09:45:49AM -0700, Jana Iyengar wrote:
> I'm hearing about increasing deployments of gQUIC, largely due to market
> pressures. The availability of the Chromium implementation makes it
> particularly easy for folks to deploy QUIC with that code. I think we need
> to move with some urgency, even if we don't change everything about QUIC to
> make it perfect, so that we can start getting IETF QUIC deployments out
> there. Specifically, I think we should:
> 1. work out the wire-visible invariants and finalize all of those for the
> second impl draft. We know that there are some middleboxes that already
> have classifiers for gQUIC, and we need to move quickly and push IETF-QUIC
> so we can test that IETF-QUIC is deployable. I fear that the longer we
> take, the more widespread gQUIC ossification will be.
> 2. allow impls to make serious progress towards a basic HTTP mapping over
> QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps test a
> basic HTTP request-response over QUIC. We can still punt
> performance-oriented things such as full loss recovery and congestion
> control to later. This forces us to try and finalize the HTTP mapping
> details, which is a good thing, IMO.

Just be *very* careful not to fall again into the trap that we've met with
H2 where existing deployments prevented some final bits of the protocol
from being fixed. Implementations are very important to get feedback on
the protocol and the related issues but at some point they start to lead
the development by deciding that it's "good enough" to be shipped. This
can very likely be addressed by showing frequent progress on certain
points that are possibly not currently being addressed in implementations
to make implementers consider that their deployment is only an acceptable
temporary solution while waiting for a much better final one.

Just my two cents,
Willy


From nobody Sun Jul  9 17:39:06 2017
Return-Path: <kazuhooku@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 44DBC126DED for <quic@ietfa.amsl.com>; Sun,  9 Jul 2017 17:39:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 OiPC8ajdYEFo for <quic@ietfa.amsl.com>; Sun,  9 Jul 2017 17:39:02 -0700 (PDT)
Received: from mail-pf0-x230.google.com (mail-pf0-x230.google.com [IPv6:2607:f8b0:400e:c00::230]) (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 50989126D46 for <quic@ietf.org>; Sun,  9 Jul 2017 17:39:02 -0700 (PDT)
Received: by mail-pf0-x230.google.com with SMTP id e7so41265342pfk.0 for <quic@ietf.org>; Sun, 09 Jul 2017 17:39:02 -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:content-transfer-encoding; bh=g7tgS99XiJBGCqFmYK64QLZ6wfjpUmPwfDrRsVI072M=; b=f+nfr4eXMOuriaVtppTzuCeoDssmBjSosVclkedAkO15XqZ3noqid7dsjHXz8yX/4t 6BsOAGA9y5A+OdXhtFDMV3Vk1gVTBGClNRMPOJvBl3N0NfSTVR959NpgqbCDOEeRmGjr 510kTPLH7VqJVE58ZowoMrYLjEeYEfHVH0o2nFc486pVzkK/jEy6ypKHyXdiCA3rXqNP QV6qHDvaiuRs/xKRNIUUmcb0l0/duO1s/Fl0rcHbhOHfrsAnM9MBG2Gy+MxDUYabT1J7 5j4jHrE8TC9U4JGrhGimo4r5bD4cf+T6u61ylM8FQoK52kEd/AFiLePqqlZ9NzW1BWCF GBXQ==
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:content-transfer-encoding; bh=g7tgS99XiJBGCqFmYK64QLZ6wfjpUmPwfDrRsVI072M=; b=bzXpXyQ7HiPw6xi2IKcikLUQaA3pD+JrEJUHFEj0GzgReyT78fAzAHGzoVMOaLURMr 2A3DU3MFSlsoNiyr6KSkMpZMCOutCqthAhe7/CndnKEad/xYmf13lvToRHq5KmaeGC/o EEIoGfJiJVY7/q0N2AZ5d11wpsAbB+R+jpQrZCcZWqnjg6qJKE49FtQI0Z4maxJETvnT r0cpGWgBcSQsQkvi1XKNtpStGH3urFbpXpYlF2sviiPXuAYkCtZDWIzpIC4ehV7+gQu4 gMVMRcbiWOiHx5GZv1qSqfzjCGNaKotFP6ZbBf0CE4rXz0mAcnwf7JINIgDfw0lX6j8W S3Dw==
X-Gm-Message-State: AIVw111MjuE4Yrd5wcMlVkg+kvuDtyS9q2oiHPQKDeBfLAZ2+OuNkVq1 VCNdB5V9+bPRzU9AyVr1PJJy71akHA==
X-Received: by 10.84.218.206 with SMTP id g14mr15689457plm.290.1499647141840;  Sun, 09 Jul 2017 17:39:01 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Sun, 9 Jul 2017 17:39:01 -0700 (PDT)
In-Reply-To: <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Mon, 10 Jul 2017 09:39:01 +0900
Message-ID: <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Jana Iyengar <jri@google.com>
Cc: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>,  Martin Duke <martin.h.duke@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/YOu3Lv_NzWEYQ3Q4EfXbYwrnMS8>
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: Mon, 10 Jul 2017 00:39:04 -0000

2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
> I've been thinking about this, and I'm starting to think that we should
> cover more ground in the second implementation draft.
>
> I'm hearing about increasing deployments of gQUIC, largely due to market
> pressures. The availability of the Chromium implementation makes it
> particularly easy for folks to deploy QUIC with that code. I think we nee=
d
> to move with some urgency, even if we don't change everything about QUIC =
to
> make it perfect, so that we can start getting IETF QUIC deployments out
> there. Specifically, I think we should:
> 1. work out the wire-visible invariants and finalize all of those for the
> second impl draft. We know that there are some middleboxes that already h=
ave
> classifiers for gQUIC, and we need to move quickly and push IETF-QUIC so =
we
> can test that IETF-QUIC is deployable. I fear that the longer we take, th=
e
> more widespread gQUIC ossification will be.
> 2. allow impls to make serious progress towards a basic HTTP mapping over
> QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps test a
> basic HTTP request-response over QUIC. We can still punt
> performance-oriented things such as full loss recovery and congestion
> control to later. This forces us to try and finalize the HTTP mapping
> details, which is a good thing, IMO.

I agree with Jana.

If we can have some basic HTTP mapping (it can be as basic as using
HTTP/1.0 over each stream), we can use that to test how the IETF
version of QUIC performs well in the field, by comparing its
performance to HTTP over TCP.

>
> On Thu, Jun 22, 2017 at 10:07 AM, Lucas Pardue <Lucas.Pardue@bbc.co.uk>
> wrote:
>>
>> I don=E2=80=99t feel I came away from the Paris Interim with a clear ide=
a of the
>> approach to the second implementation draft. There was a lot of discussi=
on
>> around whether bugfixes in new I-D drafts (that address issues identifie=
d in
>> the first implementation draft) would contribute to a first.1 implementa=
tion
>> draft (all the way up to first.N) or if they would be put into the secon=
d.
>>
>>
>>
>> Side note: Personally, I don=E2=80=99t particularly like the terminology=
 of first,
>> second etc for the reason that it gets hard to rev/iterate on a particul=
ar
>> one. However, perhaps it was purposely chosen to disambiguate from the I=
-D
>> versions?
>>
>>
>>
>> The strawman suggests to me that the direction is to lump both fixes and
>> new features into the second implementation draft. I don=E2=80=99t neces=
sarily have
>> an argument against that but think it would help to clearly identify whe=
re
>> things have been fixed, changed completely, been overtaken by other chan=
ges
>> etc. Understandably it is too early to do that at this stage.
>>
>>
>>
>> Finally, being super picky, the second implementation doesn=E2=80=99t se=
em to
>> cover non-critical shortcomings
>>
>>
>>
>> Regards
>>
>> Lucas
>>
>>
>>
>> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Jana Iyengar
>> Sent: 21 June 2017 22:23
>> To: Martin Duke <martin.h.duke@gmail.com>
>> Cc: IETF QUIC WG <quic@ietf.org>
>> Subject: Re: Second Implementation Draft Guidelines
>>
>>
>>
>> This is a great start, thanks for getting it going.
>>
>> Just one thought: You may want to explicitly "include" fixed-time
>> RTO-recovery. It appears right now as a side note in what's not included=
.
>>
>>
>>
>> On Wed, Jun 21, 2017 at 2:11 PM, Martin Duke <martin.h.duke@gmail.com>
>> wrote:
>>
>> All,
>>
>>
>>
>> As promised, I've created a set of guidelines for what should be in the
>> Second Implementation draft. If deadlines hold, I believe we will actual=
ly
>> start implementing this draft after Seattle in October.
>>
>>
>>
>> Once we've reached reasonable consensus, this should serve as a basis fo=
r
>> prioritizing issues to resolve through Seattle.
>>
>>
>>
>> The current version is very much a starting point for discussion. I've
>> presented some items I think are important to include, and others that w=
e
>> could bring in depending on our appetite for work. The final version wil=
l
>> simply have "Must Include" and "should not include".
>>
>>
>> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>>
>>
>>
>> I look forward to your comments.
>>
>>
>>
>> Martin
>>
>>
>
>



--=20
Kazuho Oku


From nobody Sun Jul  9 20:28:36 2017
Return-Path: <rch@google.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 0587F1292F5 for <quic@ietfa.amsl.com>; Sun,  9 Jul 2017 20:28:35 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 GGnhMCdAvOpJ for <quic@ietfa.amsl.com>; Sun,  9 Jul 2017 20:28:33 -0700 (PDT)
Received: from mail-wr0-x22c.google.com (mail-wr0-x22c.google.com [IPv6:2a00:1450:400c:c0c::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 294B312EBF9 for <quic@ietf.org>; Sun,  9 Jul 2017 20:28:33 -0700 (PDT)
Received: by mail-wr0-x22c.google.com with SMTP id 77so119962945wrb.1 for <quic@ietf.org>; Sun, 09 Jul 2017 20:28:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=PsW8rhurY9h5wHFh5C0K0IqxustDgmSj/5FCQsKJvtA=; b=DlAfB/GPNT6eXX7Ed9Zql2VERmDDMXMgFy2D1cqUXnPs76bSeQreYD8uwrfW8KQlh3 ADJbzaNwmIPuZQ0HX/0YV7lg4hlxZOnkJ3Z+yD5wFxT6C1bQ/iRuwOESjMvN6n9Ciz/3 Q3s5hmDT3Z+YWMWBZ1xRVzU4K9D+/zMMrMpU2Fe8R1FG2ZI/MtpoyCnD2vDfXF73g2Iu 1RsD+42KieNRaV3Y06iAqscqXmLaASAU+nb2PWYGCNnYrLrdYFJ1AAPtGfEb47zza4zk FUurIwjoPn5S/qq4OOIy4diJRuGed06lx42te1uHHMkscxpnoIshSEy8oNd50jcAipqq 87gw==
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=PsW8rhurY9h5wHFh5C0K0IqxustDgmSj/5FCQsKJvtA=; b=ky54YPH05vY0lEWYCpglA+8f02tyIISxJWZQ/TjesM+ExHWS60Mc4rwWAhdM//N4Tc qfCWkul8UyOPEA7n5MKNgKXc0n7aIU1H4wRTC8KyaguZU6oKBsCkgMgrffsLphJ2EikO WRN/EzZF+8dvG9AJvKL3hydLi4Yn1ieUEuGPDYnAAAFlQiqcSYjHSyE+va8tGXcCmn7J yFrPZWcG7ou4OJTNg0Ismmu6ozqxXw2PMJMV/3Pa4tcZ1IL+vwPQJwPiq9rURuwyVOjv wuCUa3cUfH3pGxSv4VKEfU1uTEXWMR8vNLxSr7pFGCBpDbDXkc/9+wRUsnzJeB9nsXjs 3WFA==
X-Gm-Message-State: AIVw113YNIOf+ivE/a9RP64jNiBItL3BT/KJ3xnBDQdAd6MxMLtlpneG 8vTiI+7bbtE1oOVM6MAmQprILIE8FkRB
X-Received: by 10.28.133.76 with SMTP id h73mr5917144wmd.92.1499657311447; Sun, 09 Jul 2017 20:28:31 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.28.24.198 with HTTP; Sun, 9 Jul 2017 20:28:30 -0700 (PDT)
In-Reply-To: <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com>
From: Ryan Hamilton <rch@google.com>
Date: Sun, 9 Jul 2017 20:28:30 -0700
Message-ID: <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Jana Iyengar <jri@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>
Content-Type: multipart/alternative; boundary="001a114444cc55eae10553ee2de3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/LzftKbQPaLHVzPx4utfh9iAXXUY>
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: Mon, 10 Jul 2017 03:28:35 -0000

--001a114444cc55eae10553ee2de3
Content-Type: text/plain; charset="UTF-8"

On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:

> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
> > I've been thinking about this, and I'm starting to think that we should
> > cover more ground in the second implementation draft.
> >
> > I'm hearing about increasing deployments of gQUIC, largely due to market
> > pressures. The availability of the Chromium implementation makes it
> > particularly easy for folks to deploy QUIC with that code. I think we
> need
> > to move with some urgency, even if we don't change everything about QUIC
> to
> > make it perfect, so that we can start getting IETF QUIC deployments out
> > there. Specifically, I think we should:
> > 1. work out the wire-visible invariants and finalize all of those for the
> > second impl draft. We know that there are some middleboxes that already
> have
> > classifiers for gQUIC, and we need to move quickly and push IETF-QUIC so
> we
> > can test that IETF-QUIC is deployable. I fear that the longer we take,
> the
> > more widespread gQUIC ossification will be.
> > 2. allow impls to make serious progress towards a basic HTTP mapping over
> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps test a
> > basic HTTP request-response over QUIC. We can still punt
> > performance-oriented things such as full loss recovery and congestion
> > control to later. This forces us to try and finalize the HTTP mapping
> > details, which is a good thing, IMO.
>
> I agree with Jana.
>
> If we can have some basic HTTP mapping (it can be as basic as using
> HTTP/1.0 over each stream), we can use that to test how the IETF
> version of QUIC performs well in the field, by comparing its
> performance to HTTP over TCP.
>

Interesting idea. One challenge with performance analysis is that it'll be
a bit of an apples to oranges comparison. QUIC will be doing HTTP/1
(without header compression) against HTTP/2 (with header compression) or
HTTP/1.1 (over multiple connections).

--001a114444cc55eae10553ee2de3
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:trebuche=
t ms,sans-serif"><br></div><div class=3D"gmail_extra"><br><div class=3D"gma=
il_quote">On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <span dir=3D"ltr">&lt;=
<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.co=
m</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margi=
n:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">=
2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@google.com=
">jri@google.com</a>&gt;:<br>
&gt; I&#39;ve been thinking about this, and I&#39;m starting to think that =
we should<br>
&gt; cover more ground in the second implementation draft.<br>
&gt;<br>
&gt; I&#39;m hearing about increasing deployments of gQUIC, largely due to =
market<br>
&gt; pressures. The availability of the Chromium implementation makes it<br=
>
&gt; particularly easy for folks to deploy QUIC with that code. I think we =
need<br>
&gt; to move with some urgency, even if we don&#39;t change everything abou=
t QUIC to<br>
&gt; make it perfect, so that we can start getting IETF QUIC deployments ou=
t<br>
&gt; there. Specifically, I think we should:<br>
&gt; 1. work out the wire-visible invariants and finalize all of those for =
the<br>
&gt; second impl draft. We know that there are some middleboxes that alread=
y have<br>
&gt; classifiers for gQUIC, and we need to move quickly and push IETF-QUIC =
so we<br>
&gt; can test that IETF-QUIC is deployable. I fear that the longer we take,=
 the<br>
&gt; more widespread gQUIC ossification will be.<br>
&gt; 2. allow impls to make serious progress towards a basic HTTP mapping o=
ver<br>
&gt; QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps tes=
t a<br>
&gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt; performance-oriented things such as full loss recovery and congestion<=
br>
&gt; control to later. This forces us to try and finalize the HTTP mapping<=
br>
&gt; details, which is a good thing, IMO.<br>
<br>
</span>I agree with Jana.<br>
<br>
If we can have some basic HTTP mapping (it can be as basic as using<br>
HTTP/1.0 over each stream), we can use that to test how the IETF<br>
version of QUIC performs well in the field, by comparing its<br>
performance to HTTP over TCP.<br></blockquote><div><br></div><div><div clas=
s=3D"gmail_default" style=3D"font-family:&quot;trebuchet ms&quot;,sans-seri=
f">Interesting idea. One challenge with performance analysis is that it&#39=
;ll be a bit of an apples to oranges comparison. QUIC will be doing HTTP/1 =
(without header compression) against HTTP/2 (with header compression) or HT=
TP/1.1 (over multiple connections).</div><br></div></div></div></div>

--001a114444cc55eae10553ee2de3--


From nobody Mon Jul 10 00:32:18 2017
Return-Path: <kazuhooku@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 40EE8128768 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 00:32:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 vpGeiiLLVxsj for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 00:32:16 -0700 (PDT)
Received: from mail-pg0-x235.google.com (mail-pg0-x235.google.com [IPv6:2607:f8b0:400e:c05::235]) (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 EDE9E13150C for <quic@ietf.org>; Mon, 10 Jul 2017 00:32:15 -0700 (PDT)
Received: by mail-pg0-x235.google.com with SMTP id u62so45089114pgb.3 for <quic@ietf.org>; Mon, 10 Jul 2017 00:32:15 -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=DUz7BC1mCG6WPlK2Y+o/AUs6WykFaSJtuNystWheT2U=; b=JNd6td8TgAmYcoXwe2xSpQGUKaQqZOGHz18NO0wbnBAcdc8Vz22sd50VexXnRR6czu 5a/psyESUEsnRTkG0PUxTq4Bake0R9uPXeBdAqYeodBPj5jWr57kCds0iEleQyLlnU+c 4MXMYcQRvyyhgGNVyViRePNmE97RXGL8Pu4eTtdATDhnY9D0H8xOpScare/RVVTmanwR V7uM0hbSUt+0OsTm+Ebmzd2Geb7N5IBalNw8gY/P5MpLvl2yc1BJvefkH1VVx3OEj009 x/TMEBj6sKFKVPPoRK03o8i1TOINYWGJMwu8RGMVfUBXvdVMBYdRWXJ+UfLJLGkNrQES eIxw==
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=DUz7BC1mCG6WPlK2Y+o/AUs6WykFaSJtuNystWheT2U=; b=PG5U4yQlBNp673+qXo22uVlj85WIZQ2UtpisJJFeGrdcv99lYdfMpZvnozPm6QtNeW ftIekK1+r+ZKs+kppA4vwr0980UCMvc2WL70mVLfVNqGJpWPblN4kKP1jyvlP4W6mVgW xqPtAbJBOI9nCS9dGjCxHaoNgvbiHY8dwjQw1gtg5ZtpYpOJXS07zF4BeTVSNAWsmk/e NG5XduP1v6AseTOtbLI4FO5U2GzRLaA/fCFn9N4yFULaI8c6KT/ix7PJ8J52naawXeNy BKbmUuig4sN1lslPcl+XDO443uvRNoKQAMQ3uczWv63dA+vTJKZ1JCB/E+l005rjoDW4 lE3Q==
X-Gm-Message-State: AIVw110gsx3NmEVfm0Q/UzkheY0FpIVNKarM9gBEYecgErOZsiRWJ2vC 67lfGoj+FYZ4lXSoLv90sfJeFZahFA==
X-Received: by 10.99.107.9 with SMTP id g9mr6807394pgc.147.1499671935543; Mon, 10 Jul 2017 00:32:15 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Mon, 10 Jul 2017 00:32:14 -0700 (PDT)
In-Reply-To: <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Mon, 10 Jul 2017 16:32:14 +0900
Message-ID: <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Ryan Hamilton <rch@google.com>
Cc: Jana Iyengar <jri@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/uRqGDoVByxcpfbq4Psfwlcra6Gs>
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: Mon, 10 Jul 2017 07:32:17 -0000

2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>
>
> On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
>>
>> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>> > I've been thinking about this, and I'm starting to think that we should
>> > cover more ground in the second implementation draft.
>> >
>> > I'm hearing about increasing deployments of gQUIC, largely due to market
>> > pressures. The availability of the Chromium implementation makes it
>> > particularly easy for folks to deploy QUIC with that code. I think we
>> > need
>> > to move with some urgency, even if we don't change everything about QUIC
>> > to
>> > make it perfect, so that we can start getting IETF QUIC deployments out
>> > there. Specifically, I think we should:
>> > 1. work out the wire-visible invariants and finalize all of those for
>> > the
>> > second impl draft. We know that there are some middleboxes that already
>> > have
>> > classifiers for gQUIC, and we need to move quickly and push IETF-QUIC so
>> > we
>> > can test that IETF-QUIC is deployable. I fear that the longer we take,
>> > the
>> > more widespread gQUIC ossification will be.
>> > 2. allow impls to make serious progress towards a basic HTTP mapping
>> > over
>> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps test
>> > a
>> > basic HTTP request-response over QUIC. We can still punt
>> > performance-oriented things such as full loss recovery and congestion
>> > control to later. This forces us to try and finalize the HTTP mapping
>> > details, which is a good thing, IMO.
>>
>> I agree with Jana.
>>
>> If we can have some basic HTTP mapping (it can be as basic as using
>> HTTP/1.0 over each stream), we can use that to test how the IETF
>> version of QUIC performs well in the field, by comparing its
>> performance to HTTP over TCP.
>
>
> Interesting idea. One challenge with performance analysis is that it'll be a
> bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (without
> header compression) against HTTP/2 (with header compression) or HTTP/1.1
> (over multiple connections).

Agreed.

Though I might argue that collecting metrics of a QUIC implementation
without header compression could be useful. We can use that as a
baseline when we formalize QPACK / QCRAM.

-- 
Kazuho Oku


From nobody Mon Jul 10 03:34:18 2017
Return-Path: <ianswett@google.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 426ED12783A for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 03:34:17 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 XMaJ0dwoZPxH for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 03:34:15 -0700 (PDT)
Received: from mail-yb0-x22a.google.com (mail-yb0-x22a.google.com [IPv6:2607:f8b0:4002:c09::22a]) (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 22490131689 for <quic@ietf.org>; Mon, 10 Jul 2017 03:34:15 -0700 (PDT)
Received: by mail-yb0-x22a.google.com with SMTP id f194so26535520yba.3 for <quic@ietf.org>; Mon, 10 Jul 2017 03:34:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=11L6NZCD4QBVnEiq0YnNsDAUhsQFlp2pRod2nFmbXg4=; b=hTItzO/FKWiIujxmimBE5yGZY+ugWCspk0SGp6HJmCSF9zeyqlpACYVCRszX8ri1vc 3G7XKSIsV2WPu9ovXtVteQmKDDZxZtLzC24lVZcwm5dxYNHHvzhqnrBXHi9ydsbLRg4e 4lQ7oZ3QgrihJiPe0F1ySxTUULuAILC5OVnENpLteKSteIdU43oXdc1wUchPTIOf9W/Z 1agPDkWwRH/OLDAphVbO7KzYJ633woK8eD79+jLcuUgbRiGJtF+kUzuV9upbUWgCH1Wj Weg396PDGr1IR504joAnTiwqqJbG1QzZJW4oM3jLJ/i26xPai/VXGsbfs1C+iBQPCcZC H1+g==
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=11L6NZCD4QBVnEiq0YnNsDAUhsQFlp2pRod2nFmbXg4=; b=Uzmoyi86sSyx+WLKJIeXoy08WEH98I0Av/RQlLNPy3Y7IWScjIulopPjIxclI6kMF2 oeD1KDoAj5fwB6m1m3Sp9g48bg2XVmRPwlKum7zaEF5t14My5ih6M+4uVAW2AONCRcmQ jxfd1kmQMkfG5Ahc9hrqNhCYCU2MtLYhE7Xx5HmXajVleD/dm0e4BCCZSqHA33oGH/ys vRpya/VMUoJbUi7XwwPmJH7jE0X6Dq0tK8kOZtPsKCa+Uv6SdlYOU+I/sbxgdoyWSPgJ xE7per9TMtya3a6jGlgXxJEbU4+abDaZ4YIWMBCRWJA3notSzblLlCoMZGIgKC41tBd0 xVSw==
X-Gm-Message-State: AIVw110yWZ1DtLty/j7RGW5j4h5fgIOsYbJKSiCHlIabtbEFz6xGqz61 XYq5gCKE2ld6/1pwC8hzk3EWq/YY1SsV
X-Received: by 10.37.47.67 with SMTP id v64mr12854383ybv.127.1499682854020; Mon, 10 Jul 2017 03:34:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Mon, 10 Jul 2017 03:33:53 -0700 (PDT)
In-Reply-To: <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Mon, 10 Jul 2017 06:33:53 -0400
Message-ID: <CAKcm_gOgr8JMQdwN17BDUi86uoKUWyJk59ROMvQ_xbydfVitHA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Ryan Hamilton <rch@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>
Content-Type: multipart/alternative; boundary="001a1140ad24caa0e50553f41f9c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/QGVR2FUcouH9zz0TPm-0SUXcX_w>
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: Mon, 10 Jul 2017 10:34:17 -0000

--001a1140ad24caa0e50553f41f9c
Content-Type: text/plain; charset="UTF-8"

There are two practical options to mitigate performance issues on opposite
ends of the spectrum, and both of which I expect to perform at least
slightly better than H2 over TCP for most applications.

1) Run HTTP/2 over a single QUIC stream.  This should be easy for most
implementers, but incurs maximum HOL blocking.
2) Use the HPACK static dictionary to get some of the header compression
benefits.  I think this provides a better baseline to evaluate QPACK/QCRAM
from.

On a high level, I support adding some sort of HTTP application mapping to
the second draft, with the knowledge it is likely to change a large
amount.  GQUIC has already changed it's HTTP mapping at least twice that
I'm aware of, and it has some challenges, but it's fairly doable, even when
supporting both for long periods of time.

On Mon, Jul 10, 2017 at 3:32 AM, Kazuho Oku <kazuhooku@gmail.com> wrote:

> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
> >
> >
> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
> >>
> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
> >> > I've been thinking about this, and I'm starting to think that we
> should
> >> > cover more ground in the second implementation draft.
> >> >
> >> > I'm hearing about increasing deployments of gQUIC, largely due to
> market
> >> > pressures. The availability of the Chromium implementation makes it
> >> > particularly easy for folks to deploy QUIC with that code. I think we
> >> > need
> >> > to move with some urgency, even if we don't change everything about
> QUIC
> >> > to
> >> > make it perfect, so that we can start getting IETF QUIC deployments
> out
> >> > there. Specifically, I think we should:
> >> > 1. work out the wire-visible invariants and finalize all of those for
> >> > the
> >> > second impl draft. We know that there are some middleboxes that
> already
> >> > have
> >> > classifiers for gQUIC, and we need to move quickly and push IETF-QUIC
> so
> >> > we
> >> > can test that IETF-QUIC is deployable. I fear that the longer we take,
> >> > the
> >> > more widespread gQUIC ossification will be.
> >> > 2. allow impls to make serious progress towards a basic HTTP mapping
> >> > over
> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps
> test
> >> > a
> >> > basic HTTP request-response over QUIC. We can still punt
> >> > performance-oriented things such as full loss recovery and congestion
> >> > control to later. This forces us to try and finalize the HTTP mapping
> >> > details, which is a good thing, IMO.
> >>
> >> I agree with Jana.
> >>
> >> If we can have some basic HTTP mapping (it can be as basic as using
> >> HTTP/1.0 over each stream), we can use that to test how the IETF
> >> version of QUIC performs well in the field, by comparing its
> >> performance to HTTP over TCP.
> >
> >
> > Interesting idea. One challenge with performance analysis is that it'll
> be a
> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
> (without
> > header compression) against HTTP/2 (with header compression) or HTTP/1.1
> > (over multiple connections).
>
> Agreed.
>
> Though I might argue that collecting metrics of a QUIC implementation
> without header compression could be useful. We can use that as a
> baseline when we formalize QPACK / QCRAM.
>
> --
> Kazuho Oku
>
>

--001a1140ad24caa0e50553f41f9c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">There are two practical options to mitigate performance is=
sues on opposite ends of the spectrum, and both of which I expect to perfor=
m at least slightly better than H2 over TCP for most applications.<div><br>=
</div><div>1) Run HTTP/2 over a single QUIC stream.=C2=A0 This should be ea=
sy for most implementers, but incurs maximum HOL blocking.</div><div>2) Use=
 the HPACK static dictionary to get some of the header compression benefits=
.=C2=A0 I think this provides a better baseline to evaluate QPACK/QCRAM fro=
m.</div><div><br></div><div>On a high level, I support adding some sort of =
HTTP application mapping to the second draft, with the knowledge it is like=
ly to change a large amount.=C2=A0 GQUIC has already changed it&#39;s HTTP =
mapping at least twice that I&#39;m aware of, and it has some challenges, b=
ut it&#39;s fairly doable, even when supporting both for long periods of ti=
me.</div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On=
 Mon, Jul 10, 2017 at 3:32 AM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"=
mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt;</=
span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div c=
lass=3D"h5">2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<a href=3D"mailto:=
rch@google.com">rch@google.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Kazuho Oku<br>
<br>
</font></span></blockquote></div><br></div>

--001a1140ad24caa0e50553f41f9c--


From nobody Mon Jul 10 06:12:09 2017
Return-Path: <ietf@trammell.ch>
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 857A0131758 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 06:12:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
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 CJ8xMHPTclKp for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 06:12:05 -0700 (PDT)
Received: from capri.iway.ch (capri.iway.ch [212.25.24.45]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 596D913175A for <quic@ietf.org>; Mon, 10 Jul 2017 06:12:05 -0700 (PDT)
Received: from gozo.iway.ch (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 0238E340D54; Mon, 10 Jul 2017 15:12:04 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by localhost (ACF/18338.27984); Mon, 10 Jul 2017 15:12:03 +0200 (CEST)
Received: from switchplus-mail.ch (switchplus-mail.ch [212.25.8.236]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gozo.iway.ch (Postfix) with ESMTPS; Mon, 10 Jul 2017 15:12:03 +0200 (CEST)
Received: from [213.144.146.206] (account ietf@trammell.ch HELO [192.168.115.25]) by switchplus-mail.ch (CommuniGate Pro SMTP 6.1.14) with ESMTPSA id 23300309; Mon, 10 Jul 2017 15:12:03 +0200
Subject: Re: Second Implementation Draft Guidelines
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed; boundary="Apple-Mail=_D64857BC-A8CA-4BB7-AEC8-AFA071A0BC68"; protocol="application/pgp-signature"; micalg=pgp-sha512
X-Pgp-Agent: GPGMail
From: "Brian Trammell (IETF)" <ietf@trammell.ch>
In-Reply-To: <CAKcm_gOgr8JMQdwN17BDUi86uoKUWyJk59ROMvQ_xbydfVitHA@mail.gmail.com>
Date: Mon, 10 Jul 2017 15:12:01 +0200
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>, Ryan Hamilton <rch@google.com>
Message-Id: <54A7EC17-5F0A-4BB8-A099-3728B0C25144@trammell.ch>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAKcm_gOgr8JMQdwN17BDUi86uoKUWyJk59ROMvQ_xbydfVitHA@mail.gmail.com>
To: Ian Swett <ianswett@google.com>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/3mb344OPKHG67kxD0V7izqXBEZE>
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: Mon, 10 Jul 2017 13:12:07 -0000

--Apple-Mail=_D64857BC-A8CA-4BB7-AEC8-AFA071A0BC68
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


> On 10 Jul 2017, at 12:33, Ian Swett <ianswett@google.com> wrote:
>=20
> There are two practical options to mitigate performance issues on =
opposite ends of the spectrum, and both of which I expect to perform at =
least slightly better than H2 over TCP for most applications.
>=20
> 1) Run HTTP/2 over a single QUIC stream.  This should be easy for most =
implementers, but incurs maximum HOL blocking.
> 2) Use the HPACK static dictionary to get some of the header =
compression benefits.  I think this provides a better baseline to =
evaluate QPACK/QCRAM from.
>=20
> On a high level, I support adding some sort of HTTP application =
mapping to the second draft, with the knowledge it is likely to change a =
large amount.

This seems like a good target, as long as it's possible to ensure it's =
blindingly obvious to everyone that it is likely to change a large =
amount.

We have a bit of a paradox here. In order to keep people from shipping =
2nd impl it needs to be functionally limited to the point that it's =
obviously silly to ship. But it can only be useful as a test of the =
features in the spec that it implements, which argues against an =
obviously silly profile.

A useful question to ask at this point: how many separate implementation =
drafts do we target before WGLC?

Cheers,

Brian

>  GQUIC has already changed it's HTTP mapping at least twice that I'm =
aware of, and it has some challenges, but it's fairly doable, even when =
supporting both for long periods of time.
>=20
> On Mon, Jul 10, 2017 at 3:32 AM, Kazuho Oku <kazuhooku@gmail.com> =
wrote:
> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
> >
> >
> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com> =
wrote:
> >>
> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
> >> > I've been thinking about this, and I'm starting to think that we =
should
> >> > cover more ground in the second implementation draft.
> >> >
> >> > I'm hearing about increasing deployments of gQUIC, largely due to =
market
> >> > pressures. The availability of the Chromium implementation makes =
it
> >> > particularly easy for folks to deploy QUIC with that code. I =
think we
> >> > need
> >> > to move with some urgency, even if we don't change everything =
about QUIC
> >> > to
> >> > make it perfect, so that we can start getting IETF QUIC =
deployments out
> >> > there. Specifically, I think we should:
> >> > 1. work out the wire-visible invariants and finalize all of those =
for
> >> > the
> >> > second impl draft. We know that there are some middleboxes that =
already
> >> > have
> >> > classifiers for gQUIC, and we need to move quickly and push =
IETF-QUIC so
> >> > we
> >> > can test that IETF-QUIC is deployable. I fear that the longer we =
take,
> >> > the
> >> > more widespread gQUIC ossification will be.
> >> > 2. allow impls to make serious progress towards a basic HTTP =
mapping
> >> > over
> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but =
perhaps test
> >> > a
> >> > basic HTTP request-response over QUIC. We can still punt
> >> > performance-oriented things such as full loss recovery and =
congestion
> >> > control to later. This forces us to try and finalize the HTTP =
mapping
> >> > details, which is a good thing, IMO.
> >>
> >> I agree with Jana.
> >>
> >> If we can have some basic HTTP mapping (it can be as basic as using
> >> HTTP/1.0 over each stream), we can use that to test how the IETF
> >> version of QUIC performs well in the field, by comparing its
> >> performance to HTTP over TCP.
> >
> >
> > Interesting idea. One challenge with performance analysis is that =
it'll be a
> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1 =
(without
> > header compression) against HTTP/2 (with header compression) or =
HTTP/1.1
> > (over multiple connections).
>=20
> Agreed.
>=20
> Though I might argue that collecting metrics of a QUIC implementation
> without header compression could be useful. We can use that as a
> baseline when we formalize QPACK / QCRAM.
>=20
> --
> Kazuho Oku
>=20
>=20


--Apple-Mail=_D64857BC-A8CA-4BB7-AEC8-AFA071A0BC68
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJZY30iAAoJEIoSt78L6kajMwkP/3NKMOcoAiA2xTzlB56mUery
ksWXG4CGSCRNvLufyFs5OyLKL/1Mp6l8LCMCPWmxxVE2gS/j2LkFph6G8SQewgZ/
qOVCD6aUiczIc9l9wvIMb0jpeWjkhSUZ+2AugSvzNBSNO67VXQGH6GP20EcmamrZ
LwBXd2hCUClPdgfOWczJ6aEfzrr7xJyejwwQ28FAHA/O7MqV0KpxyxrPkMOxUrvh
FeK7rIwr5wZsMZri+91JC2Kll/UQwUBYno8UStbUrFnJIEZnXMU3zno8FCBfsBY9
ppxSRSQ0byJPhoHzTBbGcm20TuNYAvzTy1dnWL/E8FVWjKfP44UUE7Cgs7BlN/wn
26A2kdV9HMdwjQL9kp2om3mF5tgUtFMI7FOteyjM4j/JPyjhsc3dA7jvA1XeSPuP
4R6FXQ7G/zlV5mNDL16fE4CX9GbGnjEINLIAN6BGc2/WbIhZ1YUqdeVt07pbvoXG
sYegqmWywpu2gD8TxBAY+7nSZPqRklKKX+/w1PH4o1TNZIzfjIvYrP++FC64q7Fn
uyblk4WG+ZhMyvAAOPmUg8vm8jaB5UVIQ4jZ6jCZLqT0xWdQrps2X1b+m/coPFt8
p6T5h/LoUuJEL1hFVhxIl5a90XZ0JTnnObCGj6m4gb3bgB05DkaxNX6AahSe1muj
rbfe2Evu8M0HjvOtaEcY
=Ytij
-----END PGP SIGNATURE-----

--Apple-Mail=_D64857BC-A8CA-4BB7-AEC8-AFA071A0BC68--


From nobody Mon Jul 10 09:11:36 2017
Return-Path: <ilubashe@akamai.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 A24921317C4 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:11:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 y0tkMMU4M4ZZ for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:11:33 -0700 (PDT)
Received: from mx0b-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F39D1317CF for <quic@ietf.org>; Mon, 10 Jul 2017 09:11:33 -0700 (PDT)
Received: from pps.filterd (m0050093.ppops.net [127.0.0.1]) by m0050093.ppops.net-00190b01. (8.16.0.21/8.16.0.21) with SMTP id v6AG7mrH011784; Mon, 10 Jul 2017 17:11:23 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=jan2016.eng; bh=GdqsMO7hYsjvNEevrmvZceNQPWHQC0EpPXune1whJ9k=; b=Y9CysV27mBuYWxR0BgD/JKcUlWsp6rxI+xaqfHWUDSFSI+4FSDBqqQwcmGu7mXYp0DcS uDSlzMvpl6Fr4tBXC1OtHVtrlI8vwq1WwlklUbogtTSsCdNZSe3Poy9tOukkWJJPPR3p hh+XSCcoKlkpKUyVa4+JvuXPLxx6iWuUHLHFB7kpYfGJKMnua4CMmU3AH32jz2saLE6e PYZqn4Do14OjDpRLo1nc3D8aBBvMpW8EmlXTmxmGcLRWr5ycCJLpsEnmwhE/qoDXgOsN zXfeAc+IYMsBmzY0qUe4ZIuPSH8pBSCmu4Mm11ULD/wWbPFC/8DZ+kQJd71I+O4s+JMj rg== 
Received: from prod-mail-ppoint2 (a184-51-33-19.deploy.static.akamaitechnologies.com [184.51.33.19] (may be forged)) by m0050093.ppops.net-00190b01. with ESMTP id 2bjvdtrdf6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 10 Jul 2017 17:11:22 +0100
Received: from pps.filterd (prod-mail-ppoint2.akamai.com [127.0.0.1]) by prod-mail-ppoint2.akamai.com (8.16.0.17/8.16.0.17) with SMTP id v6AG7PD0016245; Mon, 10 Jul 2017 12:11:21 -0400
Received: from email.msg.corp.akamai.com ([172.27.123.34]) by prod-mail-ppoint2.akamai.com with ESMTP id 2bjtqu4t1d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 10 Jul 2017 12:11:20 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag1mb4.msg.corp.akamai.com (172.27.123.104) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Mon, 10 Jul 2017 12:11:19 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com ([172.27.123.105]) by usma1ex-dag1mb5.msg.corp.akamai.com ([172.27.123.105]) with mapi id 15.00.1263.000; Mon, 10 Jul 2017 12:11:19 -0400
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: Martin Duke <martin.h.duke@gmail.com>, Jana Iyengar <jri@google.com>
CC: Subodh Iyengar <subodh@fb.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett@google.com>, Jo Kulik <jokulik@google.com>, =?utf-8?B?TWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbg==?= <mikkelfj@gmail.com>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Kazuho Oku <kazuhooku@gmail.com>
Subject: RE: Unidirectional streams PR
Thread-Topic: Unidirectional streams PR
Thread-Index: AQHS7K8qFJcNmOfPnkGlJjRXQ/9soKI0ttCAgATMZACAAP5zgIAAEIwAgAAHqgCAAA02gIAAfdKAgAARSAD//8GgUIAAXnCAgAm2IgCAAS8I8IAAXHQAgAJThYCAAALJgIAAPzkAgAQQ/8A=
Date: Mon, 10 Jul 2017 16:11:19 +0000
Message-ID: <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com> <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com>
In-Reply-To: <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.38.68]
Content-Type: multipart/alternative; boundary="_000_65e83cb364f74446b83873ab61b4295ausma1exdag1mb5msgcorpak_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-10_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707100285
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-10_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707100286
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/x3pOc6-ec-1QQdfuW98LGb-_adM>
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: Mon, 10 Jul 2017 16:11:34 -0000

--_000_65e83cb364f74446b83873ab61b4295ausma1exdag1mb5msgcorpak_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

ICAqICAgSSBndWVzcyBvbmUgcXVlc3Rpb24gaXMgaWYgcGFzc2luZyBTVFJFQU0gZnJhbWVzIHdo
b2xlIChhdCBtb3N0IGNoYW5naW5nIHRoZSBzdHJlYW0gSUQpIGlzIHN0YXRlbGVzcyBmb3IgdGhl
IG1pZGRsZWJveC4NCg0KSnVzdCBwYXNzaW5nIGZyYW1lcyBtYXkgYmUgbW9zdGx5IHN0YXRlbGVz
cyAoaW4gZmFyIGFzIHN0cmVhbXMgYXJlIGNvbmNlcm5lZCkg4oCTIGl0IGlzIGp1c3QgdHJhbnNp
ZW50IFJBTSB0byBidWZmZXIgYW5kIGFjY291bnQgZm9yIHRoZSBzdHJlYW1zIGJlZm9yZSB0aGUg
ZnJhbWVzIGFyZSBkZWxpdmVyZWQuICBJbiBmYWN0LCB0aGUgcHJveHkgbWF5IG5vdCBuZWVkIHRv
IHN0cmljdGx5IHBhc3MgdGhlIFNUUkVBTSBmcmFtZXMgYnV0IGNhbiByZS1mcmFtZSB0aGUgZGF0
YSBpdCBoYXMgYnVmZmVyZWQuICBPbmUgdGhpbmcgdGhlIHByb3h5IHdvdWxkIG5vdCBiZSBhYmxl
IHRvIGRvIGlzIHN0cmVhbSBzdGF0ZSB2YWxpZGF0aW9uIGFuZCB3b3VsZCBwYXNzIG9uIGludmFs
aWQgZnJhbWVzIHRvIGVuZHBvaW50cy4NCg0KDQpBIHJlbGF0ZWQgcXVlc3Rpb24gaXMgaG93IHdv
dWxkIGEgcHJveHkgKG9yIGEgbWlkZGxlYm94KSBpZGVudGlmeSBRVUlDIHRyYWZmaWMgYXMgUVVJ
QyBhbmQgbm90IHNvbWUgcmFuZG9tIFVEUCB0cmFmZmljPyAgV2XigJl2ZSBoYWQgYSBtYWdpYyBi
eXRlIGluIHRoZSBoZWFkZXIgYnV0IGxvc3QgaXQgaW4gdGhlIGhlYWRlciB1cGRhdGUuICBXZSBz
dGlsbCBoYXZlIGEgcG9ydCBudW1iZXIsIGJ1dCB0aGF0IGlzIGxpa2VseSBhcHBsaWNhdGlvbi1z
cGVjaWZpYywgdW5sZXNzIHdlIGFkZCBzb21ldGhpbmcgdG8gQ2xpZW50SW5pdGlhbCB0byBpZGVu
dGlmeSBhbiBhcHBsaWNhdGlvbi4NCg0KDQpGcm9tOiBNYXJ0aW4gRHVrZSBbbWFpbHRvOm1hcnRp
bi5oLmR1a2VAZ21haWwuY29tXQ0KU2VudDogRnJpZGF5LCBKdWx5IDA3LCAyMDE3IDQ6NDUgUE0N
ClRvOiBKYW5hIEl5ZW5nYXIgPGpyaUBnb29nbGUuY29tPg0KQ2M6IFN1Ym9kaCBJeWVuZ2FyIDxz
dWJvZGhAZmIuY29tPjsgTWlrZSBCaXNob3AgPE1pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5jb20+
OyBEbWl0cmkgVGlraG9ub3YgPGR0aWtob25vdkBsaXRlc3BlZWR0ZWNoLmNvbT47IElhbiBTd2V0
dCA8aWFuc3dldHRAZ29vZ2xlLmNvbT47IEx1YmFzaGV2LCBJZ29yIDxpbHViYXNoZUBha2FtYWku
Y29tPjsgSm8gS3VsaWsgPGpva3VsaWtAZ29vZ2xlLmNvbT47IE1pa2tlbCBGYWhuw7hlIErDuHJn
ZW5zZW4gPG1pa2tlbGZqQGdtYWlsLmNvbT47IFFVSUMgV0cgPHF1aWNAaWV0Zi5vcmc+OyBNYXJ0
aW4gVGhvbXNvbiA8bWFydGluLnRob21zb25AZ21haWwuY29tPjsgU3dpbmRlbGxzLCBUaG9tYXMg
KE5va2lhIC0gR0IvQ2FtYnJpZGdlLCBVSykgPHRob21hcy5zd2luZGVsbHNAbm9raWEuY29tPjsg
S2F6dWhvIE9rdSA8a2F6dWhvb2t1QGdtYWlsLmNvbT4NClN1YmplY3Q6IFJlOiBVbmlkaXJlY3Rp
b25hbCBzdHJlYW1zIFBSDQoNCkFzIEkgdW5kZXJzdGFuZCBpdCwgUVVJQydzIGNvbnRyYWN0IHdp
dGggdGhlIHVwcGVyIGxheWVyIGluY2x1ZGVzIHN0cmVhbXMsIHNvIGFueSBzdWNoIG1pZGRsZWJv
eCB3b3VsZCBtYWludGFpbiBzdGF0ZSBmb3IgZWFjaCBzdHJlYW0uIEluIGdlbmVyYWwsIHRoZXNl
IG1pZGRsZWJveGVzIHdpbGwgc3VwcG9ydCBhd2FyZW5lc3Mgb2YgbW9zdCBMN3MsIGFuZCB1c2Vy
cyB3aWxsIHR1cm4gaXQgb24uDQoNClRoZSBleGNlcHRpb25zIGFyZSBwcm9iYWJseSBraW5kIG9m
IGNvcm5lci1jYXNlLWlzaC4gUGVyaGFwcyB0aGVyZSdzIGEgbmV3IGFwcGxpY2F0aW9uIGRpcmVj
dGx5IG9uIHRvcCBvZiBRVUlDIHRoYXQgdGhlIG1pZGRsZWJveCBkb2Vzbid0IHVuZGVyc3RhbmQg
bmF0aXZlbHkuIEluIHRoYXQgY2FzZSwgd2l0aCBubyBGSU4gdGhlIG1pZGRsZWJveCB3b3VsZCBi
ZSBmb3JjZWQgdG8gaG9sZCBzdHJlYW0gc3RhdGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgY29ubmVj
dGlvbi4gIEkgZ3Vlc3Mgb25lIHF1ZXN0aW9uIGlzIGlmIHBhc3NpbmcgU1RSRUFNIGZyYW1lcyB3
aG9sZSAoYXQgbW9zdCBjaGFuZ2luZyB0aGUgc3RyZWFtIElEKSBpcyBzdGF0ZWxlc3MgZm9yIHRo
ZSBtaWRkbGVib3guDQoNCkFsc28sIEknbSBub3QgY2xlYXIgd2hlcmUgd2UgZW5kZWQgdXAgb24g
c2lsZW50IGNsb3NlLiBJZiB3ZSdyZSBpbmRlZWQgZXhwZWN0aW5nIGVuZHBvaW50cyB0byBzZWUg
dGhhdCBhbGwgdGhlIHN0cmVhbXMgYXJlIGNsb3NlZCB0byBiZWdpbiB0aGUgc2h1dGRvd24sIHRo
ZW4gd2UgaGF2ZSB0byBzZWUgdGhhdCBhbGwgdGhlIHN0cmVhbXMgYXJlIGNsb3NlZC4NCg0KT24g
RnJpLCBKdWwgNywgMjAxNyBhdCA5OjU4IEFNLCBKYW5hIEl5ZW5nYXIgPGpyaUBnb29nbGUuY29t
PG1haWx0bzpqcmlAZ29vZ2xlLmNvbT4+IHdyb3RlOg0KT24gRnJpLCBKdWwgNywgMjAxNyBhdCA5
OjQ4IEFNLCBNYXJ0aW4gRHVrZSA8bWFydGluLmguZHVrZUBnbWFpbC5jb208bWFpbHRvOm1hcnRp
bi5oLmR1a2VAZ21haWwuY29tPj4gd3JvdGU6DQoNCg0KT24gV2VkLCBKdWwgNSwgMjAxNyBhdCAx
MDoxNiBQTSwgU3Vib2RoIEl5ZW5nYXIgPHN1Ym9kaEBmYi5jb208bWFpbHRvOnN1Ym9kaEBmYi5j
b20+PiB3cm90ZToNCj4gV2l0aG91dCBzdWNoIGEgc2lnbmFsLCBhIGdlbmVyaWMgcHJveHkgdGhh
dCBpcyBub3QgYXdhcmUgb2YgeW91ciBhcHBsaWNhdGlvbiBpbnRlcm5hbHMgaXMgbm90IGFibGUg
dG8ga25vdyB3aGVuIHRvIHNlbmQgdGhlIEZJTg0KSSBzZWUsIHRoaXMgdXNlIGNhc2UgZG9lcyBt
YWtlIHNvbWV3aGF0IHNlbnNlLCBob3dldmVyIEknbSBjdXJpb3VzIGlmIHNvbWVvbmUgaGFzIGEg
Y29uY3JldGUgdXNlIGNhc2UgZm9yIGEgZ2VuZXJpYyBRVUlDIHByb3h5IHdoaWNoIGlzIG5vdCBh
d2FyZSBvZiB0aGUgYXBwbGljYXRpb24gcHJvdG9jb2wgYXQgYWxsLiBJbiBUQ1AgdGhpcyB3YXMg
bW9yZSBjb21tb24gZm9yIG1pZGRsZWJveGVzIHRvIGRvIGJlY2F1c2UgdGhlcmUgd2FzIG5vIGVu
ZCB0byBlbmQgZW5jcnlwdGlvbiBvZiB0aGUgdHJhbnNwb3J0LCBob3dldmVyIFFVSUMgaXMgZW5j
cnlwdGVkLiBFdmVuIHdpdGggY2FzZXMgd2hlbiB3ZSB0dW5uZWxpbmcgcHJvdG9jb2xzIGF0IG91
ciBlbmQsIHdlIHVzdWFsbHkgaGF2ZSBzb21lIGtub3dsZWRnZSBvZiB0aGUgYXBwIHRoYXQgd2Ug
YXJlIHJ1bm5pbmcgYmVjYXVzZSB3ZSBuZWVkIHRvIHJvdXRlIHRoZW0gZGlmZmVyZW50bHkgdG8g
ZGlmZmVyZW50IGJhY2tlbmRzLiBJIHdhcyBtb3N0bHkgdGhpbmtpbmcgdGhhdCBwcm94aWVzIHdv
dWxkIGF0IGxlYXN0IGhhdmUgc29tZSBrbm93bGVkZ2UgYWJvdXQgSFRUUC8yIG9yIGFwcCBwcm90
b2NvbHMuDQoNClNvbWUgbG9hZCBiYWxhbmNlcnMgKGluY2x1ZGluZyBvdXJzKSB0ZXJtaW5hdGUg
dGhlIHRyYW5zcG9ydCBjb25uZWN0aW9uLiBCZWluZyB0cnVzdGVkIG1pZGRsZWJveGVzLCB0aGV5
IGhhdmUgdGhlIGNlcnRpZmljYXRlcyBhbmQgdGhpcyBzb3J0IG9mIHRoaW5nIHdvcmtzIGluIHBy
aW5jaXBsZS4NCg0KVGhhdCBzYWlkLCBpbiBzdWNoIGEgY2FzZSBpdCdzIGVudGlyZWx5IGZlYXNp
YmxlIHRvIGltcGxlbWVudCBIVFRQLzIgb24gdGhlIG1pZGRsZWJveCBhcyB3ZWxsLg0KDQpJZiB0
aGVzZSBtaWRkbGVib3hlcyB0ZXJtaW5hdGUgdGhlIHRyYW5zcG9ydCBjb25uZWN0aW9uIGZvciBR
VUlDLCB3b3VsZCB0aGV5IG5lZWQgdG8gdW5kZXJzdGFuZCBzdHJlYW0gc2VtYW50aWNzPyBPciB3
b3VsZCB0aGV5IHNpbXBseSB0ZXJtaW5hdGUgdGhlIFFVSUMgY29ubmVjdGlvbiwgYnV0IHJlbGF5
IHRoZSBTVFJFQU0gZnJhbWVzIHdpdGhvdXQgYW55IGNoYW5nZXM/DQpJJ2xsIG5vdGUgdGhhdCBh
bGwgdHJhbnNwb3J0cyBhZnRlciBUQ1AgaGF2ZSB0d28gZ2VuZXJhbCBwYXJ0cyB0byB0aGVtIC0t
IHRoZSBwYWNrZXQgdHJhbnNwb3J0IHBhcnQsIGFuZCB0aGUgYXBwbGljYXRpb24gc2VtYW50aWNz
IHBhcnQuIE1pZGRsZWJveGVzIGFyZSB1c3VhbGx5IGludGVyZXN0ZWQgaW4gdGhlICJsb3dlciBo
YWxmIiBvZiB0aGUgdHJhbnNwb3J0IC0gdGhlIHBhY2tldCB0cmFuc3BvcnQgcGFydC4NCg0KVGhh
dCBzYWlkLCBJJ20gbm90IG9wcG9zZWQgdG8gaGF2aW5nIGFuIGV4cGxpY2l0IGJpdC4gSSdtIGFs
c28gd29uZGVyaW5nIGlmIHRoZXJlJ3MgYSByZWFsIHVzZSBjYXNlLCBvciBpZiB3ZSdyZSBwcm92
aXNpb25pbmcgZm9yIHRoZSBmdXR1cmUgaGVyZS4NCg0KLSBqYW5hDQoNCkhvd2V2ZXIsIEkgdGhp
bmsgd2Ugc2hvdWxkIGxvb2sgZm9yd2FyZCB0byB0aGUgZGF5IHdoZXJlIFFVSUMgaXMgaW1wbGVt
ZW50ZWQgaW4ga2VybmVsIHNwYWNlIGFuZCBIVFRQLzIgKGFuZCBldmVyeXRoaW5nIGVsc2UpIHJl
bWFpbnMgYW4gYXBwbGljYXRpb24uIEkgaW1hZ2luZSBjb3VudGluZyBvbiBhbGwgYXBwbGljYXRp
b25zIHRvIGRvIHRoaXMga2luZCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gY291bGQgY2F1c2UgcHJv
YmxlbXMuDQoNCg0K

--_000_65e83cb364f74446b83873ab61b4295ausma1exdag1mb5msgcorpak_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMg
MiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1
IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWws
IGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcg
Um9tYW4iLHNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXBy
aW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQph
OnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5
Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNv
TGlzdFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3JhcGgN
Cgl7bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGluOw0KCW1hcmdpbi1yaWdo
dDowaW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6LjVpbjsNCgltYXJnaW4t
Ym90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMg
TmV3IFJvbWFuIixzZXJpZjt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29u
b3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0K
CW1hcmdpbi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1l
cyBOZXcgUm9tYW4iLHNlcmlmO30NCnNwYW4uaG9lbnpiDQoJe21zby1zdHlsZS1uYW1lOmhvZW56
Yjt9DQpzcGFuLkVtYWlsU3R5bGUyMA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4u
RW1haWxTdHlsZTIyDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLWNvbXBvc2U7DQoJZm9udC1m
YW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQouTXNvQ2hw
RGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LWZhbWlseToiQ2Fs
aWJyaSIsc2Fucy1zZXJpZjt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4w
aW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjEN
Cgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAqLw0KQGxpc3QgbDAN
Cgl7bXNvLWxpc3QtaWQ6NzQ2NzQ1NDY7DQoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxp
c3QtdGVtcGxhdGUtaWRzOi0xMzI0MzI2NTI0IC05ODQyOTQ3NjAgNjc2OTg2OTEgNjc2OTg2OTMg
Njc2OTg2ODkgNjc2OTg2OTEgNjc2OTg2OTMgNjc2OTg2ODkgNjc2OTg2OTEgNjc2OTg2OTM7fQ0K
QGxpc3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDotOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLHNhbnMtc2VyaWY7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCglt
c28tYmlkaS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9DQpAbGlzdCBsMDpsZXZlbDIN
Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJ
bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0
Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBs
aXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2lu
Z2RpbmdzO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxs
ZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9u
dC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9u
ZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWlu
Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWw2DQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2
ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrv
grc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv
bjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxp
c3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXIt
cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJp
ZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs
bGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZv
bnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMQ0KCXttc28tbGlzdC1pZDoyMDA2OTMwMDM4
Ow0KCW1zby1saXN0LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczotMjE2MTE1
NTU0IDcwODYxODk0NCA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5
MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5Mzt9DQpAbGlzdCBsMTpsZXZlbDENCgl7bXNvLWxl
dmVsLXN0YXJ0LWF0OjA7DQoJbXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s
ZXZlbC10ZXh0Ou+DmDsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5Oldp
bmdkaW5nczsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZv
bnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30NCkBsaXN0IGwxOmxldmVsMg0KCXttc28tbGV2
ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwt
dGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1p
bmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDE6bGV2
ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrv
gqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv
bjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0K
QGxpc3QgbDE6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51
bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpT
eW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl
dDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1m
YW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMTpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJl
ci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0
b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6
LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMTpsZXZlbDcNCgl7bXNv
LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28t
bGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZl
bDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87
DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30N
CkBsaXN0IGwxOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv
LWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1u
dW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6
V2luZ2RpbmdzO30NCm9sDQoJe21hcmdpbi1ib3R0b206MGluO30NCnVsDQoJe21hcmdpbi1ib3R0
b206MGluO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRl
ZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+
PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8
bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48
IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGlu
az0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8dWwgc3R5bGU9Im1hcmdp
bi10b3A6MGluIiB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5
bGU9Im1hcmdpbi1sZWZ0OjBpbjttc28tbGlzdDpsMSBsZXZlbDEgbGZvMSI+SSBndWVzcyBvbmUg
cXVlc3Rpb24gaXMgaWYgcGFzc2luZyBTVFJFQU0gZnJhbWVzIHdob2xlIChhdCBtb3N0IGNoYW5n
aW5nIHRoZSBzdHJlYW0gSUQpIGlzIHN0YXRlbGVzcyBmb3IgdGhlIG1pZGRsZWJveC48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWYiPjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5KdXN0IHBhc3NpbmcgZnJhbWVzIG1heSBi
ZSBtb3N0bHkgc3RhdGVsZXNzIChpbiBmYXIgYXMgc3RyZWFtcyBhcmUgY29uY2VybmVkKSDigJMg
aXQgaXMganVzdCB0cmFuc2llbnQgUkFNIHRvIGJ1ZmZlciBhbmQgYWNjb3VudCBmb3IgdGhlIHN0
cmVhbXMgYmVmb3JlIHRoZSBmcmFtZXMgYXJlIGRlbGl2ZXJlZC4mbmJzcDsNCiBJbiBmYWN0LCB0
aGUgcHJveHkgbWF5IG5vdCBuZWVkIHRvIHN0cmljdGx5IHBhc3MgdGhlIFNUUkVBTSBmcmFtZXMg
YnV0IGNhbiByZS1mcmFtZSB0aGUgZGF0YSBpdCBoYXMgYnVmZmVyZWQuJm5ic3A7IE9uZSB0aGlu
ZyB0aGUgcHJveHkgd291bGQgbm90IGJlIGFibGUgdG8gZG8gaXMgc3RyZWFtIHN0YXRlIHZhbGlk
YXRpb24gYW5kIHdvdWxkIHBhc3Mgb24gaW52YWxpZCBmcmFtZXMgdG8gZW5kcG9pbnRzLjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkEgcmVsYXRlZCBxdWVzdGlvbiBpcyBob3cgd291bGQgYSBw
cm94eSAob3IgYSBtaWRkbGVib3gpIGlkZW50aWZ5IFFVSUMgdHJhZmZpYyBhcyBRVUlDIGFuZCBu
b3Qgc29tZSByYW5kb20gVURQIHRyYWZmaWM/Jm5ic3A7IFdl4oCZdmUgaGFkIGEgbWFnaWMgYnl0
ZSBpbiB0aGUgaGVhZGVyIGJ1dCBsb3N0IGl0IGluDQogdGhlIGhlYWRlciB1cGRhdGUuJm5ic3A7
IFdlIHN0aWxsIGhhdmUgYSBwb3J0IG51bWJlciwgYnV0IHRoYXQgaXMgbGlrZWx5IGFwcGxpY2F0
aW9uLXNwZWNpZmljLCB1bmxlc3Mgd2UgYWRkIHNvbWV0aGluZyB0byBDbGllbnRJbml0aWFsIHRv
IGlkZW50aWZ5IGFuIGFwcGxpY2F0aW9uLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkZy
b206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiBNYXJ0aW4gRHVrZSBbbWFpbHRvOm1hcnRp
bi5oLmR1a2VAZ21haWwuY29tXQ0KPGJyPg0KPGI+U2VudDo8L2I+IEZyaWRheSwgSnVseSAwNywg
MjAxNyA0OjQ1IFBNPGJyPg0KPGI+VG86PC9iPiBKYW5hIEl5ZW5nYXIgJmx0O2pyaUBnb29nbGUu
Y29tJmd0Ozxicj4NCjxiPkNjOjwvYj4gU3Vib2RoIEl5ZW5nYXIgJmx0O3N1Ym9kaEBmYi5jb20m
Z3Q7OyBNaWtlIEJpc2hvcCAmbHQ7TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbSZndDs7IERt
aXRyaSBUaWtob25vdiAmbHQ7ZHRpa2hvbm92QGxpdGVzcGVlZHRlY2guY29tJmd0OzsgSWFuIFN3
ZXR0ICZsdDtpYW5zd2V0dEBnb29nbGUuY29tJmd0OzsgTHViYXNoZXYsIElnb3IgJmx0O2lsdWJh
c2hlQGFrYW1haS5jb20mZ3Q7OyBKbyBLdWxpayAmbHQ7am9rdWxpa0Bnb29nbGUuY29tJmd0Ozsg
TWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbg0KICZsdDttaWtrZWxmakBnbWFpbC5jb20mZ3Q7OyBR
VUlDIFdHICZsdDtxdWljQGlldGYub3JnJmd0OzsgTWFydGluIFRob21zb24gJmx0O21hcnRpbi50
aG9tc29uQGdtYWlsLmNvbSZndDs7IFN3aW5kZWxscywgVGhvbWFzIChOb2tpYSAtIEdCL0NhbWJy
aWRnZSwgVUspICZsdDt0aG9tYXMuc3dpbmRlbGxzQG5va2lhLmNvbSZndDs7IEthenVobyBPa3Ug
Jmx0O2thenVob29rdUBnbWFpbC5jb20mZ3Q7PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBVbmlk
aXJlY3Rpb25hbCBzdHJlYW1zIFBSPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+QXMgSSB1bmRlcnN0YW5kIGl0LCBRVUlDJ3MgY29udHJhY3Qgd2l0aCB0aGUgdXBwZXIgbGF5
ZXIgaW5jbHVkZXMgc3RyZWFtcywgc28gYW55IHN1Y2ggbWlkZGxlYm94IHdvdWxkIG1haW50YWlu
IHN0YXRlIGZvciBlYWNoIHN0cmVhbS4gSW4gZ2VuZXJhbCwgdGhlc2UgbWlkZGxlYm94ZXMgd2ls
bCBzdXBwb3J0IGF3YXJlbmVzcyBvZiBtb3N0IEw3cywgYW5kIHVzZXJzIHdpbGwgdHVybiBpdCBv
bi48bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBleGNl
cHRpb25zIGFyZSBwcm9iYWJseSBraW5kIG9mIGNvcm5lci1jYXNlLWlzaC4gUGVyaGFwcyB0aGVy
ZSdzIGEgbmV3IGFwcGxpY2F0aW9uIGRpcmVjdGx5IG9uIHRvcCBvZiBRVUlDIHRoYXQgdGhlIG1p
ZGRsZWJveCBkb2Vzbid0IHVuZGVyc3RhbmQgbmF0aXZlbHkuIEluIHRoYXQgY2FzZSwgd2l0aCBu
byBGSU4gdGhlIG1pZGRsZWJveCB3b3VsZCBiZSBmb3JjZWQgdG8gaG9sZCBzdHJlYW0gc3RhdGUN
CiB1bnRpbCB0aGUgZW5kIG9mIHRoZSBjb25uZWN0aW9uLiZuYnNwOyBJIGd1ZXNzIG9uZSBxdWVz
dGlvbiBpcyBpZiBwYXNzaW5nIFNUUkVBTSBmcmFtZXMgd2hvbGUgKGF0IG1vc3QgY2hhbmdpbmcg
dGhlIHN0cmVhbSBJRCkgaXMgc3RhdGVsZXNzIGZvciB0aGUgbWlkZGxlYm94LjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbHNvLCBJJ20gbm90
IGNsZWFyIHdoZXJlIHdlIGVuZGVkIHVwIG9uIHNpbGVudCBjbG9zZS4gSWYgd2UncmUgaW5kZWVk
IGV4cGVjdGluZyBlbmRwb2ludHMgdG8gc2VlIHRoYXQgYWxsIHRoZSBzdHJlYW1zIGFyZSBjbG9z
ZWQgdG8gYmVnaW4gdGhlIHNodXRkb3duLCB0aGVuIHdlDQo8aT5oYXZlIHRvIHNlZSB0aGF0IGFs
bCB0aGUgc3RyZWFtcyBhcmUgY2xvc2VkLjwvaT48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gRnJpLCBKdWwgNywgMjAxNyBhdCA5OjU4IEFN
LCBKYW5hIEl5ZW5nYXIgJmx0OzxhIGhyZWY9Im1haWx0bzpqcmlAZ29vZ2xlLmNvbSIgdGFyZ2V0
PSJfYmxhbmsiPmpyaUBnb29nbGUuY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8
YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAx
LjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1y
aWdodDowaW4iPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24g
RnJpLCBKdWwgNywgMjAxNyBhdCA5OjQ4IEFNLCBNYXJ0aW4gRHVrZSAmbHQ7PGEgaHJlZj0ibWFp
bHRvOm1hcnRpbi5oLmR1a2VAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+bWFydGluLmguZHVr
ZUBnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6
MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBpbiI+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+T24gV2VkLCBKdWwgNSwgMjAxNyBhdCAxMDoxNiBQTSwgU3Vib2RoIEl5
ZW5nYXIgJmx0OzxhIGhyZWY9Im1haWx0bzpzdWJvZGhAZmIuY29tIiB0YXJnZXQ9Il9ibGFuayI+
c3Vib2RoQGZiLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUg
c3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGlu
ZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGluIj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdiBpZD0ibV8tNjc0NzAyMDk4NzEwOTQ0NjM2M21fLTg1Mzc2OTIw
NDc0ODA2MDQ1MzRtXzEyMjk4ODQ4MjQ5NzMwMjcyNXhfZGl2dGFnZGVmYXVsdHdyYXBwZXIiPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+
PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjpibGFjayI+Jmd0OyZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2si
PldpdGhvdXQgc3VjaCBhIHNpZ25hbCwgYSBnZW5lcmljIHByb3h5IHRoYXQgaXMgbm90IGF3YXJl
IG9mIHlvdXINCiBhcHBsaWNhdGlvbiBpbnRlcm5hbHMgaXMgbm90IGFibGUgdG8ga25vdyB3aGVu
IHRvIHNlbmQgdGhlIEZJTjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6YmxhY2siPkkgc2VlLCB0aGlzIHVzZSBjYXNlIGRvZXMgbWFrZSBzb21ld2hhdCBzZW5zZSwg
aG93ZXZlciBJJ20gY3VyaW91cyBpZiZuYnNwO3NvbWVvbmUgaGFzJm5ic3A7YSBjb25jcmV0ZSZu
YnNwO3VzZSBjYXNlIGZvciBhIGdlbmVyaWMgUVVJQyBwcm94eSB3aGljaCBpcyBub3QgYXdhcmUg
b2YgdGhlIGFwcGxpY2F0aW9uDQogcHJvdG9jb2wgYXQgYWxsLiBJbiBUQ1AgdGhpcyB3YXMgbW9y
ZSBjb21tb24gZm9yIG1pZGRsZWJveGVzIHRvIGRvIGJlY2F1c2UgdGhlcmUgd2FzIG5vIGVuZCB0
byBlbmQgZW5jcnlwdGlvbiBvZiB0aGUgdHJhbnNwb3J0LCBob3dldmVyIFFVSUMgaXMgZW5jcnlw
dGVkLiBFdmVuIHdpdGggY2FzZXMgd2hlbiB3ZSZuYnNwO3R1bm5lbGluZyBwcm90b2NvbHMgYXQg
b3VyIGVuZCwgd2UgdXN1YWxseSBoYXZlIHNvbWUga25vd2xlZGdlIG9mIHRoZSBhcHAgdGhhdA0K
IHdlIGFyZSBydW5uaW5nIGJlY2F1c2Ugd2UgbmVlZCB0byByb3V0ZSB0aGVtIGRpZmZlcmVudGx5
IHRvIGRpZmZlcmVudCBiYWNrZW5kcy4mbmJzcDtJIHdhcyBtb3N0bHkgdGhpbmtpbmcgdGhhdCZu
YnNwO3Byb3hpZXMgd291bGQgYXQgbGVhc3QgaGF2ZSBzb21lIGtub3dsZWRnZSZuYnNwO2Fib3V0
IEhUVFAvMiBvciBhcHAgcHJvdG9jb2xzLiZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2tx
dW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlNvbWUgbG9hZCBiYWxhbmNlcnMg
KGluY2x1ZGluZyBvdXJzKSB0ZXJtaW5hdGUgdGhlIHRyYW5zcG9ydCBjb25uZWN0aW9uLiBCZWlu
ZyB0cnVzdGVkIG1pZGRsZWJveGVzLCB0aGV5IGhhdmUgdGhlIGNlcnRpZmljYXRlcyBhbmQgdGhp
cyBzb3J0IG9mIHRoaW5nIHdvcmtzIGluIHByaW5jaXBsZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhhdCBzYWlkLCBpbiBzdWNoIGEgY2Fz
ZSBpdCdzIGVudGlyZWx5IGZlYXNpYmxlIHRvIGltcGxlbWVudCBIVFRQLzIgb24gdGhlIG1pZGRs
ZWJveCBhcyB3ZWxsLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz
cDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JZiB0aGVz
ZSBtaWRkbGVib3hlcyB0ZXJtaW5hdGUgdGhlIHRyYW5zcG9ydCBjb25uZWN0aW9uIGZvciBRVUlD
LCB3b3VsZCB0aGV5IG5lZWQgdG8gdW5kZXJzdGFuZCBzdHJlYW0gc2VtYW50aWNzPyBPciB3b3Vs
ZCB0aGV5IHNpbXBseSB0ZXJtaW5hdGUgdGhlIFFVSUMgY29ubmVjdGlvbiwgYnV0IHJlbGF5IHRo
ZSBTVFJFQU0gZnJhbWVzIHdpdGhvdXQgYW55IGNoYW5nZXM/PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JJ2xsIG5vdGUgdGhhdCBhbGwgdHJhbnNw
b3J0cyBhZnRlciBUQ1AgaGF2ZSB0d28gZ2VuZXJhbCBwYXJ0cyB0byB0aGVtIC0tIHRoZSBwYWNr
ZXQgdHJhbnNwb3J0IHBhcnQsIGFuZCB0aGUgYXBwbGljYXRpb24gc2VtYW50aWNzIHBhcnQuIE1p
ZGRsZWJveGVzIGFyZSB1c3VhbGx5IGludGVyZXN0ZWQgaW4gdGhlICZxdW90O2xvd2VyIGhhbGYm
cXVvdDsgb2YgdGhlIHRyYW5zcG9ydCAtIHRoZSBwYWNrZXQgdHJhbnNwb3J0IHBhcnQuPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYXQgc2Fp
ZCwgSSdtIG5vdCBvcHBvc2VkIHRvIGhhdmluZyBhbiBleHBsaWNpdCBiaXQuIEknbSBhbHNvIHdv
bmRlcmluZyBpZiB0aGVyZSdzIGEgcmVhbCB1c2UgY2FzZSwgb3IgaWYgd2UncmUgcHJvdmlzaW9u
aW5nIGZvciB0aGUgZnV0dXJlIGhlcmUuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6Izg4ODg4OCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPi0gamFuYTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29s
aWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQu
OHB0O21hcmdpbi1yaWdodDowaW4iPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkhvd2V2ZXIsIEkgdGhpbmsgd2Ugc2hvdWxkIGxvb2sgZm9yd2FyZCB0
byB0aGUgZGF5IHdoZXJlIFFVSUMgaXMgaW1wbGVtZW50ZWQgaW4ga2VybmVsIHNwYWNlIGFuZCBI
VFRQLzIgKGFuZCBldmVyeXRoaW5nIGVsc2UpIHJlbWFpbnMgYW4gYXBwbGljYXRpb24uIEkgaW1h
Z2luZSBjb3VudGluZyBvbiBhbGwgYXBwbGljYXRpb25zIHRvIGRvIHRoaXMga2luZCBvZiBnYXJi
YWdlIGNvbGxlY3Rpb24gY291bGQgY2F1c2UNCiBwcm9ibGVtcy48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4N
Cg==

--_000_65e83cb364f74446b83873ab61b4295ausma1exdag1mb5msgcorpak_--


From nobody Mon Jul 10 09:21:49 2017
Return-Path: <mikkelfj@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 D59CD1317D1 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:21:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 kfFYJn5XO0da for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:21:46 -0700 (PDT)
Received: from mail-ua0-x22c.google.com (mail-ua0-x22c.google.com [IPv6:2607:f8b0:400c:c08::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 4C2E212EAB0 for <quic@ietf.org>; Mon, 10 Jul 2017 09:21:46 -0700 (PDT)
Received: by mail-ua0-x22c.google.com with SMTP id w19so58016554uac.0 for <quic@ietf.org>; Mon, 10 Jul 2017 09:21:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=rTzqgq8YAct01LzIWA6SCHyMRfrBmVGpeGkI52ZFekY=; b=fWbi5GmOl5c/+TpqHjei15Ml5fbghwr6UJfZs0Ti+MJSz91AdGpz/xSJMpjdkBTW7X pykSp98eSL5+7vlDhNwUCsaxusDXfz6MOhlqGQdEamLi+iTMT6Xrq2j/vp+LuBI+gWSC YisSzVC/cekhnsdDHWe6etmMmaHLq+0hnA5iKpn8sC5IuafRYTpIQ8d6RCSQenuZpBO1 dNLmqKiHds0Yg/vcjnCqRvDj6AEopLEiyeK5j2aE2rBdly9OocTweXc8P5tyco251Unu 6U0opFVGFTSxDsa9Wt2fVReq+b97pbdlvo/zGuVEpubEOP+jsMZrkUzAtuuHcNEGQOa5 DC/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=rTzqgq8YAct01LzIWA6SCHyMRfrBmVGpeGkI52ZFekY=; b=VLZMwuf3T9RZ102LhYZSRGdYrXMfz67ZSAgiTwj60Mnq5QIfh3qFoCP5OcmlMkzjL5 Ttlv7LLZJCJGOjsgI5nNH4V/0H0gZ/b+Wmttgh8q9gkFfbadq25kr0YDTuW+tciSJBiX 6PoMpuIGAcewA9WqoXZXE9zXakgIvmkky1kTRL1KhxbpgJQGSJC8XCoZa412oSvshXvl yXXNAH95LblIbJUfeOBKKtkxknbHyW7EL/hb1YBz1w6G+5Vq0KkLcwn0eOxAnIVx6WBA UCtkXV6esOUz+DD9RpZSve3UMkP9hd3tJjhKw7CekImfXJ74pX2nhGwUm+w3EKgJESr4 i3IQ==
X-Gm-Message-State: AIVw110dSdJL3ztRIA/ZyQOOCXJmh154mPZk/SrPBmYjGlvTy6tgmVvC BIblfwqH8getoJJtdQX3iQeawI1eOg==
X-Received: by 10.176.84.156 with SMTP id p28mr9207565uaa.104.1499703705424; Mon, 10 Jul 2017 09:21:45 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Mon, 10 Jul 2017 09:21:44 -0700
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com> <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com> <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Mon, 10 Jul 2017 09:21:44 -0700
Message-ID: <CAN1APdcYrs=U=btKtyG1VjHPTMrFts3pNLKrq=mqb=7W_+yy6w@mail.gmail.com>
Subject: RE: Unidirectional streams PR
To: "Lubashev, Igor" <ilubashe@akamai.com>, Jana Iyengar <jri@google.com>,  Martin Duke <martin.h.duke@gmail.com>
Cc: QUIC WG <quic@ietf.org>, Jo Kulik <jokulik@google.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Mike Bishop <michael.bishop@microsoft.com>,  Martin Thomson <martin.thomson@gmail.com>, Ian Swett <ianswett@google.com>,  Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Subodh Iyengar <subodh@fb.com>,  Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="94eb2c1b0c3ea158a80553f8faaa"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/fEhbaKpyDhC34PmGsSjYVf-ThxM>
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: Mon, 10 Jul 2017 16:21:48 -0000

--94eb2c1b0c3ea158a80553f8faaa
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Just passing frames may be mostly stateless (in far as streams are
concerned) =E2=80=93 it is just transient RAM to buffer and account for the=
 streams
before the frames are delivered.  In fact, the proxy may not need to
strictly pass the STREAM frames but can re-frame the data it has buffered.
One thing the proxy would not be able to do is stream state validation and
would pass on invalid frames to endpoints.

An endpoint might use ACK as a commit signal indicating that the receiver
actually received the data. If a proxy repackages frames and does its own
ACK handing this assumption will break if not handled very carefully. If
middle boxes mess with this, it would be good to at least require them to
document this. Obviously they can=E2=80=99t mess unless they have a valid
certificate. So middle boxes should also be prepared for clients doing
detailed certificate validation beyond you average SSL cert. E.g. knowing
exactly which host or sub-cluster is connected. With hacking abundant these
days, this is not theoretical. But it also isn=E2=80=99t the std. HTTP use =
case.

--94eb2c1b0c3ea158a80553f8faaa
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div><div><blockquote type=3D"c=
ite" class=3D"clean_bq" style=3D"font-family:Helvetica,Arial;font-size:13px=
;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spaci=
ng:normal;text-align:start;text-indent:0px;text-transform:none;white-space:=
normal;word-spacing:0px"><span><div lang=3D"EN-US" link=3D"blue" vlink=3D"p=
urple"><div><div class=3D"WordSection1"><p class=3D"MsoNormal"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif">Just passing frames may =
be mostly stateless (in far as streams are concerned) =E2=80=93 it is just =
transient RAM to buffer and account for the streams before the frames are d=
elivered.=C2=A0 In fact, the proxy may not need to strictly pass the STREAM=
 frames but can re-frame the data it has buffered.=C2=A0 One thing the prox=
y would not be able to do is stream state validation and would pass on inva=
lid frames to endpoints.</span></p></div></div></div></span></blockquote></=
div><p>An endpoint might use ACK as a commit signal indicating that the rec=
eiver actually received the data. If a proxy repackages frames and does its=
 own ACK handing this assumption will break if not handled very carefully. =
If middle boxes mess with this, it would be good to at least require them t=
o document this. Obviously they can=E2=80=99t mess unless they have a valid=
 certificate. So middle boxes should also be prepared for clients doing det=
ailed certificate validation beyond you average SSL cert. E.g. knowing exac=
tly which host or sub-cluster is connected. With hacking abundant these day=
s, this is not theoretical. But it also isn=E2=80=99t the std. HTTP use cas=
e.</p><p><br></p></div><blockquote type=3D"cite" class=3D"clean_bq"><span><=
div lang=3D"EN-US" link=3D"blue" vlink=3D"purple"><div><div class=3D"WordSe=
ction1"><div>
</div>
</div>


</div></div></span></blockquote></body></html>

--94eb2c1b0c3ea158a80553f8faaa--


From nobody Mon Jul 10 09:43:33 2017
Return-Path: <ilubashe@akamai.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 224671317D3 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:43:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 Mmq0sT-wzlFI for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:43:30 -0700 (PDT)
Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 08D64129432 for <quic@ietf.org>; Mon, 10 Jul 2017 09:43:30 -0700 (PDT)
Received: from pps.filterd (m0050095.ppops.net [127.0.0.1]) by m0050095.ppops.net-00190b01. (8.16.0.21/8.16.0.21) with SMTP id v6AGfql9004109; Mon, 10 Jul 2017 17:43:26 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=jan2016.eng; bh=pQnVXfAG4CUUFocg/l+c35IborPQ+Ixcu//22XmZm3Q=; b=RKi4VDiJpkmLF9HC6HLMMlDDMq/S3RpGpGNBtT/cYAA9GJJt9z1EwzroO8OycBCZNvbS t32acvgsDwNIjjNBQGSqe9YqcbENs3YkejxPtSy2AGkW7BuRca9ZlStJM8oJoQOwZuuV QOgLfBtUY/g5NLTT4FuEu3UIqaG/FDyeko1aaRuGlu8F1YQqRjfuJ5mTbIEFulCFadrD U6qB/hEmfT6jsANB42e7J7uwtO8ZsVxMWK82W2X98/B7haxyM9nrXJM/aQFxbEVFTHnd UT26Y3/80biwu31Swv0FwqqSG5vaD+EqqeyDY8+LFiaTKrwJLE3kn/42BAat/b8FgWm7 MA== 
Received: from prod-mail-ppoint1 (a184-51-33-18.deploy.static.akamaitechnologies.com [184.51.33.18] (may be forged)) by m0050095.ppops.net-00190b01. with ESMTP id 2bjtp3gu1u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 10 Jul 2017 17:43:25 +0100
Received: from pps.filterd (prod-mail-ppoint1.akamai.com [127.0.0.1]) by prod-mail-ppoint1.akamai.com (8.16.0.17/8.16.0.17) with SMTP id v6AGbtgS025041; Mon, 10 Jul 2017 12:43:24 -0400
Received: from email.msg.corp.akamai.com ([172.27.123.32]) by prod-mail-ppoint1.akamai.com with ESMTP id 2bjtquvvp8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 10 Jul 2017 12:43:23 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag1mb3.msg.corp.akamai.com (172.27.123.103) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Mon, 10 Jul 2017 12:43:22 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com ([172.27.123.105]) by usma1ex-dag1mb5.msg.corp.akamai.com ([172.27.123.105]) with mapi id 15.00.1263.000; Mon, 10 Jul 2017 12:43:22 -0400
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: =?utf-8?B?TWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbg==?= <mikkelfj@gmail.com>, Jana Iyengar <jri@google.com>, Martin Duke <martin.h.duke@gmail.com>
CC: QUIC WG <quic@ietf.org>, Jo Kulik <jokulik@google.com>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Mike Bishop <michael.bishop@microsoft.com>, Martin Thomson <martin.thomson@gmail.com>, Ian Swett <ianswett@google.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Subodh Iyengar <subodh@fb.com>, Kazuho Oku <kazuhooku@gmail.com>
Subject: RE: Unidirectional streams PR
Thread-Topic: Unidirectional streams PR
Thread-Index: AQHS7K8qFJcNmOfPnkGlJjRXQ/9soKI0ttCAgATMZACAAP5zgIAAEIwAgAAHqgCAAA02gIAAfdKAgAARSAD//8GgUIAAXnCAgAm2IgCAAS8I8IAAXHQAgAJThYCAAALJgIAAPzkAgAQQ/8CAAFyMAP//v45A
Date: Mon, 10 Jul 2017 16:43:22 +0000
Message-ID: <18bbf519bdd2413ebb28483a6eb0e570@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com> <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com> <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com> <CAN1APdcYrs=U=btKtyG1VjHPTMrFts3pNLKrq=mqb=7W_+yy6w@mail.gmail.com>
In-Reply-To: <CAN1APdcYrs=U=btKtyG1VjHPTMrFts3pNLKrq=mqb=7W_+yy6w@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.38.68]
Content-Type: multipart/alternative; boundary="_000_18bbf519bdd2413ebb28483a6eb0e570usma1exdag1mb5msgcorpak_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-10_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707100293
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-10_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707100295
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/DWQF4MZfVy-ydEJmQ7mLiwR-UQI>
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: Mon, 10 Jul 2017 16:43:32 -0000

--_000_18bbf519bdd2413ebb28483a6eb0e570usma1exdag1mb5msgcorpak_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

ICAqICAgQW4gZW5kcG9pbnQgbWlnaHQgdXNlIEFDSyBhcyBhIGNvbW1pdCBzaWduYWwgaW5kaWNh
dGluZyB0aGF0IHRoZSByZWNlaXZlciBhY3R1YWxseSByZWNlaXZlZCB0aGUgZGF0YS4gSWYgYSBw
cm94eSByZXBhY2thZ2VzIGZyYW1lcyBhbmQgZG9lcyBpdHMgb3duIEFDSyBoYW5kaW5nIHRoaXMg
YXNzdW1wdGlvbiB3aWxsIGJyZWFrIGlmIG5vdCBoYW5kbGVkIHZlcnkgY2FyZWZ1bGx5Lg0KDQpU
aGlzIHRyZWF0bWVudCBvZiDigJx0cmFuc3BvcnQgQUNL4oCdIGFzIGFuIOKAnGFwcGxpY2F0aW9u
IGNvbW1pdOKAnSBpcyBpbmRlcGVuZGVudCBvZiBTVFJFQU0gZnJhbWUgcmVwYWNrYWdpbmcuICBU
aGUgdmFsdWUgb2YgYSBwcm94eSBjb3VsZCBiZSBpbiByZWR1Y2luZyBidWZmZXIgcmVxdWlyZW1l
bnRzIG9uIGVuZHBvaW50cywgc28gdGhlIHByb3h5IHdvdWxkIEFDSy4NCg0KSW4gYW55IGNhc2Us
IHN1Y2ggdXNlIG9mIGEg4oCcdHJhbnNwb3J0IEFDS+KAnSBhcyBhbiDigJxhcHBsaWNhdGlvbiBj
b21taXTigJ0gd291bGQgYmUgYSBwYXJ0aWN1bGFybHkgdGlnaHQgY291cGxpbmcgb2YgYXBwbGlj
YXRpb24gc2VtYW50aWNzIGFuZCBRVUlDIGxpYnJhcnkgKHdoaWNoIHdvdWxkIGJlIHJlcXVpcmVk
IHRvIGV4cG9zZSBhbiBhYmlsaXR5IHRvIGRlbGF5IEFDS3MpLiBTaW5jZSBRVUlDIEFDS3MgcGFj
a2V0cyBhbmQgbm90IHN0cmVhbXMsIGl0IG1heSBiZSB2ZXJ5IGRpZmZpY3VsdCB0byBldmVuIGlt
cGxlbWVudCB0aGlzIHdpdGhvdXQgYnJlYWtpbmcgUVVJQy4gIE9uZSBjb3VsZCBiZSB3ZWxsLWFk
dmlzZWQgdG8gYWRkIGFuIGV4cGxpY2l0IOKAnGNvbW1pdOKAnSBzaWduYWwgdG8gYXBwbGljYXRp
b24gcHJvdG9jb2xzLg0KDQoNCkZyb206IE1pa2tlbCBGYWhuw7hlIErDuHJnZW5zZW4gW21haWx0
bzptaWtrZWxmakBnbWFpbC5jb21dDQpTZW50OiBNb25kYXksIEp1bHkgMTAsIDIwMTcgMTI6MjIg
UE0NClRvOiBMdWJhc2hldiwgSWdvciA8aWx1YmFzaGVAYWthbWFpLmNvbT47IEphbmEgSXllbmdh
ciA8anJpQGdvb2dsZS5jb20+OyBNYXJ0aW4gRHVrZSA8bWFydGluLmguZHVrZUBnbWFpbC5jb20+
DQpDYzogUVVJQyBXRyA8cXVpY0BpZXRmLm9yZz47IEpvIEt1bGlrIDxqb2t1bGlrQGdvb2dsZS5j
b20+OyBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlkZ2UsIFVLKSA8dGhvbWFz
LnN3aW5kZWxsc0Bub2tpYS5jb20+OyBNaWtlIEJpc2hvcCA8bWljaGFlbC5iaXNob3BAbWljcm9z
b2Z0LmNvbT47IE1hcnRpbiBUaG9tc29uIDxtYXJ0aW4udGhvbXNvbkBnbWFpbC5jb20+OyBJYW4g
U3dldHQgPGlhbnN3ZXR0QGdvb2dsZS5jb20+OyBEbWl0cmkgVGlraG9ub3YgPGR0aWtob25vdkBs
aXRlc3BlZWR0ZWNoLmNvbT47IFN1Ym9kaCBJeWVuZ2FyIDxzdWJvZGhAZmIuY29tPjsgS2F6dWhv
IE9rdSA8a2F6dWhvb2t1QGdtYWlsLmNvbT4NClN1YmplY3Q6IFJFOiBVbmlkaXJlY3Rpb25hbCBz
dHJlYW1zIFBSDQoNCkp1c3QgcGFzc2luZyBmcmFtZXMgbWF5IGJlIG1vc3RseSBzdGF0ZWxlc3Mg
KGluIGZhciBhcyBzdHJlYW1zIGFyZSBjb25jZXJuZWQpIOKAkyBpdCBpcyBqdXN0IHRyYW5zaWVu
dCBSQU0gdG8gYnVmZmVyIGFuZCBhY2NvdW50IGZvciB0aGUgc3RyZWFtcyBiZWZvcmUgdGhlIGZy
YW1lcyBhcmUgZGVsaXZlcmVkLiAgSW4gZmFjdCwgdGhlIHByb3h5IG1heSBub3QgbmVlZCB0byBz
dHJpY3RseSBwYXNzIHRoZSBTVFJFQU0gZnJhbWVzIGJ1dCBjYW4gcmUtZnJhbWUgdGhlIGRhdGEg
aXQgaGFzIGJ1ZmZlcmVkLiAgT25lIHRoaW5nIHRoZSBwcm94eSB3b3VsZCBub3QgYmUgYWJsZSB0
byBkbyBpcyBzdHJlYW0gc3RhdGUgdmFsaWRhdGlvbiBhbmQgd291bGQgcGFzcyBvbiBpbnZhbGlk
IGZyYW1lcyB0byBlbmRwb2ludHMuDQoNCkFuIGVuZHBvaW50IG1pZ2h0IHVzZSBBQ0sgYXMgYSBj
b21taXQgc2lnbmFsIGluZGljYXRpbmcgdGhhdCB0aGUgcmVjZWl2ZXIgYWN0dWFsbHkgcmVjZWl2
ZWQgdGhlIGRhdGEuIElmIGEgcHJveHkgcmVwYWNrYWdlcyBmcmFtZXMgYW5kIGRvZXMgaXRzIG93
biBBQ0sgaGFuZGluZyB0aGlzIGFzc3VtcHRpb24gd2lsbCBicmVhayBpZiBub3QgaGFuZGxlZCB2
ZXJ5IGNhcmVmdWxseS4gSWYgbWlkZGxlIGJveGVzIG1lc3Mgd2l0aCB0aGlzLCBpdCB3b3VsZCBi
ZSBnb29kIHRvIGF0IGxlYXN0IHJlcXVpcmUgdGhlbSB0byBkb2N1bWVudCB0aGlzLiBPYnZpb3Vz
bHkgdGhleSBjYW7igJl0IG1lc3MgdW5sZXNzIHRoZXkgaGF2ZSBhIHZhbGlkIGNlcnRpZmljYXRl
LiBTbyBtaWRkbGUgYm94ZXMgc2hvdWxkIGFsc28gYmUgcHJlcGFyZWQgZm9yIGNsaWVudHMgZG9p
bmcgZGV0YWlsZWQgY2VydGlmaWNhdGUgdmFsaWRhdGlvbiBiZXlvbmQgeW91IGF2ZXJhZ2UgU1NM
IGNlcnQuIEUuZy4ga25vd2luZyBleGFjdGx5IHdoaWNoIGhvc3Qgb3Igc3ViLWNsdXN0ZXIgaXMg
Y29ubmVjdGVkLiBXaXRoIGhhY2tpbmcgYWJ1bmRhbnQgdGhlc2UgZGF5cywgdGhpcyBpcyBub3Qg
dGhlb3JldGljYWwuIEJ1dCBpdCBhbHNvIGlzbuKAmXQgdGhlIHN0ZC4gSFRUUCB1c2UgY2FzZS4N
Cg0KDQo=

--_000_18bbf519bdd2413ebb28483a6eb0e570usma1exdag1mb5msgcorpak_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
SGVsdmV0aWNhOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDIgMiAyIDIgMiA0O30NCkBmb250LWZhY2UN
Cgl7Zm9udC1mYW1pbHk6V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7
fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToy
IDQgNSAzIDUgNCA2IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsN
CglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAq
Lw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGlu
Ow0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFt
aWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsN
Cgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7DQoJdGV4dC1kZWNvcmF0
aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJdGV4dC1kZWNvcmF0aW9u
OnVuZGVybGluZTt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgsIGxpLk1zb0xpc3RQYXJhZ3JhcGgsIGRp
di5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1wcmlvcml0eTozNDsNCgltYXJnaW4tdG9w
OjBpbjsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1hcmdpbi1ib3R0b206MGluOw0KCW1hcmdpbi1s
ZWZ0Oi41aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJ
Zm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0KcC5tc29ub3JtYWwwLCBsaS5t
c29ub3JtYWwwLCBkaXYubXNvbm9ybWFsMA0KCXttc28tc3R5bGUtbmFtZTptc29ub3JtYWw7DQoJ
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0OjBpbjsNCgltc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowaW47DQoJZm9udC1zaXplOjEyLjBwdDsN
Cglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUx
OQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJy
aSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21z
by1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0KQHBhZ2UgV29y
ZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBp
biAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi8qIExp
c3QgRGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJe21zby1saXN0LWlkOjc3MzAxMTU1NzsNCglt
c28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6MjQ3NjMwOTEyIDYz
NTIzMzczMiA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5
ODY4OSA2NzY5ODY5MSA2NzY5ODY5Mzt9DQpAbGlzdCBsMDpsZXZlbDENCgl7bXNvLWxldmVsLW51
bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+DmDsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczsNCgltc28tZmFyZWFzdC1mb250LWZh
bWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30N
CkBsaXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv
LWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJD
b3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0
OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7
DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsN
Cglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw0DQoJe21zby1sZXZlbC1u
dW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRh
Yi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k
ZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21z
by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1s
ZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBs
MDpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10
ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBv
c2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5n
czt9DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0K
CW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2
ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFt
aWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6
YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJ
bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglm
b250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsOQ0KCXttc28tbGV2ZWwt
bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10
YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWlu
ZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxDQoJe21zby1s
aXN0LWlkOjE5NTExNjA4ODg7DQoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxpc3QtdGVt
cGxhdGUtaWRzOjE4NTUwOTA3NzggNDM5NjU0ODg0IDY3Njk4NjkxIDY3Njk4NjkzIDY3Njk4Njg5
IDY3Njk4NjkxIDY3Njk4NjkzIDY3Njk4Njg5IDY3Njk4NjkxIDY3Njk4NjkzO30NCkBsaXN0IGwx
OmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRl
eHQ6LTsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGkt
Zm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQ0KQGxpc3QgbDE6bGV2ZWwyDQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZl
bC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0
LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMTps
ZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0
Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9
DQpAbGlzdCBsMTpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1z
by1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5
OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs
bGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNv
LWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250
LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwxOmxldmVsNg0KCXttc28tbGV2ZWwtbnVt
YmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWIt
c3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu
dDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxOmxldmVsNw0KCXtt
c28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1z
by1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN
Cgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxOmxl
dmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6
bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7
fQ0KQGxpc3QgbDE6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCglt
c28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWls
eTpXaW5nZGluZ3M7fQ0Kb2wNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KdWwNCgl7bWFyZ2luLWJv
dHRvbTowaW47fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl
ZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0t
LT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4N
CjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1s
PjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9IiMwNTYzQzEi
IHZsaW5rPSIjOTU0RjcyIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8dWwgc3R5bGU9
Im1hcmdpbi10b3A6MGluIiB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTGlzdFBhcmFncmFw
aCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjBpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7
LHNhbnMtc2VyaWYiPkFuIGVuZHBvaW50IG1pZ2h0IHVzZSBBQ0sgYXMgYSBjb21taXQgc2lnbmFs
IGluZGljYXRpbmcgdGhhdCB0aGUgcmVjZWl2ZXIgYWN0dWFsbHkgcmVjZWl2ZWQgdGhlIGRhdGEu
IElmIGEgcHJveHkgcmVwYWNrYWdlcw0KIGZyYW1lcyBhbmQgZG9lcyBpdHMgb3duIEFDSyBoYW5k
aW5nIHRoaXMgYXNzdW1wdGlvbiB3aWxsIGJyZWFrIGlmIG5vdCBoYW5kbGVkIHZlcnkgY2FyZWZ1
bGx5Ljwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PC91bD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5UaGlzIHRy
ZWF0bWVudCBvZiDigJx0cmFuc3BvcnQgQUNL4oCdIGFzIGFuIOKAnGFwcGxpY2F0aW9uIGNvbW1p
dOKAnSBpcyBpbmRlcGVuZGVudCBvZiBTVFJFQU0gZnJhbWUgcmVwYWNrYWdpbmcuJm5ic3A7IFRo
ZSB2YWx1ZSBvZiBhIHByb3h5IGNvdWxkIGJlIGluIHJlZHVjaW5nIGJ1ZmZlciByZXF1aXJlbWVu
dHMgb24gZW5kcG9pbnRzLA0KIHNvIHRoZSBwcm94eSB3b3VsZCBBQ0suPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi
PkluIGFueSBjYXNlLCBzdWNoIHVzZSBvZiBhIOKAnHRyYW5zcG9ydCBBQ0vigJ0gYXMgYW4g4oCc
YXBwbGljYXRpb24gY29tbWl04oCdIHdvdWxkIGJlIGEgcGFydGljdWxhcmx5IHRpZ2h0IGNvdXBs
aW5nIG9mIGFwcGxpY2F0aW9uIHNlbWFudGljcyBhbmQgUVVJQyBsaWJyYXJ5ICh3aGljaCB3b3Vs
ZCBiZSByZXF1aXJlZA0KIHRvIGV4cG9zZSBhbiBhYmlsaXR5IHRvIGRlbGF5IEFDS3MpLiBTaW5j
ZSBRVUlDIEFDS3MgcGFja2V0cyBhbmQgbm90IHN0cmVhbXMsIGl0IG1heSBiZSB2ZXJ5IGRpZmZp
Y3VsdCB0byBldmVuIGltcGxlbWVudCB0aGlzIHdpdGhvdXQgYnJlYWtpbmcgUVVJQy4gJm5ic3A7
T25lIGNvdWxkIGJlIHdlbGwtYWR2aXNlZCB0byBhZGQgYW4gZXhwbGljaXQg4oCcY29tbWl04oCd
IHNpZ25hbCB0byBhcHBsaWNhdGlvbiBwcm90b2NvbHMuPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3Jk
ZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkZyb206PC9zcGFuPjwvYj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWYiPiBNaWtrZWwgRmFobsO4ZSBKw7hyZ2Vuc2VuIFttYWlsdG86bWlra2Vs
ZmpAZ21haWwuY29tXQ0KPGJyPg0KPGI+U2VudDo8L2I+IE1vbmRheSwgSnVseSAxMCwgMjAxNyAx
MjoyMiBQTTxicj4NCjxiPlRvOjwvYj4gTHViYXNoZXYsIElnb3IgJmx0O2lsdWJhc2hlQGFrYW1h
aS5jb20mZ3Q7OyBKYW5hIEl5ZW5nYXIgJmx0O2pyaUBnb29nbGUuY29tJmd0OzsgTWFydGluIER1
a2UgJmx0O21hcnRpbi5oLmR1a2VAZ21haWwuY29tJmd0Ozxicj4NCjxiPkNjOjwvYj4gUVVJQyBX
RyAmbHQ7cXVpY0BpZXRmLm9yZyZndDs7IEpvIEt1bGlrICZsdDtqb2t1bGlrQGdvb2dsZS5jb20m
Z3Q7OyBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlkZ2UsIFVLKSAmbHQ7dGhv
bWFzLnN3aW5kZWxsc0Bub2tpYS5jb20mZ3Q7OyBNaWtlIEJpc2hvcCAmbHQ7bWljaGFlbC5iaXNo
b3BAbWljcm9zb2Z0LmNvbSZndDs7IE1hcnRpbiBUaG9tc29uICZsdDttYXJ0aW4udGhvbXNvbkBn
bWFpbC5jb20mZ3Q7OyBJYW4gU3dldHQgJmx0O2lhbnN3ZXR0QGdvb2dsZS5jb20mZ3Q7Ow0KIERt
aXRyaSBUaWtob25vdiAmbHQ7ZHRpa2hvbm92QGxpdGVzcGVlZHRlY2guY29tJmd0OzsgU3Vib2Ro
IEl5ZW5nYXIgJmx0O3N1Ym9kaEBmYi5jb20mZ3Q7OyBLYXp1aG8gT2t1ICZsdDtrYXp1aG9va3VA
Z21haWwuY29tJmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBSRTogVW5pZGlyZWN0aW9uYWwgc3Ry
ZWFtcyBQUjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPGJsb2NrcXVv
dGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SnVz
dCBwYXNzaW5nIGZyYW1lcyBtYXkgYmUgbW9zdGx5IHN0YXRlbGVzcyAoaW4gZmFyIGFzIHN0cmVh
bXMgYXJlIGNvbmNlcm5lZCkg4oCTIGl0IGlzIGp1c3QgdHJhbnNpZW50IFJBTSB0byBidWZmZXIN
CiBhbmQgYWNjb3VudCBmb3IgdGhlIHN0cmVhbXMgYmVmb3JlIHRoZSBmcmFtZXMgYXJlIGRlbGl2
ZXJlZC4mbmJzcDsgSW4gZmFjdCwgdGhlIHByb3h5IG1heSBub3QgbmVlZCB0byBzdHJpY3RseSBw
YXNzIHRoZSBTVFJFQU0gZnJhbWVzIGJ1dCBjYW4gcmUtZnJhbWUgdGhlIGRhdGEgaXQgaGFzIGJ1
ZmZlcmVkLiZuYnNwOyBPbmUgdGhpbmcgdGhlIHByb3h5IHdvdWxkIG5vdCBiZSBhYmxlIHRvIGRv
IGlzIHN0cmVhbSBzdGF0ZSB2YWxpZGF0aW9uIGFuZCB3b3VsZCBwYXNzDQogb24gaW52YWxpZCBm
cmFtZXMgdG8gZW5kcG9pbnRzLjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm
b250LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+
DQo8cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtIZWx2
ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+QW4gZW5kcG9pbnQgbWlnaHQgdXNlIEFDSyBhcyBhIGNv
bW1pdCBzaWduYWwgaW5kaWNhdGluZyB0aGF0IHRoZSByZWNlaXZlciBhY3R1YWxseSByZWNlaXZl
ZCB0aGUgZGF0YS4gSWYgYSBwcm94eSByZXBhY2thZ2VzIGZyYW1lcyBhbmQgZG9lcyBpdHMgb3du
IEFDSyBoYW5kaW5nIHRoaXMgYXNzdW1wdGlvbiB3aWxsIGJyZWFrIGlmDQogbm90IGhhbmRsZWQg
dmVyeSBjYXJlZnVsbHkuIElmIG1pZGRsZSBib3hlcyBtZXNzIHdpdGggdGhpcywgaXQgd291bGQg
YmUgZ29vZCB0byBhdCBsZWFzdCByZXF1aXJlIHRoZW0gdG8gZG9jdW1lbnQgdGhpcy4gT2J2aW91
c2x5IHRoZXkgY2Fu4oCZdCBtZXNzIHVubGVzcyB0aGV5IGhhdmUgYSB2YWxpZCBjZXJ0aWZpY2F0
ZS4gU28gbWlkZGxlIGJveGVzIHNob3VsZCBhbHNvIGJlIHByZXBhcmVkIGZvciBjbGllbnRzIGRv
aW5nIGRldGFpbGVkIGNlcnRpZmljYXRlDQogdmFsaWRhdGlvbiBiZXlvbmQgeW91IGF2ZXJhZ2Ug
U1NMIGNlcnQuIEUuZy4ga25vd2luZyBleGFjdGx5IHdoaWNoIGhvc3Qgb3Igc3ViLWNsdXN0ZXIg
aXMgY29ubmVjdGVkLiBXaXRoIGhhY2tpbmcgYWJ1bmRhbnQgdGhlc2UgZGF5cywgdGhpcyBpcyBu
b3QgdGhlb3JldGljYWwuIEJ1dCBpdCBhbHNvIGlzbuKAmXQgdGhlIHN0ZC4gSFRUUCB1c2UgY2Fz
ZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBw
dDtmb250LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_18bbf519bdd2413ebb28483a6eb0e570usma1exdag1mb5msgcorpak_--


From nobody Mon Jul 10 09:53:21 2017
Return-Path: <martin.h.duke@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 079E61316C7 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:53:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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_NONE=-0.0001, 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 0PJyn69_UX5K for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:53:17 -0700 (PDT)
Received: from mail-wr0-x22e.google.com (mail-wr0-x22e.google.com [IPv6:2a00:1450:400c:c0c::22e]) (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 55DB713147E for <quic@ietf.org>; Mon, 10 Jul 2017 09:53:17 -0700 (PDT)
Received: by mail-wr0-x22e.google.com with SMTP id k67so145964633wrc.2 for <quic@ietf.org>; Mon, 10 Jul 2017 09:53: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=1YX+NoExwIgliezrsixm2BGLysxxTL3jMDu64q8ZBNA=; b=cQOBDXTYFSOeowLSbkpUhfnfZ7c1+GQpoqTm0330J0XHThprV6U82dU6GHiOu8afUa MKzs0NRiih6+ntBqa7G9hOZQ7cXSbEc4splyYGdSBugB6UndmY3pElPq8gXlfY8rzvbD +2DnXSEoISpnOXb6o2QhC2vQjeZ0mdkKibRmDeBZz/Q3aPRCapy/0Vwm0wCMZAPE239/ WR52nLlaYva8INv51f8zlrPEhlOsVeNu8sP50tR8jiF4dVbF4BPveEWxf6ytztHYGToe mOpBfGNH4CuNMYriqsJDygAYHBltLVqOy2MydA6X0f4WSBEun3miY3JV9/vbwM/hnHSk cvYA==
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=1YX+NoExwIgliezrsixm2BGLysxxTL3jMDu64q8ZBNA=; b=YGaj3BkNQkPjDgzoQwRfAAYat+MjpsraLLcD6oHg2EBC2Ugw9J7PMV0sysvZld4iCT vFJ2TWpfp916N9HaDzhbBvRiEdHReYgB4WE7OnuAQfrsOoKr/PwvygVy2d008OLG8m2O FWUOMyFDFVIlv90yY3UK4+RnGrmXdcXbMRABB3axqFrXcJxsjnN5b1VM6GUDuaeJUC3H eWHjoirFTv8nWabKm3scz/TlOGe6m+mmRMch97RfsYTtn+waU5qMX25L/azJEf8ELs8O 8dvrqHsO5nx5wPDIduxacPEM9/57qLCXtJZ7pxMS/ASpvSWTEmf/1RBq4tYKtCNpiAra uvnA==
X-Gm-Message-State: AIVw111X9XrSZOxryvTrs0S5aaWZmarF8dbjVeqoSRjzNsQTt0Ggn+U5 j9L1iEF0Nl5ci+/qj4a0jmNBvWzsNQ==
X-Received: by 10.28.173.65 with SMTP id w62mr8618730wme.113.1499705595747; Mon, 10 Jul 2017 09:53:15 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Mon, 10 Jul 2017 09:53:15 -0700 (PDT)
In-Reply-To: <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Mon, 10 Jul 2017 09:53:15 -0700
Message-ID: <CAM4esxQjDsQCjv0wdF=J6oWmbdHYWEpPLQfLf2fXr1LPYFtphA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Jana Iyengar <jri@google.com>
Cc: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a1144270e4d645f0553f96bfa"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/HyEhnwZB0jnddBJ9AJdipM7UGGQ>
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: Mon, 10 Jul 2017 16:53:20 -0000

--001a1144270e4d645f0553f96bfa
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jana,

The great thing about your email is that is suggests a specific strategy
for how to choose next features. I'm especially excited about emphasizing
wire-visible stuff.

IMO this would emphasize two things: continuing to refine the public
header, and handling more paths in the handshake (i.e. HRR, stateless
reset, transport parameters, etc). In particular, if we can settle on these
items and move GQUIC onto it we should be pretty safe.

I'm not so sure about HTTP/2 mapping when there's so much about basic
stream semantics still up in the air. It has little to do with middlebox
ossification as well.

At the very least, I'll present this item for discussion in Prague. I'll
mull over changing the draft beforehand.


On Sat, Jul 8, 2017 at 9:45 AM, Jana Iyengar <jri@google.com> wrote:

> I've been thinking about this, and I'm starting to think that we should
> cover more ground in the second implementation draft.
>
> I'm hearing about increasing deployments of gQUIC, largely due to market
> pressures. The availability of the Chromium implementation makes it
> particularly easy for folks to deploy QUIC with that code. I think we nee=
d
> to move with some urgency, even if we don't change everything about QUIC =
to
> make it perfect, so that we can start getting IETF QUIC deployments out
> there. Specifically, I think we should:
> 1. work out the wire-visible invariants and finalize all of those for the
> second impl draft. We know that there are some middleboxes that already
> have classifiers for gQUIC, and we need to move quickly and push IETF-QUI=
C
> so we can test that IETF-QUIC is deployable. I fear that the longer we
> take, the more widespread gQUIC ossification will be.
> 2. allow impls to make serious progress towards a basic HTTP mapping over
> QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps test a
> basic HTTP request-response over QUIC. We can still punt
> performance-oriented things such as full loss recovery and congestion
> control to later. This forces us to try and finalize the HTTP mapping
> details, which is a good thing, IMO.
>
>
> On Thu, Jun 22, 2017 at 10:07 AM, Lucas Pardue <Lucas.Pardue@bbc.co.uk>
> wrote:
>
>> I don=E2=80=99t feel I came away from the Paris Interim with a clear ide=
a of the
>> approach to the second implementation draft. There was a lot of discussi=
on
>> around whether bugfixes in new I-D drafts (that address issues identifie=
d
>> in the first implementation draft) would contribute to a first.1
>> implementation draft (all the way up to first.N) or if they would be put
>> into the second.
>>
>>
>>
>> Side note: Personally, I don=E2=80=99t particularly like the terminology=
 of
>> first, second etc for the reason that it gets hard to rev/iterate on a
>> particular one. However, perhaps it was purposely chosen to disambiguate
>> from the I-D versions?
>>
>>
>>
>> The strawman suggests to me that the direction is to lump both fixes and
>> new features into the second implementation draft. I don=E2=80=99t neces=
sarily have
>> an argument against that but think it would help to clearly identify whe=
re
>> things have been fixed, changed completely, been overtaken by other chan=
ges
>> etc. Understandably it is too early to do that at this stage.
>>
>>
>>
>> Finally, being super picky, the second implementation doesn=E2=80=99t se=
em to
>> cover non-critical shortcomings
>>
>>
>>
>> Regards
>>
>> Lucas
>>
>>
>>
>> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Jana Iyengar
>> *Sent:* 21 June 2017 22:23
>> *To:* Martin Duke <martin.h.duke@gmail.com>
>> *Cc:* IETF QUIC WG <quic@ietf.org>
>> *Subject:* Re: Second Implementation Draft Guidelines
>>
>>
>>
>> This is a great start, thanks for getting it going.
>>
>> Just one thought: You may want to explicitly "include" fixed-time
>> RTO-recovery. It appears right now as a side note in what's not included=
.
>>
>>
>>
>> On Wed, Jun 21, 2017 at 2:11 PM, Martin Duke <martin.h.duke@gmail.com>
>> wrote:
>>
>> All,
>>
>>
>>
>> As promised, I've created a set of guidelines for what should be in the
>> Second Implementation draft. If deadlines hold, I believe we will actual=
ly
>> start implementing this draft after Seattle in October.
>>
>>
>>
>> Once we've reached reasonable consensus, this should serve as a basis fo=
r
>> prioritizing issues to resolve through Seattle.
>>
>>
>>
>> The current version is very much a starting point for discussion. I've
>> presented some items I think are important to include, and others that w=
e
>> could bring in depending on our appetite for work. The final version wil=
l
>> simply have "Must Include" and "should not include".
>>
>>
>> <http://goog_314636520>
>>
>> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>>
>>
>>
>> I look forward to your comments.
>>
>>
>>
>> Martin
>>
>>
>>
>
>

--001a1144270e4d645f0553f96bfa
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Jana,<div><br></div><div>The great thing about your ema=
il is that is suggests a specific strategy for how to choose next features.=
 I&#39;m especially excited about emphasizing wire-visible stuff.</div><div=
><br></div><div>IMO this would emphasize two things: continuing to refine t=
he public header, and handling more paths in the handshake (i.e. HRR, state=
less reset, transport parameters, etc). In particular, if we can settle on =
these items and move GQUIC onto it we should be pretty safe.</div><div><br>=
</div><div>I&#39;m not so sure about HTTP/2 mapping when there&#39;s so muc=
h about basic stream semantics still up in the air. It has little to do wit=
h middlebox ossification as well.</div><div><br></div><div>At the very leas=
t, I&#39;ll present this item for discussion in Prague. I&#39;ll mull over =
changing the draft beforehand.</div><div><br></div></div><div class=3D"gmai=
l_extra"><br><div class=3D"gmail_quote">On Sat, Jul 8, 2017 at 9:45 AM, Jan=
a Iyengar <span dir=3D"ltr">&lt;<a href=3D"mailto:jri@google.com" target=3D=
"_blank">jri@google.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex"><div dir=3D"ltr">I&#39;ve been thinking about this, and I&#39;m starti=
ng to think that we should cover more ground in the second implementation d=
raft.=C2=A0<div><br></div><div>I&#39;m hearing about increasing deployments=
 of gQUIC, largely due to market pressures. The availability of the Chromiu=
m implementation makes it particularly easy for folks to deploy QUIC with t=
hat code. I think we need to move with some urgency, even if we don&#39;t c=
hange everything about QUIC to make it perfect, so that we can start gettin=
g IETF QUIC deployments out there. Specifically, I think we should:</div><d=
iv>1. work out the wire-visible invariants and finalize all of those for th=
e second impl draft. We know that there are some middleboxes that already h=
ave classifiers for gQUIC, and we need to move quickly and push IETF-QUIC s=
o we can test that IETF-QUIC is deployable. I fear that the longer we take,=
 the more widespread gQUIC ossification will be.<br></div><div>2. allow imp=
ls to make serious progress towards a basic HTTP mapping over QUIC. We can =
punt on header compression (QPACK/QCRAM), but perhaps test a basic HTTP req=
uest-response over QUIC. We can still punt performance-oriented things such=
 as full loss recovery and congestion control to later. This forces us to t=
ry and finalize the HTTP mapping details, which is a good thing, IMO.</div>=
<div><br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te"><span class=3D"">On Thu, Jun 22, 2017 at 10:07 AM, Lucas Pardue <span d=
ir=3D"ltr">&lt;<a href=3D"mailto:Lucas.Pardue@bbc.co.uk" target=3D"_blank">=
Lucas.Pardue@bbc.co.uk</a>&gt;</span> wrote:<br></span><div><div class=3D"h=
5"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-GB" link=3D"blue" vlink=3D"purple">
<div class=3D"m_338105762219893378m_1783470110431283053WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">I don=E2=80=99t feel I came away from the Paris Int=
erim with a clear idea of the approach to the second implementation draft. =
There was a lot of discussion
 around whether bugfixes in new I-D drafts (that address issues identified =
in the first implementation draft) would contribute to a first.1 implementa=
tion draft (all the way up to first.N) or if they would be put into the sec=
ond.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Side note: Personally, I don=E2=80=99t particularly=
 like the terminology of first, second etc for the reason that it gets hard=
 to rev/iterate on a particular
 one. However, perhaps it was purposely chosen to disambiguate from the I-D=
 versions?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">The strawman suggests to me that the direction is t=
o lump both fixes and new features into the second implementation draft. I =
don=E2=80=99t necessarily have
 an argument against that but think it would help to clearly identify where=
 things have been fixed, changed completely, been overtaken by other change=
s etc. Understandably it is too early to do that at this stage.
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Finally, being super picky, the second implementati=
on doesn=E2=80=99t seem to cover non-critical shortcomings
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Regards<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Lucas<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
QUIC [mailto:<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">qui=
c-bounces@ietf.org</a>]
<b>On Behalf Of </b>Jana Iyengar<br>
<b>Sent:</b> 21 June 2017 22:23<br>
<b>To:</b> Martin Duke &lt;<a href=3D"mailto:martin.h.duke@gmail.com" targe=
t=3D"_blank">martin.h.duke@gmail.com</a>&gt;<br>
<b>Cc:</b> IETF QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_bla=
nk">quic@ietf.org</a>&gt;<br>
<b>Subject:</b> Re: Second Implementation Draft Guidelines<u></u><u></u></s=
pan></p><div><div class=3D"m_338105762219893378h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">This is a great start, thanks for getting it going.<=
u></u><u></u></p>
<div>
<p class=3D"MsoNormal">Just one thought: You may want to explicitly &quot;i=
nclude&quot; fixed-time RTO-recovery. It appears right now as a side note i=
n what&#39;s not included.<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Wed, Jun 21, 2017 at 2:11 PM, Martin Duke &lt;<a =
href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gma=
il.com</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal">All,<u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">As promised, I&#39;ve created a set of guidelines fo=
r what should be in the Second Implementation draft. If deadlines hold, I b=
elieve we will actually start implementing this draft after Seattle in Octo=
ber.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Once we&#39;ve reached reasonable consensus, this sh=
ould serve as a basis for prioritizing issues to resolve through Seattle.<u=
></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The current version is very much a starting point fo=
r discussion. I&#39;ve presented some items I think are important to includ=
e, and others that we could bring in depending on our appetite for work. Th=
e final version will simply have &quot;Must
 Include&quot; and &quot;should not include&quot;.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><a href=3D"http://goog_314636520" target=3D"_blank">=
<br>
</a><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><a href=3D"https://github.com/quicwg/base-drafts/wik=
i/Second-Implementation-Draft" target=3D"_blank">https://github.com/quicwg/=
base<wbr>-drafts/wiki/Second-Implementa<wbr>tion-Draft</a><u></u><u></u></p=
>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I look forward to your comments.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#888888"><u></u>=C2=A0<u></u></=
span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#888888">Martin<u></u><u></u></=
span></p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>

</blockquote></div></div></div><br></div>
</blockquote></div><br></div>

--001a1144270e4d645f0553f96bfa--


From nobody Mon Jul 10 09:55:32 2017
Return-Path: <martin.h.duke@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 7B1731317D3 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:55:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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_NONE=-0.0001, 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 end9N1YLdZlG for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 09:55:28 -0700 (PDT)
Received: from mail-wr0-x22b.google.com (mail-wr0-x22b.google.com [IPv6:2a00:1450:400c:c0c::22b]) (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 5F1D71316C7 for <quic@ietf.org>; Mon, 10 Jul 2017 09:55:28 -0700 (PDT)
Received: by mail-wr0-x22b.google.com with SMTP id r103so146705289wrb.0 for <quic@ietf.org>; Mon, 10 Jul 2017 09:55:28 -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=iLO8sfXAumhZqqzOMauVgQgkaq1wYTN2I086mIGng7w=; b=EJIW5othkOoH1EzBhGEkymyvTEdRTMQs9Qy+4ja9M6ehrc3ihGYNlhTqyqSsdM1QkL 2ruj3KtLG0LKVjABDUMV/bjn+KUl5NbwpQj4q8arQcnV/2ZddUnIXPcIGKUlnaOixF8j ooR+849/hgeMat/NhBd6hMNIeBPKvQuSVnEug1N8KP1D/GJGBY4Hw2MAHG7wqgMsVgRY I4lkTmy5hG44uUuotLIHRgfLLJH6tuGoI16rFUW1Pn2/IS69qu2LREDcU1/Lga7rQ6XD x5V5evCASmjFau1em7KhETgRA7QeITbvtPElU4DHUDGBrb5mSBLuOwzFfktThsQLCi9S fRVQ==
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=iLO8sfXAumhZqqzOMauVgQgkaq1wYTN2I086mIGng7w=; b=oVowIVbdA0OoPATyw7UIV1yxsKkSrMQ9s3l8cJI9LJU8u5j4GOBNQvd36vDWb9rouz p1O+L5hnNDmmHDThBrI7rqmiIT7NtjanF5teFNrto/72BlZ1pltjvLtcid46LeizVkuO RJsCzq94eeg4F5lW0tH5lrwh4uhdNNhtqPxRBXET4pVu4ghstY/iNm7Aq4Tyd8WTqSvp dS1tkmQkMSzLloTgjeKKCJa7t4qq3SHq/H92xl6gYgJQ2UVhGp8iQHWhDjrPQ2K3GGHv w4Mxd3uNClstTbXtIaHVvcw7Fvazx74CYegHeAlUA1GqjKV7CI3U99vHxWUf4MEq8cly 53hQ==
X-Gm-Message-State: AIVw112W5QOnLSxLjH+cemYTnJRFn2xtW3OmKQnypIXQPv7dmeTjILhq OPvG8paElH1jvTcBWwII/X94mSA5cA==
X-Received: by 10.223.165.10 with SMTP id i10mr7854443wrb.59.1499705726829; Mon, 10 Jul 2017 09:55:26 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Mon, 10 Jul 2017 09:55:26 -0700 (PDT)
In-Reply-To: <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Mon, 10 Jul 2017 09:55:26 -0700
Message-ID: <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Ryan Hamilton <rch@google.com>, Jana Iyengar <jri@google.com>,  Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="f403045f16581d8e650553f973bc"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/RbilQsdpUYFDiYD50Nx7bXaOg-U>
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: Mon, 10 Jul 2017 16:55:30 -0000

--f403045f16581d8e650553f973bc
Content-Type: text/plain; charset="UTF-8"

I'm not sure how "performance analysis" is going to function in the absence
of loss recovery or congestion control. An alternate approach to
implementations is to tackle the big performance drivers first, presumably
loss recovery, congestion control, and streaming to prevent HOL blocking.
However, this would run directly opposite to Jana's suggestion to lock down
the wire image to prevent ossification.

On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com> wrote:

> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
> >
> >
> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
> >>
> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
> >> > I've been thinking about this, and I'm starting to think that we
> should
> >> > cover more ground in the second implementation draft.
> >> >
> >> > I'm hearing about increasing deployments of gQUIC, largely due to
> market
> >> > pressures. The availability of the Chromium implementation makes it
> >> > particularly easy for folks to deploy QUIC with that code. I think we
> >> > need
> >> > to move with some urgency, even if we don't change everything about
> QUIC
> >> > to
> >> > make it perfect, so that we can start getting IETF QUIC deployments
> out
> >> > there. Specifically, I think we should:
> >> > 1. work out the wire-visible invariants and finalize all of those for
> >> > the
> >> > second impl draft. We know that there are some middleboxes that
> already
> >> > have
> >> > classifiers for gQUIC, and we need to move quickly and push IETF-QUIC
> so
> >> > we
> >> > can test that IETF-QUIC is deployable. I fear that the longer we take,
> >> > the
> >> > more widespread gQUIC ossification will be.
> >> > 2. allow impls to make serious progress towards a basic HTTP mapping
> >> > over
> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps
> test
> >> > a
> >> > basic HTTP request-response over QUIC. We can still punt
> >> > performance-oriented things such as full loss recovery and congestion
> >> > control to later. This forces us to try and finalize the HTTP mapping
> >> > details, which is a good thing, IMO.
> >>
> >> I agree with Jana.
> >>
> >> If we can have some basic HTTP mapping (it can be as basic as using
> >> HTTP/1.0 over each stream), we can use that to test how the IETF
> >> version of QUIC performs well in the field, by comparing its
> >> performance to HTTP over TCP.
> >
> >
> > Interesting idea. One challenge with performance analysis is that it'll
> be a
> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
> (without
> > header compression) against HTTP/2 (with header compression) or HTTP/1.1
> > (over multiple connections).
>
> Agreed.
>
> Though I might argue that collecting metrics of a QUIC implementation
> without header compression could be useful. We can use that as a
> baseline when we formalize QPACK / QCRAM.
>
> --
> Kazuho Oku
>

--f403045f16581d8e650553f973bc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I&#39;m not sure how &quot;performance analysis&quot; is g=
oing to function in the absence of loss recovery or congestion control. An =
alternate approach to implementations is to tackle the big performance driv=
ers first, presumably loss recovery, congestion control, and streaming to p=
revent HOL blocking. However, this would run directly opposite to Jana&#39;=
s suggestion to lock down the wire image to prevent ossification.</div><div=
 class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Jul 10, 2017 =
at 12:32 AM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"mailto:kazuhooku@g=
mail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt;</span> wrote:<br><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div class=3D"h5">2017-0=
7-10 12:28 GMT+09:00 Ryan Hamilton &lt;<a href=3D"mailto:rch@google.com">rc=
h@google.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>

--f403045f16581d8e650553f973bc--


From nobody Mon Jul 10 10:12:42 2017
Return-Path: <ckrasic@google.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 08D9313183E for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:12:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level: 
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 Bh9tSPNQL4Oz for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:12:33 -0700 (PDT)
Received: from mail-yw0-x22d.google.com (mail-yw0-x22d.google.com [IPv6:2607:f8b0:4002:c05::22d]) (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 6179C13183F for <quic@ietf.org>; Mon, 10 Jul 2017 10:12:18 -0700 (PDT)
Received: by mail-yw0-x22d.google.com with SMTP id x125so38720564ywa.0 for <quic@ietf.org>; Mon, 10 Jul 2017 10:12:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=+BngAyLIBav0Gn9jefU+ZXBVU6GQwf17TKOZOFD09mo=; b=EAH4moYGiAWPEGATJ1BQ1gzAMUuzkON9R+uIaqPIx4X1EtELmYgYZzAYyYaD9xf6fs Qqm4cRS/I732q1X7DsWeCRM9n/+iv9l+uM2Fi3vYOe7+kyqmkXpf72Li71yoY7BIT++k srB7NF/Bm2qbnYrhnhCXdxpUjJPhg1GgvslntM3MwTGQZdlBAvttBJaqXg9HvL7WpqVU 85WsDsomFoW6xWs3phPRi9S9JHo01bcckkkcDPhYA+6It9I/cczG13ouyKP12PlUZPEu yGZ+it9BsFHoQq3WKRekw9D13RaljfxcIGt/YyWAR1TTmq6X3o8v+jhq7yKXarHobMrG XoDQ==
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=+BngAyLIBav0Gn9jefU+ZXBVU6GQwf17TKOZOFD09mo=; b=H6SkgihQgmppFg4Mw49P+Z8XmQ1fvcYs/AcnUmQi+VUqE+s1BRcdtg6oDF+P45tFyG cJ77TSMLGNDYbYtxGyFI9H5oYRHy5hY7dS74BePodNXbjFF1J4iBwqOV1bnjG6DYJ2YF fuM91vxTGMTsbZ2mQzxY3O7/tVfl2ej/1UIhSjXdmJhoCxrwth/xSees9oVRKrbdH3D1 2VyIHeb4SPwzH31DJ7PbXvYZZv/89UVQG6naKtArabmK/txqiWMUWO/DL0kN77G6Oa6u RCgmDuoxTnnX4D++s6QjOCBxleHUZE6XJMeGr42x1HHeDo2odbiXMK1MMSbKAP5sySyc ksbA==
X-Gm-Message-State: AIVw112VH5UTXt7Yutg53WOqD1zF35weUj0C7p71ffn/CdiM61PifcEp MMcts+b5Q6sxWzk/voz+SqUiLODYMxt0
X-Received: by 10.129.170.67 with SMTP id z3mr1566436ywk.115.1499706737489; Mon, 10 Jul 2017 10:12:17 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.171.75 with HTTP; Mon, 10 Jul 2017 10:11:56 -0700 (PDT)
In-Reply-To: <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com> <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com> <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com>
From: "Charles 'Buck' Krasic" <ckrasic@google.com>
Date: Mon, 10 Jul 2017 10:11:56 -0700
Message-ID: <CAD-iZUb9jq+Rf01ipY5ytdzrUA-7RzArNRp+G4EWM-T+CLbyqg@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: "Lubashev, Igor" <ilubashe@akamai.com>
Cc: Martin Duke <martin.h.duke@gmail.com>, Jana Iyengar <jri@google.com>,  Mike Bishop <Michael.Bishop@microsoft.com>, Subodh Iyengar <subodh@fb.com>,  Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett@google.com>, Jo Kulik <jokulik@google.com>, =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="089e0826403c5b9bb80553f9af0d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/EG_KPeBh318erd8kzXQ1yQvsfrI>
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: Mon, 10 Jul 2017 17:12:37 -0000

--089e0826403c5b9bb80553f9af0d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 10, 2017 at 9:11 AM, Lubashev, Igor <ilubashe@akamai.com> wrote=
:

>
>    - I guess one question is if passing STREAM frames whole (at most
>    changing the stream ID) is stateless for the middlebox.
>
>
>
> Just passing frames may be mostly stateless (in far as streams are
> concerned) =E2=80=93 it is just transient RAM to buffer and account for t=
he streams
> before the frames are delivered.  In fact, the proxy may not need to
> strictly pass the STREAM frames but can re-frame the data it has buffered=
.
> One thing the proxy would not be able to do is stream state validation an=
d
> would pass on invalid frames to endpoints.
>
>
>

This may not always be true?  A proxy that has certs might want to improve
perfromance, e.g. it might be aware of HTTP priorities and decide to
forward newer higher priority stream frames before older ones, in which
case it might even re-packetize.


A related question is how would a proxy (or a middlebox) identify QUIC
> traffic as QUIC and not some random UDP traffic?  We=E2=80=99ve had a mag=
ic byte in
> the header but lost it in the header update.  We still have a port number=
,
> but that is likely application-specific, unless we add something to
> ClientInitial to identify an application.
>
>
>
>
>
> *From:* Martin Duke [mailto:martin.h.duke@gmail.com]
> *Sent:* Friday, July 07, 2017 4:45 PM
> *To:* Jana Iyengar <jri@google.com>
> *Cc:* Subodh Iyengar <subodh@fb.com>; Mike Bishop <
> Michael.Bishop@microsoft.com>; Dmitri Tikhonov <
> dtikhonov@litespeedtech.com>; Ian Swett <ianswett@google.com>; Lubashev,
> Igor <ilubashe@akamai.com>; Jo Kulik <jokulik@google.com>; Mikkel Fahn=C3=
=B8e
> J=C3=B8rgensen <mikkelfj@gmail.com>; QUIC WG <quic@ietf.org>; Martin Thom=
son <
> martin.thomson@gmail.com>; Swindells, Thomas (Nokia - GB/Cambridge, UK) <
> thomas.swindells@nokia.com>; Kazuho Oku <kazuhooku@gmail.com>
> *Subject:* Re: Unidirectional streams PR
>
>
>
> As I understand it, QUIC's contract with the upper layer includes streams=
,
> so any such middlebox would maintain state for each stream. In general,
> these middleboxes will support awareness of most L7s, and users will turn
> it on.
>
>
>
> The exceptions are probably kind of corner-case-ish. Perhaps there's a ne=
w
> application directly on top of QUIC that the middlebox doesn't understand
> natively. In that case, with no FIN the middlebox would be forced to hold
> stream state until the end of the connection.  I guess one question is if
> passing STREAM frames whole (at most changing the stream ID) is stateless
> for the middlebox.
>
>
>
> Also, I'm not clear where we ended up on silent close. If we're indeed
> expecting endpoints to see that all the streams are closed to begin the
> shutdown, then we *have to see that all the streams are closed.*
>
>
>
> On Fri, Jul 7, 2017 at 9:58 AM, Jana Iyengar <jri@google.com> wrote:
>
> On Fri, Jul 7, 2017 at 9:48 AM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>
>
>
>
> On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <subodh@fb.com> wrote:
>
> > Without such a signal, a generic proxy that is not aware of your
> application internals is not able to know when to send the FIN
>
> I see, this use case does make somewhat sense, however I'm curious
> if someone has a concrete use case for a generic QUIC proxy which is not
> aware of the application protocol at all. In TCP this was more common for
> middleboxes to do because there was no end to end encryption of the
> transport, however QUIC is encrypted. Even with cases when we tunneling
> protocols at our end, we usually have some knowledge of the app that we a=
re
> running because we need to route them differently to different backends. =
I
> was mostly thinking that proxies would at least have some knowledge about
> HTTP/2 or app protocols.
>
>
>
> Some load balancers (including ours) terminate the transport connection.
> Being trusted middleboxes, they have the certificates and this sort of
> thing works in principle.
>
>
>
> That said, in such a case it's entirely feasible to implement HTTP/2 on
> the middlebox as well.
>
>
>
> If these middleboxes terminate the transport connection for QUIC, would
> they need to understand stream semantics? Or would they simply terminate
> the QUIC connection, but relay the STREAM frames without any changes?
>
> I'll note that all transports after TCP have two general parts to them --
> the packet transport part, and the application semantics part. Middleboxe=
s
> are usually interested in the "lower half" of the transport - the packet
> transport part.
>
>
>
> That said, I'm not opposed to having an explicit bit. I'm also wondering
> if there's a real use case, or if we're provisioning for the future here.
>
>
>
> - jana
>
>
>
> However, I think we should look forward to the day where QUIC is
> implemented in kernel space and HTTP/2 (and everything else) remains an
> application. I imagine counting on all applications to do this kind of
> garbage collection could cause problems.
>
>
>
>
>



--=20
Charles 'Buck' Krasic | Software Engineer | ckrasic@google.com | +1 (408)
412-1141

--089e0826403c5b9bb80553f9af0d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Jul 10, 2017 at 9:11 AM, Lubashev, Igor <span dir=3D"ltr">&lt;<=
a href=3D"mailto:ilubashe@akamai.com" target=3D"_blank">ilubashe@akamai.com=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"m_-5690379314103821985WordSection1"><span class=3D"">
<ul style=3D"margin-top:0in" type=3D"disc">
<li class=3D"m_-5690379314103821985MsoListParagraph" style=3D"margin-left:0=
in">I guess one question is if passing STREAM frames whole (at most changin=
g the stream ID) is stateless for the middlebox.<span style=3D"font-size:11=
.0pt;font-family:&quot;Calibri&quot;,sans-serif"><u></u><u></u></span></li>=
</ul>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
</span><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif">Just passing frames may be mostly stateless =
(in far as streams are concerned) =E2=80=93 it is just transient RAM to buf=
fer and account for the streams before the frames are delivered.=C2=A0
 In fact, the proxy may not need to strictly pass the STREAM frames but can=
 re-frame the data it has buffered.=C2=A0 One thing the proxy would not be =
able to do is stream state validation and would pass on invalid frames to e=
ndpoints.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0</span></p></div></div></blockquote><d=
iv><br></div><div>This may not always be true?=C2=A0 A proxy that has certs=
 might want to improve perfromance, e.g. it might be aware of HTTP prioriti=
es and decide to forward newer higher priority stream frames before older o=
nes, in which case it might even re-packetize.=C2=A0 =C2=A0</div><div><br><=
/div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang=3D"EN-US" link=
=3D"blue" vlink=3D"purple"><div class=3D"m_-5690379314103821985WordSection1=
">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">A related question is how would a proxy (or a middl=
ebox) identify QUIC traffic as QUIC and not some random UDP traffic?=C2=A0 =
We=E2=80=99ve had a magic byte in the header but lost it in
 the header update.=C2=A0 We still have a port number, but that is likely a=
pplication-specific, unless we add something to ClientInitial to identify a=
n application.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:</span></b><span style=3D"font-size:11.0pt;=
font-family:&quot;Calibri&quot;,sans-serif"> Martin Duke [mailto:<a href=3D=
"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.<wbr=
>com</a>]
<br>
<b>Sent:</b> Friday, July 07, 2017 4:45 PM<br>
<b>To:</b> Jana Iyengar &lt;<a href=3D"mailto:jri@google.com" target=3D"_bl=
ank">jri@google.com</a>&gt;<br>
<b>Cc:</b> Subodh Iyengar &lt;<a href=3D"mailto:subodh@fb.com" target=3D"_b=
lank">subodh@fb.com</a>&gt;; Mike Bishop &lt;<a href=3D"mailto:Michael.Bish=
op@microsoft.com" target=3D"_blank">Michael.Bishop@microsoft.com</a>&gt;<wb=
r>; Dmitri Tikhonov &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" targ=
et=3D"_blank">dtikhonov@litespeedtech.com</a>&gt;; Ian Swett &lt;<a href=3D=
"mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>&gt;;=
 Lubashev, Igor &lt;<a href=3D"mailto:ilubashe@akamai.com" target=3D"_blank=
">ilubashe@akamai.com</a>&gt;; Jo Kulik &lt;<a href=3D"mailto:jokulik@googl=
e.com" target=3D"_blank">jokulik@google.com</a>&gt;; Mikkel Fahn=C3=B8e J=
=C3=B8rgensen
 &lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_blank">mikkelfj@gmail=
.com</a>&gt;; QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_blank=
">quic@ietf.org</a>&gt;; Martin Thomson &lt;<a href=3D"mailto:martin.thomso=
n@gmail.com" target=3D"_blank">martin.thomson@gmail.com</a>&gt;; Swindells,=
 Thomas (Nokia - GB/Cambridge, UK) &lt;<a href=3D"mailto:thomas.swindells@n=
okia.com" target=3D"_blank">thomas.swindells@nokia.com</a>&gt;; Kazuho Oku =
&lt;<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmai=
l.com</a>&gt;<span class=3D""><br>
<b>Subject:</b> Re: Unidirectional streams PR<u></u><u></u></span></span></=
p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">As I understand it, QUIC&#39;s contract with the upp=
er layer includes streams, so any such middlebox would maintain state for e=
ach stream. In general, these middleboxes will support awareness of most L7=
s, and users will turn it on.<u></u><u></u></p><div><div class=3D"h5">
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The exceptions are probably kind of corner-case-ish.=
 Perhaps there&#39;s a new application directly on top of QUIC that the mid=
dlebox doesn&#39;t understand natively. In that case, with no FIN the middl=
ebox would be forced to hold stream state
 until the end of the connection.=C2=A0 I guess one question is if passing =
STREAM frames whole (at most changing the stream ID) is stateless for the m=
iddlebox.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Also, I&#39;m not clear where we ended up on silent =
close. If we&#39;re indeed expecting endpoints to see that all the streams =
are closed to begin the shutdown, then we
<i>have to see that all the streams are closed.</i><u></u><u></u></p>
</div>
</div></div></div><div><div class=3D"h5">
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Fri, Jul 7, 2017 at 9:58 AM, Jana Iyengar &lt;<a =
href=3D"mailto:jri@google.com" target=3D"_blank">jri@google.com</a>&gt; wro=
te:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p class=3D"MsoNormal">On Fri, Jul 7, 2017 at 9:48 AM, Martin Duke &lt;<a h=
ref=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmai=
l.com</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar &lt;=
<a href=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt; wr=
ote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div id=3D"m_-5690379314103821985m_-6747020987109446363m_-85376920474806045=
34m_122988482497302725x_divtagdefaultwrapper">
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span style=3D"font-f=
amily:&quot;Calibri&quot;,sans-serif;color:black">&gt;=C2=A0</span><span st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:bl=
ack">Without such a signal, a generic proxy that is not aware of your
 application internals is not able to know when to send the FIN</span><span=
 style=3D"font-family:&quot;Calibri&quot;,sans-serif;color:black"><u></u><u=
></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:black">I see, this use case does make somewhat=
 sense, however I&#39;m curious if=C2=A0someone has=C2=A0a concrete=C2=A0us=
e case for a generic QUIC proxy which is not aware of the application
 protocol at all. In TCP this was more common for middleboxes to do because=
 there was no end to end encryption of the transport, however QUIC is encry=
pted. Even with cases when we=C2=A0tunneling protocols at our end, we usual=
ly have some knowledge of the app that
 we are running because we need to route them differently to different back=
ends.=C2=A0I was mostly thinking that=C2=A0proxies would at least have some=
 knowledge=C2=A0about HTTP/2 or app protocols.=C2=A0</span><span style=3D"f=
ont-family:&quot;Calibri&quot;,sans-serif;color:black"><u></u><u></u></span=
></p>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Some load balancers (including ours) terminate the t=
ransport connection. Being trusted middleboxes, they have the certificates =
and this sort of thing works in principle.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">That said, in such a case it&#39;s entirely feasible=
 to implement HTTP/2 on the middlebox as well.<u></u><u></u></p>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">If these middleboxes terminate the transport connect=
ion for QUIC, would they need to understand stream semantics? Or would they=
 simply terminate the QUIC connection, but relay the STREAM frames without =
any changes?<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I&#39;ll note that all transports after TCP have two=
 general parts to them -- the packet transport part, and the application se=
mantics part. Middleboxes are usually interested in the &quot;lower half&qu=
ot; of the transport - the packet transport part.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">That said, I&#39;m not opposed to having an explicit=
 bit. I&#39;m also wondering if there&#39;s a real use case, or if we&#39;r=
e provisioning for the future here.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#888888"><u></u>=C2=A0<u></u></=
span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#888888">- jana<u></u><u></u></=
span></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal">However, I think we should look forward to the day w=
here QUIC is implemented in kernel space and HTTP/2 (and everything else) r=
emains an application. I imagine counting on all applications to do this ki=
nd of garbage collection could cause
 problems.<u></u><u></u></p>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>

</blockquote></div><br><br clear=3D"all"><div><br></div>-- <br><div class=
=3D"gmail_signature" data-smartmail=3D"gmail_signature"><span style=3D"font=
-family:&#39;Times New Roman&#39;;font-size:medium"><span style=3D"color:rg=
b(85,85,85);font-family:sans-serif;line-height:20px;font-size:small"><span =
style=3D"border-top-width:2px;border-right-width:0px;border-bottom-width:0p=
x;border-left-width:0px;border-top-style:solid;border-right-style:solid;bor=
der-bottom-style:solid;border-left-style:solid;border-top-color:rgb(213,15,=
37);border-right-color:rgb(213,15,37);border-bottom-color:rgb(213,15,37);bo=
rder-left-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Charles &#39=
;Buck&#39; Krasic=C2=A0|</span><span style=3D"border-top-width:2px;border-r=
ight-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-sty=
le:solid;border-right-style:solid;border-bottom-style:solid;border-left-sty=
le:solid;border-top-color:rgb(51,105,232);border-right-color:rgb(51,105,232=
);border-bottom-color:rgb(51,105,232);border-left-color:rgb(51,105,232);pad=
ding-top:2px;margin-top:2px">=C2=A0Software Engineer=C2=A0|</span><span sty=
le=3D"border-top-width:2px;border-right-width:0px;border-bottom-width:0px;b=
order-left-width:0px;border-top-style:solid;border-right-style:solid;border=
-bottom-style:solid;border-left-style:solid;border-top-color:rgb(0,153,57);=
border-right-color:rgb(0,153,57);border-bottom-color:rgb(0,153,57);border-l=
eft-color:rgb(0,153,57);padding-top:2px;margin-top:2px">=C2=A0<a href=3D"ma=
ilto:ckrasic@google.com" target=3D"_blank">ckrasic@google.com</a>=C2=A0|</s=
pan><span style=3D"border-top-width:2px;border-right-width:0px;border-botto=
m-width:0px;border-left-width:0px;border-top-style:solid;border-right-style=
:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:r=
gb(238,178,17);border-right-color:rgb(238,178,17);border-bottom-color:rgb(2=
38,178,17);border-left-color:rgb(238,178,17);padding-top:2px;margin-top:2px=
">=C2=A0<span title=3D"Call with Google Voice">+1 (408) 412-1141</span></sp=
an></span><br><br></span></div>
</div></div>

--089e0826403c5b9bb80553f9af0d--


From nobody Mon Jul 10 10:17:51 2017
Return-Path: <pmcmanus@mozilla.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 D704A129ADD for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:17:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.735
X-Spam-Level: 
X-Spam-Status: No, score=-0.735 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_HELO_PASS=-0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 6mu7q0XYe2oo for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:17:47 -0700 (PDT)
Received: from linode64.ducksong.com (linode6only.ducksong.com [IPv6:2600:3c02::f03c:91ff:fe6e:e8da]) by ietfa.amsl.com (Postfix) with ESMTP id 75B4212704A for <quic@ietf.org>; Mon, 10 Jul 2017 10:17:47 -0700 (PDT)
Received: from mail-qk0-f179.google.com (mail-qk0-f179.google.com [209.85.220.179]) by linode64.ducksong.com (Postfix) with ESMTPSA id BC3FE3A0AD for <quic@ietf.org>; Mon, 10 Jul 2017 13:17:46 -0400 (EDT)
Received: by mail-qk0-f179.google.com with SMTP id d78so79376602qkb.1 for <quic@ietf.org>; Mon, 10 Jul 2017 10:17:46 -0700 (PDT)
X-Gm-Message-State: AIVw112d0vRb+QSxqErFKtUI9vtaMuutMWewkpnp7wPgJVH1SRbegc8p 8u5T66hXLnDifh81cSMWMpa9Pa74pw==
X-Received: by 10.55.154.10 with SMTP id c10mr3141557qke.197.1499707066555; Mon, 10 Jul 2017 10:17:46 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.182.17 with HTTP; Mon, 10 Jul 2017 10:17:46 -0700 (PDT)
In-Reply-To: <CABcZeBNNG4vwTYsFXndou6gGSy-B7i0GeHf4-uTaYQqMcPNW8w@mail.gmail.com>
References: <CABcZeBNNG4vwTYsFXndou6gGSy-B7i0GeHf4-uTaYQqMcPNW8w@mail.gmail.com>
From: Patrick McManus <pmcmanus@mozilla.com>
Date: Mon, 10 Jul 2017 13:17:46 -0400
X-Gmail-Original-Message-ID: <CAOdDvNobQu471iOqi1LTi_9DVV2KvdwxaeE3EYvFbL+GSHqJXw@mail.gmail.com>
Message-ID: <CAOdDvNobQu471iOqi1LTi_9DVV2KvdwxaeE3EYvFbL+GSHqJXw@mail.gmail.com>
Subject: Re: ALPN token to use for first implementation draft
To: Eric Rescorla <ekr@rtfm.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c0544fcf823de0553f9c202"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/aF2EgXIUmUfJkrmT795r_UEW-Uc>
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: Mon, 10 Jul 2017 17:17:50 -0000

--94eb2c0544fcf823de0553f9c202
Content-Type: text/plain; charset="UTF-8"

In the spirit of "doing more than the first implementation requires" (which
is explicitly in scope by 1st implementation), I'll have my client send
ALPN hq-04 and my server select that if offered, but neither end will fail
if its peer doesn't reciprocate.

Remember - hackathon this coming weekend. Jabber is an option!

-P


On Sun, Jul 2, 2017 at 6:12 PM, Eric Rescorla <ekr@rtfm.com> wrote:

> The TLS draft implies (though I suppose one could argue) that QUIC should
> always negotiate ALPN. The HTTP draft specifies "hq-<version>" but we're
> not
> doing HTTP for the first implementation draft.
>
> We want to get into the habit of using ALPN, so I think we should define
> one.
> Perhaps "implementation-1"?
>
> -Ekr
>
>
>
>
>
>

--94eb2c0544fcf823de0553f9c202
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>In the spirit of &quot;doing more than the first impl=
ementation requires&quot; (which is explicitly in scope by 1st implementati=
on), I&#39;ll have my client send ALPN hq-04 and my server select that if o=
ffered, but neither end will fail if its peer doesn&#39;t reciprocate.</div=
><div><br></div><div>Remember - hackathon this coming weekend. Jabber is an=
 option!</div><div><br></div><div>-P</div><div><br></div></div><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote">On Sun, Jul 2, 2017 at 6:12=
 PM, Eric Rescorla <span dir=3D"ltr">&lt;<a href=3D"mailto:ekr@rtfm.com" ta=
rget=3D"_blank">ekr@rtfm.com</a>&gt;</span> wrote:<br><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex"><div dir=3D"ltr">The TLS draft implies (though I suppose one coul=
d argue) that QUIC should<div>always negotiate ALPN. The HTTP draft specifi=
es &quot;hq-&lt;version&gt;&quot; but we&#39;re not</div><div>doing HTTP fo=
r the first implementation draft.</div><div><br></div><div>We want to get i=
nto the habit of using ALPN, so I think we should define one.</div><div>Per=
haps &quot;implementation-1&quot;?</div><div><br></div><div>-Ekr</div><div>=
<br></div><div><br></div><div><br></div><div><br></div><div><br></div></div=
>
</blockquote></div><br></div>

--94eb2c0544fcf823de0553f9c202--


From nobody Mon Jul 10 10:18:18 2017
Return-Path: <ckrasic@google.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 54165129B06 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:18:17 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 7i11zC7_JDck for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:18:15 -0700 (PDT)
Received: from mail-yb0-x22d.google.com (mail-yb0-x22d.google.com [IPv6:2607:f8b0:4002:c09::22d]) (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 864B612969E for <quic@ietf.org>; Mon, 10 Jul 2017 10:18:15 -0700 (PDT)
Received: by mail-yb0-x22d.google.com with SMTP id p207so30200197yba.2 for <quic@ietf.org>; Mon, 10 Jul 2017 10:18:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=dLWEnXbKtO0viHOVRMvL1U86tVH2fi/rm9cWm2cb+Hw=; b=f43qDa2+ABzSvrjJ8Vhnkqzy228pdpTa97GPjdQtK/jAQAJRvLZJtxAUAKe/Fk+ZEL QiZAHnvrliLZr5yu0Tem1Z3URwRx7vVp+KWYRDz0DIfbryvg+y65utHB3K/9pxQWBGxu 9dLaKsD6ey7CyicNaLk/nBEBKmhoRQD25bFbbWYtb31rlLfgmw7IvGuk8uBjF8/EvvKo f5sb6EddzV0yu6a/ybTaSbdsVwP+O4HPMZCj8AS374bIugcrMtQNLxYNTTchmwCXTN7W spP3D8jhuZTkIclJAEoNU5rf8Vw7z/BnPDwTN1pso7L3PSNWJBjoXzXC/vX1wklBQzfQ rWDg==
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=dLWEnXbKtO0viHOVRMvL1U86tVH2fi/rm9cWm2cb+Hw=; b=SVC5REoz5r6h5QccAo8D5oLGCy3j2saiYnU3lscpY2xV363+qR98mt3ZAabp3WrFEe 5abt8tHJacVfOIp3hfllITctQKgAgESwOlP6oEi+pqpIONdew6Ue4xTMchxvnGdlOpDB aNZvehYN70vi822tIKAJe9wJx39RTCZqugFXFaXp10t02ZYqFpWX7ZAiMf9npHJIqw92 cQ+JJXpPeaL3exuCYUnw0n0mJPXkGpFt27lxCZFYzY0Ty/cYIEvXExCpUKuPRGdGTNiX xp9wxIFNB2YQZEqoimDY3HVN9s/fcBtywhReh5shZJKFKAASiBVX2LuUEoAKXrXNwNMT aUCw==
X-Gm-Message-State: AIVw111gL700wGCxBl/se9d1j3rbYGTOT5T2WUHLqSBMvsSbgzgoPxbM FQgeR4bGXDb8INxNgajVAdK5gJruAkA6
X-Received: by 10.37.115.134 with SMTP id o128mr15806351ybc.137.1499707094709;  Mon, 10 Jul 2017 10:18:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.171.75 with HTTP; Mon, 10 Jul 2017 10:17:53 -0700 (PDT)
In-Reply-To: <18bbf519bdd2413ebb28483a6eb0e570@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com> <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com> <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com> <CAN1APdcYrs=U=btKtyG1VjHPTMrFts3pNLKrq=mqb=7W_+yy6w@mail.gmail.com> <18bbf519bdd2413ebb28483a6eb0e570@usma1ex-dag1mb5.msg.corp.akamai.com>
From: "Charles 'Buck' Krasic" <ckrasic@google.com>
Date: Mon, 10 Jul 2017 10:17:53 -0700
Message-ID: <CAD-iZUayz8+V0ZD3PR538u0ZH2uRH-gE2Tz+xbRU2_utcA0O-w@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: "Lubashev, Igor" <ilubashe@akamai.com>
Cc: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  Jana Iyengar <jri@google.com>, Martin Duke <martin.h.duke@gmail.com>,  Mike Bishop <michael.bishop@microsoft.com>, Subodh Iyengar <subodh@fb.com>,  Dmitri Tikhonov <dtikhonov@litespeedtech.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Jo Kulik <jokulik@google.com>, QUIC WG <quic@ietf.org>,  Martin Thomson <martin.thomson@gmail.com>, Ian Swett <ianswett@google.com>,  Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="94eb2c09791ea63d190553f9c415"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/A_GKKakz-Xx4V6PeCxsHbZEdeuM>
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: Mon, 10 Jul 2017 17:18:17 -0000

--94eb2c09791ea63d190553f9c415
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 10, 2017 at 9:43 AM, Lubashev, Igor <ilubashe@akamai.com> wrote=
:

>
>    - An endpoint might use ACK as a commit signal indicating that the
>    receiver actually received the data. If a proxy repackages frames and =
does
>    its own ACK handing this assumption will break if not handled very
>    carefully.
>
>
>
> This treatment of =E2=80=9Ctransport ACK=E2=80=9D as an =E2=80=9Capplicat=
ion commit=E2=80=9D is
> independent of STREAM frame repackaging.  The value of a proxy could be i=
n
> reducing buffer requirements on endpoints, so the proxy would ACK.
>
>
>
> In any case, such use of a =E2=80=9Ctransport ACK=E2=80=9D as an =E2=80=
=9Capplication commit=E2=80=9D
> would be a particularly tight coupling of application semantics and QUIC
> library (which would be required to expose an ability to delay ACKs). Sin=
ce
> QUIC ACKs packets and not streams, it may be very difficult to even
> implement this without breaking QUIC.  One could be well-advised to add a=
n
> explicit =E2=80=9Ccommit=E2=80=9D signal to application protocols.
>

I don't agree that surfacing transport acks to the application requires an
ability to delay ACKs.   gQUIC has an AckNotifier class that does the
former but not the latter.     I think it depends on the application and
what sort of commit semantic it requires.    The line between using
transport ack or an application explicit ack might be exactly whether there
is any reason that using transport ack is too early for the app.


>
>
>
>
> *From:* Mikkel Fahn=C3=B8e J=C3=B8rgensen [mailto:mikkelfj@gmail.com]
> *Sent:* Monday, July 10, 2017 12:22 PM
> *To:* Lubashev, Igor <ilubashe@akamai.com>; Jana Iyengar <jri@google.com>=
;
> Martin Duke <martin.h.duke@gmail.com>
> *Cc:* QUIC WG <quic@ietf.org>; Jo Kulik <jokulik@google.com>; Swindells,
> Thomas (Nokia - GB/Cambridge, UK) <thomas.swindells@nokia.com>; Mike
> Bishop <michael.bishop@microsoft.com>; Martin Thomson <
> martin.thomson@gmail.com>; Ian Swett <ianswett@google.com>; Dmitri
> Tikhonov <dtikhonov@litespeedtech.com>; Subodh Iyengar <subodh@fb.com>;
> Kazuho Oku <kazuhooku@gmail.com>
> *Subject:* RE: Unidirectional streams PR
>
>
>
> Just passing frames may be mostly stateless (in far as streams are
> concerned) =E2=80=93 it is just transient RAM to buffer and account for t=
he streams
> before the frames are delivered.  In fact, the proxy may not need to
> strictly pass the STREAM frames but can re-frame the data it has buffered=
.
> One thing the proxy would not be able to do is stream state validation an=
d
> would pass on invalid frames to endpoints.
>
> An endpoint might use ACK as a commit signal indicating that the receiver
> actually received the data. If a proxy repackages frames and does its own
> ACK handing this assumption will break if not handled very carefully. If
> middle boxes mess with this, it would be good to at least require them to
> document this. Obviously they can=E2=80=99t mess unless they have a valid
> certificate. So middle boxes should also be prepared for clients doing
> detailed certificate validation beyond you average SSL cert. E.g. knowing
> exactly which host or sub-cluster is connected. With hacking abundant the=
se
> days, this is not theoretical. But it also isn=E2=80=99t the std. HTTP us=
e case.
>
>
>



--=20
Charles 'Buck' Krasic | Software Engineer | ckrasic@google.com | +1 (408)
412-1141

--94eb2c09791ea63d190553f9c415
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Jul 10, 2017 at 9:43 AM, Lubashev, Igor <span dir=3D"ltr">&lt;<=
a href=3D"mailto:ilubashe@akamai.com" target=3D"_blank">ilubashe@akamai.com=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"m_-923951540349620181WordSection1"><span class=3D"">
<ul style=3D"margin-top:0in" type=3D"disc">
<li class=3D"m_-923951540349620181MsoListParagraph" style=3D"margin-left:0i=
n"><span style=3D"font-size:10.0pt;font-family:&quot;Helvetica&quot;,sans-s=
erif">An endpoint might use ACK as a commit signal indicating that the rece=
iver actually received the data. If a proxy repackages
 frames and does its own ACK handing this assumption will break if not hand=
led very carefully.</span><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif"><u></u><u></u></span></li></ul>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
</span><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif">This treatment of =E2=80=9Ctransport ACK=E2=
=80=9D as an =E2=80=9Capplication commit=E2=80=9D is independent of STREAM =
frame repackaging.=C2=A0 The value of a proxy could be in reducing buffer r=
equirements on endpoints,
 so the proxy would ACK.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">In any case, such use of a =E2=80=9Ctransport ACK=
=E2=80=9D as an =E2=80=9Capplication commit=E2=80=9D would be a particularl=
y tight coupling of application semantics and QUIC library (which would be =
required
 to expose an ability to delay ACKs). Since QUIC ACKs packets and not strea=
ms, it may be very difficult to even implement this without breaking QUIC.=
=C2=A0 One could be well-advised to add an explicit =E2=80=9Ccommit=E2=80=
=9D signal to application protocols.</span></p></div></div></blockquote><di=
v><br></div><div>I don&#39;t agree that surfacing transport acks to the app=
lication requires an ability to delay ACKs.=C2=A0 =C2=A0gQUIC has an AckNot=
ifier class that does the former but not the latter.=C2=A0 =C2=A0 =C2=A0I t=
hink it depends on the application and what sort of commit semantic it requ=
ires.=C2=A0 =C2=A0 The line between using transport ack or an application e=
xplicit ack might be exactly whether there is any reason that using transpo=
rt ack is too early for the app.</div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72"><div clas=
s=3D"m_-923951540349620181WordSection1"><p class=3D"MsoNormal"><span style=
=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><u></u><u>=
</u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:</span></b><span style=3D"font-size:11.0pt;=
font-family:&quot;Calibri&quot;,sans-serif"> Mikkel Fahn=C3=B8e J=C3=B8rgen=
sen [mailto:<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_blank">mikkelf=
j@gmail.com</a>]
<br>
<b>Sent:</b> Monday, July 10, 2017 12:22 PM<br>
<b>To:</b> Lubashev, Igor &lt;<a href=3D"mailto:ilubashe@akamai.com" target=
=3D"_blank">ilubashe@akamai.com</a>&gt;; Jana Iyengar &lt;<a href=3D"mailto=
:jri@google.com" target=3D"_blank">jri@google.com</a>&gt;; Martin Duke &lt;=
<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@=
gmail.com</a>&gt;<br>
<b>Cc:</b> QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" target=3D"_blank">q=
uic@ietf.org</a>&gt;; Jo Kulik &lt;<a href=3D"mailto:jokulik@google.com" ta=
rget=3D"_blank">jokulik@google.com</a>&gt;; Swindells, Thomas (Nokia - GB/C=
ambridge, UK) &lt;<a href=3D"mailto:thomas.swindells@nokia.com" target=3D"_=
blank">thomas.swindells@nokia.com</a>&gt;; Mike Bishop &lt;<a href=3D"mailt=
o:michael.bishop@microsoft.com" target=3D"_blank">michael.bishop@microsoft.=
com</a>&gt;<wbr>; Martin Thomson &lt;<a href=3D"mailto:martin.thomson@gmail=
.com" target=3D"_blank">martin.thomson@gmail.com</a>&gt;; Ian Swett &lt;<a =
href=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</=
a>&gt;;
 Dmitri Tikhonov &lt;<a href=3D"mailto:dtikhonov@litespeedtech.com" target=
=3D"_blank">dtikhonov@litespeedtech.com</a>&gt;; Subodh Iyengar &lt;<a href=
=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt;; Kazuho O=
ku &lt;<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@g=
mail.com</a>&gt;<span class=3D""><br>
<b>Subject:</b> RE: Unidirectional streams PR<u></u><u></u></span></span></=
p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Just passing frames may be mostly stateless (in far=
 as streams are concerned) =E2=80=93 it is just transient RAM to buffer
 and account for the streams before the frames are delivered.=C2=A0 In fact=
, the proxy may not need to strictly pass the STREAM frames but can re-fram=
e the data it has buffered.=C2=A0 One thing the proxy would not be able to =
do is stream state validation and would pass
 on invalid frames to endpoints.</span><span style=3D"font-size:10.0pt;font=
-family:&quot;Helvetica&quot;,sans-serif"><u></u><u></u></span></p>
</div>
</div>
</div>
</blockquote>
</div><span class=3D"">
<p><span style=3D"font-size:10.0pt;font-family:&quot;Helvetica&quot;,sans-s=
erif">An endpoint might use ACK as a commit signal indicating that the rece=
iver actually received the data. If a proxy repackages frames and does its =
own ACK handing this assumption will break if
 not handled very carefully. If middle boxes mess with this, it would be go=
od to at least require them to document this. Obviously they can=E2=80=99t =
mess unless they have a valid certificate. So middle boxes should also be p=
repared for clients doing detailed certificate
 validation beyond you average SSL cert. E.g. knowing exactly which host or=
 sub-cluster is connected. With hacking abundant these days, this is not th=
eoretical. But it also isn=E2=80=99t the std. HTTP use case.<u></u><u></u><=
/span></p>
<p><span style=3D"font-size:10.0pt;font-family:&quot;Helvetica&quot;,sans-s=
erif"><u></u>=C2=A0<u></u></span></p>
</span></div>
</div>
</div>

</blockquote></div><br><br clear=3D"all"><div><br></div>-- <br><div class=
=3D"gmail_signature" data-smartmail=3D"gmail_signature"><span style=3D"font=
-family:&#39;Times New Roman&#39;;font-size:medium"><span style=3D"color:rg=
b(85,85,85);font-family:sans-serif;line-height:20px;font-size:small"><span =
style=3D"border-top-width:2px;border-right-width:0px;border-bottom-width:0p=
x;border-left-width:0px;border-top-style:solid;border-right-style:solid;bor=
der-bottom-style:solid;border-left-style:solid;border-top-color:rgb(213,15,=
37);border-right-color:rgb(213,15,37);border-bottom-color:rgb(213,15,37);bo=
rder-left-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Charles &#39=
;Buck&#39; Krasic=C2=A0|</span><span style=3D"border-top-width:2px;border-r=
ight-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-sty=
le:solid;border-right-style:solid;border-bottom-style:solid;border-left-sty=
le:solid;border-top-color:rgb(51,105,232);border-right-color:rgb(51,105,232=
);border-bottom-color:rgb(51,105,232);border-left-color:rgb(51,105,232);pad=
ding-top:2px;margin-top:2px">=C2=A0Software Engineer=C2=A0|</span><span sty=
le=3D"border-top-width:2px;border-right-width:0px;border-bottom-width:0px;b=
order-left-width:0px;border-top-style:solid;border-right-style:solid;border=
-bottom-style:solid;border-left-style:solid;border-top-color:rgb(0,153,57);=
border-right-color:rgb(0,153,57);border-bottom-color:rgb(0,153,57);border-l=
eft-color:rgb(0,153,57);padding-top:2px;margin-top:2px">=C2=A0<a href=3D"ma=
ilto:ckrasic@google.com" target=3D"_blank">ckrasic@google.com</a>=C2=A0|</s=
pan><span style=3D"border-top-width:2px;border-right-width:0px;border-botto=
m-width:0px;border-left-width:0px;border-top-style:solid;border-right-style=
:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:r=
gb(238,178,17);border-right-color:rgb(238,178,17);border-bottom-color:rgb(2=
38,178,17);border-left-color:rgb(238,178,17);padding-top:2px;margin-top:2px=
">=C2=A0<span title=3D"Call with Google Voice">+1 (408) 412-1141</span></sp=
an></span><br><br></span></div>
</div></div>

--94eb2c09791ea63d190553f9c415--


From nobody Mon Jul 10 17:06:54 2017
Return-Path: <ianswett@google.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 5E2D2127180 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 17:06:52 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 DmYH_v8hqnMr for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 17:06:51 -0700 (PDT)
Received: from mail-yb0-x231.google.com (mail-yb0-x231.google.com [IPv6:2607:f8b0:4002:c09::231]) (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 D6DF91204DA for <quic@ietf.org>; Mon, 10 Jul 2017 17:06:50 -0700 (PDT)
Received: by mail-yb0-x231.google.com with SMTP id e201so33163288ybb.1 for <quic@ietf.org>; Mon, 10 Jul 2017 17:06:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=/wh006IV2BnRd914TO6yiHyYldsLSB9m0vzjMWzBvhs=; b=salY00TFsVU3eOja/BQEZTUpWYbF36VNKKBwB1mvY+OzNxkaK9ZJTaRBIdruxniQ2L TEDxwHUml7F0e14covuKnFfxKEcQwbEzdSAlMgiocQ7cI2/8X+NzksfcQy8CY2EUNDho 0nPoCFZCEwOSoyjNv1vfA/MaJ8iYx1tzfPJL4Maj4waVEEWyQDPeenUlNHDGgY3dy0lA Dco9eocBqOGEeVQw+sxQEf22i4OdT5q0JWE5NCL0sVzrkBEt/OhgLbFrAFC5BgV0OA0W 5J/og3JvzPFYBvQwM6zKjr3sEugPdk52Obx7jrY/EunJlc+1IeTSRWdvU/1Za2lI7PIr HOYA==
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=/wh006IV2BnRd914TO6yiHyYldsLSB9m0vzjMWzBvhs=; b=G212hK5CT+RCULRYJ2YfCE8PLvbWmkJZNcUqPfEE8sFvkl3PiiTKEXUDoBP7mBFnwp +lv292aKidBpTeS9H5g3jwOsktFxhg7dJ+t6rLXQnOyVMfE0lwhymMt7aDousoEOa0UL dPK9Vsb1xRnZAiPyUiRzuyE05PP0578YTFjZmVvrfpgQBgBMKrfwmMSlGE/ooiPDLpYW T2EELWKrGo6KCsFI6d/xq7WWsufTK+jFgZ48rkLURAMQuvUEELgdO+bb99l87LLKO/Cy Zt5VxDyHazOSMmVRdQvItt+N24HyqdK5faGSfgF4FOfG/Y1sxjaoxPkusuHaFDB3D1pZ BPqg==
X-Gm-Message-State: AIVw112MeRXdU0lFx5f1Hud/2tT/pPCg4XYZeQhugD0e7DLFxHAUmX4N 0TNmA7QZmTZCHZTjfINatZsga/xRHLMq
X-Received: by 10.37.32.86 with SMTP id g83mr16320981ybg.84.1499731609963; Mon, 10 Jul 2017 17:06:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Mon, 10 Jul 2017 17:06:29 -0700 (PDT)
In-Reply-To: <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Mon, 10 Jul 2017 20:06:29 -0400
Message-ID: <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a1143e174df19200553ff79ad"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/7Rc8auzU0pGuM8SF4YHjbU_WNKc>
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: Tue, 11 Jul 2017 00:06:52 -0000

--001a1143e174df19200553ff79ad
Content-Type: text/plain; charset="UTF-8"

Agreed, performance analysis is going to be useless in the absence of loss
recovery and congestion control.  Presumably anyone deploying this at scale
would implement the recovery draft in a relatively complete manner, but
that doesn't mean everyone has to do it.

But there's nothing interesting to measure with no application.

On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
wrote:

> I'm not sure how "performance analysis" is going to function in the
> absence of loss recovery or congestion control. An alternate approach to
> implementations is to tackle the big performance drivers first, presumably
> loss recovery, congestion control, and streaming to prevent HOL blocking.
> However, this would run directly opposite to Jana's suggestion to lock down
> the wire image to prevent ossification.
>
> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com> wrote:
>
>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>> >
>> >
>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
>> >>
>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>> >> > I've been thinking about this, and I'm starting to think that we
>> should
>> >> > cover more ground in the second implementation draft.
>> >> >
>> >> > I'm hearing about increasing deployments of gQUIC, largely due to
>> market
>> >> > pressures. The availability of the Chromium implementation makes it
>> >> > particularly easy for folks to deploy QUIC with that code. I think we
>> >> > need
>> >> > to move with some urgency, even if we don't change everything about
>> QUIC
>> >> > to
>> >> > make it perfect, so that we can start getting IETF QUIC deployments
>> out
>> >> > there. Specifically, I think we should:
>> >> > 1. work out the wire-visible invariants and finalize all of those for
>> >> > the
>> >> > second impl draft. We know that there are some middleboxes that
>> already
>> >> > have
>> >> > classifiers for gQUIC, and we need to move quickly and push
>> IETF-QUIC so
>> >> > we
>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>> take,
>> >> > the
>> >> > more widespread gQUIC ossification will be.
>> >> > 2. allow impls to make serious progress towards a basic HTTP mapping
>> >> > over
>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps
>> test
>> >> > a
>> >> > basic HTTP request-response over QUIC. We can still punt
>> >> > performance-oriented things such as full loss recovery and congestion
>> >> > control to later. This forces us to try and finalize the HTTP mapping
>> >> > details, which is a good thing, IMO.
>> >>
>> >> I agree with Jana.
>> >>
>> >> If we can have some basic HTTP mapping (it can be as basic as using
>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>> >> version of QUIC performs well in the field, by comparing its
>> >> performance to HTTP over TCP.
>> >
>> >
>> > Interesting idea. One challenge with performance analysis is that it'll
>> be a
>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>> (without
>> > header compression) against HTTP/2 (with header compression) or HTTP/1.1
>> > (over multiple connections).
>>
>> Agreed.
>>
>> Though I might argue that collecting metrics of a QUIC implementation
>> without header compression could be useful. We can use that as a
>> baseline when we formalize QPACK / QCRAM.
>>
>> --
>> Kazuho Oku
>>
>
>

--001a1143e174df19200553ff79ad
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Agreed, performance analysis is going to be useless in the=
 absence of loss recovery and congestion control.=C2=A0 Presumably anyone d=
eploying this at scale would implement the recovery draft in a relatively c=
omplete manner, but that doesn&#39;t mean everyone has to do it.<div><br></=
div><div>But there&#39;s nothing interesting to measure with no application=
.</div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On M=
on, Jul 10, 2017 at 12:55 PM, Martin Duke <span dir=3D"ltr">&lt;<a href=3D"=
mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</=
a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I&#=
39;m not sure how &quot;performance analysis&quot; is going to function in =
the absence of loss recovery or congestion control. An alternate approach t=
o implementations is to tackle the big performance drivers first, presumabl=
y loss recovery, congestion control, and streaming to prevent HOL blocking.=
 However, this would run directly opposite to Jana&#39;s suggestion to lock=
 down the wire image to prevent ossification.</div><div class=3D"HOEnZb"><d=
iv class=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">O=
n Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=
=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"m_39504058=
87807727332HOEnZb"><div class=3D"m_3950405887807727332h5">2017-07-10 12:28 =
GMT+09:00 Ryan Hamilton &lt;<a href=3D"mailto:rch@google.com" target=3D"_bl=
ank">rch@google.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com" target=3D"_blank">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"m_3950405887807727332HOEnZb"><font color=3D"#888888"><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a1143e174df19200553ff79ad--


From nobody Tue Jul 11 04:55:14 2017
Return-Path: <quentin.deconinck@uclouvain.be>
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 63B561286B2 for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 04:55:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.321
X-Spam-Level: 
X-Spam-Status: No, score=-4.321 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uclouvain.be
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 dRa3YiOp2XCO for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 04:55:10 -0700 (PDT)
Received: from smtp1.sgsi.ucl.ac.be (smtp.sgsi.ucl.ac.be [130.104.5.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 430C5126D85 for <quic@ietf.org>; Tue, 11 Jul 2017 04:55:10 -0700 (PDT)
Received: from [130.104.228.12] (1o0-328.dhcp.info.ucl.ac.be [130.104.228.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: qdeconinck@smtp1.sgsi.ucl.ac.be) by smtp1.sgsi.ucl.ac.be (Postfix) with ESMTPSA id EDCE967DBC0 for <quic@ietf.org>; Tue, 11 Jul 2017 13:54:56 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.9.2 smtp1.sgsi.ucl.ac.be EDCE967DBC0
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=uclouvain.be; s=selucl; t=1499774097; bh=h8J7u80ppdOGOUTroyiQb4W0NvR3bmPCrVM/S7hJ0xU=; h=From:To:Subject:Date; b=G3Gzt7YFtvTwGrODOwKMHIODp2yLQpW5qEGs6ZbVTXzjJEncUmp0OiH4l54p8MNe5 VBYu6aWIPC4IdmPXfyW8wAPEIPLIh0wlMB9n21eMF9mKHgvERunFRuOEK2q0VCpmYP wasM0oXhBsGY8tkmTApmsBHBnkh6X9VrlNjZTDTc=
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.99.2 at smtp-1
From: Quentin De Coninck <quentin.deconinck@uclouvain.be>
To: quic@ietf.org
Subject: Adding Multipath Capabilities to QUIC
Message-ID: <9e85f109-5c91-018d-dfa8-e24954e3013a@uclouvain.be>
Date: Tue, 11 Jul 2017 13:54:56 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
X-Sgsi-Spamcheck: SASL authenticated, 
X-SGSI-Information: 
X-SGSI-MailScanner-ID: EDCE967DBC0.A8BA4
X-SGSI-MailScanner: Found to be clean
X-SGSI-From: quentin.deconinck@uclouvain.be
X-SGSI-Spam-Status: No
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/UY3tfemlCHCDX20aWKBwvwomsjM>
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: Tue, 11 Jul 2017 11:55:12 -0000

Hello all,

With the large interest of QUIC and the promises of using multiple paths 
in the network, we have worked on adding Multipath capabilities to QUIC. 
With only a few changes to the QUIC protocol that remain 
backward-compatible with the current (implicit) single-path one, we 
managed to have a fully working prototype on the open-source quic-go 
implementation, including various heuristics relevant to multipath 
protocols such as coupled congestion control. Compared to Multipath TCP, 
the multipath design for QUIC is much simpler and cleaner. Furthermore, 
our first evaluations show that Multipath can be more beneficial to QUIC 
than to TCP.

If you are interested to discuss with us about our design, our 
implementation or our results, we will be present at Prague for both the 
Hackathon and the IETF.

Regards,

-- 

Quentin De Coninck
FNRS Research Fellow - PhD Student
Universite Catholique de Louvain
B â€“ 1348 LOUVAIN-LA-NEUVE (Belgium)


From nobody Tue Jul 11 05:18:47 2017
Return-Path: <ek@google.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 F4228129461 for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 05:18:45 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 xr7JLTA8Xodr for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 05:18:44 -0700 (PDT)
Received: from mail-yb0-x22d.google.com (mail-yb0-x22d.google.com [IPv6:2607:f8b0:4002:c09::22d]) (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 53FA8128961 for <quic@ietf.org>; Tue, 11 Jul 2017 05:18:44 -0700 (PDT)
Received: by mail-yb0-x22d.google.com with SMTP id 84so37326462ybe.0 for <quic@ietf.org>; Tue, 11 Jul 2017 05:18:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=DtsktYGHdWBpGsMKoYZdqG11OdaE/okPOuu5bKphcEk=; b=L5uJZAmwladl/kPWsKqcYibktx23+fEJmEJYuTkKOwjB+XLSn6ERn0cU3h66QqIf54 H8kYrkjBIx/FNiDNJa0ES4DpuEFtJcBTXo2piRjnt4ddPKgMIuRHpppWNLSAOWpyo5ep GUsMizp6jH9C43MVD9CsFKv0OJPGq3erTjUMUcgax+UwR+wNV4eo7OkGL0QVvH8fhpU1 9+jI4OirQNk5ksqqpUs3aKO3llAhRHRU5YBq4gpzUhbipf+7gUKuba9c6hXvDffX/ovl iUsmra7ZsrIiozGU7FyidxKk/wIXRsIirrX+wShyYG5ZAf8lzB7fa3h088U5XkxKHznF KGwQ==
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=DtsktYGHdWBpGsMKoYZdqG11OdaE/okPOuu5bKphcEk=; b=JEa2CqGVimcZaQcdzfW3VRfTRKnU7QidXfwHUD51tOK2ptfvFTlu+Fca9ubX9Sx53s U48RjADw3e6uXx7zgwWfy5U5FvR0X1lZZZya/j7ZWVaHz4ClsqfrSm/b+TR3z2Rf3kaE jIq0LH7PLPileipvgfPcLQHKXJvoCIvsuqW0kcpi0ToGB2xkJ37BjM2Js91rcubfdfGe GHwq3ybggPUMehi6LCGZ0yIdsX5t/NeSSjJOKi0A1IgZOUZ5mPGjdpKgYcgysA/AZlme YRD+ccv5+THlvaHRLF1I69f2elvAdRamX7QWAxiSVRlUvQO5sPq0HRrNklaMEWqlxbjm FvAw==
X-Gm-Message-State: AIVw113cgFTl1KIJkMl2XfoeC9kSaDIByxQ6VBtr6IhMu71cD5t8B5Zy LZhi2ucCCEejkbh6lgESRMJvHhrpmri7
X-Received: by 10.37.209.66 with SMTP id i63mr18971715ybg.98.1499775523362; Tue, 11 Jul 2017 05:18:43 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.217.69 with HTTP; Tue, 11 Jul 2017 05:18:22 -0700 (PDT)
In-Reply-To: <9e85f109-5c91-018d-dfa8-e24954e3013a@uclouvain.be>
References: <9e85f109-5c91-018d-dfa8-e24954e3013a@uclouvain.be>
From: Erik Kline <ek@google.com>
Date: Tue, 11 Jul 2017 21:18:22 +0900
Message-ID: <CAAedzxre6Q5VMig_m6f8u0zQOt1uryABzEYY4w3qnFAgwN6j6Q@mail.gmail.com>
Subject: Re: Adding Multipath Capabilities to QUIC
To: Quentin De Coninck <quentin.deconinck@uclouvain.be>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="94eb2c06f61056c576055409b3ac"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/PzIr3ksoQwWEn6DDme41i2fA30M>
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: Tue, 11 Jul 2017 12:18:46 -0000

--94eb2c06f61056c576055409b3ac
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Sounds fantastic.  Will you be able to write up some brief
description?  I know of some folks who are interested in this but not
currently following the working group developments...

On 11 July 2017 at 20:54, Quentin De Coninck
<quentin.deconinck@uclouvain.be> wrote:
> Hello all,
>
> With the large interest of QUIC and the promises of using multiple paths =
in
> the network, we have worked on adding Multipath capabilities to QUIC. Wit=
h
> only a few changes to the QUIC protocol that remain backward-compatible w=
ith
> the current (implicit) single-path one, we managed to have a fully workin=
g
> prototype on the open-source quic-go implementation, including various
> heuristics relevant to multipath protocols such as coupled congestion
> control. Compared to Multipath TCP, the multipath design for QUIC is much
> simpler and cleaner. Furthermore, our first evaluations show that Multipa=
th
> can be more beneficial to QUIC than to TCP.
>
> If you are interested to discuss with us about our design, our
> implementation or our results, we will be present at Prague for both the
> Hackathon and the IETF.
>
> Regards,
>
> --
>
> Quentin De Coninck
> FNRS Research Fellow - PhD Student
> Universite Catholique de Louvain
> B =E2=80=93 1348 LOUVAIN-LA-NEUVE (Belgium)
>

--94eb2c06f61056c576055409b3ac
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIIS3wYJKoZIhvcNAQcCoIIS0DCCEswCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg
ghBFMIIEXDCCA0SgAwIBAgIOSBtqDm4P/739RPqw/wcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UE
BhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExOjA4BgNVBAMTMUdsb2JhbFNpZ24gUGVy
c29uYWxTaWduIFBhcnRuZXJzIENBIC0gU0hBMjU2IC0gRzIwHhcNMTYwNjE1MDAwMDAwWhcNMjEw
NjE1MDAwMDAwWjBMMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEiMCAG
A1UEAxMZR2xvYmFsU2lnbiBIViBTL01JTUUgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALR23lKtjlZW/17kthzYcMHHKFgywfc4vLIjfq42NmMWbXkNUabIgS8KX4PnIFsTlD6F
GO2fqnsTygvYPFBSMX4OCFtJXoikP2CQlEvO7WooyE94tqmqD+w0YtyP2IB5j4KvOIeNv1Gbnnes
BIUWLFxs1ERvYDhmk+OrvW7Vd8ZfpRJj71Rb+QQsUpkyTySaqALXnyztTDp1L5d1bABJN/bJbEU3
Hf5FLrANmognIu+Npty6GrA6p3yKELzTsilOFmYNWg7L838NS2JbFOndl+ce89gM36CW7vyhszi6
6LqqzJL8MsmkP53GGhf11YMP9EkmawYouMDP/PwQYhIiUO0CAwEAAaOCASIwggEeMA4GA1UdDwEB
/wQEAwIBBjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEgYDVR0TAQH/BAgwBgEB/wIB
ADAdBgNVHQ4EFgQUyzgSsMeZwHiSjLMhleb0JmLA4D8wHwYDVR0jBBgwFoAUJiSSix/TRK+xsBtt
r+500ox4AAMwSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9ncy9n
c3BlcnNvbmFsc2lnbnB0bnJzc2hhMmcyLmNybDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBKDA0MDIG
CCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzANBgkqhkiG
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
--94eb2c06f61056c576055409b3ac--


From nobody Tue Jul 11 07:46:21 2017
Return-Path: <ianswett@google.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 A53A313170F for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 07:46:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 1pqH3JN1Umgz for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 07:46:17 -0700 (PDT)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002:c05::235]) (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 401AC12F257 for <quic@ietf.org>; Tue, 11 Jul 2017 07:46:17 -0700 (PDT)
Received: by mail-yw0-x235.google.com with SMTP id x125so1663358ywa.0 for <quic@ietf.org>; Tue, 11 Jul 2017 07:46:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=7xPDljJUse5WO1qdoViTd3Q6NI53OCcAiIS8vHFYOLA=; b=kUsGcYpv0cDqlkQT/yAfKL++jD9TLbRSkockWdiED/82EzI9BSHb/YaYSbn83GDSil OaX8S75gloO5m8KIs6vdV9CfD6GLbUEsE1NpKwPCsrpkqx/VKFsvCEw6wECUMTa0tweO iI/XiKWu1HOecPdg70NpLzlU2u/Oj9fv8GlrVQ31lvp2cE+eL/SfZrfAX0ucdZLWjx64 1tARZGvrDPgzPgeerr1dvcvKPR6UMKm0oLaJ18e+0s7k1L1ETDQnyty31whh+zO3Ly8/ O5obkrvUHdLHVuAkkoB3Gb1tITWaFvVE7BvEXdp32gglWWbYU7slEdZle35rq244xMJl Rl/g==
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=7xPDljJUse5WO1qdoViTd3Q6NI53OCcAiIS8vHFYOLA=; b=psbRvf+NTiXt+cGR204AAePZtTdkXdsO3pET6ltgGT/z/laouSxVJOiSR8VP0oJxKk 1/6CQ7uPT0uHVXB4d0RWiXDaCIIZdL97axx6M0T1Xw5Jkvp48jJV4KtHTC+yyjUkPI3U txhDXtSn2sy2m2/jOSF0UQqMcUOnJMrf88rKzh7c34K7DvT0XIN+KVHnIDHy+0HxhHuG daxVFMOkLznzjIlrZcttI42Lz0Cm9N0NL0W3XQebELpulbsLjIoOLnoI5plj0J+KO+fE 2ojdFtSEfD5C/nfJrSLE3hzBVMfbumZqJFhjidOBRZTBfHGtiACGZO4lRavJH0OA8X/S EUxg==
X-Gm-Message-State: AIVw110i6y74Xs5cAD3+ixxVAsyIYenVCbBsNTOfRn9l7CDderBRGSN8 uVD5ETy37mjznKqGTZEbAjo20u48aZdo
X-Received: by 10.13.210.197 with SMTP id u188mr124908ywd.55.1499784376270; Tue, 11 Jul 2017 07:46:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Tue, 11 Jul 2017 07:45:55 -0700 (PDT)
In-Reply-To: <CAAedzxre6Q5VMig_m6f8u0zQOt1uryABzEYY4w3qnFAgwN6j6Q@mail.gmail.com>
References: <9e85f109-5c91-018d-dfa8-e24954e3013a@uclouvain.be> <CAAedzxre6Q5VMig_m6f8u0zQOt1uryABzEYY4w3qnFAgwN6j6Q@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Tue, 11 Jul 2017 10:45:55 -0400
Message-ID: <CAKcm_gM=MkPmrMa8HcFjw9oBj3GKSvG_oZseiURzG-KUa=X4ag@mail.gmail.com>
Subject: Re: Adding Multipath Capabilities to QUIC
To: Erik Kline <ek@google.com>
Cc: Quentin De Coninck <quentin.deconinck@uclouvain.be>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114e5798fd52dd05540bc2db"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/IhrI7vcy6_N28C4zH7vc6G9ZrrA>
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: Tue, 11 Jul 2017 14:46:19 -0000

--001a114e5798fd52dd05540bc2db
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

It's great you chose an approach that's backwards compatible with single
path QUIC.  To clarify, does that mean it doesn't require any framing
changes and multipath looks like multiple single path connections on the
wire?

Agreed I'd be interested in a description, either text or slides.

On Tue, Jul 11, 2017 at 8:18 AM, Erik Kline <ek@google.com> wrote:

> Sounds fantastic.  Will you be able to write up some brief
> description?  I know of some folks who are interested in this but not
> currently following the working group developments...
>
> On 11 July 2017 at 20:54, Quentin De Coninck
> <quentin.deconinck@uclouvain.be> wrote:
> > Hello all,
> >
> > With the large interest of QUIC and the promises of using multiple path=
s
> in
> > the network, we have worked on adding Multipath capabilities to QUIC.
> With
> > only a few changes to the QUIC protocol that remain backward-compatible
> with
> > the current (implicit) single-path one, we managed to have a fully
> working
> > prototype on the open-source quic-go implementation, including various
> > heuristics relevant to multipath protocols such as coupled congestion
> > control. Compared to Multipath TCP, the multipath design for QUIC is mu=
ch
> > simpler and cleaner. Furthermore, our first evaluations show that
> Multipath
> > can be more beneficial to QUIC than to TCP.
> >
> > If you are interested to discuss with us about our design, our
> > implementation or our results, we will be present at Prague for both th=
e
> > Hackathon and the IETF.
> >
> > Regards,
> >
> > --
> >
> > Quentin De Coninck
> > FNRS Research Fellow - PhD Student
> > Universite Catholique de Louvain
> > B =E2=80=93 1348 LOUVAIN-LA-NEUVE (Belgium)
> >
>

--001a114e5798fd52dd05540bc2db
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">It&#39;s great you chose an approach that&#39;s backwards =
compatible with single path QUIC.=C2=A0 To clarify, does that mean it doesn=
&#39;t require any framing changes and multipath looks like multiple single=
 path connections on the wire?<div><br></div><div>Agreed I&#39;d be interes=
ted in a description, either text or slides.</div><div class=3D"gmail_extra=
"><br><div class=3D"gmail_quote">On Tue, Jul 11, 2017 at 8:18 AM, Erik Klin=
e <span dir=3D"ltr">&lt;<a href=3D"mailto:ek@google.com" target=3D"_blank">=
ek@google.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sound=
s fantastic.=C2=A0 Will you be able to write up some brief<br>
description?=C2=A0 I know of some folks who are interested in this but not<=
br>
currently following the working group developments...<br>
<br>
On 11 July 2017 at 20:54, Quentin De Coninck<br>
<div class=3D"m_4016284245029548225HOEnZb"><div class=3D"m_4016284245029548=
225h5">&lt;<a href=3D"mailto:quentin.deconinck@uclouvain.be" target=3D"_bla=
nk">quentin.deconinck@uclouvain.b<wbr>e</a>&gt; wrote:<br>
&gt; Hello all,<br>
&gt;<br>
&gt; With the large interest of QUIC and the promises of using multiple pat=
hs in<br>
&gt; the network, we have worked on adding Multipath capabilities to QUIC. =
With<br>
&gt; only a few changes to the QUIC protocol that remain backward-compatibl=
e with<br>
&gt; the current (implicit) single-path one, we managed to have a fully wor=
king<br>
&gt; prototype on the open-source quic-go implementation, including various=
<br>
&gt; heuristics relevant to multipath protocols such as coupled congestion<=
br>
&gt; control. Compared to Multipath TCP, the multipath design for QUIC is m=
uch<br>
&gt; simpler and cleaner. Furthermore, our first evaluations show that Mult=
ipath<br>
&gt; can be more beneficial to QUIC than to TCP.<br>
&gt;<br>
&gt; If you are interested to discuss with us about our design, our<br>
&gt; implementation or our results, we will be present at Prague for both t=
he<br>
&gt; Hackathon and the IETF.<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; Quentin De Coninck<br>
&gt; FNRS Research Fellow - PhD Student<br>
&gt; Universite Catholique de Louvain<br>
&gt; B =E2=80=93 1348 LOUVAIN-LA-NEUVE (Belgium)<br>
&gt;<br>
</div></div></blockquote></div><br></div></div>

--001a114e5798fd52dd05540bc2db--


From nobody Tue Jul 11 07:47:38 2017
Return-Path: <dtikhonov@litespeedtech.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 487A11316E8 for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 07:47:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, 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=litespeedtech-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 PGvRd-GITCGB for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 07:47:35 -0700 (PDT)
Received: from mail-qk0-x234.google.com (mail-qk0-x234.google.com [IPv6:2607:f8b0:400d:c09::234]) (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 064D312F257 for <quic@ietf.org>; Tue, 11 Jul 2017 07:47:35 -0700 (PDT)
Received: by mail-qk0-x234.google.com with SMTP id p21so2782853qke.3 for <quic@ietf.org>; Tue, 11 Jul 2017 07:47:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=0+e5OSfRxN8/w0DnCAzS1y2W0HLeF6v2sV/O8JzrzI0=; b=stcPbvNIz7eYww1GQJtuDxagEvy1D6B8kqv0reZKXxikFGnDHNAOzSU3TpvfnSsrM4 Ydq7Iw62g1g2yAWDZMuGFPSYRiL/JL7U0wM5PbK9A7ZohJgFlUuHRHEwP45WCQ8Dm6AS ZGIGmpRZ+WZjUb2qda4m8xzhN/pAHXn+nlUuIWdbtdRseC2Lri/zFwb8821iQ7D9N2aR ldfeMg+igsSjlKpYK4Y1XCoFjNAvJ/1mSzNoRwpiej4bObaWxOfroDLUxKxQubOSHyHb xEoATtiXVjndjgR0KJuWzMfK9pYHlGXEkclv3bs7orZ0DNM9PTn9kfsHMD+a7Qwzdj39 PXyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=0+e5OSfRxN8/w0DnCAzS1y2W0HLeF6v2sV/O8JzrzI0=; b=F71fLErOABGrVyDZU6iek//OB9JhNeWQk+k0L2Pvev4hBeI/xwqrOtmFWeoMxSKWhD 4qPLeNyiwSULqqij+UcyTd9J39+74Hdz9ChIvfj/se0flugsJiaOYy7IQ5wVJVJeiPmo JlZbp32qg56Rh/AhO6gcdDAkDEoata/b2sG+Pef53eovd5ZDYdKbcyNGSkjnr+uw2ol6 MdGlfijqgU82HgL6BRYkiOmjvjNgh+uIxPA8RTrsFRC+31v3FNkH8yPh/3+oAMQ5JPJ3 MPv+ANvlhqhlABgDGmosmGNzCwMaqSuQChHfYoOPKrFwWbWOSttGDFsFzaEkcytjyCb+ RCkg==
X-Gm-Message-State: AIVw1104fZNzKRF3hwomyeJJv3V8FJ0PrC1LI/rdTGeCOfUQjmDPvd2J 5EN+wc1DOfpZkPHn
X-Received: by 10.237.41.38 with SMTP id s35mr328057qtd.199.1499784454160; Tue, 11 Jul 2017 07:47:34 -0700 (PDT)
Received: from ubuntu-dmitri (ool-2f1636b6.static.optonline.net. [47.22.54.182]) by smtp.gmail.com with ESMTPSA id 39sm122391qtm.26.2017.07.11.07.47.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Jul 2017 07:47:33 -0700 (PDT)
Date: Tue, 11 Jul 2017 10:47:28 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: Ian Swett <ianswett@google.com>
Cc: Erik Kline <ek@google.com>, IETF QUIC WG <quic@ietf.org>, Quentin De Coninck <quentin.deconinck@uclouvain.be>
Subject: Re: Adding Multipath Capabilities to QUIC
Message-ID: <20170711144728.GA8752@ubuntu-dmitri>
References: <9e85f109-5c91-018d-dfa8-e24954e3013a@uclouvain.be> <CAAedzxre6Q5VMig_m6f8u0zQOt1uryABzEYY4w3qnFAgwN6j6Q@mail.gmail.com> <CAKcm_gM=MkPmrMa8HcFjw9oBj3GKSvG_oZseiURzG-KUa=X4ag@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAKcm_gM=MkPmrMa8HcFjw9oBj3GKSvG_oZseiURzG-KUa=X4ag@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/VTalV2UuvrhLSvj5587LvOtpJqo>
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: Tue, 11 Jul 2017 14:47:36 -0000

On Tue, Jul 11, 2017 at 10:45:55AM -0400, Ian Swett wrote:
> Agreed I'd be interested in a description, either text or slides.

*Throws his hat in:*  Me, too!

  - Dmitri.


From nobody Tue Jul 11 07:57:50 2017
Return-Path: <Lucas.Pardue@bbc.co.uk>
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 BE80A12ECBD for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 07:57:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level: 
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 udNPgy1u3XN5 for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 07:57:48 -0700 (PDT)
Received: from mailout0.telhc.bbc.co.uk (mailout0.telhc.bbc.co.uk [132.185.161.179]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3619D12F3D5 for <quic@ietf.org>; Tue, 11 Jul 2017 07:57:48 -0700 (PDT)
Received: from BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) by mailout0.telhc.bbc.co.uk (8.15.2/8.15.2) with ESMTP id v6BEvkOG006130; Tue, 11 Jul 2017 15:57:46 +0100 (BST)
Received: from BGB01XUD1012.national.core.bbc.co.uk ([10.161.14.10]) by BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) with mapi id 14.03.0319.002; Tue, 11 Jul 2017 15:57:45 +0100
From: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
To: Ian Swett <ianswett@google.com>
CC: Erik Kline <ek@google.com>, IETF QUIC WG <quic@ietf.org>, "Quentin De Coninck" <quentin.deconinck@uclouvain.be>
Subject: RE: Adding Multipath Capabilities to QUIC
Thread-Topic: Adding Multipath Capabilities to QUIC
Thread-Index: AQHS+jySq8RzOPL69EuMJJLD3/ZAAaJOelYAgAApOoCAAABvAIAAE4Sg
Date: Tue, 11 Jul 2017 14:57:45 +0000
Message-ID: <7CF7F94CB496BF4FAB1676F375F9666A3773C2A6@bgb01xud1012>
References: <9e85f109-5c91-018d-dfa8-e24954e3013a@uclouvain.be> <CAAedzxre6Q5VMig_m6f8u0zQOt1uryABzEYY4w3qnFAgwN6j6Q@mail.gmail.com> <CAKcm_gM=MkPmrMa8HcFjw9oBj3GKSvG_oZseiURzG-KUa=X4ag@mail.gmail.com> <20170711144728.GA8752@ubuntu-dmitri>
In-Reply-To: <20170711144728.GA8752@ubuntu-dmitri>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.19.161.213]
x-exclaimer-md-config: 1cd3ac1c-62e5-43f2-8404-6b688271c769
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-23188.006
x-tm-as-result: No--18.982300-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/zb5edf3TS2MO90u_aOkU6_vJ-a8>
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: Tue, 11 Jul 2017 14:57:50 -0000

> On Tue, Jul 11, 2017 at 10:45:55AM -0400, Ian Swett wrote:
> > Agreed I'd be interested in a description, either text or slides.

+1



-----------------------------
http://www.bbc.co.uk
This e-mail (and any attachments) is confidential and
may contain personal views which are not the views of the BBC unless specif=
ically stated.
If you have received it in
error, please delete it from your system.
Do not use, copy or disclose the
information in any way nor act in reliance on it and notify the sender
immediately.
Please note that the BBC monitors e-mails
sent or received.
Further communication will signify your consent to
this.
-----------------------------


From nobody Tue Jul 11 09:14:06 2017
Return-Path: <quentin.deconinck@uclouvain.be>
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 82DDB127978 for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 09:14:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.321
X-Spam-Level: 
X-Spam-Status: No, score=-4.321 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uclouvain.be
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 bWsj30oBa9wk for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 09:14:04 -0700 (PDT)
Received: from smtp6.sgsi.ucl.ac.be (smtp.sgsi.ucl.ac.be [130.104.5.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DEB66127B73 for <quic@ietf.org>; Tue, 11 Jul 2017 09:14:03 -0700 (PDT)
Received: from [130.104.228.12] (1o0-328.dhcp.info.ucl.ac.be [130.104.228.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: qdeconinck@smtp6.sgsi.ucl.ac.be) by smtp6.sgsi.ucl.ac.be (Postfix) with ESMTPSA id 250A267DABA; Tue, 11 Jul 2017 18:13:29 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.9.2 smtp6.sgsi.ucl.ac.be 250A267DABA
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=uclouvain.be; s=selucl; t=1499789619; bh=0NH/eDjSFD52kIxPCBMGyAy0CRPWc7eNPotRK/brfkE=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=DJ5d/JayFYSTu2c8BIqv88DZzq51pBTMCgAgScuNHfMVwSnU6TlavB05nxi0YEpbS q/dVjqHPmfy1UT7hY6V0a0+h8hCXY/68wyCccHjrWL0NUMZFnSF9p8KYeaMYI9MrXa NXtRRg3Ftd+uJtYTPhjXn2Llc1z+Q+plyQzUze0o=
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.99.2 at smtp-6
Subject: Re: Adding Multipath Capabilities to QUIC
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Ian Swett <ianswett@google.com>
Cc: Erik Kline <ek@google.com>, IETF QUIC WG <quic@ietf.org>
References: <9e85f109-5c91-018d-dfa8-e24954e3013a@uclouvain.be> <CAAedzxre6Q5VMig_m6f8u0zQOt1uryABzEYY4w3qnFAgwN6j6Q@mail.gmail.com> <CAKcm_gM=MkPmrMa8HcFjw9oBj3GKSvG_oZseiURzG-KUa=X4ag@mail.gmail.com> <20170711144728.GA8752@ubuntu-dmitri> <7CF7F94CB496BF4FAB1676F375F9666A3773C2A6@bgb01xud1012>
From: Quentin De Coninck <quentin.deconinck@uclouvain.be>
Message-ID: <74eb0e39-7073-e18e-810a-4e77c96dbbf8@uclouvain.be>
Date: Tue, 11 Jul 2017 18:13:13 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A3773C2A6@bgb01xud1012>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
X-Sgsi-Spamcheck: SASL authenticated, 
X-SGSI-Information: 
X-SGSI-MailScanner-ID: 250A267DABA.A8439
X-SGSI-MailScanner: Found to be clean
X-SGSI-From: quentin.deconinck@uclouvain.be
X-SGSI-Spam-Status: No
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/am_unq9cW63DSq1MT4ebmPOLXOs>
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: Tue, 11 Jul 2017 16:14:05 -0000

> Agreed I'd be interested in a description, either text or slides.
If the agenda permits, I would be glad to prepare a short presentation 
at Prague highlighting the main points allowing multipath in QUIC.

-- 

Quentin De Coninck
FNRS Research Fellow - PhD Student
Universite Catholique de Louvain
B â€“ 1348 LOUVAIN-LA-NEUVE (Belgium)


From nobody Tue Jul 11 15:44:51 2017
Return-Path: <mnot@mnot.net>
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 D7A05131803 for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 15:44:49 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=bLWqesGe; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=gLptqUzU
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 5VyZ1QVzm9ti for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 15:44:47 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 03EB112EC15 for <quic@ietf.org>; Tue, 11 Jul 2017 15:44:47 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 7421C20983; Tue, 11 Jul 2017 18:44:46 -0400 (EDT)
Received: from frontend2 ([10.202.2.161]) by compute3.internal (MEProxy); Tue, 11 Jul 2017 18:44:46 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h= content-type:date:from:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=NSAq1CWVkMFWBLoENG4Utx6kz5hR7p2ou2mCF3BifZI=; b=bLWqesGe cF3FCZgq/loEudQDfZLS9phYgcT4FjFK/qm/loU8qvhSWIgOkB7Hrc2J5KtEA/ng 6KihyYoSahJLfsI3lsPxXDT+NBEoo8A0VqIQSowxLqWyNMFi3XjGY/OE8tZv3anU bkvzatFuBnP8oeaElM5gIJ+o2GVCZmvbaGHEyW79H1UWg8/GhsxSuf9axaKxXCSQ Zko9q5RXABFh5L/l1e38D4Z+PwrvTBHnj9ZSJTHmjPWRYCnp0F4r0jLWdHUDbjNg eKyYobO09JlQC16hTAmGcxa88yVDbPz1at3xV5qlmuHPU4wGpzZ3BzOPADni9S/O faldIuCJQHSfQA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:references:subject:to:x-me-sender:x-me-sender :x-sasl-enc:x-sasl-enc; s=fm1; bh=NSAq1CWVkMFWBLoENG4Utx6kz5hR7p 2ou2mCF3BifZI=; b=gLptqUzU+b9LTxemo/ABaTUdVLrrgV3Kg5PBFw45hrO04v FnwtXsUwyCXPZhBqHKPOPKNyyJf3vrHMEsJBlx2HQX+N0fYb/kpBVcoWvHJFPpKb KNw8rX8TQynezKrXncHe5Yrnv4mKgdmDj+ZqqlVWHhYiB/iwaJE4HdRLDH3E6GQN dtPUwRxgzSrG0e4X2CFYHLeS+RqL0oVqkm799Z4Fkis99WGBVL0DOjBK+Jpzo5+a dmPN8cfYhJz1dFi1fR52sVNG7zVPmdvdRk8k15PxzL6M6UedPWjc9jNk2VpDUkK/ kbHnG5mwM8js3yeD4EXpcMqYN+snN8zF1CKRR/Pg==
X-ME-Sender: <xms:3lRlWXPoUIK3RqFji5fWXNAhJfXmYJCVyOFs_8y7b7LbaU91qwh8iA>
X-Sasl-enc: KPmM3+frjc083NJx0YomRc0asEiWKO7A1p17Cdb1pFBi 1499813085
Received: from [192.168.1.18] (cpe-124-188-19-231.hdbq1.win.bigpond.net.au [124.188.19.231]) by mail.messagingengine.com (Postfix) with ESMTPA id 407A22424F; Tue, 11 Jul 2017 18:44:45 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: multipart/alternative; boundary="Apple-Mail=_8FF53D8C-B773-4459-801C-9822F7E96C97"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Wed, 12 Jul 2017 08:44:41 +1000
Subject: Fwd: [hackathon] Hackathon Registration Closing at end of today
References: <884CF365-66BD-4EBE-9938-A9F93ABEB978@cisco.com>
To: IETF QUIC WG <quic@ietf.org>
Message-Id: <8E4E4148-E2FD-4A28-93B3-87F5A65709C0@mnot.net>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/G9phqjMOwaqEiPrYWQ7Sg8MW_vE>
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: Tue, 11 Jul 2017 22:44:50 -0000

--Apple-Mail=_8FF53D8C-B773-4459-801C-9822F7E96C97
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

For those who are interested but still undecided, please register. Even =
if you don't have an implementation, you can still help others, etc.

  https://www.ietf.org/hackathon/99-hackathon.html

Cheers,



> Begin forwarded message:
>=20
> From: "Charles Eckel (eckelcu)" <eckelcu@cisco.com>
> Subject: [hackathon] Hackathon Registration Closing at end of today
> Date: 12 July 2017 at 4:42:00 am AEST
> To: "hackathon@ietf.org" <hackathon@ietf.org>
> Cc: "ietf@ietf.org" <ietf@ietf.org>
> Archived-At: =
<https://mailarchive.ietf.org/arch/msg/hackathon/UvfwtL9VLPbNlRjs4uKx7AgPC=
Rw>
>=20
> Thanks to all of you who have registered for the hackathon.=20
> The good news is we have a record number of registrations.
> The bad news is, we have run out of space.
> Registration will be closed after today.
>=20
> Cheers,
> Charles
>=20
>=20
> _______________________________________________
> hackathon mailing list
> hackathon@ietf.org
> https://www.ietf.org/mailman/listinfo/hackathon

--
Mark Nottingham   https://www.mnot.net/


--Apple-Mail=_8FF53D8C-B773-4459-801C-9822F7E96C97
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">For those who are interested but still undecided, please =
register. Even if you don't have an implementation, you can still help =
others, etc.<div class=3D""><br class=3D""></div><div =
class=3D"">&nbsp;&nbsp;<a =
href=3D"https://www.ietf.org/hackathon/99-hackathon.html" =
class=3D"">https://www.ietf.org/hackathon/99-hackathon.html</a></div><div =
class=3D""><br class=3D""></div><div class=3D"">Cheers,</div><div =
class=3D""><br class=3D""></div><div class=3D""><br class=3D""><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">Begin =
forwarded message:</div><br class=3D"Apple-interchange-newline"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">"Charles Eckel (eckelcu)" =
&lt;<a href=3D"mailto:eckelcu@cisco.com" =
class=3D"">eckelcu@cisco.com</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">[hackathon] =
Hackathon Registration Closing at end of today</b><br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">12 July 2017 at 4:42:00 am =
AEST<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">"<a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a>" =
&lt;<a href=3D"mailto:hackathon@ietf.org" =
class=3D"">hackathon@ietf.org</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Cc: </b></span><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif;" class=3D"">"<a href=3D"mailto:ietf@ietf.org" =
class=3D"">ietf@ietf.org</a>" &lt;<a href=3D"mailto:ietf@ietf.org" =
class=3D"">ietf@ietf.org</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Archived-At: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">&lt;<a =
href=3D"https://mailarchive.ietf.org/arch/msg/hackathon/UvfwtL9VLPbNlRjs4u=
Kx7AgPCRw" =
class=3D"">https://mailarchive.ietf.org/arch/msg/hackathon/UvfwtL9VLPbNlRj=
s4uKx7AgPCRw</a>&gt;<br class=3D""></span></div><br class=3D""><div =
class=3D""><div class=3D"">Thanks to all of you who have registered for =
the hackathon. <br class=3D"">The good news is we have a record number =
of registrations.<br class=3D"">The bad news is, we have run out of =
space.<br class=3D"">Registration will be closed after today.<br =
class=3D""><br class=3D"">Cheers,<br class=3D"">Charles<br class=3D""><br =
class=3D""><br =
class=3D"">_______________________________________________<br =
class=3D"">hackathon mailing list<br class=3D""><a =
href=3D"mailto:hackathon@ietf.org" class=3D"">hackathon@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/hackathon<br =
class=3D""></div></div></blockquote></div><br class=3D""><div class=3D"">
<div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
14px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; orphans: auto; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; widows: =
auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;">--<br class=3D"">Mark Nottingham&nbsp; =
&nbsp;<a href=3D"https://www.mnot.net/" =
class=3D"">https://www.mnot.net/</a></div>

</div>
<br class=3D""></div></body></html>=

--Apple-Mail=_8FF53D8C-B773-4459-801C-9822F7E96C97--


From nobody Tue Jul 11 17:29:22 2017
Return-Path: <liang.geng@hotmail.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 43F37131831 for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 17:29:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.106
X-Spam-Level: 
X-Spam-Status: No, score=-1.106 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FORGED_HOTMAIL_RCVD2=0.874, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_FREEMAIL_DOC_PDF=0.01, T_OBFU_PDF_ATTACH=0.01] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hotmail.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 JSuP_mCBb-5l for <quic@ietfa.amsl.com>; Tue, 11 Jul 2017 17:29:10 -0700 (PDT)
Received: from APC01-PU1-obe.outbound.protection.outlook.com (mail-oln040092254042.outbound.protection.outlook.com [40.92.254.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4BE28131825 for <quic@ietf.org>; Tue, 11 Jul 2017 17:29:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=gT9qPsnbMIngiwL/mYOJT5IT7HcxkgG5G3NUe/77E+Q=; b=UQho+aHZeqx3dWpV/s57NRq2PgCI3hYrNOe35a2VKm5/dDpcjU8p/4KRLVzxdC0Q7qjDcRoI5BrY5jTUvQn056jnhRQFnnCi4+eqGTDENFXO+DJn9bFK6HHKgY1YgkB/GDI7x5Ib/J7DIR0JahbPOt8QNcsfN78/ioDOf7qKwPktuGP62KM5gRQum8JZXSm74oRXs4FefIBO/0SiKxqHqteL8EsHDr5lKSG3EdT1hpmWi/cLjlgPV05Sfdi93IbAjD6vwXsJLBjgOOGpQjnLnNFXrb6tTkUZ2Mo0vwYB0Nnf7g4G9Frvgm3jl26kQfWlEyl5FI7oh4eCp3yWpn+e3Q==
Received: from PU1APC01FT043.eop-APC01.prod.protection.outlook.com (10.152.252.54) by PU1APC01HT157.eop-APC01.prod.protection.outlook.com (10.152.252.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1220.9; Wed, 12 Jul 2017 00:29:06 +0000
Received: from HK2PR06MB0913.apcprd06.prod.outlook.com (10.152.252.55) by PU1APC01FT043.mail.protection.outlook.com (10.152.253.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.9 via Frontend Transport; Wed, 12 Jul 2017 00:29:06 +0000
Received: from HK2PR06MB0913.apcprd06.prod.outlook.com ([fe80::698f:bcdb:b749:f1c4]) by HK2PR06MB0913.apcprd06.prod.outlook.com ([fe80::698f:bcdb:b749:f1c4%14]) with mapi id 15.01.1261.012; Wed, 12 Jul 2017 00:29:06 +0000
From: GENG Liang <liang.geng@hotmail.com>
To: quic <quic@ietf.org>
Subject: Interests of Using QUIC for 3GPP 5G Core Control Plane
Thread-Topic: Interests of Using QUIC for 3GPP 5G Core Control Plane
Thread-Index: AQHS+qXfG9GSk92hqE2tSD/y2hc5gA==
Date: Wed, 12 Jul 2017 00:29:06 +0000
Message-ID: <HK2PR06MB09134BAD122CA79EA6E1CF9987AF0@HK2PR06MB0913.apcprd06.prod.outlook.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=hotmail.com;
x-incomingtopheadermarker: OriginalChecksum:2C0F0366A6FA1505578EC88ED7689F930BF566EACF5742BEDB3937867C6F997C; UpperCasedChecksum:1C74645F99099A019877C0E22738814AA15C76C2815C708029B7D27D19E3556E; SizeAsReceived:7099; Count:43
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [aXNcIvtG2TY/DLyhT4kiBLapC+ZXfveY]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; PU1APC01HT157; 7:+y3Khp1Dl+BJM2oL/GxFcZGtFbHnEoOPD/1PfOFKYN/4fPeQubzvdH26p8rsG6PXSwHTJ9Qsf2jZz/W6AR9AfrsJUrrHUu+3f6n5syoD/18VBS32Vu3d0t0HTFPT/nqt3dkhoQxQQlzlXG/7nMcaADi5a9rWKKpcd03L1SVnA1qiawv3l8Xcec/h6y5pvC4qPRI6+K3LhbhtxdUpQdynReNGqmK0PH0HPcEqQntXFvXy82gK7bzJzlh7vAGhkqa2BoCQvEc3P83v0MbGOqFe60NBX67AlsXb5KemC5BdJ6JHweBjA2cg8lpYxAw7ey0wuDq3/dtAPlQuDsK4da7YrMgqfhvTgXlTf8ajGn+i7YTXHfPLIib86/13SL/13YUkdHb99UT1nzhHK6ygqYllxa1/PnGtrNMZBJlxUKxOhCmGmdqC7rF1p65MP0OJzKi9oXXPpZDYphGjsTdKyhfYRIq5GYTggUVyhfg8SgzBjwl5sV6gaVgrlEJBeHJhLaLyR7i68CdEjUcjqB7YkQV6JxrYjkHu447e5JnalYxH6yTV1XSJ0qkDw75r718yxSWSqdV6taYswRzVtnKP/LIZ/x9yrtRdkWIi5OEu76u1/gdgVeS4t7ZZazausKNqcXXfPuqoG4tlU6SKa6EK/VNDnX4H8xxcI3KBZ+3PEkXpK12ce1xhf4LI8WJ+4hWJ347AB7EyFyyX9e28aLPJpBbQixAvL6yA1OynqchtA73wrZ8OxALL3y5Zutbt0lEGM0C4K0D++eS+ZK3jcYrK8PkSeg==
x-incomingheadercount: 43
x-eopattributedmessage: 0
x-forefront-antispam-report: EFV:NLI; SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:PU1APC01HT157; H:HK2PR06MB0913.apcprd06.prod.outlook.com; FPR:; SPF:None; LANG:en; 
x-ms-office365-filtering-correlation-id: d5796a46-7fce-472e-b706-08d4c8bd0090
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322274)(1601125374)(1603101448)(1701031045)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:PU1APC01HT157; 
x-ms-traffictypediagnostic: PU1APC01HT157:
x-exchange-antispam-report-test: UriScan:(236129657087228)(92977632026198);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(444000031); SRVR:PU1APC01HT157; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:PU1APC01HT157; 
x-forefront-prvs: 036614DD9C
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/mixed; boundary="_004_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_"
MIME-Version: 1.0
X-OriginatorOrg: hotmail.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2017 00:29:06.6504 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Internet
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PU1APC01HT157
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/f__LSz2d2BYeQ6BA9B25nOi7eeI>
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: Wed, 12 Jul 2017 00:29:17 -0000

--_004_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_
Content-Type: multipart/alternative;
	boundary="_000_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_"

--_000_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Dear all,

We are proposing and promoting the use of QUIC for 3GPP SBA control plane. =
This results from various advantages of QUIC protocol, which align with the=
 3GPP requirements:

-Performance advantages including 0-RTT and Multiplexing
-Reliability advantages including ACK mechanism over UDP and etc.

We put together a set of sides to introduce the timeline of 3GPP work and w=
hat we think are important to be considered if QUIC could be potentially ad=
opted.

Although I fully understand that the WG session may be packed in IETF99, we=
 would really appreciate if a 5-10 mins could be allocated to us to present=
 this interest to all QUIC colleagues.

Any comments will be extremely welcome.

Best wishes
Liang

________________________________
Liang GENG
China Mobile Research Institute

--_000_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_
Content-Type: text/html; charset="us-ascii"
Content-ID: <ED0509DC70B77640A629D30059823A0A@apcprd06.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style>body { line-height: 1.5; }body { font-size: 10.5pt; font-family: Tah=
oma; color: rgb(0, 0, 0); line-height: 1.5; }</style>
</head>
<body>
<div><span></span>Dear all,</div>
<div><br>
</div>
<div>We are proposing and promoting the use of QUIC for 3GPP SBA control pl=
ane. This results from various advantages of QUIC protocol, which align wit=
h the 3GPP requirements:</div>
<div><br>
</div>
<div>-Performance advantages including 0-RTT and Multiplexing</div>
<div>-Reliability advantages including ACK mechanism over UDP and etc.</div=
>
<div><br>
</div>
<div>We put together a set of sides to introduce the timeline of 3GPP work =
and what we think are important to be considered if QUIC could be potential=
ly adopted.</div>
<div><br>
</div>
<div>Although I fully understand that the WG session may be packed in IETF9=
9, we would really appreciate if a 5-10 mins could be allocated to us to pr=
esent this interest to all QUIC colleagues.</div>
<div><br>
</div>
<div>Any comments will be extremely welcome.</div>
<div><br>
</div>
<div>Best wishes</div>
<div>Liang&nbsp;</div>
<div><br>
</div>
<hr style=3D"width: 210px; height: 1px;" color=3D"#b5c4df" size=3D"1" align=
=3D"left">
<div><span>Liang GENG
<div>China Mobile Research Institute</div>
</span></div>
</body>
</html>

--_000_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_--

--_004_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_
Content-Type: application/octet-stream; name="IETF-QUIC_v5.3.pdf"
Content-Description: IETF-QUIC_v5.3.pdf
Content-Disposition: attachment; filename="IETF-QUIC_v5.3.pdf"; size=248395;
	creation-date="Wed, 12 Jul 2017 00:29:06 GMT";
	modification-date="Wed, 12 Jul 2017 00:29:06 GMT"
Content-ID: <9EE14D9E116E0844AC6EE011DCAB958B@apcprd06.prod.outlook.com>
Content-Transfer-Encoding: base64

JVBERi0xLjUNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFu
Zyh6aC1DTikgL1N0cnVjdFRyZWVSb290IDQ3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4+
Pg0KZW5kb2JqDQoyIDAgb2JqDQo8PC9UeXBlL1BhZ2VzL0NvdW50IDYvS2lkc1sgMyAwIFIgMTEg
MCBSIDI5IDAgUiAzNiAwIFIgNDAgMCBSIDQyIDAgUl0gPj4NCmVuZG9iag0KMyAwIG9iag0KPDwv
VHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzUgNSAwIFIv
R1M4IDggMCBSPj4vRm9udDw8L0YxIDYgMCBSL0YyIDkgMCBSPj4vUHJvY1NldFsvUERGL1RleHQv
SW1hZ2VCL0ltYWdlQy9JbWFnZUldID4+L01lZGlhQm94WyAwIDAgNzIwIDU0MF0gL0NvbnRlbnRz
IDQgMCBSL0dyb3VwPDwvVHlwZS9Hcm91cC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0I+Pi9U
YWJzL1MvU3RydWN0UGFyZW50cyAwPj4NCmVuZG9iag0KNCAwIG9iag0KPDwvRmlsdGVyL0ZsYXRl
RGVjb2RlL0xlbmd0aCAzMDk+Pg0Kc3RyZWFtDQp4nK3QXWvCMBQG4PtA/sN72QpNT5J+gnhh/cAx
QWdlF2MXndau4FpW/f8sduKUyWTgXU5Okvc5gTtDt+tOk8kA1OuhP0jwyRmBBBFJpShEqAi+R2hy
zp47qDhzxwsfxY4zieJ0mAJJ2r84velwNucMw2kCnCVJ9zGrClh55SwX9lls+46kUMWgK7n91GSP
JJSHdHNIN9EwZeSLWELG5r5G+nEgFa0yapWEMWcvVvJeVhnsV6QPnA3T6zR1X5r2AhH/kh1B0/qt
tB1lbfMbKH1EbUpnNPk3SkHHIg4uXCEJP4D2PaGj1mUaQplWU/ysn1qlP8assZ3Aqve17Vmregvb
kWQt8m2+2pd1ZUrPSupqV64P0+RN9r3790ze3WdSUWj+WlMgdHBjpqxaY76cJFeMX67ApGQNCmVu
ZHN0cmVhbQ0KZW5kb2JqDQo1IDAgb2JqDQo8PC9UeXBlL0V4dEdTdGF0ZS9CTS9Ob3JtYWwvY2Eg
MT4+DQplbmRvYmoNCjYgMCBvYmoNCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL05hbWUv
RjEvQmFzZUZvbnQvQUJDREVFK0dhcmFtb25kL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9Gb250
RGVzY3JpcHRvciA3IDAgUi9GaXJzdENoYXIgMzIvTGFzdENoYXIgMTIyL1dpZHRocyAzNDYgMCBS
Pj4NCmVuZG9iag0KNyAwIG9iag0KPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9BQkNE
RUUrR2FyYW1vbmQvRmxhZ3MgMzIvSXRhbGljQW5nbGUgMC9Bc2NlbnQgODYyL0Rlc2NlbnQgLTI2
My9DYXBIZWlnaHQgNjU0L0F2Z1dpZHRoIDM4Ny9NYXhXaWR0aCAxMjAyL0ZvbnRXZWlnaHQgNDAw
L1hIZWlnaHQgMjUwL1N0ZW1WIDM4L0ZvbnRCQm94WyAtMTM5IC0yNjMgMTA2MyA2NTRdIC9Gb250
RmlsZTIgMzQ3IDAgUj4+DQplbmRvYmoNCjggMCBvYmoNCjw8L1R5cGUvRXh0R1N0YXRlL0JNL05v
cm1hbC9DQSAxPj4NCmVuZG9iag0KOSAwIG9iag0KPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5
cGUvTmFtZS9GMi9CYXNlRm9udC9BQkNERUUrR2FyYW1vbmQsQm9sZC9FbmNvZGluZy9XaW5BbnNp
RW5jb2RpbmcvRm9udERlc2NyaXB0b3IgMTAgMCBSL0ZpcnN0Q2hhciAzMi9MYXN0Q2hhciAxMjEv
V2lkdGhzIDM0OCAwIFI+Pg0KZW5kb2JqDQoxMCAwIG9iag0KPDwvVHlwZS9Gb250RGVzY3JpcHRv
ci9Gb250TmFtZS9BQkNERUUrR2FyYW1vbmQsQm9sZC9GbGFncyAzMi9JdGFsaWNBbmdsZSAwL0Fz
Y2VudCA4NjIvRGVzY2VudCAtMjYzL0NhcEhlaWdodCA2NTQvQXZnV2lkdGggNDIyL01heFdpZHRo
IDEzMTUvRm9udFdlaWdodCA3MDAvWEhlaWdodCAyNTAvU3RlbVYgNDIvRm9udEJCb3hbIC0xNDcg
LTI2MyAxMTY4IDY1NF0gL0ZvbnRGaWxlMiAzNDkgMCBSPj4NCmVuZG9iag0KMTEgMCBvYmoNCjw8
L1R5cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVzb3VyY2VzPDwvRXh0R1N0YXRlPDwvR1M1IDUgMCBS
L0dTOCA4IDAgUj4+L0ZvbnQ8PC9GMSA2IDAgUi9GMyAxMyAwIFIvRjIgOSAwIFIvRjQgMjQgMCBS
Pj4vWE9iamVjdDw8L0ltYWdlMTggMTggMCBSL0ltYWdlMjAgMjAgMCBSL0ltYWdlMjIgMjIgMCBS
Pj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdlQy9JbWFnZUldID4+L01lZGlhQm94WyAw
IDAgNzIwIDU0MF0gL0NvbnRlbnRzIDEyIDAgUi9Hcm91cDw8L1R5cGUvR3JvdXAvUy9UcmFuc3Bh
cmVuY3kvQ1MvRGV2aWNlUkdCPj4vVGFicy9TL1N0cnVjdFBhcmVudHMgMT4+DQplbmRvYmoNCjEy
IDAgb2JqDQo8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDE4OTA+Pg0Kc3RyZWFtDQp4nLVZ
SW8jNxa+C9B/4JEVjGnuZAGNBpLuxOggGXjaDnKI5+DI5SWxpR5JPUby6+d7XEplS1Z1RrEPkrg9
fm9/j2bHp+zNm+Mf3314z+Tbt+yb9+/Yf6YTyaSQUiqtZWBBS+asZMtuOvn5KzafTo5Pzhy7WU0n
it30m6VX0rgnu6+/mk7+NZ2wb398x9jgJnX8w+X8hvFufvTTWTO4NtFRMuiWyR33fnOOu79TzFoh
LTu/JgC4nSmmdBStYdZLYTU7fyBUNwloTEAlO5lOfuHndw/d/d28Y4vr5ghnOGuONHcn7G7OzMlp
Y/kpwwdr/s3Ov59Ovj3fjV8fhN8wbUXrn+A3URinmZJeOL/Bn2G/kTKGt/shmQNFug3Juz2QOKQF
UR1Ffnu5YiuS4vqyOTJ8CbkGvu6uGKS6Wl/OrzBt+fKKzRdYM5Y/XK7vGiX5fxts7NhjoxVfLH8X
7PQ2UVh1TNH3mBLsa3Ec9S6GL/jHRhve3ROvXUXaKMOVo8FF8w9aYY3jqyyKG4gCB5hJ8xf803Kx
XswW9xdNZs/xxztaur9P4187Mr3r5eLPbs5o5o6+HP++0Y5/hs1q2iyTbKL4Egm5IhQpgmaPJBkS
ibCtpSlj2EdwBr5/YxNrIzFtbCuMZmC9TGinRPTsfjo523GB30j9KItdSuNDCR7RKLVD/l4Ja7PI
Wysi88LQPUFA9DPcfPzh4fKmU5G9XzBwNaTdSrefNtDamEhHkLZMGeEj097S9IY4zmXiWxyFbY50
q9X+W4PEZfla48AGwlGEKCMhGFyqNxxthKUzaQ2R2B2kpXAgjA/69Ah6S1ikViQyAzuNpKogHQW9
PIamiIrxUeDC+82qgygsTZTT/fj25TgdD3IxxA73xMWEwR/szQGcAUQgKLFawPCSr6Ufyd+0bDxX
7YiJt6+D0LRBePVlEOMIRCVfB6OGiZOdfQnGMIbxsIz8IkalW4EKgjCGMYx+DKPuw1nbktu0ipwi
OpecIl9hAiIAOUUdRiENBfaYPMRgEcZnffk9g38oIIxlHIzoD5XfqmxLIwSSgIKoHHHthlz6jX31
qryWQeRTQ4Cz3u222TSFzVRbaYX4Cwpe6MRWGQe4emAa4a3NeLGqFRK1raMZ7W2F8v0y/F5vjpZR
JkybywRww/DrUWeHlPMoUc4X1+WEqZ4cAN7Hpi1sEiBFQmoLi3UiOAJqQrrDRJW+gqd0VEYz2txS
aK/L+PL9yTzIdGlrGevk2eUc0s6AbB4lsvnWulwglqNDwPtYdL0mKTWQkboinSBkCt1lDOMKCItV
nS2tuqrONJrR3qLOvFzVmY9WdYa6uU4g3TtWjzo3pJxHiXJRZ1nOGMvJAeB9vPqh1XrkvjDUaZ3I
mvFOUmosSvPIRHaoU+883dYvRzE4mQa96Os4Kaaey0qrZHud1lvLcoWYjz4BvI/P8DqB0kOPUu0P
lIwqEosq6XxGMRNRcyRgxj5g2lSUueDxqU0JmJ6QGBmozlPWk71YRXZSW7dtioelW+SDrcYtwLLI
NI0WOhfdyYJUzgzoIc7Wn5Edrqje/WO0Lzss1e7Cp1DRUaDYje/0NvU8qcVZdbkmV4o/op8Zg6r+
Kjqb0Pln8FTyWYMvY5/De0PF+EjfqA/rZdVOUMj6FCF3guIflR2Tjfl7ZINuYK9s4phsbO9A5KVw
IEduFIsDaRXJZ3SLCgAAEIrgXxRk4ssepN2h4tZPeKT+TKOWNigxdnnPp9JTo9msbfUjtZEwUHoD
cZyN+pQ/GLFAe/MUNeKMQ7TTEOwW6q+Xs9u7dTdbf17C8dEUR35JkOdXbIXff6zQJa+7h1Hch0Xq
HZIOlGkN2iko+Dlo9PazjlBefV527Cr9JKHf3czHcNYorVFzIAtrl1KRCjKl7FRHvWxOBwfkZ0y2
qTnUUdIzwP9lTx+gnvm6W9Ig7SW5uNG3CnNw6H7KidGGHhQ06vF2m5PTBlF7sQZEepBJbFx1q3Fl
mUNfLrcTjDUxBUt8ubD16lQef8QYrk1vFLxLMapNDwYxRSoLf6Nc39eddSJXj9aik1S1srQoBYIf
FJ7WolbeLCPiuM3RMuoLxH4ilY/1aK4sK+W+8KwX1+WCshwdYt5TkpmaLSwaHT+srutEgQqjjj0X
1O7pIZPRk2b65Zhr7XIyjzZM1omMtBwtXBTKGybzvWW1YswnnyDex+Ohj53bdudkm5QBuwt2y+6+
a5SHh5Br/9nNqbxBYdPy9d1DN+rJB6e4F7GiqWm3sV4v0gszo0flr8/+2XjLBQFXY0Brz4JMjiIP
wBV5Yuqyaay1Fd689PZp6lPhhDoNRxqX5ekhj7X29N760vG4aQ5FcKY0iNalx1oNM6TnSyotIr1U
A9eLScD8/VW5RbJrW+SB9Cr7XODr25Tf2OktVb5uU/m2XLPmyPPHRntOz/2a/57Ukv7dYnSujt0J
vaUbrvxFM/bGf3BWcM8f+bWBlgMkjMZv+5X/o0L6cmOoXiELhPQkalrqWZ+DOoN8W/6psZLvSgT/
A/BMl3kNCmVuZHN0cmVhbQ0KZW5kb2JqDQoxMyAwIG9iag0KPDwvVHlwZS9Gb250L1N1YnR5cGUv
VHlwZTAvQmFzZUZvbnQvQXJpYWwvRW5jb2RpbmcvSWRlbnRpdHktSC9EZXNjZW5kYW50Rm9udHMg
MTQgMCBSL1RvVW5pY29kZSAzNTAgMCBSPj4NCmVuZG9iag0KMTQgMCBvYmoNClsgMTUgMCBSXSAN
CmVuZG9iag0KMTUgMCBvYmoNCjw8L0Jhc2VGb250L0FyaWFsL1N1YnR5cGUvQ0lERm9udFR5cGUy
L1R5cGUvRm9udC9DSURUb0dJRE1hcC9JZGVudGl0eS9EVyAxMDAwL0NJRFN5c3RlbUluZm8gMTYg
MCBSL0ZvbnREZXNjcmlwdG9yIDE3IDAgUi9XIDM1MiAwIFI+Pg0KZW5kb2JqDQoxNiAwIG9iag0K
PDwvT3JkZXJpbmcoSWRlbnRpdHkpIC9SZWdpc3RyeShBZG9iZSkgL1N1cHBsZW1lbnQgMD4+DQpl
bmRvYmoNCjE3IDAgb2JqDQo8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL0FyaWFsL0Zs
YWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDkwNS9EZXNjZW50IC0yMTAvQ2FwSGVpZ2h0IDcy
OC9BdmdXaWR0aCA0NDEvTWF4V2lkdGggMjY2NS9Gb250V2VpZ2h0IDQwMC9YSGVpZ2h0IDI1MC9M
ZWFkaW5nIDMzL1N0ZW1WIDQ0L0ZvbnRCQm94WyAtNjY1IC0yMTAgMjAwMCA3MjhdIC9Gb250Rmls
ZTIgMzUxIDAgUj4+DQplbmRvYmoNCjE4IDAgb2JqDQo8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9J
bWFnZS9XaWR0aCA4Ni9IZWlnaHQgMTMyL0NvbG9yU3BhY2UvRGV2aWNlUkdCL0JpdHNQZXJDb21w
b25lbnQgOC9JbnRlcnBvbGF0ZSBmYWxzZS9TTWFzayAxOSAwIFIvRmlsdGVyL0ZsYXRlRGVjb2Rl
L0xlbmd0aCA1NT4+DQpzdHJlYW0NCnic7cEBAQAAAIIg/69uSEABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADvBoUIAAENCmVuZHN0cmVhbQ0KZW5kb2JqDQoxOSAwIG9iag0KPDwvVHlw
ZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggODYvSGVpZ2h0IDEzMi9Db2xvclNwYWNlL0Rl
dmljZUdyYXkvTWF0dGVbIDAgMCAwXSAvQml0c1BlckNvbXBvbmVudCA4L0ludGVycG9sYXRlIGZh
bHNlL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNTA0OT4+DQpzdHJlYW0NCnic7VppV+LKFr2K
zHMIIQkhhHkeZBIBERGZQUBEQBC1+/7/v/DOqYAT2Ld7rfvlrvXqQzeYsHPq1Bn2rspff/2nx5E8
/l3I42PFyYlCcfwv4h4dK5QqDQyVEnB/ywow4/j4V3ODO07UOqPZarUYdeqT34A9wokplTC5728+
Uii1RsrhdLmcDsqg+UdYxFRpdDA0qm9vBlCdmRH90Xg86hfspn+ChZmptAYLRdOUxaBRKg7eDDdp
Lawnlj2vVM4zEbfdCE74Nahab2F4UZJEnjZplQdtOFKoTYw3Ubxq93qtWiEq0nrV4efvQDVGG+8N
x1OpeNDNmA9O7ehYqbOJsWJjcDebTXpX+bDTov3eWAQ12cVgqlCuXpSyUQmmdsAGNJUN5urD2XK9
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
jKdEeEwE80JVqANY9A+NUWF6CxSgdGZkrxAOgG398F6Q/I4DxCXGAMYKzs9G7QagoNQk4WoGCAxh
HQa1EcIJbHmLXIijD5RBzgI1OWwjIU6GHNZ6A8kDtQqyDuJZhyqBJBzcTF75kxOL5JYW3wB857By
xpKklhNPzj41+TUZJ4S2Kt+TXk78z1/lyvGBLx99Li67oVB8Kl54w/HHofj0HX6t+EwZvxa7DzXw
Qy38h/EtETlUrX9//Ce5zf8AHfuVwQ0KZW5kc3RyZWFtDQplbmRvYmoNCjIwIDAgb2JqDQo8PC9U
eXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxMzcvSGVpZ2h0IDgwL0NvbG9yU3BhY2Uv
RGV2aWNlUkdCL0JpdHNQZXJDb21wb25lbnQgOC9JbnRlcnBvbGF0ZSBmYWxzZS9TTWFzayAyMSAw
IFIvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxOTI0Pj4NCnN0cmVhbQ0KeJztXctvG0Ucnn14
H/Ej9nqLnZTEzqtKokAagbhUoPYSqQq0RaqEhDhy4tADSKh3DtyoBFIvcOA/QKL8gXz1SKvRrnc8
Oy+vk/lkRc56PPOb33ueJkQP4jjOsqzb7ZaeB0EQhqGmRhwawPf9dZOweeh0OoZq9jzPUM2bCzgH
8cJOn+2Auus2cNuZTAEXQzcLMJ9Ce5MkKX1a+D37Go48LYqi0Wh0B42LCgIhvrCmargv2IKPSixq
FK1KiBbgFJhOp/4CtNh0OtGSitA61esxBHB4OBzirwSR+BbLIhPdRBNLpZbn+f7+/kZbUB3x3gJE
Bz9hboWhyfEKNNQFPjyvo7C3gERzrQXtKbRdxQWVKgSLFEUskZNQgxJUhhY6LpbyYIFqcNfSirpv
KdVQnZmpAt0R5Lle16fdkWphYB2g9kXcUWklXEC8ML+AOWNRr7nUU3NzLMRuRg17ybIsTVNrLS5F
tcvs6IMPVpnpv1tbWzqJWwfQ/b29vVuWAxDDus0fnmgBNA3Gsr29bbohQRjlp8bK+/2+rqqWAlY/
Ho+NNmEOMPMiB4N2ieQ5GjEajQzVDCcGe7GQA9PRt4i6coZjCIVgPgTBjlDwpAgucC9sqmwhTO/u
7mqvM4mTujkBE4jjGOqNv6XnVa3g5IeQgng+jK6x+QykaSJbGw6HWuqhnAGR77UrXj0QozYl0VCh
uivZuFI0bIH5fC5BDEWxsK7RlLR4G0pPoyiPrwwGg6ZaQRsy5Emurq7UK6HTLGz4luawohnKtQvi
xaMDBbyH6ZjV1GqSBeh7dvIfbxAjFIdvNifYIQXQTP+SJrMcKKZr5pAPiTSS7UJpem06naqEWpWR
bFN2wcbRXEE/Z3aahXQ8sgM2cpWSEHxEV6ysE9XY4UOFWDrXMsNpAoiY9E3VutlNd3YMXxHQJZHo
X7i+loNVnuoIEV0QXzVAYS0TJkb1GTpmeo5CI1jmV71B8YTvmTUuMRj1onzz12tN6h0pWLp0lF3y
5HWtm1B17UN+/tyO0QUsdSDV4YxqS++tZcgg6ebmhmxC7GahHqDBXkH3Szmzxr0r1KkiokkQUFqr
sgD15thNShDTZDIpPsK/eZ4XeXVLlBZpWLxAI7VsCfHiAPORBnDkK75NxSZoqn98fNzmYaM6+JzH
wKe1gxroleA0Zgt3NzUC6GenzqqDlBaaDyJIMWrWAkNCVK+2tHt5I0bNhpbV9Oqh+vpyKY2Jos3w
5Hw2Vtco7UPLgm9rIwsHfHchlyposZqCMGQs6rUhYVv7XrtGWOnG5VYomm5sq1thociyDMarOEiv
zle0Ob0ppS51ZSRq1rIdiHVBdO2VBh127XIl6FwZXS5UJ8kaoI0i/kpi131TW2vEN7rDmS73c2SE
5LOzgB3rqHJSOg+EOglGxtKxrHWhummBz/OVEmm0C4IP1FP1P02ZRp1Y05zZaJ7G4eHS3rXNNYlY
5UoLgpnQCQqJ3ol/hbPBoGm74uVRsup4LQixehR3KejR5uL0In0DRmlZmqR+W7GSqvWtxQTY87aK
BIh/HRaBEEznXYuNwbpGWyZO4TmIQDCTQQarEnoaaamc77UJ+5MMK6cIYEHVDEdkpNlCVrdfAVjQ
c8T8MhBNUUZjIuqwEi2/QMNBGrpyhmIoJ7jpVw5rN3m5rqmT/WGQfDuYfxz0T730NEjPwu6pnx6T
eEbiUUc0ozAqGi1Yu3zlMPXil+G9Xzuz35PDt70Hb5LDV+HOl8H4rN+W86Q2T2fYaUgcISETEs5I
Z06ifRINSNA2ElvINEMYhNFRd1t9Gd4NdU3gftz7Kd572Z1ekvQy6J1Fg9NocBH2H3rdh97WmZeO
gqjXaRHn747hAOjqV6T/2t95mxz/NTj/e/ujP7vnf4SHv4T7Xwf52Ld0HFsQd0o0FBkJHpDkC39w
7W9/5vUPSfwBCRvF3fWOam+TyJb2xF+8Ngu3L9LthOnT7uQoSLvEi5YJBI8S4qXE2yLBwI9uj1K2
HmD1hZd+H0xek+kP0c7n4eCSJPR1RZJPSPo0GL0Kd7/x8k/DYR6m/nI7czAC2MUOCZ95w986B//6
x+/IwX/vX/N3ZPaPN38Tzb/z752StE82YJvrrQSMYUSCExK/iPIfg92fg/vPOtkh6eRkE3YeOzg4
ODg4ODg4ODg4ODg4ONxVtHzPDAuWVK/J70mpH5FjL63ifNoU1U2hbFXab9FXYQLnhGkcx+zJO/FW
6PkmwWvJ6d2b1bP5vV7v8ePHjx49qh7bkb5iC9+yfNmdOJ2cIyr8i3zBn9lshn6tXHRDSemLGtgv
5nl+c3Pz5MmTqtTw0cHBgUT96KDNX5c4Ojo6OTkRLFzHWPobUhx/BSuYTCYii6FN7yyiHoZaGXsg
Mcuyy8vLi4uLElUodn5+/vz5c4lz63WiMfSzfaAfqiV4cKxOn+tu8qEnWSjT0CnKRsUgUopfsEQY
GgRRKgbTuL6+hk9jaaZ2jfLiP+BVatqa1dDTweIcWyoajgem5eU2k5TaQiVwTePxuPS87tp5CAvl
q5Xwr1+AXXOulEF5azerNOVYnaZxfpYR9vI/mopWGA0KZW5kc3RyZWFtDQplbmRvYmoNCjIxIDAg
b2JqDQo8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxMzcvSGVpZ2h0IDgwL0Nv
bG9yU3BhY2UvRGV2aWNlR3JheS9NYXR0ZVsgMCAwIDBdIC9CaXRzUGVyQ29tcG9uZW50IDgvSW50
ZXJwb2xhdGUgZmFsc2UvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzMjM1Pj4NCnN0cmVhbQ0K
eJztWmlUFMcW7hlm2HcFZBPZFBCXhwgGQRFRUAkuoIkbIgZJoqCCQTTGJS4kRwwhKpJIUAF5IgpJ
VBATwlODQVRUFhMERLbIMuzbMF0/XnX3LN3T3YNEc/LH7xxmirq1fF331q17qwdBaOAqa5mZT4wp
BxgEURZGqkr0Rn8fXGUJOIobai/YlTEEZECrjyyb+KZYaNjY+8Z8RmC313iegqYWR5+SaWAYri0M
NH4DLLgzg/f/fOdPoWTYisvh41gbT8zvBXSgzUkmr0tDefP1yvYeEXlYYVfhUpbW+ikMNHAkj3kN
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
Ky4PW8SkeOucOBjFaOzcZKTzY1F97XSJYhK/17FbJCPi3TyFG9o5A5YOA3AMfvE+Gwat63mMRJqj
ck5VsxDBXiO0r+XJEUFcKrNKMRVrHPxxxQf301Jzv9YVa2ZP3qaTKTiR+OWwzvHhlyF511QJIkXw
a9LDa6k3SrFfsP110V+XSqRxoU1aFXbdv7GFRsTg4fXUq3cs5YloJ7wMxkxSY2/8Wr9wLS2XXZI8
yTjoeiumU72Yu0+gTpXcU4t2YbpFIpPXT4JflntNtCbswDKYg/k3bcWd9JKwN7nj4qYiYzdis8w+
gu+0kA24dDlmbbqfmGpZbcN++GZ/EL8oD8TfZCCWJ3DO/Pdvtf0fE2SKUg0KZW5kc3RyZWFtDQpl
bmRvYmoNCjIyIDAgb2JqDQo8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA5ODAv
SGVpZ2h0IDUwL0NvbG9yU3BhY2UvRGV2aWNlUkdCL0JpdHNQZXJDb21wb25lbnQgOC9JbnRlcnBv
bGF0ZSBmYWxzZS9TTWFzayAyMyAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxNjU+Pg0K
c3RyZWFtDQp4nO3BAQ0AAADCoPdPbQ8HFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBj5W
AAENCmVuZHN0cmVhbQ0KZW5kb2JqDQoyMyAwIG9iag0KPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUv
SW1hZ2UvV2lkdGggOTgwL0hlaWdodCA1MC9Db2xvclNwYWNlL0RldmljZUdyYXkvTWF0dGVbIDAg
MCAwXSAvQml0c1BlckNvbXBvbmVudCA4L0ludGVycG9sYXRlIGZhbHNlL0ZpbHRlci9GbGF0ZURl
Y29kZS9MZW5ndGggNTEyPj4NCnN0cmVhbQ0KeJzt3V9vEkEUhvGdXXYBSwMLFTSNoaFCG2lNtAmp
lprapDbGldCAsH7/L2L/eMMyp4lX5t08v08wN09OZubiBAGAsnEA5DyXdFiJEwBK4ig0q3ZRrdFK
2wB0pM2damRE7cJauj8YjgDoeHvwulU3onaVxv54Mr0EoONicnrQMaJ2cWswuclmAHRk368+Dvb8
UbskHV5kixUAHb8WP6/PjKhd0h5dzlb5bwAy8vXSjPpv0//7iAD+SW5GTdOAJDNqmgY0WVHTNCDK
iJqmAVX+qGkakOWNmqYBXb6oaRoQ5omapgFl21HTNCBtK2qaBrQVo6ZpQFwhapoG1G1GTdOAvKeo
O7XHqGka0PcQ9Yd+MwlpGiiH9eLH9Lhbp2mgJPJl9uVd7/FGTdOAvnw1/zY5bFeZ00Ap5Ku720/H
vZ0Kb2RAGTwl/Wo3DvnLAkpgM2maBsQVkqZpQFsxaZoGpG0lTdOAsu2kaRoQ5kmapgFdvqRpGpDl
TZqmAVX+pGkaEGUkTdOAJitpmgYkmUmzUx5QZCd933Q6nGbLNQAhy7mVdODi1uH57Wx+B0DGPLs5
N5K+b3r3zfvPV9cAdHydno2MpAMX1Tv9o/HJKQAVJ+Oj/suGP+mHQf2itdftAZDR7XaadSvpwIVR
Uq0BUFKNN/bIF6t2IQAt7pmkAZTIH+XBKUINCmVuZHN0cmVhbQ0KZW5kb2JqDQoyNCAwIG9iag0K
PDwvVHlwZS9Gb250L1N1YnR5cGUvVHlwZTAvQmFzZUZvbnQvQUJDREVFK+W+rui9r+mbhem7kS9F
bmNvZGluZy9JZGVudGl0eS1IL0Rlc2NlbmRhbnRGb250cyAyNSAwIFIvVG9Vbmljb2RlIDM1MyAw
IFI+Pg0KZW5kb2JqDQoyNSAwIG9iag0KWyAyNiAwIFJdIA0KZW5kb2JqDQoyNiAwIG9iag0KPDwv
QmFzZUZvbnQvQUJDREVFK+W+rui9r+mbhem7kS9TdWJ0eXBlL0NJREZvbnRUeXBlMi9UeXBlL0Zv
bnQvQ0lEVG9HSURNYXAvSWRlbnRpdHkvRFcgMTAwMC9DSURTeXN0ZW1JbmZvIDI3IDAgUi9Gb250
RGVzY3JpcHRvciAyOCAwIFIvVyAzNTUgMCBSPj4NCmVuZG9iag0KMjcgMCBvYmoNCjw8L09yZGVy
aW5nKElkZW50aXR5KSAvUmVnaXN0cnkoQWRvYmUpIC9TdXBwbGVtZW50IDA+Pg0KZW5kb2JqDQoy
OCAwIG9iag0KPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9BQkNERUUr5b6u6L2v6ZuF
6buRL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDEwNTgvRGVzY2VudCAtMjUzL0NhcEhl
aWdodCA4MTIvQXZnV2lkdGggNDgyL01heFdpZHRoIDE0MjgvRm9udFdlaWdodCA0MDAvWEhlaWdo
dCAyNTAvU3RlbVYgNDgvRm9udEJCb3hbIC0xNTggLTI1MyAxMjcwIDgxMl0gL0ZvbnRGaWxlMiAz
NTQgMCBSPj4NCmVuZG9iag0KMjkgMCBvYmoNCjw8L1R5cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVz
b3VyY2VzPDwvRXh0R1N0YXRlPDwvR1M1IDUgMCBSL0dTOCA4IDAgUj4+L0ZvbnQ8PC9GMiA5IDAg
Ui9GMyAxMyAwIFIvRjEgNiAwIFI+Pi9YT2JqZWN0PDwvTWV0YTMxIDMxIDAgUj4+L1Byb2NTZXRb
L1BERi9UZXh0L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDcyMCA1NDBd
IC9Db250ZW50cyAzMCAwIFIvR3JvdXA8PC9UeXBlL0dyb3VwL1MvVHJhbnNwYXJlbmN5L0NTL0Rl
dmljZVJHQj4+L1RhYnMvUy9TdHJ1Y3RQYXJlbnRzIDI+Pg0KZW5kb2JqDQozMCAwIG9iag0KPDwv
RmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA4Nzk+Pg0Kc3RyZWFtDQp4nLWXTW/bOBCG7wb8H+ZI
FWuaww9RAoIArdMGXWyABHWxh0UPqq04AhwlldQu9t/vDKV1440UFbV6ESxTIp93ZviOCMtrODtb
Xq3eX4A6P4c3Fyv4Mp8pUFIphVorD14rcFZBlc9nf76Ccj5bXn5wsKvnM4Td4WEVozLu6OnbV/PZ
zXwGb69WAE9WwuUfWbkDkZeLjx+iJ8uGeVB5nYLqWffNmtZ+p8FaqSysbxmAVgcETJ30HmwcS5XA
+p6pdgE0CaAKLuezv4S7hNfV5q5o8k3ztYoWqEQOEaKA6BOsf5/P3q77ifVJxAYwOcJlARgDGpSJ
+Y7bUp4plfjzl3nMSTz4fx6PL/AIc3l9DdHCi21+GzlRlHlNt0ZsIiseooUVJV+ain47sad4puKR
/9lnNKBFTo9BZETGbzlR5xR448W3gubiKfKR2NtptRrjpNVDWhcjMG5iGEuRHwz8Zw5fVudbOVaf
8a+pT+Vkij9Tn/7X1Gcvz/f6XK1hRyHzogpl+ZWKLhQiFV4isiofi2IyLbXWRmo9RM10YX9seYNU
Y2zpxGxx8gJbc8dh+2/jFmWEWnyLdLuX66agKCNFtCkeWEBQwQ+Gu1sa0yndk7kez/PIw5waI5qQ
oM5AtNhThtDTq90cVXj7MBwWaNqkHvxFs7/kDCWDG91EhPTx/Sos9nIsUZ0cTKm07SvRxEqD+llA
ixo4Fq6LRSud7dGIbbHNmvB3xqLqUfjTumcvvFYo00F4JjcdOSe1asHrR74+kJtTDhoaiikjfP0n
anM+WtN4WlvtlWKMkcmglMe2iKj8uva1l2OMp7XaIWt1iTRx8jPWihP3w65w+4HEuwhdZ6f3nO7R
lE7cIBGttMkQ3equKLPWfUawTmuQz7FixR+aA1hXweNC9y72kTs2wOBoRUkbRuNzxwxfRfz833Tn
xW+jwibutAad1IPVcOSxLKOGLvx0eWLv90VdEBSbc53vOzvg/UYdo2QbHJU1cSt2RsnUDcnKxk13
4vbrbCqtGeI5bput37rgt11D5KNLGjzXBc91P+65+vTe12cfJpa+R0lAPnjuwnWm27aSQ8Nn7E3k
f+wwoa0Y82yNnazDQZX0LVqBSjs6KIbf2lq0PUoTGcfogz4jPUtLLO34BDakbnmVN5lBuHiAmycn
4cDwLyRKMY8NCmVuZHN0cmVhbQ0KZW5kb2JqDQozMSAwIG9iag0KPDwvVHlwZS9YT2JqZWN0L1N1
YnR5cGUvRm9ybS9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzggOCAwIFI+Pi9Gb250PDwvRjUg
MzIgMCBSL0Y2IDM0IDAgUj4+Pj4vQkJveFsgMCAwIDMwOC45OCAxNDAuNDhdIC9NYXRyaXhbIDAu
MjMzMDIgMCAwIDAuNTEyNTIgMCAwXSAvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxNjg1Pj4N
CnN0cmVhbQ0KeJzdWUmPXDUQvrc0/+EdO0gY78sRyCIhEUWZ4ZYLapKgKINQIsTf56sq2+23dL8M
xw5SmirX8tmuzS9m+nh3ME5lYyandPR2ckF55yZrlI3Tl/d3hw/f3R20SmH69+7ww6v7PH38Csb0
6u4wmemXCX99mvZs3N8dfnqA+sswaWXoz/Tw4e6Q7KTxH35sVKbEyUCj+OnhkTwA2vG3Zw+fyL3O
2nqSfngO7gvmvoBFQ1I5QstMVkXr0xScMmGBf0ekwjvDMdqoBDha5RAGOO+O3fNSwStvR4Xj24ui
ZWH7+O7ZJVljl2Z/3DyR1/MTMbko7LNu12sV4/JErousTsRqINk4ke0LenNhPxb7iWW2n5dz5NZF
5dJkAMV4CgsXQHkV3Rn6jswau8fleMhHhOeAffsoF4CMQTCXKQEyubKWPJk0wLkqsQ4tU1RxU4JO
3gfza+OWnEq6BDE6FQAAt4eDsEHhbFcgr8usYcasXCSYxY8Jed8ARZOQqU+CibSjHLeItTBc2xzn
jtAGULjFD7aEknMG+mYT6M+Nm7zR+RLQYiReOL5qMVsB3RFaAy1FZQGa3W4GPb8SDudkQcxZ33IY
WYHgWub5jsw6WbJVwa0TfRvQue7AiyslU5dAgqLKw4ZDsIXpsQOtjM/sVnbgqfBPWfngA360xl0W
RGopfQvSOeKlziEWVnhfXypBQS/kj3HYhPS5Q8ABeQasQ6YdUPGgfKAkH/DnjERKdP0R2Qy54lWh
ahqiITkUWY3a4DPiwjLDqoQi5HESSJTPSwtg/HnedUg4bk/CSKvp+/pbuRk/CGyXVMj54savmii4
FZR9TxkktehoFqmgE9/kstTOU2FHaLf7U5ujmFumxuvNmHv7LTkck6JopDqCc74AfE9olRzJIY0Y
Z4y7OF/0CpRyMmucLaasV8kvgkwHX8Ps4IuKkkw1FHNQyZnGqFLGFS5H6HSOTSE8Sqj0ELAmFOrA
+Mti5/8n4aoFXJle39XGCIPGMxM/upnklahwhlqWp5lQNC/6QBLg3AZJO5yyDDo4rmITH02yCuc3
pPLCGoZF1HKPmAx7josF9Jmon8checHlou8GjE8Xesme0DoO0ZwdFDBtOLs7RGx3mO1OPoQnen+i
kMIsjFpBVTx4asqVUQMvO5VsaDlE4VkZMyla7hWCI51pDJXadJmI7QQRYplKw5CUShJCycqGJmK4
s1xwhUFJgbLe3WWZMxv0yqCb9aFLpaQQEmdblZHDOWnm5w5ESHxcugtmjIzl2f7euL44Exv3n8YN
gUp+5X7tss72a/hw5Z2BAZM2XcLTETx2WTzT4q4zzGJoLRh0rM7XnG1u4Ym+fKCRxBiKiyuu/t48
w9Pmbi8fIiJMHmImXnP216azL43rkkZN23FGczfPU5mq0JOdvd/Z2cFqZEnmrOEBpNH0XksX6htm
EMtHffVWt8P1j03u4wAIDSuEsWxUBiPcAoSZEOE80Rgxr/TfFtTnw2hfA4qWghQ4qzvDUNlHcgdd
mELVo2KVU6NOPJ/pGPoyPYtLV20UWybhysCTLkG4qoJCT2iWhTpx22bHdbmCqqozzKc+BN7MZmj8
sA5lU152MqI0Bh5SRkDSww+ORcq6Rp3oGY452fRlkziDq2qj2DILCwN4MgmLKihrumWhSLg6bssC
qqrOMA/3ciuboXuJRcDgumQ+agzD4jHTFbNhXDg6oCuNIocRM0E6LzvuqE21Umz5JB8qrIRRImFR
pRgK3bJQLCyO23Jp+2bVEfN4LzeymXsq5KWB8VJHG8PSCICWLHiswruRqj7XWKZOJOzpLdWXHY00
XbVSbJmFK0O+AjZV/rDSLTPFwrkdBC9XUFV1xDzcy61shu4l2GYxy1RcaUzvGb3MjODQ+pJpFPnz
iUOrLUd64TTVRpHhk3wbqTRhq5qIGZe7YaFIuPqty2eMpDoiHi/lFnaCGyl42qVEfcdETvozo/hC
43rIhr6XBPnmkQGxUif+RGPweKwM/NQWBs1OkF0SFToAGH6qHr3eSzcrFGSb17pcEYnqHPBwIzex
E+opjv+1AEL4Py7DnVGo/uFlryNpBU9hgZv2jeImlugzS1/mb+pNtVNk+STfTIjhYYOERRXzCguL
ZaFIuDquyxVUVZ1hHnvKjWyG7gVDnufLs06+OFVGRHYhCVNRmqlIVRKvYTS+SpHDFGhy6MueZo+u
KpRYZmFheOVZWFTxoGRhsSwUC4vjulxBVdUZ5vFebmQzuJf/AP96edkNCmVuZHN0cmVhbQ0KZW5k
b2JqDQozMiAwIG9iag0KPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvTmFtZS9GNS9CYXNl
Rm9udC9UaW1lcyMyME5ldyMyMFJvbWFuL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9Gb250RGVz
Y3JpcHRvciAzMyAwIFIvRmlyc3RDaGFyIDQwL0xhc3RDaGFyIDExNy9XaWR0aHMgMzU2IDAgUj4+
DQplbmRvYmoNCjMzIDAgb2JqDQo8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL1RpbWVz
IzIwTmV3IzIwUm9tYW4vRmxhZ3MgMzIvSXRhbGljQW5nbGUgMC9Bc2NlbnQgODkxL0Rlc2NlbnQg
LTIxNi9DYXBIZWlnaHQgNjkzL0F2Z1dpZHRoIDQwMS9NYXhXaWR0aCAyNTY4L0ZvbnRXZWlnaHQg
NDAwL1hIZWlnaHQgMjUwL0xlYWRpbmcgNDIvU3RlbVYgNDAvRm9udEJCb3hbIC01NjggLTIxNiAy
MDAwIDY5M10gPj4NCmVuZG9iag0KMzQgMCBvYmoNCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVU
eXBlL05hbWUvRjYvQmFzZUZvbnQvQUJDREVFK1NJTVNVTi9FbmNvZGluZy9XaW5BbnNpRW5jb2Rp
bmcvRm9udERlc2NyaXB0b3IgMzUgMCBSL0ZpcnN0Q2hhciA0OS9MYXN0Q2hhciA3OC9XaWR0aHMg
MzU3IDAgUj4+DQplbmRvYmoNCjM1IDAgb2JqDQo8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnRO
YW1lL0FCQ0RFRStTSU1TVU4vRmxhZ3MgMzIvSXRhbGljQW5nbGUgMC9Bc2NlbnQgODU5L0Rlc2Nl
bnQgLTE0MS9DYXBIZWlnaHQgODU5L0F2Z1dpZHRoIDUwMC9NYXhXaWR0aCAxMDA4L0ZvbnRXZWln
aHQgNDAwL1hIZWlnaHQgMjUwL0xlYWRpbmcgMTQxL1N0ZW1WIDUwL0ZvbnRCQm94WyAtOCAtMTQx
IDEwMDAgODU5XSAvRm9udEZpbGUyIDM1OCAwIFI+Pg0KZW5kb2JqDQozNiAwIG9iag0KPDwvVHlw
ZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzUgNSAwIFIvR1M4
IDggMCBSL0dTMzggMzggMCBSL0dTMzkgMzkgMCBSPj4vRm9udDw8L0YyIDkgMCBSL0YxIDYgMCBS
Pj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdlQy9JbWFnZUldID4+L01lZGlhQm94WyAw
IDAgNzIwIDU0MF0gL0NvbnRlbnRzIDM3IDAgUi9Hcm91cDw8L1R5cGUvR3JvdXAvUy9UcmFuc3Bh
cmVuY3kvQ1MvRGV2aWNlUkdCPj4vVGFicy9TL1N0cnVjdFBhcmVudHMgMz4+DQplbmRvYmoNCjM3
IDAgb2JqDQo8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDE2MTk+Pg0Kc3RyZWFtDQp4nNVZ
S2/bRhC+C9B/2OMygNb75hIIAiR2GqSN2zwU5BD0wEi0rJaiHIlJmn/fmV2KEi1R61q69EJnyNHu
N+9HyMVb8vTpxfXl6yvCnz0jL64uydfhgBPOOOdCSp6SVHJiNCerYjj49IRUw8HFqw+GzNbDgSCz
lplbwZXpcN88GQ7eDQfk5fUlITs3iYs3eTUjtKhGHz8kO9f6cwRPZUb4gXtfjOHuXyTRmnFNxjcI
AG4nggipmEiJtpZxR8YLRDXzQJ0Hysmr4eAzHSejjN4WJNE0n35PpKJ5VefJSAo6K9YkcXR5k4yE
0ZQkhr77+Poy+ZOMfx0OXo4PSyIb8JwpgMIMt/BMtSAruD1V8E+SCqYtAUQ208zKhi5b2ghmd2kN
B0hDrDMstUQJ5iyxqWZONsRkODCKZbohyw3ZHhRIK5nJDP5x3DS37iKCY26DiSRq8weqX0qUxBoU
BYR4D0oD5f5F/heifDhgH3WSp4Ffua6bccGkINowp72X+QAQwbk+JamjRYK+o+gXcCpPlHPwJPwH
uJtsPo+Epe8S4Sg6WOCfrwn6IX6U9A4fq2UyUnQxX89BgESY3bc1PDWdwG+X+LIkibT0Bo7x5IoY
uPMVHGW2PBU+6pX/IfCLLJxX5lWBvl6v8gr513fIEI4BnBmt/d1ljs+fcBhKsEo0pywSGrrRNsSg
CkGoLHNCg1eAURVRYHObEWXbVKGsY6b/Mx6U7R6kbIqc1ioGN3QOCt8VZ9q1J6VMA9W9TLrUfwss
DiJA7x3T5dGSpZnb44GU5Pp5/FXHWcIx3CFPr0RCgW7aMzCSsvvqi7D4Y5xgCt42PCZEV/eYoywC
s4X3+o3NINK1wsywsaFEuvRB2bzD5y4P6gPs2eGRPMN3LQ8YBOEHHoW3oghq60TAmXLIMhs6cIpd
zsZLWs6Gbu8NTMFV/MXZhuqyNG7QntPQ95iCkbdMgb7HFKy8ZQp0l6mxY8vU0FsmH0o7eg+W3VWY
/6XcYQp0l2ejT5V19RnoLlPjFC1TQ5eHc685scrLeyUeagHWFKGxTGHybdsQHtoQn4WvikVeTdeR
5GTPi01Lx6D3iWF7jj2H3e05SGKblkNg6oda8ICmIz0veAWhIzA/uqPg3yaS02J1gy3UEmqDyujC
l6xqUkQAux7A4FYpwIFSHjKNAyODS8mDhZjx+0qHgIBGAv7oI7DfLBMh6I8IwuzkPmEPXpoxY6Pw
yrwuwAeqyU94Eq9bdAeF7nAcsuDnxwydL4urtL7FHiS0Mk0XUqHv+u4idCOc3m06i/V8Bo1JlZfQ
x8RE6hsMfO0gEsqQkHFP6Xp3Cs0nZH0JXa7ol4nHoMnzdpLKaRxYYrBGMVhnbnCVy6CORGG9T4Sk
43EMnD4e91DR9H+0Jk5+wvqUJW0fPjIC6fGHk8/0jyoG8rQytYcQuguZxRA+wLCnVag9WKmEch6H
NcXqmYwsnZIJliYM66p9FE2413M/hfh3BKfodVF/g/d3MaH6KldwCJFxZt3jPEJaaHLSfsF+X+J0
A7MMp7eb0SyfxvD2Fa5Hj4+aGRnFGvWN06tVF5bgLKpCXPJYH1JQoCJLkdMr073ljonji6tNnrZ2
2ocFU4KLovLzf7VxuXY1UC4nibD07/ZrrDbKvgIUauOjYqepjTERrr8B6rKewzPsDLBj+cevJSAB
4Ee/o1jXqyJfxMQ4rWDtN68CUgdYQWRM6GMFy9GinOe49/gyB5tAEvsZg3q8fGVhqfWYZCWsYUeS
8E6uWhTrdT6DhlBvVkcZnYYd0F1YFwGT77qwa5RZePHQpQ+0Zg/qy2RfjQy+9xhNNK4X0cTHq7fk
x7y+bUV9nqiUXv4Ww9tXPIPleINVGsea5Uh82GgsJyRuJnsBX+JkBCPeqi2VZLmaFqDrFfbK294e
ZOm20esC4uhrgvEUbB0fq+Rpg+BBOaXJcOMak3MriN76KG+EiaA+Pg0+wDiHDJMJxtWRmWVeYcvq
d7A+MtA2ue9jMEoiiPvqbXB/5ffnj3N/Dj9S/ahfVxPvSYuiqhFpXkagqjOXXm391imGM9b4qTOX
Xp1CG6uisPJQY/GBWqxjKM884xmh8L+FYigrTAZYRRdfMO+HBXsE6ZnHPgPjgYgjnVcEU1lQ623o
/sErofC3LfUCc9qhFPAvl6/UJA0KZW5kc3RyZWFtDQplbmRvYmoNCjM4IDAgb2JqDQo8PC9UeXBl
L0V4dEdTdGF0ZS9CTS9Ob3JtYWwvY2EgMC43NDExOD4+DQplbmRvYmoNCjM5IDAgb2JqDQo8PC9U
eXBlL0V4dEdTdGF0ZS9CTS9Ob3JtYWwvY2EgMC4yPj4NCmVuZG9iag0KNDAgMCBvYmoNCjw8L1R5
cGUvUGFnZS9QYXJlbnQgMiAwIFIvUmVzb3VyY2VzPDwvRXh0R1N0YXRlPDwvR1M1IDUgMCBSL0dT
OCA4IDAgUj4+L0ZvbnQ8PC9GMiA5IDAgUi9GMSA2IDAgUi9GMyAxMyAwIFI+Pi9Qcm9jU2V0Wy9Q
REYvVGV4dC9JbWFnZUIvSW1hZ2VDL0ltYWdlSV0gPj4vTWVkaWFCb3hbIDAgMCA3MjAgNTQwXSAv
Q29udGVudHMgNDEgMCBSL0dyb3VwPDwvVHlwZS9Hcm91cC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZp
Y2VSR0I+Pi9UYWJzL1MvU3RydWN0UGFyZW50cyA0Pj4NCmVuZG9iag0KNDEgMCBvYmoNCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTE0Nz4+DQpzdHJlYW0NCnictZhdb9s2FIbvDfg/8JIK
YIafojgEGVYn9TK0aFPbyEWzC8WWHQG2lMpyt58/Uk6HJBJ3XIu7iQPBiR4evuc9H+j8M7q4OP84
vrlC9PISvbsao2/DAUWUUEoZ51QjzSlSkqIqGw7uzlAxHJxPpgqtd8MBQ+t/v0xjRoV69e3V2XBw
Oxyg649jhF68iZ1/SIs1wlkxmk+jF69t/g+jmhtEO977bmbf/Z4jYYhJJJqtHIF9PWKICUYEkrEm
CUOzraNaN6BJA0rRZDj4im/nN2M0rdN6v0PRn2j2x3BwPetm5OEZhTJEmRbkM9scABL/A1Binykf
ULHIqmjEDa7TvKjzbAcAyp6AXBMTv+JLGKEyQZJzQnmLb5wW0Uhg6CJVcCwmFEmMD6vRGMAUB2fi
LCZS+JgeMohIhydSFkX7iHZ1GrEYP2yswrCl0zg/6jaT4JxCJURJH2ftckBSvLWGYfHKVTRiilrM
kcb1Y9Y8tM9iXG42ZZTgvw7HWEPnMAHO8SabuVIu4CJJiGwfZJVFAlvjs8cxOHOnkZhT+4zpyIXd
HuFWAtCMho++JjFNkJCcaNOCvscQUd9S0iaSmkjpJcry+rGRbIVS94kaIeuXQr6LuMITtCwX+21W
1MgF/IVuGMO7rFjmTiaW3H3UJbq5nk7uI+T+yX0EHbpfbWIdh46tdoz0HfpXCKhfbRKIv1ZynBDu
REEpMa26dEFpoi8BoH61iL0Fct1FbDxA+Iu78GyTpw+bDIpUv2rUAuOMEqV8YHWVFrun0lVximsI
rV9RaqEJyonwXSIuI6bw94hZL6ogsH61qQ0mDaGxD2x+9Rni6VeDfGrnsf37Vu4dpfZ+xcSn9m4g
TKHGuV+RaNNYTzLaRzOCaPoViDaNahLOQ/PFqXo2g5h6+/cbE7BKVt77WpVQgvF+9t3mEZLE3htb
lEWRRRIvavsjLwsILrCVCymdLXngdpmj2j9BUP1s3GsBzBB+kgXwwOb9wwI6gfC0rrJ0C8UosG0z
ExPhRQJ9oJ9pd+SccKOzh+Yh3bl2ewlBBTZuHtv2zQu1dQPXflPnT5vs77xYQ/uGfj7u0zjTdjw5
SeMitJUfNN4NhH+DwhPYxJmdO2w74qFZLqtstzvi0kJbuWTEeGP0+6cPEE9o9+YkTpJmA2OSFs/Z
+8iO6s0kzoQbxcFwBW7HmQ0X0z6828i24XM34t2MIbDAfs6pau6xCwyNKLHT4OIrvptAWIE9nStG
uPDFa1mlKxetGto8isDmLuxUJbkPK62gKU8E9nXXs/DYx1Nlq2ZRG9vfoIojAzfnkku3PPPqyq1v
nbLqEgILbO5SCqK9IfsFouln7l21z9mWEYel3c/XPhnY1436DyCc2y7YrTUBptBLFm7vSviYoAZP
hrZyIVzJ89B82+cLCCh0S645Uezk8ITuxhPqls0emp9aPMnw+xSnbSUIOzHZAtv3c7J1Ax2ZbCr0
VuWQbB4mSE0qeCveJJuH5ohkU6G78UOynRqewG79nGwemsfa7Sy6Vhb/AJjMhagNCmVuZHN0cmVh
bQ0KZW5kb2JqDQo0MiAwIG9iag0KPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8
PC9FeHRHU3RhdGU8PC9HUzUgNSAwIFIvR1M4IDggMCBSPj4vRm9udDw8L0Y3IDQ0IDAgUj4+L1By
b2NTZXRbL1BERi9UZXh0L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDcy
MCA1NDBdIC9Db250ZW50cyA0MyAwIFIvR3JvdXA8PC9UeXBlL0dyb3VwL1MvVHJhbnNwYXJlbmN5
L0NTL0RldmljZVJHQj4+L1RhYnMvUy9TdHJ1Y3RQYXJlbnRzIDU+Pg0KZW5kb2JqDQo0MyAwIG9i
ag0KPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxODU+Pg0Kc3RyZWFtDQp4nG3OzQqCQBiF
4f3A3MNZapCeGbVREBdaSVFQONEiWrRIg0io7h9SF/1Aq29z+J4X/gZp6q+LxRTMMuTTAncpCHok
ldY0MJqIQuJxlmI/QiuFX1YRmqcUCs17zIliEP2s65EUWykwWxfAl6T81alt4Jzb8a5yv9jhj6LR
CfjHzW1nzw3C0GMIW/cBnQ4FnRgvUQjI/thbX9UMofEQSpRSHBx7ObXuWDtXN3ae7hF2KcXMfiJf
FEo20A0KZW5kc3RyZWFtDQplbmRvYmoNCjQ0IDAgb2JqDQo8PC9UeXBlL0ZvbnQvU3VidHlwZS9U
cnVlVHlwZS9OYW1lL0Y3L0Jhc2VGb250L0FCQ0RFRStDYWxpYnJpL0VuY29kaW5nL1dpbkFuc2lF
bmNvZGluZy9Gb250RGVzY3JpcHRvciA0NSAwIFIvRmlyc3RDaGFyIDg0L0xhc3RDaGFyIDExNS9X
aWR0aHMgMzU5IDAgUj4+DQplbmRvYmoNCjQ1IDAgb2JqDQo8PC9UeXBlL0ZvbnREZXNjcmlwdG9y
L0ZvbnROYW1lL0FCQ0RFRStDYWxpYnJpL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDc1
MC9EZXNjZW50IC0yNTAvQ2FwSGVpZ2h0IDc1MC9BdmdXaWR0aCA1MjEvTWF4V2lkdGggMTc0My9G
b250V2VpZ2h0IDQwMC9YSGVpZ2h0IDI1MC9TdGVtViA1Mi9Gb250QkJveFsgLTUwMyAtMjUwIDEy
NDAgNzUwXSAvRm9udEZpbGUyIDM2MCAwIFI+Pg0KZW5kb2JqDQo0NiAwIG9iag0KPDwvVGl0bGUo
/v9ee3BvckcAIAAxKSAvQXV0aG9yKGNhaWh1aSkgL0NyZWF0aW9uRGF0ZShEOjIwMTcwNzEyMDgy
NjMxKzA4JzAwJykgL01vZERhdGUoRDoyMDE3MDcxMjA4MjYzMSswOCcwMCcpIC9Qcm9kdWNlcij+
/wBNAGkAYwByAG8AcwBvAGYAdACuACAAUABvAHcAZQByAFAAbwBpAG4AdACuACAAMgAwADEANikg
L0NyZWF0b3Io/v8ATQBpAGMAcgBvAHMAbwBmAHQArgAgAFAAbwB3AGUAcgBQAG8AaQBuAHQArgAg
ADIAMAAxADYpID4+DQplbmRvYmoNCjUzIDAgb2JqDQo8PC9UeXBlL09ialN0bS9OIDI5OC9GaXJz
dCAyNzc1L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNTIzND4+DQpzdHJlYW0NCnicpVxtc9w4
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
7inBLEOBGZdity62vGo9/BUtalG1EjK2HgKLFtVfzPFgK1rO3x8X1yLKg61nN8kDrWg5T1ZG1oMu
2pyN9nK9RKuNXHQzctHNyEU3Y8ROTMhONmudce4n/7xvou907tiYhwGiRe3YmAf90aJkQFMP+KPl
bG0s9XgUz26SB4nRcu7aVhYPqQeJm/Cw37yM0JIRWjJibrI1bSQqZ4x/rXvQvHYjyXtlw64F9c3z
T+oH/AFD/trjtldz8U3yfvnfe1viPZO/bYc34imT1Ztc16AsoOhw2B0FOm3ubryb6BD05d1s9Xk9
3HKnJw3oR3r8doDZDT7vlY04UmN2g89PBBzWpZGbF2Y3DD2QslPosqmq87puT8/rZfVh9qAkqHrG
jszK/aokbuvowwnO+kvFfbCkH7u+3s0aaCPkI3f2l+qbyqQFP3GVq7qtTj/ivx9X8+0fvV4uquv2
9OdqNq+aLo0yffrdCgekLu5m6AhevFqxBBczlr+bdnEz44T767e6+XxV159P38j2qXuzvquqFo1s
Tz/Mrpt65+/Xd/z/zt9vFrNlfbvzotP+Nm9XD2e7bWb3cq9G+vrx8X79N9ZIf7VH9TbuvtDqNOa+
0IqUdV9oRar7QmvSB7S2n8Lc/Ybp0w90Il9/o11urY98onD8fnu3SSsff5MvqMlnyKLut8tNeLGJ
uG8V7VyAH/30zc6F+MEHWvpPnIxcjB98aMN/Qd5IfiH+zUcIoMHtFSZpdPiy8tQ7nMfeUdteqXKN
3oQypVAfyhSe3kZnRYgMn9wV8J0h951c9h1rjT1v2J+v60+G9YeX+pM7vuMb8VF4KGU7rYwGG58b
F/JFNmL3yKduUsZuWR3aEjl2+fVcN/z5fhUGbTt/pf3L/wcXP3xgDQplbmRzdHJlYW0NCmVuZG9i
ag0KMzQ2IDAgb2JqDQpbIDI1MCAwIDAgMCAwIDAgMCAwIDI5MiAyOTIgNDI3IDAgMjE5IDMxMyAy
MTkgMCA0NjkgNDY5IDQ2OSA0NjkgNDY5IDQ2OSA0NjkgMCA0NjkgMCAyMTkgMCAwIDAgMCAzNjUg
MCA2NzcgMCA2MzUgNzcxIDAgNTYzIDc3MSA3NjAgMzU0IDMzMyA3NDAgNTczIDgzMyA3NzEgNzgx
IDU2MyA3NzEgNjI1IDQ3OSA2MTUgNzA4IDAgODg1IDAgMCAwIDAgMCAwIDAgMCAwIDQwNiA1MTAg
NDE3IDUwMCA0MTcgMzIzIDQ0OCA1MTAgMjI5IDAgNDY5IDIyOSA3NzEgNTEwIDUxMCA1MTAgNDkw
IDMzMyAzNjUgMjkyIDQ5MCA0NjkgNjY3IDQ1OCA0MTcgNDI3XSANCmVuZG9iag0KMzQ3IDAgb2Jq
DQo8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM0MDkyL0xlbmd0aDEgNzAxOTY+Pg0Kc3Ry
ZWFtDQp4nOx9C1hc5bnu96/7bWatuQ8zwMwwMAMDk5kAAQYIDIRbJDH3CCEo5B6TNOSmSaoGNTYW
LxtNtdVqVeJpPNvd0wl2R2pti6eedne3jek+rdV62sQabY9Kja11u1sD51trERprPOnjPufxeXzm
XXzz37/1X97/+/9/DSyAAIAdPxgItiyb337nkfsPA/x7MYBfWbB8WcfBdUufB+DfBKC+vGhZovza
n7ZvBiCPYamVa7f1D/junNsN0LMb4+5fe83u4I1bV/4rwKZcVNi3YWDjtj+/2/sqQK+G4c6N/bsG
IAgi6vdieW3j1n0b/hL4rQSw9TqADV2b1m3bO/TD7/0CQLoVYPGbm9b3rztZ1f4T1F2G+as2YYR1
IRfG8DoMF27atnsv9X1lCuuGQfbNLet3fqbi50m89wsMAPfA1u1r+wcfuf8lgH/7GaYnt/XvHeAD
PNadoH4IfqZ/2/p/euuoH+DXDwN4Vwxs37V7ajNsAHj3PT19YOf6geLP/tkN0L8a9X0b9L6iNmzY
2nnskavU+j+BXwAdX7M+pKfA03f/+3uTZ87dLtzIn8GgaOTXgS736jnsB+GVyTOTfxFunEk5j6v0
GOqL8BTQRpgCDRJQi71Wi/c1dNA5ZBhYENj72QoMf9t0yc9hA2UnFEUxDE0TImB56tCFqhcuunwR
pLHf97N1514lKe5VClsMD536hZ7KTeeipoWMw/V0Gm6Bi4BaAQ9SK6Z+Rm+BOjDzLqcGYQG6e/Uw
PQ4dKPejxFEWoVSjbEZZN52+e7rcng/pfgO6dZfdMvW24bqgmysFt+5nBqEO/VdxLohSP4dS6vGp
ZewbUMvcAzL3OFgxzcel4UrMF0F/PwsQo38OC5k3pt5nH4ciXQfvmnrzYm36W2DbmxkXFNAr4HIk
0Tzdpe6BPvoesGB8PvY3TLelEv0S3q8Q48Mo81G89BvQRuE9sT07sL9qMByix6feYVdMvU4/Drmo
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
q4fvHsT2zbcvOhv8JGpYxqB6T6s54SsqeU9vpgc+0J9X8PTBAe20abxJcywH1e0MOKVh/oNs7RbH
c50P6TZufKp70TyFe980feqpQ9PvrdhzZPnga6e/M7aeU3TUTKxbMuHbQpGFP1e4zCX+USPleaaH
r/5b72OKeE7HVx/vamcYB156P8/U9nRt6OopVbUWMosh5RfWryiEbUwh513rfGkICjmPAHWPBHfy
3/IYsp2Hn7oaWowCalBjymNpM9XI02n9MIYDgdfSoy4wgMXYBV5OAg+6n5N7HNRKlcDryDN0mL/E
T6/fnNd/eNx+01hcmdNOCNhFPHjvdXLJ1UlLm/ZWO5T6nYjYviIj8cOg6tlmBWN69fNbsSP79WKh
8KCBx80BPY4fCdp31rfu4m7DfcbhVZcrC7JEk9/N3dagv/wbn83Fkb+9MFxyfhNt+v5Q+I2rwWHV
ypAfd2hoy594LU4YZHpb3OPrHj/7h3a7tveJo1M/P/mS5w1TY8fnvsnfVnxvQ77l6GeBXV8UOJ3s
IImyV498t3Fa0G+e+Quuht8PXxwxvI/3z2bVjk8tsu9PtJk2Zqrg94Cx2QPfH9u97LljtEDHZ+f+
cKMNGg7hv1TEV1fpLOqyTbjlzfZAydX3s8b/aHNKJ8zAjSf+TjzVojy52vqnmVcuHrr7x9NX025k
WY0cTFH/BRwDGTgNCmVuZHN0cmVhbQ0KZW5kb2JqDQozNDggMCBvYmoNClsgMjUwIDAgMCAwIDAg
MCAwIDAgMzU0IDM1NCAwIDAgMCAwIDAgMCA0NjkgMzk2IDQ2OSAwIDQ2OSA0NjkgNDY5IDQ2OSA0
NjkgNDY5IDAgMCAwIDAgMCAwIDAgNjU2IDAgNjc3IDc4MSA3MDggMCA3MjkgMCAzOTYgMCAwIDAg
MCAwIDAgNjE1IDc5MiA2OTggNTEwIDY4OCA3NjAgMCA4OTYgMCAwIDAgMCAwIDAgMCAwIDAgNDc5
IDU1MiA0NjkgNTUyIDQ2OSAzMDIgNTQyIDU1MiAyODEgMCAwIDI2MCA4NDQgNTUyIDUyMSAwIDAg
MzQ0IDQxNyAzMTMgNTUyIDQ1OCA3MDggMCA0NjldIA0KZW5kb2JqDQozNDkgMCBvYmoNCjw8L0Zp
bHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzAyMjgvTGVuZ3RoMSA2NTk0MD4+DQpzdHJlYW0NCnic
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
za5HGOEYwCBTIkgMpA1yBFmDsCD3zx1IO5AniB9kAPIDeZAje/K4JfmVA8iPIBIk/B8Pq6efh7s9
1tLDwQ/2pz8VahwF6PrIS/F9PIGWylSs01VWxm28/pfN8kxoqKW6QZxm8ys0J+d6pAJdUMsWJYIy
dYatzYXehWEmic/VTLWSbp14qqONr3a2Wc3PGr406lPHW+ZHJd72GoAnoR8xEmPWcw883qbloMaZ
dbl01ag8+3UzelnnoLRtHJs+u98v6oYNr3zTzALMLCa9wvOCg84W6DkZm715LuxENyVOH2sDf4Yo
VMaMlF/Hs4Szvhw2B0mk+doZpr6mHBCwyNYYpPw0sCanX16pFL8i6BrkXMwcEXGiaxtaT6duJPs0
nkSJ6JSWeRfJwrwI8pkMr0vKbNzv6LYekSOtnDeiP+4dToWXLE5OOTMBJuAoxQAcpfC334gWjqNk
Iw8xf87KGz/NAn7cLt6Vk6YA5+6UZPjW9qYgf/jvMzTw/Z87IopwOFxBVlGWLDZ/zsiLI3guDkl/
yZ6MIVvDMvnNzlL6N3/i9U6uHN8WnojI2QuLoylRZwgexplyExSXebcSQu4V+EfmjFAvjLeFbihv
3E1FNz2pRry+HKA2eEipmzaWzbY4PIzGdl1SivGVqaFBg3xF3n6WQOJsD5cX6Qp3hyG+LN1Wi8IK
MYx4HMdo4T7wr/WGCvmplBJDVN2NHrkPOrwzcriIcDA44GGEGLR/4tNcBttqSz18sfDKrdDF1PuW
k7Lm3AZcIs3jwM0MhzGFWTXX8e7DJbCCAoRVR5bOircPesBDq/UA4uOQUVuC9qNg/Y0+bY0zXuij
wnyjNYfG88xCt0IUi/1dDylEZfP3eAg+MbVW13vaPOtyj00C3dMiMKmH9D0ZKpzxby4AuZYNCmVu
ZHN0cmVhbQ0KZW5kb2JqDQozNTIgMCBvYmoNClsgMFsgNzUwXSAgMTM1WyAzNTBdIF0gDQplbmRv
YmoNCjM1MyAwIG9iag0KPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyMjc+Pg0Kc3RyZWFt
DQp4nF2QwWrDMAyG734KHdtDcdpB10MIjI5BDlvHsj2AYyvBsMhGcQ55+8le28EEtvn59Ynf0uf2
uSWfQL9zsB0mGDw5xjksbBF6HD2pfQXO23RV5baTiUoL3K1zwqmlIai6Bv0h5px4hc2TCz1ulb6w
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
rr/p2lcvs9znjs8qymq4v+9I+8ySlHZ3ztq2jawcUXGFrhlyZv6YqqZ+PfQUx2R9WRN729tunO7h
11O2VXuv7Fvk4v2qbhAbmf6bwemsYmuLdaqvLeu2dq4zP/L4xtKd44q6B6VGXL1QrXi0qMooYHyn
olBxL7pM7yU5/P8BN5SS7Q0KZW5kc3RyZWFtDQplbmRvYmoNCjM1NSAwIG9iag0KWyAwWyA2OTdd
IF0gDQplbmRvYmoNCjM1NiAwIG9iag0KWyAzMzMgMzMzIDAgMCAwIDAgMCAwIDAgMCA1MDAgMCA1
MDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNzIyIDAgNjY3IDcyMiA2MTEgNTU2IDAgMCAwIDAg
MCAwIDg4OSA3MjIgMCA1NTYgMCA2NjcgNTU2IDAgNzIyIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA0
NDQgMCA0NDQgNTAwIDQ0NCAzMzMgMCAwIDAgMCAwIDAgNzc4IDUwMCAwIDUwMCAwIDMzMyAzODkg
MCA1MDBdIA0KZW5kb2JqDQozNTcgMCBvYmoNClsgNTAwIDAgNTAwIDAgMCA1MDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDUwMF0gDQplbmRvYmoNCjM1OCAw
IG9iag0KPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA0MDI3L0xlbmd0aDEgMTc4OTg4Pj4N
CnN0cmVhbQ0KeJzt12l4XNV5B/D3nLvMjDTLnZFGGm2jkWVtWJZGkmVhEGgMOJiksRwEFwxMbSHJ
kkDLoMXYNGA3LlBCWRscp2n2p6VO+8SusbHAbUIa0wIxxTSGQBExPJiG0keFDySBtmL6njsjWXZs
XBLaL/3//ty555y7nHPPXWRIEFGQf3SyLu268qJf0C8lyccOEYmBzq7G5rXP33MDl3fyXht6hrtT
hytvqSZ64zpuG+vZNBFz1WnvEr35JSL5/Y2p/uFPf+vBt4iOH+H9ff3d4ykqJw+Jl+q5bvUPbdkY
evOHVURvXUHk/vZAX3fvqxPP8vlEKW9fPsANksQyrvN2WjwwPLHZJNrB9feJXr9+aLSne3FV7DDR
u1x/7dHh7s2pm34u7uTtm3n/2Ej3cN+/fHDsiySe30NkXpcaHZ9Iz5CX+/eq7amxvpQx3cnHH3+N
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
RN+NalESoaBeXOkxK7+vPmpqkqmQinmGA5b/xAw7Ezw3w++pObWmk8mx47PHs1P7gcv5j5/4pjgl
+dvX0pqZOzVvZeIME9vHT6271s1fvt/h6eSSmk6zrH4yM31fe+jOE/Oo3vwA/4t0Cx3gL0ADPZAI
3Wvc7pLdeq97q39r6EXDiJU8zhdRKuiR+gKfttLPlTyh8TVFqJrO4UvxiCLy8ctdIsJ7C+q9j/Oj
Xc2zEVhfIcorxGjFNyqeq9Aq1JuesMqttZYMWJYlLesd/uEna2xmmn+O80y8p171o/y283veMXM0
+zA1iMwnUH3lXXOveGHr/Jc/OwOLTFdlq19cZ1juQNAK5Ab0ilBxaZ47aPBs5Bo5PAkuU881pRH8
XbertDBS6PcvListLne5lptqOr5u6Kam5Xly1dvu5udqkmeljq5P5D5pvWC9aWlU5Ams9PHFanz5
dVTJE7BYyMyNpSL+O+97znvM+45X85rRQsqb4pfbE60sikfvj8poY3Kab3A7/4mdTjp/zWaOdswc
Dq046S8tf7XanE+W6/R/5Fpacgq9ObkGE9JwF3oMveDT+er25rldeYZ2pRX0mPxlNzQ9P7Q8c5e7
+N5rp/xvSifd/5E5QkfEBifvfpzIg1ryY+TnZ47+OQRBEARBEARBEARBEARBEARBEARBEARBEARB
EARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARB
EARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARB
EARBEARBEARBEARBEARBEARBEARBEARBEAT5JENKVIyQoIwaXjJlQSbXMmVJLlqaLWsL2vUFZYO8
tCxbNhe0u6ieEnyU0D1cW0ND2bLg/f89W5bkp//IlrUF7fqCskER4c6WzQXtLrpaxLJln/yu2Jwt
++lyfZEqu3Xu9wuZfrksSNcnsuX5frmsLWjXF5Tn+3Wrqz3RPt8vl910ob45W/YsKOfSufqj2bJX
lXfFLh5NbRkb7B+YiF2zunPNpesui60a6uuZGBsdGezhjQ2x5ni8qWtwuGty5PK+/smh7jG7b2x8
cHQk1toQb7lirLu3b7h77MbY6MYznKA+dlHf4A2DI/20i2J0MY1SirbQGA1SPw3QBLddQ6upk+/E
pbSOLuP6Kp6bPurhbWO89wjv2ZM9soHXzRTnNJGPcq69qrOrL9UzMtnUVbjmr9Ys3Zi3ZumAa7L1
2rWdr28YvX5bf2O/Z8fazw11vd9zpPOrcUldfK5h/p3ks17OffRzaYi6uR+ba2M0zttVjzFq5b7i
1EJXcGs39fLWYWe/G3nbKG38mKOu59JFvHWQbuBlhPtdx+2T3KrOuoXXk9x3H68neE4GuRzjPtRZ
Jpy2Uf7tddpTznjVEd28tZfXKWcuM3v2ZI/py9a7nTOlnGsb5r0mnG3qqOudc6jeVK9DzmjVUXOj
yBwxN46xBfumnOvr5RH3OH0MOvN1szPuHv49/TVk6mrfHu5t0pnRXud+njoT6oghp1TL+9fxWs39
9dlxn/7cI7/FtZ84e2/23sT4iD4+esKZWXWVmafidFcw1/uvj+v8BfdIXUnmWiac/lLOnHY7589c
ay+33Oxc+ajzvH3Uk9B90l3vc+7OaPY3c1WZ8iTXUs5vzBntpuxdnjuP2nOI9/ioZ6jBeUfVec6j
Rs7NThqcGe1xnoRx531Qe6ojh3mfCb4idYX9zjWm+AxbuHXuKsavvbuz65S3Qb1NA8529WYMnuFt
Gp9/n04/plvmz7Ele9/G50el1iP85XOk3+av3+lp/O2UFCGRTqvvJLdMp1/J/AlKp4WY/2s056q5
6sL1ybt8PKee79TyJ+23He/Zzv1/eRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAMBHErzk0GJqJjHQPTJIbtV28eo1MW6ldNrZLjb1jU1ktjiLzouK
myTtoNX2kD1ib7JvtjfbW+xRUSAKRUSE7bvtXrvPHrPH7Ql7cn775+1b7dvslH2TfYv9e/Yf2ffY
99r32ffbD9gP2n9sf8l+yN5hf9neaX/F/hP7q/af2l+zv25/w/6m/S17o73V3mb3279vD9iD9g32
d+wb7S/Y2+0/sG+377DvtIftP7Tvsr9of5tHtpr+i2bpQ0rzMIWQIpwdVUz8SBwS/yCeEk+LZ8SP
xWHxrPhH8Zw4Ip4X/yR+Io6KF8SL4iXxz2Ja/Ey8LyOyWJbKSlknl8ilslE2yc/IG+WwHJWb5K3y
Nvm38pB8Uj4ln5bPyBflT+XL8hX5K/mB/E+tUItoRVqxVqZVaou1w/8NL4Z1yw0KZW5kc3RyZWFt
DQplbmRvYmoNCjM1OSAwIG9iag0KWyA0ODcgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNDc5IDAg
MCAwIDAgMCAwIDUyNSAwIDAgNDU1IDAgMCA1MjUgMCAwIDAgMCAzOTFdIA0KZW5kb2JqDQozNjAg
MCBvYmoNCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNzk5NzEvTGVuZ3RoMSAxNzMwMDQ+
Pg0Kc3RyZWFtDQp4nOx9B3yURf7+zPaa3U2yaZuwG5aEEpIACZAAkiUNQggQksWEmkpRSkyhCYpi
wSCKigX1FM8ulmVBCdhQ0VPPdp533lnxzvNseHY9EPb/zPt9JwQsd//f/+7v3ee3M3ne55nvlHfm
O2UHyQrjjDE3Hjo2vbSmYuKtF+2dzzQbahnzrSorLq298u3KGYxd8zRj2l1lxVNKntw672bGrjIx
ptk/sbSs/K9PfKllmrNbkP/JxOnTaha3jD2XsevXMn69bWJNsFirHfx3pinYyFj5a9Nqckf8/Y2e
Ssb4H/DWhualjW2pz2bczdjAh9Det80rOn2h6w68zNip7zKmT13QtnDp119X2Rgbspsxc8rCxo42
lsr8jF35Leo7Fy5ZvWCvc2osY3ORtL2/qLWx5YvYo260PweGUYtgsN9jeA3prUgPWLS0c1XOtfrH
8K4CxjLOO721fZllpa2JsY3jkD9ryfLmxm8/OfYpY4vfZ6xf7dLGVW3powagLu9Bvm9Z49JWzz1n
rEf5axizj29b3tEZ8bAL0B8xHl9be2vbN0ean2Es7yW8Lp4J3+ofPmOzPSVmvmPcVywZbkN48KO1
zwl+2bFq25HDRzeZPzY+gKSZaRgF1DOwY4wfsGw/cvjwdvPHSkt9gnabsDgGs2lMrxg0zMlyWStj
rsvxXqWILotvQa5Jv02fhyb7EWtfYhdomIlpHHqNRqPTanQHmSYSYHdH6L2MVdX4fCwA0UF9MN6g
yfQxfqPS6B59jBgpWo9h0dAnGF5ld/+c79e+xxw/5/uj4X9n0P6Ozfl3tq/LZw3/zvb/0wPGv+1f
0Y725n+unX/V+04OmmdPbFebzqr/He+JhmiIhmiIhmj4Twia67jl5+7Df1vQjmSbfu4+REM0REM0
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
Bz4DPgX+BnwCHAI+Bj4CPgQ+AN4H/gq8B/wFeBf4M/An4B3gIPA28BbwJvAG8DrwGvBH4A/Aq8Dv
gd8BrwC/BV4GfgO8BLwIvAA8DzwH/Bp4FngGeBr4FfAU8CRwAHgCeBx4DNgPPAo8AjwMPAQ8COwD
9gI9wB7gAeB+YDewCwgDO4EQcB9wL3APcDewA7gLuBO4A7gduA24FbgFuBn4JXATsB24EbgB+AVw
PXAdcC2wDbgGuBq4CrgS2ApcAVwOXAZsAS4FLgE2AxcDm4Bu4CJgI3AhcAFwPmuZsJ5j/3Psf479
z7H/OfY/x/7n2P8c+59j/3Psf479z7H/OfY/x/7n2P8c+59j/3Psf94O4AzgOAM4zgCOM4DjDOA4
AzjOAI4zgOMM4DgDOM4AjjOA4wzgOAM4zgCOM4DjDOA4AzjOAI4zgOMM4DgDOM4AjjOA4wzgOAM4
zgCOM4DjDOA4AzjOAI4zgGP/c+x/jv3Psfc59j7H3ufY+xx7n2Pvc+x9jr3Psfc59v7PfQ7/l4f6
n7sD/+Uhaf48xow3MHbsihN+n3o6O411sPWIF7DN7Ar2KHudNbENUNvYdnYbu5OF2GPsGfbqv+7X
xdGH1fqlzKbdwwwsjrHI4cihY7cBPfqYPpYrkIrT+Y5bIs7IJyfZPjl2RcR5rMcQyyxKXbvmZVi/
4Ecjh/H5inRklEhrLoR2KDU+M95w7L5jt5/kg2o2i81mc9hc1sAaMX7x2+mL4ZnT2RK2lC1TUsuQ
txDPBUjNRymcJYo+Xmo5awPaWSfrYisQ26A71JTIO0NJd7GViKvYaraGncnWsnXqc6ViWYucNUp6
FXAWOxszcw47V1GSybKBncfOx6xdyDayi34ydVGv6mab2MWY50vYpT+qN5+Q2oJ4Gbsc62Eru5Jd
xa7BuriOXX+S9WrFfi27gd2INSPyroTlRkWJ3IfYU+x+di+7jz2g+LIZXiOPSL8sUHzYBh+sxQg3
9Okx+W9lr7fOwtjF2LrVka6C/dw+NVaofhQlN6AktULzIFpZd5IntmAMpI+PiFJXKuM/bu3rlZ+y
Sn9c38cz1ykpoU62/pi+iv0CO/AmPIVXhfolNKkbFd3XfkNv2e1K+mZ2C7sVc3G7oiST5Tbo29kd
2Nt3sR3sbsTjuq8ivpfdo8xciO1kYbaL7cZMPsD2sB7F/lN5P2TfpdrDvZa9bB97ECvkEbYfJ83j
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
WE2sUXMktiW2RfN3IXlCijb6KtuH1yyHKUdtp9uVhmg5fI3SHNurrfSnjKZMpMxXy6ari+1w7JbY
38dtjJbN7co7SokX1yzm+LS28nT8hrYSipSEHtcoKZQRnV5pV96KFPXOVaXTjk5728qhzicoZ5TS
RXetkpDSJaFL/65Ptysb1LLzmuVw14utJbFTYre2MjFaplyzpKnloej7lcUTfVXq7VFLRVuJtD6e
eD5pYFJW0utJ25Ryde9J269VIr0nfZRUFy3Nl4vyKUkX1c/yKNwwrffotjKtd3pbyYqW+RRP7/nK
H5DtM6FvSt+JvefzmtJ3Z7+9N1Wppbn/LErBgH6UwQPqBoShbsD3A/cOel0pA+oGfTKoYVDDYN3g
2MGdBv+JUpEyjpKWMmvIa9Hiu8UzvN/w+hHP3zaCMm5k4shZI0tG7YiWT0btGVUxeiBl1OjVY46N
1atl/didark07rZx70XLh2Mvcf7euPPq2fnxmvGace+NHzxh3YRP7ki5eybl+L3zxq6P1Ob9fKTW
5HFKvcnTpvSaMnTKuCnbpvZTS9rU+Wopmbp66mu8lkz9nHJi2uJpnmnH7yugbEx1UCst9VDqoamf
83pMOaLUpQZSL073qGXr9ANqOT49AMenh9J000PcD6TNSjuWVne/m/J8up16W6eHInfSF08PpZ9O
b5yR9tCemTN/nvDzHj/vN1c3d9bc6rkXW9/nDabsyIvL61VQUrCyoLygriBQEFqoWzhs4cSFcxYW
LFy8cM3CjQvfW/jhwt0Lj7gKXM+7trkuFIrChMJJhbMLPymsco9wz3a/VvRQ0ZoiX1Fzsb54cPE9
xe8Vn1k0cdHFkh4l95Q4Slwlr5VsL6ku7VX6s9IPS6tLLy62Lu6yeNTiOxdnLd66uHrJwCUTlzy6
ZNOSd5YcWxJaOmHp4qWfLNMvm7DMteyDZXuWXVrebfm85VuXB1aMXlGyYrsn7UfWqg+vXo+uXG08
xZeLso54Nl8ukRXkR+belKtn3JXzJDLSr7nqtK487cqVa4dnz+WirA6eisslsi4oa2jcO4l7um5g
HT467jyrproGq++st/FprK+bYrfEbbQdblszqRsf6p2ltLV9GLvp8toZUYnVeaK6/kZq9Yrd0qqe
clVZi9W6R5X7av2ogvT7oe00K/kWWhxVeztMdBt5P6qWy7tDw1W7wsR2+8DlnWCLEvcPVv93frD6
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
RkyIzyvn82q0Pxcx2gyYzQjKlE8xamoYNTWMmhpGTQ2jpoZRU8OoqWHU1DBqahg1NYyaGkZNDU6G
cDKEkyFcrMHFGpwL4VoNrtXgVginQjhVgys1uFGD6mFUD6N6GNXDqB5G1QCqBlA0hKIhFA2hYg0q
hlCxBhVrULFGnbFHhQEt72AmG9l7/8Le+wftYfbaL9mF2G1UfRvI8EsyPKnqu5SzRM56oO9Kevha
zGSfTGafTGafTGafTGafTGafTGafTGafTGafTGafTOaTbmOv7MNe2Yc5W8GcrWDOVjBnTzJng8zZ
IHM2yJwNMmeD7KcJzFk/c9bPnPUzZ/3MWfwWU9k3RzBPTzJPa5mnJ5mntdrZop82E3LEKvbRnuyj
PdlHu7N3JrN3JrN3JrN3JrN3JrN3JrN3JrN3JrN3JrN3JrN3JrN3JjMX/cxFP3PRz1ysYO4FmXMV
zLkK5pyfPS6ZPS6Z/S2Z/S2ZfS2ZueJnb0tmb+vDXPGzvyUz/isY/xWM/wrGfwXj/yTj/yTjP8j4
D7L/JbD/JTD+/Yz5CsZ8kDHvZw9MZv9LZv9LZv9LVsa7fAGtL/B8tk5+AgcmsZ6fZD0vwolJOPFr
7q5ltN+tPcKTVIX8vbZSzFbdq6H2UWpVs2Ouk5dzNpu2R2j7FVcn0HYdbT+j7RTaVtDuYaGPzqOf
UrOSmhXUnKI+Xylj5m21p2zuj+f+Ie5XcX8MPT3F3Q/o6U56+pyehqr1/64+Jx5XX0PCLHUQPaVZ
kAO5kA8FsBBc4Ian2enjpXJh41NW0nsJ/exTn402i67aP4tbtZ/if53oza79AE+JCezc3XhK7K2t
Z2X4lggauPZPcSv7uUv+lBZdeKbspezptM8Rk9nBZjHmHxGTtY+qT1+TRSyRdSey7kTWnci6E1l3
IutOZN2JrDuRdSey7rTsRMs8WnaiZZ7a0kZLGy1ttLTR0kZLGy1ttLTR0kZLGy370fIWWvaj5S1q
SystrbS00tJKSystrbS00tJKSystrdGWI6ItR5DJI2IgRwNVjb3qM0ILatUof14A7od0eAAeFGae
3cw8u5l5djPz7GY2Kf+dVofCHWmTFn3S2K16dFJUSP3lOmkADIRBMBhuhhQYAkPhFhgGw2EE3Aq3
wUgYBT+B0TAGboexMA7GwwS4A+6Eu2Ai3A33wL0wCSbDFJgK0+A+SIXp8Aq8Cq/B6/AGbIY3YQv8
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
NRyo4UANB2o4UMOBGg7UcKCGAzUcqOFADQdqOFDDgRoO1HCghgM1HKjhQA0HajhQw4EaDtRwoEYq
aqSiRipqpKJGKmqkokYqaqSihkMYGAvNZGwl4+fIuJiME8hwORkuEklotBt9dqNNFdpUoUMCGiRw
9wXy303+u8l/N/nvJv8q8q8i/yryryL/KvKvIo4q4qgijiriqCKOKuKoIo4q4qhirjjlt69a75rF
zZr7WeNmgpN1bj5r3ALIAfom4hNta90y1owV8n7LErnBshSWwXJYAR54HFZCGayCJ2A1sDZaWBst
rI0W1kYLa6OFtdHC2mhhbbSwNlpYGy2sixbWRQvrooV10cK6aGFdtLAuWlgXY01gBgtrnrKyN6ix
B5njfua4nznuRzfle3o/7h5h7vqZu37mrp+562fu+ok9SOxBYg8Se5DYg8QeJPYgsQeJPUjsQWIP
EnuQ2IPEHiT2ILEHiT1I7EFiDxJ7kNiDxB4k9iCxB4k9SOxBYg8Se5DYg8QeJPYgsQeJXVmzZsp/
R+0DKPxp25qlZFQrhpGRl/t13G/BjUu4cQk3LlG3lrpG6lqYKWYyTWGmmMk2Jfo7oD04dAmHLpGl
lyy9ZOklSy9ZesnSS5ZesvSSpZcsvWTpJUsvWXrJ0kuWXrL0kqWXLL1k6SVLL1l6ydJLll6y9JKl
lyy9ZOklSy9ZesnSS5ZesvSSpVfcSiZleLMXb/ZqnKIH/uwlg0xmwL+ZASEyWUUmXaO/memq/GaG
TF5SfpuFd3vxbi/e7cW7vXi3l6zKyKqMrMrIqoysysiqjKzKyKqMrMrIqoysysiqjKzKyKqMrMrI
qoysysiqjKzKyKqMrMrIqoysysiqjKzKyKqMrMrIqoysysiqjKzKyKqMrMqYxzPVeTyKLL6I/jen
e4j6BaLeISzke5B8D5LrQfLqTE6dufMi+Rwkn4Pkc5B8DpLPQaHXFOFrsfxvzSL5jGYV4+IXcqPm
ReU37Vy9qFklh4TE67/FAGqENCWMiFJYJVdqVguj5klar5XrNRuVv9NB/k7zsvydhedbC8+3lhvg
RugJdkiGXpBFnWyYA3NhHjhhPiyAHMiFPMiHAlgILigENxRBMSyCEiiFxfJ3aj4XifSUZpn8Dbmc
1myQz2n4pidmaVyM9kIo4moJWZbCCvmwxgOPw0pYJTprVsvva56l3nr5hOY5eB5egE3yx+T3sUUj
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
ojs8n+OHOX6YK4MP5rajFztkgD7s8nowLM3twV6v3wKfy/E5WWFKPb+r53f1cVhaX+1YE8bJEuNk
iXH1tc6HyR5Z8MH6XHi+vh4HeX0wDnH9UByGw10fHgoqfUGlL9Qf6XlHuedovAPvxDF4l3uP8/67
cbzx3+OaDCsbTamfHFpE+NT6G6IR9fa63l7X2+v6G3ETbvbeHeEakT9VpjpPpjpPpjpPFpgqW51X
P9NzZpn3A575sOfPdv4bzMFvw5XR8bLEj2WJ3w9V5heH6vnLMkGXiJ8msr8tsheK2vmi9hU1d0DE
PidiN4nKVtHYJAqXisI2UfePIusSkTRfxNwsYl4WMV2i5C5R0iYKnuX9v+H9X+D9z/P+yv+pcBaP
fy36d/nqETP5nYq1KjVflVooJzzt2iK8qM695L1lYY3suUblel7O6lG5FqqBPWbbrXotVL0Wyl+z
zfxlearbzFfKRcvMuiDfbJRvNpp5l3ydN/PtcnZezs7LJ8vM/nG54HG54HGz3GeWX65oHtVrVe7f
ZNrvhYUq2EIVbJUKtlBs9ojNHhVslfh8RHz2iM9HxOcj4vMRFWxV7mc+93PciJvCGll9jay+Rmz2
qGarVLNVMvwaGX6N2HxENVsoNh8RS4/z+8f5+eN8uls9yasneX7brabk+Wo3P13GL2fzy9n8cjZf
7OZrG/naRr62kW91861ufrWRX23kV8vUojyfWqbCLeRTj6hwq1SONfxjNv/o5h8bKcil/OBZvECh
LQ9Ps/Rm1aGVL3xaNu+QzTv4w6us2smqLazawieekrk3sOwKmbqDZVew7Aq+sY1vvCEbt8nGbbJx
Gx/5Oz6yW5YtyrJFvrKOn2yRWZtl1maZtZnPrJZN18miBZmzTUZslRFbWX0zq29m7c0yYKsM2CoD
tsqArTJgK8tulvVaZb1Wma5VRivIYkVZrCiLFWSxZlmsWQYryGDrZLB1stU62aooOxVlp6LsVJSd
mmWnZtmpWXZaJysVZaXigazULBsVZaOCbNRmd1bILB0yS4ddWmGHVsguG2SXDTLIBtmiQ7bokBk6
ZIYOmaHDTrXYqRY71SIrbJABOuxUi51qEfkddmqFyG8V8a0ivlXEt4r4VhHfKuKbRXuzaC+K9qJo
L4r2ZtFeFO0ddrFFlHeI8g5R3iHKO/TEW6njiq4+M7wZfUSUVfqsH4ioGSJqhoh60T5PETV77Osc
+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
BJ8TOXeKnDtFzlyRMzfTEw3LJNju/n7v8z8R1JDZHR1cOzysrj0CI3AkjsLReAfeiWNgrrXmWmuu
teZaezzegxNwIk7Cdz3rUnwPDc4nYXJYPawqrM5eFK7MfgsN4fLsZIibrLjJipusuMmKm6y4yd6M
WzANt8J6s7fjDtyJu3A3pmMG7sG9mIn7MAv3g32yD+Ih/BoPY3Z0cN1EXIcGTMJksG0d29b9BOK7
TnzXie868V1nnnXmWWeedeZZZ5515llnnnXmWWeedeZZZ4515lhnjnXmWGeOdeZYZ4515pg7NTr4
oGHIoq7yL+rEr4mUTbJR5VXlt0eOTF0jm+WG/nWBNDKoReVfusyiDrmhX7DPyWY5CqBIARQpgCIF
UKQAihRAkQIoUgBFCqBIARQpgKLMd7jMdzglUKIESpRAiRIoUQIlSqBECZQogRIlUKIESpRASZa8
TJa8TJa8LPqPkESjMBo/wOUYgx/iR7gCY/FjXBlGyahXyKhXyKhXyKhXyKhXyKbnyqbnyqbnyqbn
yqbnyqZZ2TQrm2Zl06xsmpVNs7JpVjbNyqZZ2TSr7naoux3qboe626Hudqi7HepuR1T5vmMuHsGj
WBQdLfMerf4m6m+i/ibqb6L+Jupvov4m6m+i/ibqb6L+Jupvov4msvVY2XqsbD026tLLbkU3StiG
MnqQYDt6sQN9YbrMPkdmnyOzz5HZ58jsc2T18bL6eFl9vKw+XlYfT9MXaPoCTV+g6Qs0fYGmL9D0
BZq+QNMXaPoCTV+g6Qs0fYGmL9D0BZq+QNMXaPoCTV+g6Qs0fYGmL9D0BZq+QNMXaPoCTV+g6Qs0
fYGmL9D0BZq+QNMXaPoCTV+g6Qs0fYGmL9D0BZq+UPXFaETVl/BlfAVfxb0hrxLlVaK8SpRXifIq
UV4lyqtEeZUorxLlVaK8SpRXifIqUV4lyqtEeZUorxLlVaK8SpRXifIqUV4lyqtEeZUorxLl9RKN
eokleokleokleokleokleolGvUSjXqJRL9Gol2is+lOUrWrGSrwWZVWxnCqWU8VyqbMr/4+q42cc
zw+TVbMLVbMLh6rZxaGcuhSjVLe3VbXUmFBW2T6hso1W2T6hso3Wi0+LrwyPx4vDi/Gz0UHxC6rf
a/r5Vn16W3SkKldS5eJ4rf7+vypdjUp34tBvTJZc36byXBXlVLmcKpdT5XKqXE6Vy6lyOVUup8rl
VLmcKpdT5XKUdImSLlHSJUq6REmXKOkSJV2ipEuUdImSLlHSJUq6REmXqqeHpHoG7sG9mIn7MAv3
44Fwrsp5rsp5rr6rUd/VqO9qVEWzqmhWFc2qollVNKuKZlXRrCqaVUWzqmhWFc2qolk6M6EzEzoz
oTMTOjOhMxM6M6EzEzozoTMTOjOhMxM6M6keCOXqXdiNQezBXuzDmxATKvN4lXm8ynyZypxXmcfq
/wr6v4L+r6D/K+j/Cvq/gi6hqEso6hJKuoSiCn5uzeaQ6BSKOoWiSn6ZSn5ZjTnVmJOKfq6KntM1
FGv2Ow8hSUeoQgpxlFPpczqKoo6iqKMo6iiKKn9O5c/pLIo6i2L6GPe+Cye4dpLzkyHX6jKKlMG5
lEEu/SHv80Hq4HBdR5FCOJdCyOk8ijqPos6jqPMo6jyKOo8i5XAZ5XAZ5XAZ5XBZWh5Ny6NpeTR9
Ja7CuDCKmhhFTVxBTVxBRZyrny1QEnlKIp++f+gXmUakF+APQ7/KNCL9smNLaKQy8ml7qe8tpHdH
IyiOPMWRpzjyFEdeL9yoF27UCy/RCy+hQPL64SX64cbMOVFWT9yoL0j0BYm+INEXJPqCDipljr4g
0Rck1MpYamVs5l9COfNtXBLG6w+SzOVei6nMD/EjXIGxnvljWJfeoUPvkOgdEr1DQuFkKZysHiLR
QySZX7n/xqFfFUyonqx+ItFPJPqJRD+RUEHjqaAsFXS0viKhhMZTQlm9RaK3SPQWid4i0VskeouE
QhpLIY2lkMZSSGMzmz17C96AXJ+R66mm6VTTdKppDtU0h1oaTy2NpZbmUEvjqaWsXr+g1y/o9Qt6
/YJev6DXL+j1C3r9gl6/oNcv6PULev2CXr+g1y/o9Qt6/YJev6DXL1BdeaorT3Xlqa481ZWnuvJU
V57qylNdeaorT3Xlqa481ZWnuvJUV57qylNdeaorX3uGOX0YHwuNtWfjO579XeeX4nv4vmuXOf4H
RmE0fhRKFFqeQstTaPnaKT4zzfXfunduWFL7iNePYiAUhkXRCAouP8zahh0eGocdEWWzXwmbsl/F
13FRuJCyuzD7L15fG8rZ8ZiIvyi9qV7/HDdEOYovR/HlKL4cxZej+HIUX47iy1F8OYovR/HlKL4c
xZej+HIUX47iy1F8OYovR/HlKL4cxZej+HIUX47iy1F8OYovR/HlKL4cxZej+HL/HxVf7m8U3xHR
LeHjVZdEF1T9a/SVqn+Lrq369+gfq74bfbzq0ugbqfOji1Kjoq/HXwufji8Kn4qfCXPiZ8MF8cbw
Cm04PJbh4jfCbfHWsDzujt4Zl/Rb28Ku6Ljolv0vRY+FVdGysMrTP3ng12DP8vRTPf1UT/+HqlFh
l9q6xSi6OV3Z18LZRvmEUcbFS8LieCme3V+Onw8L1bi18Yvh5filcIvRf2bkwXhL6DL62UafZvTY
6Pcb/aWoNl4ZZsct5qSTj1eF78ZtYVGc96k1oV1VXE+nPhb+aG5/dOc31c6V7p7u7onxqv373f2Q
uz+rji70iWt84t6h33Y8zWwbVPN3qd6fTV2gko8Ko1I/jOLUo3TyS+HfU8vDjNSG6COpARV5eHRw
fFr4TbwkyqnSp1nB7420XD8ax6v0mqvDH1TpGk/fb0V5lXrigUodH+hJYyvrirutquT6ttBT9Y2o
OiyKapBGBrUYhizqkEM9DsLBYXF0CM4O7dE5+GlYEP0MP8f1uAG/wC/xK9yIm3ALGy4KrdEzobUq
FdqrYlSjBmlkUIthyKIO9TgEh+IwHI7hOAIjcCSOwtE4Fsfh3Tge78EJOBEn4WScgi+G9VVfwpfx
FXwVDZiEyZiCqfgJfoqf4ee4HjfgF7g1rKu6DbfjDtyJu3A3pod1qQ+FBakzMRJfCk+nfhmKqV+F
Ii//ml0p87M3+dgCO1HmY1/gY2/Gu/ZvjXeLiMGQiffs3x3v3d8e7wvp+M39XfFbYWS83/UQjq6u
2b+1Oh0+XZ0Jmera/burh+1vr86GdHXd/q7qXBhZXe/6Qe67KiyqHoercQ2uxXhMwERchwZMwmT8
OrRXP4zZ+A3m4LeYi0fwKB7D7/A45mE+FuD3eAKN+AMW4umwvnoRnsFiLMFSPIvn8DxewIt4Ccuw
KiyobkMeq7EGa1HAOhTRjg6sDwtq9oVF6Rj8N10TFqcPczwcJ+D9OB0fDu3pjzreFNan78YM59aZ
/o3X1pO2nrT1pK0nPd+1BXgCjXgKi1x/BouxBOaeNvd0k9ev4k9eN2MlXsMarA3r0kXvdWEbdqAP
O9GPAewO6zMH4WAcgkNxVFiXORrvwDtxDM4M7ZmPYmxYkPkxpmAqbsMDeCi0Zh5z3B0W1J4S1tee
GtprP+j4IccL8QWvvxnW1X7X+5fie/il6zNcvwf3YiYew76wblgU1g871FF8DRNXw96BY0J79ruh
mB2Ny/FDXIGrIN6z4j0r3rPiPSves+I9ezNuwTTcCvPN3o47cCfuwt2Yjhm4B/diJu7DLNwPa8w+
iIfwazyM2WFB3T+HYt3n8HlcgAvxBXwRX8LE8HTddWjAJEzGFEzFT/BT/Aw/x/W4Ab/AL/Er3Iib
cDNuwTTcittxB+7EXbgb0zED94Snc6eGBQcNC08flEVdeDqqVisWyPyleHX0QXn5zeiuaEKYGU3E
dWjAJOwJRf1zUf9c1D8X9c9F/XOif070z4n+OdE/J/rnRP+c6J8T/XOif070z4n+OdE/J/rnRP+c
6J8T/XOif070z4n+OdE/J/rnRP+c6J8T/XOif070z4n+OdE/J/rnRP+c6J8T/XOif070z4n+OdE/
J/rnRP+c6J+Tyq9wVf3RPJeHsp61rGct61nLetayPnSGPnSGvrNN39mm72xLzQ5bh/4+8r/+6uj1
1O7wumpWUMVmxq9Fx6mXnSrYTXq4mXq4mXq4mXq4sh6urIer9E9F/VNR/1TUMyV6pkTPlOiZEj1T
omdK9Egz9UEz9Skz9SQz9RAz9RCJHqGsN0j0AWV9QDnz/lDMnDr0e5xl2r+i5Yt0dpG2LtLCRRq4
SP8m9G9C/yb0b0L/JvRvQv8m9G9C/yb0b0L/JvRvQv8m9G9C/yb0b0L/JvRvQq+W6dUyvZrQqOXa
cZ49xevfVn41LST0ZkJvlocNF08XhRk05gyaso2mbMs1hK25SZgcttYPD6/XH4EROA7vxlTXHw6v
RylV5XfqOh0XPxN9LF4cfTt+Ljozfj46in2fil+kpF6KTolXRhey9YX6+hqK4ZN6+8PifHQGu/+Z
cjiWztno6qbo/fTChfTCyfHW6DzPffHAd9mnGumF8Jj77xgac4H3RlMVi6ODXHvF2WuV36X8339L
t2pUNPJ//j1d8zlddHzcqJ9XDz9rDv915XTVcrern1YtF6uWpaHfKN5W+dcoXT3G2SeHvlM80r0n
mUPl3yJ4I/qAOz7o7LVopBUO996x1lr51beLQnN8VXS2+b9Y/Ql6LeXKCmevulttogm3O1vv7PKo
3tleZyuiU6LqaGRUgzQyqMUwZFGHHOpxkBG/Fh0Rf4vGuwSXW9NiOvB5OvOF0Fp9VTSyehyuxjW4
FuMxARNxHRowCZOjkXr5kXr2kXr2kXr0kXr0kXrykfrvkXrvkfrtkUP//kU9ddtvpPVW8Ub8nJ2s
/GsmL4Qnqdtt1n4VmzxjXkvdZbXWXh8dVtUSnVDVGn2IZS5hh8/E33LXxdHF8SVDvzF3cXx5eKHy
q0Tx1WFjfHd0Vjw9+qhxEjt9EiUzr/pj0RnVZ0cfYq2Lo2P/k7ovgY+iyP5/dXRXz0xPEkIISbjC
DYoKiKggii6eyKKreHCrKB6gLiAicnisiohyqKArcgjqKi66Xigg6ioqHiBy35AA4Q5nCCSk/t+q
mcSEBHLA6u/f/ame6qp6r15Xv/pWveruN6CoiXpa4G4OoFTUtNvUb2sKR//X5HvRFdTdUL4nfm/D
7wBo2K96FebIuzA/PmL1Zzl5oBLkmn9CQelElExEyQBK7kGJTEqkdKAo5lC0BfOmfqjJ3NOBegnm
3btw12OBuIstv6W4g8tABZ5mRuzE61zY8Lmw4XNhI+fCRs6FjZwLGzkXtm8u6uykt5kvnsDxDPQU
Zbkt0wepapE6uwKzeiL0xbUNwEx8kd4H6TJxHXugcVVQ9yFQzUe9IdSbXWq9IdSbZv6bBdziUa8D
jofAcRc4HgTHALjti15FLvpZJ6Qaf4FdMZPvidAPOQMoGZQBSOyCMguUuaAMQ5Y802qgzEGvSKcr
aTPCFoQj0OyjCDkIuQjHgA6dYLncopuKrkCLbtRD9MTvbfjtC9unH+QZqKeJIdCL8XQB9OEitPiv
qLGVvTe/6ddtbUv1cvS5BFg5R6M60lyCt8xD0NTQiacrVWeELgjdqaGagDAdYSPONyGkIUBOlYm0
g/jNgmzG/2MmJDuCaz4Cyc7AdR+BZGfgulNw3QYxPFxvENeaIVZQnNW6uaD4Lyg2gyIFFJtBkQKK
C1A6DjJvtZr3m86B3Nmg3Gypltr/JeiM+rpAk7vjtwd+HwIqplEdIF4mMCYIZEwGMlYC3s21/6hj
7t9qlBJIycR96ITYLbZvGG94iaI/tOphjHdbIfc21Lhd77H6thF0m0EXBHcPnDlyVlMy9dL76E6E
uxD64+53wv3sDLm6IzwEzTSl06ElW9HSGZBpO+zLHeCyE+NkG6rqxOl9zi6E3Xqf2wehL8L9CA8g
PIQwEHxjov8JtBKcV4PzatEfV/UQMD8N9zEdWrQZPcheLXB4G9pou/7Z2uJVIV8O5MuBfDnRqzdr
yuvBZT24cHA5AzLGgcthcMkDF+Np3gOHTeb/iCBfDuTLgXw5kC8H8uVAvhzIl0NnUS+6lu5EuAth
MLWjRxGGIAxFGEbtUGMsamwCzHLQwtcDsxy08vXArLfR0h+ipb+Ann4PPb0aenqteFePxTX9hBGi
QUQajFtGmm2YTVxIraCjrWQbvVJOpnZyCsJUaufE0bXORvzuwu9uhL3Uzm2M0BKhD13r9kW4H+EB
BCOfB6myonrDo3rD7b0yLbhdZ9jViJmQ+61oqcRoqUTIvQclm9sViO16CTSjT943sAV3w/bbCFtv
N2y7jbJR3hboWp+8PUjNREqmbKQvBtc+eetFFto5B9S5wIZjeqF09GHYhdkypA+i5EKUvMLSfo3c
xUhZjJSgpd0jjqK+HLTKMb0MNmaeDJAL2jyUWgZbMg8lLwEu9cnbilryYKUehGS7xBH85qDWXGhm
hDIXtebBOj0IiXdJD79BSBFCeoRTLq7gELSuD+zaw8TAJRNc8sBFg8M2W7dLDNSZoM4DtQbltqgM
jU075Y2BDGmgrgvqNaDOEkfRY430udDjY9C4PMwTtD4GWdLArS64rQG3LBnQS+1VhXCffYqDpbwD
nI9Bpn+bUVRzcMyGHOtEHnFQZaPudTKMeCNd25TIW4QSGajPtNRqlMgAT9NKq8FjL1r3uPuFux+9
T6Au5f7Ysva+oGwp9wPXeIr3AXhazvYHypzmdsc1nqC9bU6J7UwxMoECsgrkS6KgTAG3aqCpjjlD
DcRrIq8W8uogrx7O6yOvAfIaYjyQMhE1VENuKn7r4574MgFnsCFkVdSfghqqoSbDqybSayG9NtLr
Ib0+0sEHd8GUNjVXi5YwNRle8ZCLI3eLTERKVYQkqgn54lFyC3jWhHwc8nFQbZGpyK+NUAfp9VCm
PtIaIN7Q/Cs5uKyDrOYKuUyGrCnkRLkY6nWQ31whl3WRVw95EWqO601AqALdS4TMSeCbgmuphrtf
HXXVMNeF/FrIT0V+HeTXQ1p95DdAfkNcH64C96YK+CYitSpCkl4OGfLQOmmyOu5lDVxzTZSphTKp
yK+NUAdl6qJMPZRpgDINMbKZ++Tbdk2iBMhhWiwbciRAjhDk8G3b1sF5PduC2ZAhATKEzF0hYa89
JdrOEelN6wl73RGKzKjUnGIrqhPotXvQfsfpBXr7ORQur26AqimpE+kHcutT5dOlI+DWBFddQT0B
dSOqdKq6Ai4Xmis6PfqCO/GjvY8V0hk7NoTLqzcW1RuJrLztQNKeQJzqQLUO4mheJlDtcpGbtwPo
0wuolgpUayWdvO1A1J5Ao+pAtQ4ykJcJVLtchvJ2AJl6AdVSgWqtZEJeFlrkLLRIY7RIY5mE82Td
BC0SA6maoVUaoFXqy5pIr4VyqShTG6EOzuuiXD2Uq49yDVCuIbQmAMvNh811iTD/6/MNVcZsNwEz
3XqYVVyAucJ8zPZi7X8LzWbdqTXrSVew2+g5djt+74Dl3klPFDfBFrlZz8bMY6L9p7rGJyk135Yy
/4G0wqbmn31QcMZhyc9jX+kPbMz8u10aYrGwks8iolawSc+gS7E3pfZ0AzWjm+hmpN6KudxFdDeN
omvoBXqXHqDZNA9nX2EfSz/SchpHK7FPpnWwTqZQBji+w6qxavQbq8nOoiXsWtaB0llHdiNtYZ1Z
V9rJerAetIfdxnpRJuvD7qcD7CH2CmWxf2JPYROxV2OTsFdn77B3WQ32FVvEavGmvDk7h7fg57Pm
vBVvxVryi/kl7Hz+F96OXciv4Few1vwq3p5dxDvwDqwtv57fwC7lN/FbWDvehXdhV/IevAe7ivfi
d7KreW/em7Xn9/D72bW8Hx/I/sYH8WfYzfxZ/jzrzUfz8awPf4W/ygbw6fw/bCD/iM9n/+Df8+Vs
Al/J09nbfDvfyT7imXwv+5Tv54fZZ/wIz2HzuBbEvhZcCPaNUCLM5otYEc9+Fgkigf0qEkUKWyxq
izpsuagn6rOVoqFozFaLJuIstk6cI85hG0Qz0ZxtFC1ES5YmWonWbItoIy5mGaKtaMu2i8vEZWyH
aCfasZ2ig+jIdokbxS0sU3QWd7CDoo/oy/JEP/EwJzFEDOGuGCaGcSXGiwncEzPFTB4UH4uPeUjM
ErO4Lz4X3/CwWChW8CSRJnbyOiJLaN5EOjKGt5QJshFvK9vINryTHCCf4TfJkfITfq/8TM7j4+Uv
chF/Xf4mt/ApcpvU/GMn6AT5z47v+PwXJ86J5wudJc4qvthZ62zkK510J52vc7Y6W/l6Z5uznW9w
djp7+SZnv7OfZziHnMN8m3PEOcJ3OjlODt/lHHMdvttVbgzPcuPcOJ7nxrtVuHaT3JpCuLXdc0XQ
Pc89T9Rwz3evFDXdjm4ncY7bzX1CtHT/4T4turrPus+JHu5od7S43R3rjhN3uC+7L4s73QnuRHGX
O8WdIvq409xpoq/7pvumuN+d4X4kHnA/deeKQe6X7n/FcPc793vxpLvAXSaecle4K8U4d7W7Wrzk
rnc3iJfdDHeHmODuc3PFa4oUF28rpVLFu6qBaiG+VReqNmKJaqvaipXqL+pKsUpdo/4q1qvr1fUi
Xd2obhSb1U3qJrFFdVY9xFZ1h+oldql71D1ij7pPDRKZarAaJo6px9Tjkqun1TNSqpHqOemq0eoV
6al/qn/KeDVRTZSV1SQ1WSao6Wq6TFQz1BxZVX2jFshGarFaLs9Ra9R+eZ46qI7KDipXaXmj18Br
IG/xGnlnyFu9s71zZFevhddCdvcu9FrJHt5FXht5m9fWayvv8K7yrpG9vGu9a2Vv769eR3m3d4PX
Sd7r3erdKvt6d3i95f3eA97fZX9vsDdYDvSGekPlw95j3hNykPeM96x81HvOGyWHeaO90fIxb5w3
Tj7ujfdek094b3v/kiO8Gd4MOdKb6c2Uz3n7vQNylHfIOyRf8LK9bDk6AOCTYwIyIOW4gAoE5YsB
P1BVTggkB5LltEC1QE05PZAaSJX/Ct4Q7CzfCfYM9pT/CfYK9pIfBu8O3iM/Ct4XvE9+EuwbvF9+
Gnww+KD8LDgwOFB+HhwcHCxnB4cEh8s5wWeC78kvg18Ff5BbgsuCa+We4PrgFpkVPBJKkXmhuqEx
TmpoXGiq80Lo09A8Z1JoUWi/87av/CTnJ/9M/3JnnX+Lf7eT7d/nP+gG/H7+ADfWH+gPcuP9wf5g
t4o/xH/KTfRH+C+4qf4Yf4zb0B/nv+Q28sf7U9wz/Tf8N9yW/nT/Pfd8/33/Y7etP8uf417hf+F/
4bb3v/S/dK/1v/Z/cDv4P/u/uZ38pf5St6u/3F/pdvNX+xvcnv4mf697l3/Az3YH+kf9XHeInxcm
d3iYh7n7RFiGXffJsBcOu0+H48KJ7qhwUjjJfTGcEq7uvhSuGa7nTgg3CDdwJ4WHh4e7k8OPh59y
p4RHhJ933wyPDb/ozgi/HB7vzgy/Gn7V/SD8Wvg19z/h18NT3Q/D08Jvu7NieEyMOzcmPqaquyCm
WkwNd1HM4Zij7m/Eg5i/E/mXVbqOGlEqnaZNz9bpeis11dsQX1NiiTz9mn4fe6YeibPrdBfQzEds
WzR/m96B46boWVYxepO7Qx/E/nueKqGeAwgvlSrvowhfFElZjxoSTS0n3GB5odwqnYO4j5G8K4Vx
nl5UxvyrKaHOn/VGvUf/Ag5puNqM0mQsw+aB6/go9816l56vt0TP9herfSfCOr1BL9HZ+hoKoO3O
oNqF8vNKq0wfwr07CA6/S472x4wlkvumfpN8hIJ7eBz1boQtejV4rMepg3lWA7oYsVo291u9UC+H
/kB3YLeXXP+7+g09Cb8jEC7RZ+uH9ADECrVj/tUjtqsYdZ7+TmdAg77TP0EO3AfTekWpCsr+XEpT
EOxUohgbeyGasge8f8nXzcJaEU05iCvfj7Zfow9gvh+LpBa4CwW16532Du3ML12Mfpfejj62J7/F
zcqo/V1buExpckfLrS5y9vciZz+UjQe2ZrZ8VNP0Ctw/T68opebDhfp2M7qglNLv6X+ZHq2/K7NM
Rem3Gu0wOlssZ1kZqHFl+mkb+/T4/qxvLwM9dER/bHFrvblv5d30OxZN30G7Ft+8MnHI1LMtapZR
L0rgsL/sWlUCdRRh9W8Vov7AHlcY5Djt27llqH9rZCzTOdCjA+WuwT9pbkOEv9la8ke8TZE9ml+r
BJrG2Gthb1xEyreiv4si+0nom5VIH21daMkhoNOhEwkM/Nyt9wHBNto+ZbQ626a/aLNr6q/0PL3U
jOgnoM8tFH+OkoH/N1NH00OiaeswNswpjsUFNDmF4mMw8sTS1dQT8ZnRtHS03uITj6r59VuNfhX0
AaBPvyiSm/QP9fsk9KwT0h+vhQ5mT72R/nw0/wf9Pdr/x+hZcfw+Wig+EtTJ1IHMTOiSaNoX+nNw
+PcJ699ccnoe7pjBR329/qvupTtGS08uRv8EUOxN/W/9q15aKJlTN3qSRiH2Ao0238zQe9DcmTQL
s8M5NI+a21WFlvQNLafzaRVtofaUwRjdwnqyntQfFv3faICx5WmgseLpYX4v70uPwB5fSUP5Gp5O
w/g2vo2e4Tv4ThphbHMaybP4YRrFc3gOvWBscxptbHMaC9s8RC+KWqIWvSK6im70qugpbqPX5Kfy
UzJWraZJTrwTTz+7n7if0C/uF+48WuiucdfSr652Nf1mbDpaYmw6WqmuU9fTOmPT0QbYdDfTRmPT
UZqx6Wibseloh7HpaKex6eiIsekoDzbdc4xgzY1lrnpRvcICxqZjscamY3HGpmOV1DQ1nVU2Nh2r
Ymw61gA23X52Fqw5zTp6wnNYF8/zgqy753sx7DavkleZ9fKqeFVZby/Fq87u9Wp6qayvV9erzx70
LvYuYf1htd3JHoJ1NoINgnX2HBts7C/2qLGJ2BBjE7GhoUdDY9jjxtJhE/w4P4nN8d/z32Pf+un+
Xjbf2BpsibE12Cpja7C1xtZgG4ytwTYaW4OlG1uDbTe2BttrbA22z9ga7KCxNViOsSNYrrEj2DFj
R3AeE4gJcRVTJaYqD8Zkxxzl5pnCCqsxzGoMh8aMh0Uxgf4JnX6NpiPlTeyK3qJ3MUrNgD65Vp9c
6NNc9LovoFVBq1VBaNUCpP9ISylEy7BzaNlyzKpX0VrMrtZRGvpYOnSuNmXQPvT4/djr0AE6THUp
G3s9OkLHqD7lQSMrWY2sYTVSWI30rUb60Mg+FMf7Qi99q5fx0Mt1lMjX8/VUmW/gm6gqT+NplMTT
oa/Vrb5Ws/qaZPW1itXXFKuvlbnmmioLTP8pAVrLccRGVaC7CnHcfEoWAehxgtXjatDjrtRAdIM2
N4Q290T8Nuh0Q6vTNaDT64jJ9XILcblVZpArt8k9FJKZ8iDVlIdkFsXKwzKXaslj0P76VvtrW+2v
YbW/htX+Glb7a0D7/0IJqp1qRyF1ubqcpLoC/cFBf7gGKe1Ve6Rcq64lpTqoDuSpv6Kf1EU/uQ60
16O3BGxvCZkVEAqrm9FnYtBnulBt1VV1o1jVXXWn+qoHelEl24sq2V7E0IvuA1Uf9SDK/F31Q0p/
1Z+4GqAeQi0D1UBwfhg9LYSe9iiohqghSB+qhqL8MPS9sO17zKynoMwI9SzqHameQ+5oNRopY9QY
UI1VY1HmRTUeKRPUBEjyinoFKeifFDT9E3wmqUmgmqwmI32amgY+09V0lJyhZiDlPTUTtO+r99EO
H6iP0TKfqM8h52w1G20yR82BVN+o+ZD2O7UAPBcraKZapqCTaoVaDW5r1AZKVRtVOtpks9qGurar
HVRH7VS70JK71R6qpzJVJmrcq/ZD5oPqIEoeUoeQm6WykH5YHYYk2eoI+B9VR8E5R+WAc67Kpcrq
mDqG2vNUHmi10ub/VT2Hahg0wRFogiPQBEegCY5AExyBJjgCTXAEmuAINCEGNHkGxxHeCOIGU0ga
TCFmMIV8YMoQHIcGh1OcQRYSQJbl5IdWhFZSOLQqtJ/iDMqQMChDyUCZdKrsb/Y3U4K/xd9CYX+r
v5US/Qw/A7nb/G2U5G/3t1N1f4e/G/E9/h6Uz/QzUWavvxdlDvgHED/oH6IUP8vPQpnDfjbKHPWP
IjfHz6WQn+drSgob07qywS8cZVji6IRdigeKeVQ1HAgHqUo4FA6hpB8OU3XgWmWkJIQTKcWgGyUC
3VJwrBaujjI1w7UoIZwaTgWf2uE6iNcN10X5euF6iAP7kA7sQ8rr4UmoZXJ4CqimhqeC87TwdPB8
M/w2VTFoSMKgIcUZNKQ4INZ/omg4BruwaOgADV9B/DXgoLA46AIF30N8Jn2G4+cEbQMafoX4f4GB
guYDBwVwcBkQcznwVdj1e8/ioLA4WMXiYKLFwaDFwaoWB5MsDiZbHEyxOOizWBZLYdaZdcaxD+uL
4wOsH44D2AAcR7KRFAZKXk/comQAKNkLR4OSIYuSAYuSMRYTE/guvosqWRyMtzhYmR/jxyjWImCc
kEJSPLDPQzwoglRJdBadqbroYt9kM9hXw2JfLdFddEd6D/t2m8HBGhYHa4nbxR1UrQAHM0gAAQ+S
B+zLpaBFvRSLeolm1Rb981J1KXrvZeoyEhbjPHUlME4C49ojbtBNWHRzLbolqY6qI1IMugl1g7oB
xxtVJ5Q0GCctuiVadAtadEsBuvUkX92ubsfxDnUHyt+p7sSxt+qNo0E6zyJdMIp0A9QApDwEpHMt
xnnqEfUIaAerwSifj3TDEY9g3BPqScQN0nkW6YRFuqAapUaB6nn1AlIM6nkW9fwo6o1T45BusM+z
2JdiUU9Y1JPqdaCeiKLeFDUF8alqKhDtDfUGyhscFBYHUwrhoLA46AEHZyMewb656mvEv1G/4miw
zwP2rUbcoF4Vi3qJFvWCFvWqWtRLsqiXbFEvxaKerw6oA6Ay2JdosS/JYl9KFPtygXHCYpzvMY+R
iKBVcFDwEQoEHw0+iuPQ4FAKBYcDm0LBx4OPI+Wp4FMUsDjFQ+NCrxK3iJPg7wbWxPn7/P0Ub/El
ziJLApDlMOLZ/hGKBabkoZ8bTKkUFmFBsUATRTEWR+ItjiQAQeIRNwhSOVw1XBVlDHYkhGuEayC9
VhQ7aoODwY54ix1xFjsqWeyIB3a8Dp6Tw5NBNS08DeWnAzXiLWpw4s33mpXX87f+pSVdQ7ecaJ7/
/8emt+ntJkTPNpZkd5l1HrvWV17em80Kl7W8v7Lna/LrtMdfo9bnLmN/Wlt0tU7TGUVXdEqvN3+F
Tj9YfglP76bbw/I0vye0vYtRbIOl/X3F12UK+Ow6/kzvs8doOmzFg2jZNL0HoWBlr5AlmlCIejVK
rSSz7lEVsegKY751/QdtwQJpCtfr0602bWdJqwt6R/G1Ob1fb9KrkFPsKURFt/xV8qJnpv9EtbrQ
egFkFwXxXSe6y3pD8VXN07WV/ASnVKrpeqr9zbWr4T+YYNaH9DuILYiWydcs04MP6UX56eWqZ7PV
0bTfz80qmF5XqMTzdj3IrJVvsLHNkKYwQkXbt6z3165ap5VervwbNK0QX52lcxGOmrUufaxIuZM9
l/o/tv3Bfb4Mm554CsTXlcAvjRpBB2ueAteTb43IYqvBU4upJW7AhjI/Qzz1seI4fkWkKtz3ykj/
oZ6nP4g+H0jQk/U8m5puRvfCo3eF5g8rgY0b7fwhw85NLJqZMUlvxO+MaKk99nnbjwjzsWcUXbm2
SJZM+Wuz32IsWKAXI0xE6jV6if7Jpi+NzCLsE+1byy9pMcm3FzmzY6j+T6GUe/U03Vc/a1b5db+C
1NZI+8z0u+JPHck8cy3+LHSH/grXsvr09dR8fTDjGBAsf164gKLPZwvLAFwueDZinrGUwvmX0yVj
RTe0Utj+jjXPm4vlDtDfFikb+V2H0S3daEgF6ltmtN7Ot2w7mRjGt43RVsNR36MX2vt9mEQJY1iY
mhbjuQf9YHf06ZIAcuQ/dTocyT318e3359BFn1fmz1LM3MuO25ux7yk299xg554l9Hb05tOMXSVt
x+HZkmL5ucenRNP/XnI6lec5erk3fVc5CSLvWIzQT9nfTIsAH5mA2L/0p5GYzcufn9nnnbhTn1dA
ug/1Z0DMT6Jn3+p3ybwfNMvEEYCcQLFvgRL5s+BMoO9PUZyIPD+LKcbze/2J/jLKM8GcRdOLoIPW
5ZfW0qGX6lUFZ/m2yyYTy7crIzNxi2gLjH5E3hGJ9p/9FpG76evs2ZdknuY9iPAwYmP0KxjrHo5y
KfRuC1pgjh5cAWlv00P1G7ovYv9Fr35D97b48DxGozfQzl/qifpujK2Z5hmgvbLZeqaeEqk5Omqk
6P8exzNDL4dVGem55xXEovNOfSQSyj5jLsL7oO3vBW8FFR2l7DhdYPname9G+95D4Tcuzi76xsof
tRV9imvfYNpduiT2ioq9f/VHbEUtWdOq0OEDpeGnvTunzdItz1Z4/oHeYKysFfg9wZPugpI7Tl1e
/boeov+hJ9j4Iuj7VPOmTHQciswXD+mPEeadWj2WU9PImyynxCNdb8VIaMdH3NOt0MOCOXfkruu9
mHPsLWkGWO66KjDnLkT9U+SuQhaDg79EzzZE+09U6j+nP5e06bv0nXqu/pS4PRuqBwKte0ZmBHqW
zsbZKP13faGuCxxtoR/W95xCXZH5Y+opyRvFpIhNW/C+4dSiuadz09NPAw+jvcsjqI75bbG7b/PT
9G+/j8J/7gZp1qDP2TVP6LCxFAsslchMF7nfI5zgXdU/eoO8LxTuuZhfzf4z5Tnxht42wMydIm+6
6v6YHS1F74vkfWmPa/Tnuot+FrHRem0krYJ1fX/q8pazxoOF3/P6v7sVzHH3n/rblSW96346t8js
EPPvLRj1TsOKRWnvKJ+Utowapd+3a/s7K15ToS35tHAp04a50CnPXPXY0yFJKXVEkQ6z21Nelz9N
d6m0WtIxs/0f95TTt2HWc/C0tUz8KchxOvr7H/g8oiLaiHlPWoQy+mVH/rrIQvucYeFJie+Plv2g
/PX+0VtFvoEoxuOET0NOQmNX681KUcQSjqzoFDwLDp7MPrZru8nUl9zy12vpK/CVl86wY8fv35Ll
r8mV1bYL0ZXlr/VP3RIrSlj+J09k3mowz6ULLHs9xx53A59LfRrxf23DvP/Qib+ZKFQu+38vS9m2
siFkRUf1Er+VKrUu+wbB798O2icWBZoVLJEov6xZq6pOXdDn/oSt6Nw9ghqwnkrBWfsk5k9Y79P7
TiOvTRRdUS7xi6PG9isn8wR9UQm5pfE231FtyqfMj9kV/k3RlPw6W9u6jpOr0Nkzv/PMl8V8r1VM
KvNVVjPzlKYiVrueqN/Sswu+A4vGzIwguqa5qECOZsXkfav89RWhr8CbQvo3+1Tix4Jz+w4Q5ptu
mZ/0leHrvRPUXeK3yaXQbLWrVmYkt1hgz75F34sgQ/Bk80s7osTSxWX7XrME+oq8/7DEfG9pQ1bk
3B6jq+YnR4fotVQv+r4R9GufXmzDRKqKOen26NOkjZE+bXXt3vJLWsp1RJ6wFbLWdU/9sH5bT7J+
Awre6dHt9Yfl5PztHzNjNjKeuB6dV9JT5cgTxePS9pX+FKeim31HJorMej/mE/sxP1qpV/+ORHoX
0swz4wv0Tfb8I2jAct1Nzzfn+kv9kv7OrJjbvBeL8F6Xn14uiTrqvvpxfU30zMaggb1t/C09TfeD
HkzEbG02Rl5T4lP9if44Omqb1flEamqfOQ/SfWxa5H3ESZhXv27uh/GSUPAWUJG1IH0k/2v+csn7
qn4Htto/o2cLbd0TLc4vtG1gnr5+oA/qr22ByFf70TcMolp8Xvlr/bO2/8nX2MVr2ZSPWJHnzn/W
VpHnVLjTu6nQqkOBh4SyjD2Vyby/c4ONV6cWsD1TLe0WzDq22NGkGp2rl6GHmn2dXq8vRH/pTb6O
jOtROxW9M2JTVY2efxh9UsGp4Itpm/7eSa7DvluhB2Oci65A6kt1D4T2+i6qrCNjcL4PjaEIl+vW
upOOftmgf9Br7dsSpsfuwJi0KWq/nkmN7Mh5pi118tWNkuWaqqfh+E7B+WxjyxV5s+LGaKQL/Y0u
oObWT0x9m1P42oN5v+lQ3mE7Us7V9+mPzBimh+knTQxcRxapNvIO2H0VkLePfgDX/4A98RDrY3Hz
STtSL8a9zMiLfEk/y3oFyd9sy+r+UR5lsPFKrHt76WWK0eyybwSYeYLVJqvN3+Jc2mz/pPMdQxVL
F0F6TktK8WPXOerH7gm6mnFWhXpZ73SDrHe6EdY73UjWmXWjMewedg+9ZP3SvcweYiPpFTaKTaCZ
xjsdzTbe6WiO8U5Hc413OvqCfc0W0Ze8KW9GC3kL3pJ+Nd7paAm/hF9CS413OlrGr+btaQXvx/vT
aj6IP0Jr+Rj+Iq3n0/l0SuNv85mUzj/ls2gn/5x/Trv5XD6P9vBv+XzaxxfwBXSA/8IX0kH+K19M
WXwJX0LZfDlfTkeEL8J0VMSJeMo1HuZIWw9zZD3MOaKeqMeU9TDnWa9yIdFStGRh61UuxnqVi7Ne
5eKtP7nKorPowhJEd9GDJZpv5ViS8frGUozXN3a2nCXnsc7G6xu73Xh6Y3caT2/sLifOqcR6OwlO
MrvH+HtjDzhrnU1soPH3xoYYf29sqPH3xoYZf2/sMePvjT3tHHJy2DPGxxt7wfh4YxOMjzc22fh4
Y1OMjzc23fh4YzOMjzc2z/h4Y18aH2/sV7eb+zRbYby7cWa8u3FpvLtxx3h348p4d+OeO8WdxmOM
Xzceb/y68crGrxuvbvy68brGrxtv6C5wV/LGxqMbv9B4dOOt3Ax3J7/IeHTjlxqPbryD8ejGrzMe
3fi9xqMbf8R8H8eHedzjfLjneoo/5oW8EH/Ci/Xi+JNegpfAn/KSvGT+tFfDq8FHeLW9OvxZ43GN
P2c8rvFRxuMaH+0185rxscbvGh9n/K7xF43fNf6y19a7lE8wftf4q8bvGp9o/K7x143fNT7Z+F3j
b3h3eb35NON3jb/pDfAG8H8Z72v8HeN9jb9rvK/xGd6z3rN8pjfKG8Xf90Z7Y/gHxvsa/9B4X+Mf
Ge9r/HPjfY3P8T7y5vG53lfeEv6Dt9xbwdd6q7w1fL23zsvgm7zt3gG+y3hl44eNVzae7ekA40eM
Vzaea7yy8WPGK5tggeRATRE2/thE5UCdQCOREDgzcLaoFmgeaC5qBc4LnCdSA+cHWovagTaBy0SD
QLtAO9EkcEXgKnFW4JpAe9E00CHQUTQP3By4RZwXuD/QT5wfTA3WExcZ727iUuPdTVxtvLWJa4y3
NvGg8dYmHjHe2sTjxlubeDZ0Y+gOMcN8tSfmGG9t4htf+bHiZ+OnTSzzu/h3i73GT5vIM37apDR+
2qQyftpk0PhpkyHjp01WMX7aZHXjp03WMH7aZKrx0ybP9Kf7M2QT46dNtjB+2mQr46dNXmL8tMm2
xk+bvNT4aZNXGz9t8jrjp01eb/y0yRv9TX6a7Gy8rMmuxsua7Ga8rMnbjZc1ebfxsibvM17WZN8Y
HuPJ+2P8mBj5UEx8TIIcZDyryUdjDscclsNiKZbJ4cRZGlAvBhZfLMURo0rYBcVjHJaUhLHbwahe
H+kNsCtqiFHQoyZAyQDwsDX5wEPzPw8X23/AMIgZYxEzFoh5E6huxl4JuNkNHLvTHdSWegFDLwWG
9sPMoT/2y2gADaIq9Aj2RBpMw1DzcCBsEhDWp2QWZjGUYr8QrsbigLlnAXMbIqURa0RNWWN2BtLP
ZGci3gRYnGyxuBmwuCOO1wGRL7f+QpNZN+Byc4vLzS0unwtcHoL0oewZasFGsBHg+SyQuhqQejS1
ZGPYy3Q+Gw/UbmZRu5lF7WYWtZsCtd9B/F1gd1Ng93yMB9+x76g1+579RBexn4HmbSyac6B5CxzP
A6a7FtPjLKZzi+lxFtMTLKb/xWL6ORbTL7CYXh2Y/g7V4u/yd6kGn8H/TbX5TKB8HYvydSzKpwLl
5+L4BbC+psX6ehbrawDrf8FxIRA/FYj/K46Lgfs1Le7XtLhfF7jvU30RBvo3sOjfyKJ/Q6B/Ep0h
kkUynSlSRAq1MyMB4hgJqDFGgoY4NhKNQYXxgJqY8QBUrUQrHFuL1shtI9rgeLG4GGUwNuCIsQEp
5lvrK+231lfZ76uvtN9XX2W/qb4C48Rwulg+Jp8hhtFiDMXKsXI8XSgnyFeosnxVTqJWcrKcSlXl
G/LflCxnyk8oBSPKLGpuvIlSCzOu0EVmXCHfjCs4xjlxdKlTyalEzczoQs0xuiwl4SxzllGqs9xZ
TrHOCmcFSWels4ocjDprkbLOWYeU9c56Us4GZwN5zkZnI1VxNjmbKGTGJAqbMQkltznbqJKz3dlO
8RiZdhJzdjm7UeMeJ5MqO3udvVTVjFWo8ZBziJKcLCeL2jiHncOQLdvJhjxHnCOIH3WOIp7j5NDF
zjHnGDjnuZwqu8KVdLHruA4xjHCKMFi4HoXdgBukWDfkhki4vutTkht2w9TGjXFjUAajoPlXd7cy
aBPcKqBNcpNRPsWtRvFudbcGONd0a5LxgFobxzpuHXCo69ZF+XpuPZSv7zZC+cZuY6rqnuGegfQz
3TNJuk3cJhTjnuWeDf7nuOeAtqnbFNyauc1QprnbHLTnuueSb0Zc1HW+ez7SL3BboWRrtzU4XOS2
pf9H2flARXXd+37PmZkzBzyAIlFEQgwhhBBCiRJCCRokSAixhBJivNY6wzDMDHAYhmFmGIbhzF9G
a6w11hpqqbHGWmuMsdZaa73Weq31GZflGWut1xpqvdbr9VlrqfUZr3nf/Rtibdd6a72XrN939tpn
n33OnJk5+/NlzXzVi/PFBRhZK9Yyg/iS+BLO+VXxi3heTeLrmP/LoglHbxHNOEqraMU8NrGTVYmK
2M3mi07RjSN6RC+rFvtE3D3EftHPpokD4gDONiCqeC5BMYR5wmIYM0TECGaIilE2SYyJMRxlSBzC
mLgYx1FAAGwmJwBWAgJ4i5WKa8W1bA7nADYDHPA2tg6LwyxL/KaI+4D4LfFbrFIcEUdwtTeJm6Df
ETez2TwDFuPBCpjhPfE96A4R71Jxp7gT+34g7mILxB+IP8DMu8UfYutecS/2/bH4Y/TvE/dj5E/F
Axj5M/EQtv5cPMzKQBhH0f9L8ZesGJzxPzD+uHgcPR+KH2LkCfFXGDkqjuJ8/qd4CmM+Ej/CGZ4W
f41zPiOeYU+LvxF/w54Tz4pnsS8YBXtdEC9g5o/Fj7HXH8U/YrYr4lWM/y/xvzD+z+JfMeaWeAtX
42/i33But8W7bAbnGDYHHJOCdqphCis1pBumspmGDMN0VmbINGSz5wwPG2axZ0A5T7BKQ4HhSfay
odDwFHveUGQoQs/Ths+xuYYSQwlmeMbwDEbONszGmDmGOdhaaoB3BBt9nj1rqDBU4FjPG57H+EpD
JbbONczFsXimgIYzE5vNmQkKZoKCmaBgJiiYCQpmgoKZoGAmlsWZic3kzAQFM7GnOTOhDWZilZyZ
2AyeVcuKpfnSfOwFckIPyAljQE5QkBMr4+TEngM5wQlINsnG5oKfulma5JR6MAYUhX1BUegHRWFk
SAphnrAURjsiRdAPosL5gKgw/mvS11iptEZag73AVWwOuGo9et6W8K6ThqVvof096Xs41jZpG3uZ
kxZ6QFosmZMWFKQFBWlBQVrQ/5T+zF6Qbko3cZS/SH/BPKAuVsKpC+1PpU/5v72VxNiCJE2Shs3g
BMZmgsAMUClJYs8m4T9WkpSclIy2nJQKTUvC+ps0OWkyK0uakpSOnqlJU1llUkZSBpuT9FDSQ2xu
0rSk6eifkTSDlSZlJWWxp5NmJs1EOzspG0d5OOlhbM1JykEP2A5tsB3OBGwHBdtBwXZQsB0UbAcF
20HBdlCwHRRsBwXbQcF2LJmzHXsBbPcam5zcnNzMxOTXk19He1HyIrTfSH4D7cXJS1gGJz/0LE/e
woTk7ybvQBv8hzb4D2PAfxjzvydpmDBJmJTFXuQUyMoT2Q2cApnAKRAKCoR+Sf4Se1heKi9ls+Qv
y19mU+Rl8jL2iGyUjewx2SSbWK7cIrcwrWyW29C2ylaMt8k2jLHLdozplDvRVuQulic7ZAfGdMtO
jHHJLmztld0sB2TZh36f7EM/+BIakAPQQVll2XJQDrFH5bAcwcioHMXImDyEI66Q30TPKnk1ZgaD
4ihr5bXQr8vrMGa9/DbOeVgexjzflDeg/S35Wxg/Io+g/W3525hzo7wRW9+R32FPyJvkTexJTq6s
AOS6hT0lf1f+LquRt8rfR3u7vB1j3pPfw9YP5A+gu+QfsCJ5t7wbW38o78HWH8v7WKH8E3k/en4q
/xQ94F0oeBf6c/kwe1z+N/kIxvxCPsry5V/Kv8TIY/IxHOWE/Cv0jMqnMCdoGPOfkc9AfyOfxZhz
8r9j63n5POb5nXwB7Y/lj1kpKPn3mO2ifJE9wVmZ5YCVIyw7JZoSY7kpQym4SuDmFawo5SspuFYp
q1JWsUdSvpryVfS8lbKWPZXy9ZSvsxrO0+gBT7MiztMsg/M0EzhPQ8HTUPA0y+A8zWaD7KqIp2uJ
pwUi6QQ3f0bMnI9TiY9T2b/g/1Qi4zoi43oi43Qi44VExtOIjKcTGWcSGc94IL9HT/k9EuX36Cm/
R0/5PcmU36On/B495fekUH6PnvJ79JTfo6f8njTK79FTfk8a5ffoKb/nZcrveYXye6ZSfs8XKL+n
gfJ7XqX8nkbK78kCqU8CN6doUojRZ7BnNVmaLDA0J/VykPqrrIJY/DXN65p/QT9n8ec1Vo0VhO3R
eKBejR/cHACRPwciX8HmgsW/gvabmjcxnhP5cyDyt1kVWHyEzQeF74H+SPMjVq3Zq/kZtnIKf4Mo
/EWi8Bqi8AWg8BKmJQrXPsDfWvD3i8TfL4O/XyEK5wlDOkoYmkIJQ1MoYeghShiaQoz+RWL0zwtf
EVayeTzZnzVPkDrn8qeED4QP2JPCPnD5Y0TkjxORPyF8KHwI/uYs/qhwSjiF/l+Dvx+l1KKHhd8K
vwORfyx8DOUJRkWU6lYoXBL+Az1/FP4I5dluOZRslCf8L+E62jzfKF/4s3ATbZ5yVCB8ItxFm2cd
PSLcEz5lOZR4lKvVaAW0ee5Rvlav1aPN049yKf0oTztJOwk9aaD/YuL+2cT9pcT9TdqZ2mz0c/ov
1j4G+v+cNh/0X0z0X6It1BaiXaQtgj6jncPmwAk8h3a5tpw9rf08/EAx+YFntJXwA8XaF7QvYH7u
B4rJCbxOTmAROYHXyQksIg9QC/pfz1LB/RtZOhF/JhH/TCL+ct1eEP/zIP4jbK7uF7oTrJq4v+aB
TCY9ZTKlUSbTVMpkaiQnUE9OYD7lM71CfqACfuAjJpIHMOh/Cw8gkgcwkAdIJfo3EP1n6i/pL4Hy
L+v/iB7O/SIR/3Qi/noi/nQi/kwi/hn6cf04lDN9LTG9gZg+nZi+lpheEEUwvYFo3kA0P4OovZZ4
3UCknk6kPoPovJa43EBcnklcXgsWh+8Vi0HkIrF4OrF47QSFl4qlGF8mlmE8Z/FaovAEcxuIsw3E
1nXE1vXE1unE1guJracRW08nts4ktp5B9DxDXCWuAlN+VfwqaJLTcwURc6W4XlyPfk7MzxIxzxc3
ihvBkZyVy8TNYOVKYuWZxMpzxa3idnD8e6DkmUTJrxEfzxX3iHuwF6fkMqLk10DJ+7DvT8DKM4mV
y4mV54r/Jh7BDL8Qf4HxnJXLiJJnEiWXEyXPJUquEU+BkiuJkucTJZcRJc8lSq4iSl5AlPys+Dvx
d9jK+ThBxs+K18Qb6OF8XE58XEF8/Jp4T7wHQuVkXElkPBdkPB1tzsRVxMTzDY8aHmfVRMY1RMZv
EBm/SBw8nzj4DeLgGuLgmYbnDM9BOQEvIAKuMbxgeAFz8kSxNMoS01OWWBqliKVRipieUsSSKUWs
gVLE9JQipjc0GZpwdJ4lpqcssTRKEXuFUsSmUopYI6WIZVGKWBaliOkpRUxPKWJ6ShFLoxSxqQ+k
iKVRilgypYilUYpYFqWI6SlFLI1SxPQPpIjpKUUsjVLE9JQiNpVSxLIoRUxPKWJplCKW9UCKmJ5S
xNIoRayRUsT0lB+mfyA/TE/5YSmUH5ZG+WF6yg9rfCA/TE/5YWmUH6an/LA0yg/TU36YnvLD0ig/
TE/5YS9TftgrlB82lfLDvkD5YQ2UH/Yq5Yc1Un5YFuWH6Sk/7BXKD2ug/LDGB/LD9JQflkX5YXp4
mKmsAo7lcTaf/Em19IT0BLxBgVQA1n9KeoqVS0XS0/AbxVIx+kukkgnfUibNluawBeReyqQyqRzK
PUyN9Lz0PObhHqZaqpVegtZJr2C2hdIXMKZBamDPSq/CycyVGqUmOIQ3pDewlfuZKskoGXE+ZsmM
vRJJjNzh1MDhdOBY3OGkSj2SC/P0Sr3YyyN52ItSn9SHnkEpiGfBfU4FeZuZlNxYRg6nUlotrYZy
n7OAfE6l9A0JdwnyOWXkcOZK70jvoOdd6V0cnbudGnI7b0jfl7ZjL+555krvS+9jzAfSLugP4Xwm
SRekP0D/A55nEnmel8jzVEvj0jhm5p6nQvpE+gTPjnueSeR5XiPPM588TyW5nTJyOxXkdsqSUuBw
KuFwprAqcjg15HBeJIezAA5nGlzQ9KRMjJwBh1NO3mYm+Zlq+JkncJRC+JlJ8DOl0LKkCuhceJhJ
5GEmwcO8CuXuZRK5l0nkXl6Ce2mecCzcqyyGD1lCjmVp8lL0tCa3snnJHckdUCVZgTqSHVBnshPq
TnZDeRbdFMqim0JZdA9RFt1DlEU3hbLoppDz0ZK3+eKkmZNy2ecn1U/6Ips3yTLJz5opqU5HbkcH
h/MUXAT3ME+Rh3lSboOHeVRulztA6ty3PEqO5Sk4lm60nXIPnINX9qKHe5XH5AF5AD2DchAuhfuT
x8mfPEX+5En4k5XoeRMu5UlyKU/IX5O/hvHcnzwlf0Nej61vw588AX/yTczG/cnj5E8SzuQxcibF
8nfk70Dfld+FcmdSSs6kSf4+nMkzcCY70P++vJOVkDN5hpzJHHImpXAmP0TPHvlH7Gl5r7wXI38i
/wT93J98Tj4Af1IsH5QPYusROJMS8iSl5Ema5OPyh9h6Qj6Jfu5M5sgfyR9hJPckpfJv5XPo/3d4
kjnwJL/DbBfgTHLImZTIY/IYjsv9yWzyJ5+T/yCD8SgdsIjySAvlq/I19PCkwFz5unwDbZ4XmE95
gbmUF1hEeYG5lBf4COWR5sj/Lf83lGcHFsmfyiBAShDMA5iDAClH8BHKJs2hNMGHKZs0hzIF8ylT
sIiySQtTUlPS0M/zBfNTpqZMRQ9PGSyglMFHUjJTsrCVZw0WUdZgPmUNFlDWYF5KbkoutvLEwXxK
HMylxMG8lI6UDvYoObHH4cTC5MTwfkhZnrIcDm0F3Nfj5L7mkO9qgu/6BtrrU4ZZCbmvOSkbUjag
zZML8ym58GFKLiyi5MICSi7Mp+RCHdPMvJkdAvzK2pXsY8ZMS1AmlBWloFwo3/1HjXM7HlVUDLUS
tQa1HjWC2ozahtqJ2oPajzqEOoo6gTqFOou6wITQcSpmukQlhEZRZ9C+irqBuoW6y1iLgJJQqagM
VBZqVuIcWvL/L49FiblaZk8U36ccNY+2sZYaVH3ifGmfzYnn2NKIWoRamuifeBRC56k0zl2ovWhf
vN+XqCuo6xPtM6jxifadRIXZRIkoGZWOykTlJMaG82g8azGj7Inr1OK4f80TYwtpHGtxo/yoECo+
8RxWJY4XLpl4rmtRw6iNE9u3TGwvm6hK9OF1bOHP5wDq8P3nknjOe1EHUIdRx1AnUadR51BjqMsT
j9ceePxs/E3U7YnHcxP73X5g+z3GzDpUMmoyahoq+++P/PUz56IK/p8fhXD1318r/tzMxROv9f9v
Zf1j0ft7ZeI49L7KSoyj4z5YpaiKvz/enyMxrxCuQ38Vqnbi/Ydt5oV/fzQ3oRbrpiwb66ofHDXF
uhmpSCpDV3anQ9d0Z0LXd+dAR7rzoJu7CwdH+V7BpaZt3SVB87LLXY2DZ5Zd61o0eN60s7uMtPJ+
e0939eB5vjVoX3aza+ngRdP+7rrBi4n2hN7uMg9eMR3qbiBthh6l9lFqn+heAj3VbYKe7bZCL3Qr
g1f4XkEH1I72vS7H4HXTpW4X9Gq3D3qjWx28zvuDbqOuyz04brrVHYPe7V4Z9BuTu/yDd1qE7jWk
60lHoFJLDTS1ezM0o3sbNKt7J3RW957BO3yvYKglv3u/OmKc3BVScWW7D6nMOK0rropcg3Fjdtcq
VW6Z3X0UWt59QpV5T3BVon9Cc7vWqunGgq5hNbNlXvep+1rTfVbN5P3BtRNa3LVRzWmp775Aegna
SO1F3VehS7tvQM3dt6D27rv31eEUgsMtbqcU3Ggs7dqi5rX4nalqHs1WONETcmZ8prwnuMVY0bVd
LWmJO7NIZ33W5v3B7caqrl1qWcsqZ75axtvBXcYqZxHatV171cqWtc7ZpOX328POedCNzhroFmc9
dLuzEbrLuYjaS9VKvm9wr3Fh1wG12tjUdVita9nrNN/XA05z8EDLYaddrTMu7jqmNhiXdZ2kc3CQ
uu+3jzn9OBNL12m1ueWkM3RfTzvjarOxo+ucuqT9UH+INE66Cnq0fy30RP8w9FT/RujZ/i3QC/3b
1SV8ryF/+6X+XUMho7NrTDUZvV2XVWv71f690Bv9B0h5+1b/YdXKtw7FjYGua6rYfrf/mCp2CF3X
hlYl1BjpuqkqHVL/SdLT0FRqp1I7o/8cNKt/DDqr/zI0v/+aqvC9htZCb6O9ouue6uoo6r8Jnd1/
G1rejx7ePzRsXO3Qqb6OeX6uNf7koY3GdY5kVe2o90/m2hGn9jRooz8busifC13qL4Ca/cVQu79U
VfleQ1s6HP6Koe3GDcaLaqzD7a9SY8ZNjsnqSq7hPONWxzR1TYffXwsN+Reqa3jP0K5E/4TucGSr
6427HbnqSEfc33RfV/kX47OD/qG9E7rPUaBu7ljrX0Zqud8e9ndAN/qd0C1+L3S7PwDd5Y9A9/pX
DB3oOOBfHTQbDzqK1W0dh/3rhg7TbDsneo75N0BPcuU9Q8eMRxyl6p6O0/5NpFs/a/P+oZPG444K
dX/HOf8OdT9vD53uGPPvHjpnHHVUqYc6LuPKQ/377rev+Q9Cb/qPQG/7j0Pv+UfVQ506/xlosv+8
eojvOzRmPOOoVY8azzsWqic6J/sv/pNO819RTxgvOprUU8YrjsXq2c5s/3XS8fvtXP8d9azxumOZ
eqGzYIDd1+IBUb1gHHdY1Est55yrSNdCx6h92TkMvebcCL3p3AK97dwOvefcpV7iewUPm3XOvcFj
xjuODvWqiTmc6g1zsvMAdDLpNNJs52H1Bt8aPGkSHV71lkl0HuPK2+Zc58lgqkl2BNS75gLnadJz
/9Qudo5BS52XoRXOa9Aq5031Lt8reNqU7ogEBVOmY0VQMtc6b0MXOu9Bm3p00MU9yUHJlONYHUw1
LyO19EwOnjPlOdYFM8wdPdNIs0lzgxmmvJ4CtJ09xVBvTyk00FPB+zF+zBzpqULPip7a4GVToWND
MMu8umchdF1PUzDLVOLYpJ7iGrxm3tCzOHjTVObYivGbepZhhrIeC1f0jCX6J7TSsSM4y1Tt2I1z
29rTAd1BurvHiSvD+2+b9/V4sXpS21Tn2BfMNx/sCZBG7uuRnhXQ4z2roaM966BnejZAz/dsgl7s
2Rq8Z77SsyOkwzwHg0WmnJ7d0GrHEWiD4zjO83rPPug4V+oZMzU7RoOzzXd6Dv6j8v4QbGvPkWB+
q9hzPDTZtMRxJljeKveMBst5OzTNtKQHPSaT4zw9r4Re/Kzdmt5zBZrZcx2a0zMOzeu5Ay10MWiJ
S8Rz5/veNlkdF4PzTIrjSrCmtcwl/5NWutKDNSaX43qw3uRzjAcbW6uda7m6Mu9rnSsn2GhSHXeC
i1obXHnQZtIlrkKoyVUSyuZMEspttbrKwCdgg1BBq+KqHLzS6nJVQ32uusQKHirm62CotFV1Nag5
rTFXs5rDV6JQRetK1xK+KrlMUKw1oarWNS6rWta63qVgfcHnJVTbOuJyqZf4+za0sHWzy6febd3m
UqE7XbHEeyzUxF/f0OLWPa6VwXxTnWsNFNchtKx1v2s9vyauEWjimR5ybYYedW0LNtKKc7mzdEDG
6sPv/Nc6KwbSVaWzaiATWjuQM3F/vsnvckO3OxcO5KmbjfsGCqH8PnOvs2mghN9zBsqguJPEdZ2L
Bypx91g2UK2epXf+WOsJ186QpfWUa0+oo/Wsa3/I2XrBdSjkbb3kOjp4vvWq68TgxdYbrlOhAMac
xZhbrguhSOtd16XQCovguhpabZFcN0LrLKmuW4PXjQtdd9VqS0avENpgyeqVQpuMi3tT1QbLrN6M
0FZjQW9WaIexuHeWmmPJ780PHrMU9RaFdltm984O7UvwhqW8tzx00DKvd97gKCeK0BFLTW9N6Lil
vreevwq9jZ+t7JbG3kWkS6GLcG6jlqW95tAZi7nXHjpvsfc6Qhctjl536IrF3esPXbf4e0Oh8QTT
tgi9cVBcgqOIUiyh3lVgV+JGS7x3LXRV7zAojr837rSYe6GWtb1bwswy3Ls9LFo29u4Ky5YtfKRR
17t3cNyyvfdAOD1BbqaR3sODo5ZdvcfwGSdGteztPTl4pSWr9/TgHcuB3nM4ur13DNfhcO9l6LHe
a2qe5WTvTTDY9t7bOJ/Tvfeg59y60GrTLXcy5h9zTw5nWi67p4VG+RUI51iuubMT7+1wnuWmOxfz
3HYXqGWWe+7icGGbzl0aLkkQZluyuyJc1jbZXRWu5J+LcHXbNHctKB2sHq5LaFu2e2GCwMMND2gz
6RI6ionU2pbrbhq80lbgXjx4va3YvWxwnBN1WGkrdVsm2i5SH/98hdWJKwkeDsdIV/KzCq9pq3B3
hNck2qTr26rcTjW9rdbtBQ+DisMjbQvdgQQDhzc/oNtAqm41r63JHYEu5sqpNbwzoW3L3CsSpBre
02Zxr1ZL2jrc66DoR4/TvSFBraGqv2t4P//Uhw+RHk1om9e9CSwKIg2faAu4t4I8waXhU20R9w61
oW2FezfU6d4H5jzpPgi25K/L2YS2rXYfCV8w57qP49PN78ypbevco1g9c91n0N7gPh++ZMpxX+Qr
gvtK+GrbJvf14M22re7x8I22He474Vttuz0sfLdtn0eMCBP3drp7m5Z45IjUdtCTjruxz5MZSU3c
CduOeHIiGW3HPXmRrLbRntrIrLYznsJIfoIBzB2eEqwFtMq0nef37cQa3XbRUxYparviqYzMbrvO
V9u2cU81Vj3ctSLl5lFPXaS87Y7zdGSeeZ2nIZhlZZ7mSNbEurzVsySYahU9Js4SHqt6ySp7FL6m
e1zqXWu6xxfMsGZ6VBz3vCfG1y8P7oHWHM8a9Od51gczWks8I5+tFNZCz+ZIjbXEsw3nBpYIp1vL
PDtDo/zZReqtlZ49iTtt8LS12rMf89R5DmEVwJobabQ2OHZHFvF1KrLU2uw5GjFbl3hOROxWk+dU
xMGvW8RN8/itVs/ZSMiqeC7A4+AeHoknaIdraFlCP6MahzeyimuiJ7KWdJifQ2Qj6Rary3MpKFh9
nqtByapyGuFkElpmjXluJNpY76DYC2tBZDu/60a2W1d6biW4IrJrQvEsQk3WNZ67WC+oTc9ru3W9
VwjOso54JRAFuCKy17rZm5qgCJzVfY0Mm7d6M4JF1m3eLOhO76zEio95oJED1j3e/MQqHzls3e8t
Cs62HvLOhqIfPUe95YlVPnLsAT3J16nIadJh0nPWE955WLuxgkfGrKe8NVipsY5HLlvPeuuD9dYL
3kboJe8irGIN3qXBRXTNr5HenLgyV73mYLn1htcerLHe8jqCjda7Xrd6ySZ4/ZHbnZaBunhyZ8dA
Q6yh0znQDPUOLFHXdAYGTKq1MzJgVcXOFQNKfDLGuLB19YAvPq1z3YCKrRsGYvHszk0DK+O5nVsH
1sANbRpYr67s3DEwEi8wrhvYrKqduwe2xYs79w3sjJd2HhzYE6/Airlf3dx5ZOBQdEXn8YGj8arO
0YET8dqEOzAeHzil7u88M3A2vrDzvH93vKnz4sCF+OLOKwOX4OOuDFy9z+HXB27El3WOD9xC+87A
3ehuhQWEuEURA1K8Q5EDqXGnkh7IiHuVzEBWPKDkBGbFIwkH2lEfyIfnSjgd8hRKXqAoviLh8pRC
9LiUksBseC6s9fHVHVsC5fHVnQWBefF1SlmgJr5BqQzUxzs6ivhI4+pAo+pTqgOL4psSPqv9UGDp
Z3424TGVOvKV9R2XueMLmO8ffXvADiWvpDQEHHBMCY9zDx7zkNI8cCNc2TEv4Mb8SwL++FbFFAjB
Z+EKxHco1kB8glXWKkpglbpZcQXWqmcVX2A4vltRAxvj+xJ+UIkFtsQPKisD2+NHOOfEjytrArvg
qeGs46OkZ5T1gb1YNeCgsV5A4+e5BslTxy/yo8SvJFQZCRzAM9oMz+VStgUOqz7uf+PXlZ2BYxPt
cdI7nJeWs4krCfe6XJxQnNVyWdkTOLlcTrRJ05X9gdPqeuVQ4BzcKzzs8kzlaGAs4ViX5zygeR3H
ApdxxU4ErkFPceUeM7Q4ocrZwM2Er1xeqFwI3Fb3KJcC96DoR8/VQV3CYy4veUDLOMUtryStTqhy
YzAZzhH+cXmdcmtwMnwiXOTyBuXu4DT1VJcwmA2VBnPVs12pgwXxZfx1Wd5MusS4erA4fr0rY7BU
3d+VNVihnuiaNViFkfmDteoSm+QNRe6Rd6D1iO5d8Cy2VG88qrNleFdFk02id2043ZblHeZrh3dj
dLJtFle0t0Sn2fK926PZ0F33tci7N5prm+09EC2wlWMvKeHpbPO8h6PFthrvsWiprd57Mlpha/Se
jlbZsvj9k/S2bZH3XPgGv1tGa0kXmiPesWCGban3crTJZvZeiy42lXlvBsdsdu/t6DKbw3svaiHt
4PfJqHPCW0GjXpu7TxcNJHyWzd+XHI3YQn2Toyts8b5p0dW2VX3Z0XW2tX250OG+gugGfs+MbiLd
atvYVxzdAS0NCrYtfRXR3bbtfVXR3Yk1xbarrza6z7a3b2H0oO1AX1P0iO1w3+LocduxvmXhSrqL
SraTfRbVajvd1xEdtZ3rc0bP2Mb6vNHzJqUvEKyxXe6LBOfZrvWtUPckViiu0YsmFash2n2rI/4E
ubVN7lsXvWK72bchet3E+jZFx223+7ZG79ju9e2I3LMV9e2O5tp1ffuixfbkvoMxZp/cdyQm2qf1
HY/J9uy+UXWNPdc7HEt/cDZ7Qd+ZWKa9uO98LMde2ncxlmev6LsSK7RX9V2Pldhr+8ZjZfaFfXdi
lfYmH4tV2xf7xFidfZlPjjXYLb50aIcvM5Y+oU5fjnrJ7vXlxZrtAV9hNGKP+EpiS+wrfGUxk321
rzJmta/zVccU+wZfXcxl3+RriPn46xtT7VtNvljMvsPXHFtpz/bhnm/f7TPF1iReO/s+nzW23n7Q
p4RW24/4XLER+3GfDzrqU2Ob7Wew6zb7ed/KSIapzgeHZb/oWw+94huJ7bRf922O7bGP+7ZB7/RV
xPa3M9/O8IV20bdHFdtl3/7YofZ036HY0fZM31FVac/xnYidaM/znYqdai/0nY2dbS9xjIYr28t8
F6IV7ZW+S7ELGHkVI6t9N2KXEkdpr/Pdil1tb/DdDY22N/cLsRsm0V6g3mpf0i/Fbpkq+1ODs9pN
/Rmxu+3W/qwhoV3pnzUktbvsgSHJ1NyP1bnd1180BJbrnx1c1K72lw9ltMf65w1lta/srxma1b6m
v34o3za7vzF8g+tQUcL1t6/vXzQ0u32kf+lQOaeXoXmcUoZq+F9RhuoTnzj6C8aqib9U/OOn4+DE
3wroLwNDje2b+83RAr6+Dy3iHnxoKX83DpkTfx2i+8Pt9m3eYcxPJNa+s98ePG3L73cET0/89Yb+
rtK+x+Ecsttu9ruHHAnX376/3z/k5q91qIkJbLrmhubPjGn+qrnFBM0dzSdMp/lU0DBR0AsiSxIm
CTKbJEwWprAU4SFhGksTsoSZbIqQKzzGpgoFwpPsIeHbwrfZdG2d9mWWqa/Vv8Sy9C59L8vW/1z/
c5aTiv/ZI6mzUr/AZqU2pi5lDanG1CH2pdS3Un/GIqnHUq+xH6ReT73FzuBsvsh09K8fpLI0lsSm
sGY2iS1iZvYqs7A32VL2Vbaaxdga9hGLs1+z37Pj7A+aZPYbjaxJYZ9q0jQPaTQa/hsniX9vUjNd
s0Rj02Rr2jVxTaFmhWadpk4zrPm25nXNjzS/0nxJ+772fY1X59Z5NH26kC6i6det0L2pCeje0r2l
Cene1n1TE9a9o3tXE9Pt1O3SfEW3V/cTzSrdz3Q/06zR/UL3S81b9HvMdbpTuo80b+su6MY039Rd
1v2nZkT3J92fNJt0f9X9TfMd/i06zRb9VP1Uzff0H+nvabaJejFPc1p8QnxCMy4+KRZr/io+J1Zo
PuG/8NB8Kr4o1gg6sVb8giCKr4pLhVSxRbQI2aJVdAmzRI+oCk+LXxFXC8+Ja8QRYa74jrhVqOe/
nBCaxJ3ih8Jr4knxpNAjjopnBZd4XjwvDIhj4pgQEP8oXhUG+fexhLD4F3FciIu3xHvCCgMzpAhv
GdINDwnvGKYbHhPeNeQbnhV2GeYbFOGQodewVrhm+IbhG1rZ8LZhRJtieM+wUzuV/7uq2umGHxv2
abMN+w0/1+bw7wNp8w2/NpzVlhrOGS5ryw3/afibdoGUL+3WNkt/SXpU+/vUT1I/0fHfyylsBVRm
OfzXxtW7JkpCFbF8xVx3W7HX1L18pqZEcShuxV83poSUeI3SuEbZqxxQDtfsV44pJ5XTyjllTLm8
MHlhrrJqoVdZu6B+gV0ZVjYqW5Ttyq6FuQtq8K7S4T1+g97jf2UazaeaT5mAd/RkpsW2h+mbqEx4
T3iPaYT3hfexbZfwA6YV/lX4V6anb6KKwq+EXzGJfgmWJHwknGbJ9B1Umb59miL8Xvg9S6XvnaYJ
fxL+hE8H/2Zpulaj1dz/V4P1WpFNo1+OZWqnaaexGdpMbSbLom+KztQWaAvYw/SrsBxtpbaSzaLf
gD2qrdLOZ7n0q5g8+s7G4zh/WZNOV44r6zzCAp1HOo93jnae6TzfebHzSuf1zvHOOwrrHFdERVbS
lUyqHCVPKey8rpQoZUqlUq3UKQ1Ks7JEMSlWRVFcik9RlZiyUlmjrFdGlM1U25Sdyp7/w97XAEdx
Xen2zPQMY8BjmSgYy1iRZSzLQsZYECLLRGaJLMT8IRNMCFFgoumen54fzT+EJTJmMasQQgTBhBCM
eTxCFIUQQrACssCYYJkoegpmMcYs0fIwi1msKBTmySyFyTvn6x4xCDkmtfuqXlVSt76vr27fPn1/
zjn33MvMEGwNHgi2BzuDR4MnMlNodrA7eDZ4IXixP/UFr4X0IXNGsoSyQzmhPCotuCnVhAqobnGo
JFQavJZOofJQRchKzKk6VBu8GPJR3XCoNpQILQotCS0PrSSZBaE1ofWhTaGt1H/dHUHNa/B31u/G
mIyiZBBGUxKFAuFhwSgUUxoiPEbJLJRRukOYTGmoUE5pmFAhPI1Pl9vI6/D3Lu8SvirMFbKEeZRG
kN+RhM8IPkrZQlxI4BuXi/Bdy+fwifJ/EnLIH60W7hN+QOl+4UeUcoUfC9uEzwk/o/SAsINSvrCX
0oPCq5TGCPsoPST8RjhE7eugVIj/DfsR4YTwrlAk/IFSsfAepUeF9ymNEy4JH1Lbrwj/KTwuXKc0
QafXDREm6oaS7yvD58efJN+XJUzG58fLdbm6B4SndA/qHhS+hO97VpA3rMY3OucKlbqv61zCNF2t
rlaw4bPkdny706EL6oKCU1enqxNm6JK6lFCt+5ZuqTCTfOdyYQ55z28LX9V9R7dS+JquUdcofB3f
7pxHnnSPMF/XqmsV3LoDutcFSdeue1Pw6H6r+63g0/1O1yn4ob8B8gKFQtBcZC4S6vDpvIj5cXOJ
EMUn8uLmMnOZkDCXm8uFJL5JlMLn7xaYXeZvCN80u81u4R9pbs8JfdD9SfzLEspuQivhAKGd0Knh
qIYThG7hK0qrckBpVzqVo8oJpVs5q1xQLip9xNcC+oCZkiWQHcgJ5AUKAsWBkkBpoDxQEbAGqgOz
AzWB2oAvEA4kAosCSwLLAysDawLrA5sCWyk1B3YGWgJtgYOBw4GuwLHAycDpwLlAT+BS4ErgerAh
KAaHBrOCI4Ojg/nBwuC44MRgWXAKpcqgPTgzOIfSvKAUVIKRYCq4OLiU0qrg2uAG/h9EjbVGPy2C
X7fMw+8rPP3fpt8OSndBy7Og5XdDyz8DLc+Gln8WWj4SWj4KWp4DLb8PWj4aWp4LLf8ctDwPWp4P
LX8QWj4GWv4QtLwAWv4wtPwRoZNSEXR9LHS9GLo+Drr+GHR9PHT9cej6BOj650nX9cIk6PcXoN9P
6O7X5ZLes2ZPhmZ/EZpdju9HPAVtngJt/gdo81Ro85dIm79FNvCc7jmyAf6WxDRocxW02ar7vu77
ZA+s03Z8P8IBbXZCm6t1naTHM3Vdui7hy+Znzc8Ks8xzzXOFZ81+s5+/r521JGsFzdNwGvthgi46
j/SuhFBKKCdUaGVWQjVhNqGGy8S7lYnRSYGjfxmocyJ2TCmLTlamRKcGum8GlymV0arAWcKF2EmG
Yo86Axf/MriOMjM6S5kTnRvouwH+W5kXdQWuRV1Bfey0IkU9QfNfBupYYucUJRoMZkeDSiQaA1LR
hcEcQl4sjHxBrCdYHLukLI7WK0ujy4IlN4C/S2NXlIboimD5p6Aidj1ojYvKqmgjsDa6TtkQ3Ris
VsF57ltw9g2gr5ujW4I10S18BbZFm4K1nw6up2yP7lB2RXcHfTdD2RNtTcvNhLI/eiAYvgHlULT9
dhCZl9qgdEQ7lSPRo4PiePQEIyKlNjOUU9Hu28KZ6FnlfPTCLeiNXmRElPgq5XK073YQiaS2KVej
1xgBIaYHTDEzI5JKbedrXTjZHHDFagPDY5bAiFj2QEQWp3YFRsVyPg2Rpak9kJEbywPGxAoCRbHi
mzA+VnILJsVKb8LkWPltY2qsIlAVs94CZ6w6MCs2+xbMjdXcBO73bSCYiA8NeGK+QDAWHhR0L7go
nhVcEh+JerFY4rawMLYoUB9bcgtY3nLCyvjowLLY8ttBcE08P7AitrIfjbE1/eD76wmb4oXIb42P
CzbHJwbWxdajvQMQ3BkvQ35jbNOnIdgSnxJsi1feJGNLbOtNaIo13wJ+9mDcHtgR2xk8HJ+Ja1d8
zmDt+UTsjrUEWmNtt+BA7GCgPXb4FnTGujIRPBafl/btmb447Sv7fdzJuNTvg07HlUw/0q8nmfOa
npf0GJ2LR/rHtieeymwTfEkD+RSy/cgq1QdE1qr2C7vaEMvBukH6HtlM2Jban9bnyHa60nv4fvBS
fHHwSnxp8Hq8ISTGV/H6EhoaX8vl3LdQVnxDaGR8M/vX0Oj4NvaTofz49lBhfBevAaFx8T3s29Fn
0vfQxPj+tH8OlcUPhabEO7jfocr4ER6LkD1+nH0nywRmxk+F5sTPhObFz4ekeG9IiV8OReJXQ6mE
wOOLNYjHksYwtJjWSW09Cy2l9Ucb51ADyVmVMLEM3FubGB7akBjB607/WpsxR/0yGdqakl4LuE28
NoY2J0ahbdsSuel5Rn32/TT3WJdpzUPftifGcFloF63hZSp4vebxvQl2dV3m9QrrMb0nvRbzFSD9
Qd8GrLF4FyG0J1rP4DU2va6mEdofbWT0r5G8ZmprY+ZaedMaqa2TaYQO0TpIc4y1j9bDUEe0lQG9
5XVuv4p+n0UIHUkU4Xo8MT50KjEJ5eQ/QmcSk0PnE1NDvYmq0OWEE+Vsw7yWsN2SHbE9ha4mZoWF
xFz2RWFTwgW7SNuB5hehWySH/Vx4OPkmzUYwX+S3+Pm0D7zFtgbYVb9/SbefZLDfDI9IeHjOw6MS
wf7nuT7ZWzg3EQuPSSzkdoeLEvXh8Yll8OHcH+pDeFJiRXhyohHPfZr/0doVnqr58bSNL8+oo7UZ
fR3gj/v7w344jU961yf403CVdnXGdnKf+jHQT2b6SvaPaR+Z6ROpLuRwHb5HYxCeFbdHdqUORfak
Ohgc2/B8I67ZnzqCMvJZ4aNJS+RQ6ng6fol0pE6FlyUOwI9R3BE5kjqDmIJ8WnhH4kK4PtGajgki
x1Pn4dN4/ee4gX3dqVQvr9GRM6nLkfOpq+EDiWuR3gVC5PICU+TqguFRYcGIqGnBqOjwBbmIyTR/
iWc5NtPiJsQ86RiFZWky+F50xIIx7C+5Xf2xXToOu3zDBwPpGEaLPVgWx2PRUQuKON6J5i4Yn34e
9ak/+JvGC3ZCfYuOWTAJZRw3pqHFiTdhYCyoxX43QRvXgXFdPzgWS2NgXJeO0QaJzaJFKj41NuPY
KzP+4pgrHXdlxFjcVjzLdbQxucW2yP7CcxPrbrErV2JjOsYKexJbwsFEE/uidL1wLLGD9Tq8MLEb
+pT2A1yHbY70D9cVifZwY6IT+XWJo+GNiROMTHsLb0l0s48INyXOQj93Jy7eEscQwq2JPoD0kQE7
ZL/VntTj2pk0p22QbSJ8Ipkd7k7m9Nsf+6CzyTz4mgvJgvDFZHG4L1nCa08a3F/eY8H+qM/ha8nS
On2yHLLJf9SZkxXop1a/zpK01mUnq+tykrPr8pI17IvqCpK1dcVJX11JMlxXmkzw+oc1kP0TxQR1
5clFdRXJJeyP66zJ5diz0FpYV51cWTc7uaauJrmex6uuNrmpzpfcyvuEukRyJ49T3aJkC9evW5Js
q1uePFi3MnmYY0D2/2nfXLcm2VW3PnkMIHm8zrBu121KnuRxr9uaPF3XnDzHela3M9kDH0bzWNeS
vIR7bckrkHEweZ19ed3hlFjXlRpadyyVVXcyNbLudGp03blUfl1PqrDuUmocj2/dldRE+DHu//VU
GV8jYmoK60NkaKoykpWyR0amZkZGp+b06w/F4Bx/RPJT8yKFKSkyLqWgXPO5kYmpSKQslcL8kZ1E
pqQWRypTSyP2VEO/rqb3Aek1ivKRmalVXCcyJ7WWywS9oLMstzQKwt//BeVv6F9QeoRLN/4dQOoT
gnKOnCcXyMVyiVwql88S5QrZKlcTz5ZrpD41yXkMuVb2SdfUJIflhLxIXiIvl1fKa+T18iZ5q9ws
75y1Sm6R22btlw/Kh+Uu2aKlNcAx+aScraXT8jm5R74kX5Gve0TPUE+WZ6RntCffU+gZ55noKfNM
8VTK+nSiGnbPTM8czzzZrCaP5FE8EaqXQgu5RVyT7/H76A18zn9nM+n29P+Wc1AH2cYMSnfjHHQE
zkE/g3PQz+IcdKTgExThHiFIKQenoffhNPR+nIZ+DqeheTgNfQCnoQ/iNHQMTkMfwmnowzgNLcRp
6CM4DS3CaehYnIYWk811CuOELkqP4zS0BKehE3Aa+nmchk4S3hf+Q/iC8AGlMpyJPokz0S/iTPQp
nIlOwZnoP+BM9Eu6XF2uUIEz0adxJlqJM9FpOBOtwpnodJyJWnEmasOZqF33Ld1zglP3vO554Rmc
ic7EmeiXcSb6LE5DZ5Ol/1r4im6vbq8wF2eiX8OZ6NdxJjpfXCF+R3DhlwZrxT3iXkEiu24XPOJ5
8T8EH9lvH42lTlgo1N/QVTf12H3cfcp9xn3e3UvpsvsqDbxJGi6NkEZJuUgeKSjFpIVSPaVl0gqp
UVonbZS2SE3SDqQxUpE0XpokTUaaCq6SnMSzpLmSixPrjX4s6c2jmt6MwPtZY/Q0Rw+T9rCuiDT+
JaQ9rCsm6MoQ0pSnSYf4zPwO0o65pEOsH8OgH8NxTn4n9StAmsTakEW6sJr0ifVgBGnBNtIn1oBs
4ZeUPgsNGAkNuIfm/xDpLZ+H30tz/i5pGM/6fZj10TgDv59m/oKQiznO02XRHD+A2c3HvD6IGR2j
m69zCQ9hRh+mGY0IhboUzWgRTrnH6lbSLBZjFh/FLI7DmfZjul/r9gjjBZ15knlyxnwUiXe7iwYm
aZG0xD3ePSmdpAL3ZC1NHZik5e4qt1NN0kr3LPcsaQ2VDEjSemmTey4lFyUPJ2krrkF3LJ2kZvfC
W5O0ExIWuuu1tExNUot7hXuF1EbceGuSDrrXuTf2py1cV0tNWtoxMPl3+He7d7tb08lz0X1AS+0D
k7/V3Zl+l/+A+yilLVQyIMkT3X3uE5T4fd2cfIWSha5n8QSS3HurdHe7rxIS2tMj676gJn+7+6L7
or+JuO/W5O+k/l3rT05J35/MahpkpA5LXZJFyu5Px6QcpJM3RiKdpNNSnlSQTpjxc1LxgNRDuCSV
IJVSuqKVX5dF4vL+Hjnd9fJQqeLWJGdJVnmkVC3N5iSPlmrUJOdLYSqplWrlQqk2Q05/kse5L0i+
/hSWEumkjr67m2aE9Fsug+5WyVPkStYx2c4jIc9k/ZDnUG4eelssS7KCFinoqyqJNeUoZqnTf8Lf
DW04i9G/gJHukSNkO+Np/Ca5J8spd5O8mEbZIi+l9jXIq0iXXfJa0veF8gZJL28mXW6sbZC3SaX0
3lWkJ8uo7nZ5l7zHfU3eLx+SO6jFrP+N8hH00kUzdti9TD5ONZzyKfkMyWKrRY9QU7UVnt1l7lny
eWp/L/X5MpWvoHqTyOpWyFcpN16e5xHckz0mz3DPCM8oT65nDGx5lpo8RZ7xbK+eSZ7JlKZ6qsha
g6rFepyeWXgbvckz173M42Kb9JBkqhn0xDwLPfWeZe51nhWa/bEFNnkaPUHSNQv0LYfurpOsUqln
o5Tj2eJp8uyQajy7aX5ptuRVnlbPAU87jVyxVEFtWid1eTo9R6n2CUrdUomnFRrIvcRccT1KpDE8
Sp6zhAtSBdlwo6ePyhOea169p9tr9tK7vdneHG+et8BbTGOteEtY372l3nJvhdfqrWYdp5HFnHtn
y4WkbaXeGk/QW0vJ5w1L5ZzoXsJb4l1EPbBKs+nOEqnGu5z1lLjWu9K7xrveu8kzxrvVfcHbLPm8
O0kfw9w3b4u3jd5ZSxqa4P75L7p3+/t8EnmGA/5rND/d1J8K0pdGRa+YyQs0KRbyFO2edd4eJds9
yt1a2+GtVnKUPLZr0hkaLaVAKVZKPE1KqVJOGsqeo4+8GY9Ok7/V36rWcDf6jigVJIv9HTQYNVUv
QxpMso4qVvc6pdq9Q5ntbpf0VK+V2nNRqaHcbm+NUus+IJd5S3xlik8JKwl4Qc2TKYv88KzeUv9R
/1FlibKc/NxZ1dcpK5U1eBu9SVnvvqBsYm9GfFHZpGxVmpWdvpEKeXRvjeq54LvM/gtKm7JSqlEO
cku8B2meWHdqvIe9Xaw/apJXUbvbvcfYJ3lP0hyflqppds6RXhWTPyj29tBYb/Veksq9V7zX3U6f
6CO/4z7ry/KNrO2o7fCNphncSnpz0b3Ql+8r9I3zTfSV+aZItZ5uHnf3bqnUV+mzuy/6ZvrmeM76
5pH1rCAHo0hhen83rY/nfFPIgi3ks2rpTsSX8i2WcnxLfQ2+Vb617nrJ7Nvg2+zb5j7q2+7b5dsj
WXz7SarFd8jX4T5Bkrt9R6hNFmrLcd8p3xnfeV+v7zK1sZNkm90XqeZVv+A3uVf4h5O3GUG25CS9
GUXPFJOulPpzSX97/GPcO3yF3h5vj7zKe9rd7TnqL/KP94+hcdD7J/kn+6d6Ov1Vfqd/ln+u3+X3
+KskK12Dnj5/zL+Qatf7Vnm7/Mv8K6SEv9G/zr/Rv8W3yt8kS4imHv37DvNvaIfpEyL4VMNI/t9k
XE2C7ht6Idu1lVIzpZ2UWii1udrmUnIddB2cf2L+CddhSl2uLpQdo3SSEpedpnSOEj03p3dOr6uH
0iUX72H1FqdlBr0jCzsaATsaPfYyBsS8IvYyRuxiTIh5h2AXY8Yu5g7sXIZh5zIcMa8FMe9diHmz
sGe5G7uVzwi6LCkrjD7hc4euiYLOZadrGV1nindXbXNV3g6sVrpuJ+z6BOxRYa1RUbX/NnGI0DEI
jqiwJuh6/PZgXULXUxrOaDivYnq3erWuJ2yifC/h8q2wNtP16qfD2kJoI7mCBhNh+M1A3wZg+ogB
GPVXIJcwZhAUDSKXMX4AJt0enDTu0ycTpn4CqlQ4j6uY7rxNzCLMHQQuFU6at+me24OT5nZ6UENM
w0IVzvPq1XGarkcJ9YRlt8JJOjB9xafDeVmT0ahhHWHjAGwZBE0DsOOvwG5C6yA4QGgfBJ0DcPT2
YD1H1xMu2MegoHvWHsIlrd7Z28QFwsVBcEKTeZ2ufbcHm0jXazdg1d9Af50s7TqSMJrumW+8KxO2
fO39lk+HrZAw7ubnrdkDkDMI+NmJdM2ja5l2nTJ4ez4J1gJC8SAoIZQOgvKbYavM8N+Z/jbtLzU/
ZrO7+v2LbabrZv+R1pPMedXGu3+M5mSM7byb29TvUzJ9QNqGNdviNSOt8zNGDdDpPvW+TSIohIjq
I3h9sS1Wy7lPtqWEBtW/uni+yE/a1hI2qGuAbbPm36+q+m6jMUn7ZxutabZdan9te7RxIJnsL1km
wHJpPm3kF200djZqg43lntfGVxtPfhbrZHoNO5MxziTHLqgy+J6d1gv7cK1dA+dpwBz1rynpeWpQ
10b7CLVt9lEZz19V+4K/d2lrH/1tz9XKtmdgzyAYuC4fGQTHM9bXjDW2H70ZGLC+9q+X/5V1Mtd1
81pY5LqxBmasd/0+i2Cfql1p3bI7NRsj/2GnNclOa5Cd1h+7RysnG+b1A3ZbqdqTndYZe0z1RfaF
ml1odpD2i6xbLIf9HPxT2kYaVL/Fz/f7wIG2NcCu0v6l37YatPYv0+Z8xY3nUZ/szU5rk32d2m47
rUl2XoO6NZ/EfaA1yL5De+7TfNBAPz5YnXSbB/HH/ffMN/CJvu7T/GnezbjFT2b6ypIMH5nhD1E3
T6tTqo4B++gZpD8zilRwbMPzzTHNjPFaGemKo4Ly7Me0+GUGxUb2Ps2P0ZzOYN1apvozB489j5cW
E8yo0nwZr//rND/H+kdr9AySN4PkOai9M0hvZpC8GaRnM1gm6diMes1/pv3lDi02S8dNsRt+FLI0
GWjjMtVfol0D/fAAH9wfw6T9MPeTZfE90qkZjRnPr9D6M0kdL8Rc1LcZ67SyyRmoGgQDY0HXINDG
dWBc14/6DAyM69Ix2n8lNtvtujn+OuC6EXdlxlgu7dnWjDEZaFtkf/ZO1y12ZT/q6o+x7GzX3aov
6vdXZ1W9tl/Q9CldznX6NP3jK/kVh2Z3DrIxh0VFpr05slUf4chR9dNRMEgcQ3AUayhRAT/I8ku1
a/kNG2SbcNBa56jOsD+q55it2puD1mhHLcGnrj1pwB81q+PEfXaECQlNNvXDsUjrp1bfQXs6x3LC
SsIaF3yRYz2B9nCOrYRmdf1jwE9STODYSWhR/bGjTdVTXgsdBwmHCV3aeB0jnFT3CY5z6jg5etT6
Dlo7HFcI19UYkP1/2jc7aQ1wDlXB8rDOkG47s9Rxd1IM6hyt6pkzXx1HnkdnoXZvnCZjourLnRQj
Oik+dLLvoXjMSXGYk+IqJ8VTTkkdX6ei+THqvzOiXVOqPjgpFnJSDOSkNcK56ob+sO/meMBJsZCT
YiHnZq1c87lOigec21X5bCdOGiMnxQDO/Rm6mt4HpNcoyjsPqXWcHWoZfxrjzoN3vvH3T2P8LZ2V
iUXiIf4XVX2H8AtBGJJHKCAUE0oIpYTyjGsFwUqoJswm1BBqCT5CmJAgLCIsISwnrCSsIawnbCJs
JTRr2EloIbQRDhIOE7oIxwgnCacJ57R39nzC9RLhigauf10QzKJabh5KyNLa1qNdqQ/mkYTRhHy1
vP9aSBinttU88UafzWWEKYRKgl2VY56pvs88hzCPIGnlCiFCSKlyzYsJSwkNhFWEtYQNhM2EbYTt
2nVXxjVdfw9hv3bdrD23P+P+IUIH4QjhOOEU4cyNK4+P+Tyh96+4psfisjqOfy0wB5moVsHyMV+n
tbrnB+Cq+t/Op6/p59Ny7zARhmvzTeV3jLhxvWMUIVf4ha3K5rTNss21uWweIGiL2Rba6m3LbCts
jbZ1to22LbYm2w7bblur7YCt3dZpO0rphK3bdtZ2wXbR1me7ZtfbzXaLPdueA+TZC/B3MaUSeymh
3F5ht9qr7bNtjfYaW5O91u6zh4GEfZF9iX25faV9jX29fZN9q73ZvpP+brG32Q/aD9u77MfsJ+2n
7efsPfZL9iv26w7RMdSR5RjpGO3IdxQ6xjkmOsocUxyVDjvfp/KZjjmOeQ7JoTgijpRjsWMp0OBY
5Vg7KDY4Nju22YKO7VraRWmw/B5K+x2HHB2UP6Kl445TwBlK5yn1Oi47rjoFpwkY7hxBa8K9g/7i
gqD94oIZv7gwFL+4MBy/uGDBLy5k4RcXRuAXF7Lxiwsj8YsL9+C3Fu615FkeF+6zTLBUCI9a3Baf
8JQlaIkKT1sSlm8KNku95TnhGcsyywvCly2rLa8Kz1r2WfYLSyyHLR8IS/HrC9v+P26ZTjdCF8Hn
VVr5f5PPL9FAniW/XEOFBmtGnkFWkz9by3O9Gi1fq8GngbxuPnndfPK6+eR185drdVdq9blsTcbf
67XrJg1bM97ZrP29Uxhr7aB0xHrcesp6htJ58BlrL6XL1qs2wWayDVeTtcM2wjbKlmsbQ6VFVJ5r
G2+bZD1jm2ybSjYJq7ReJrt02lw0V3fhlzYE/MaGHr+xYbCUWEoE0fK0pVIwWqZbHMIQ/N7GcMt8
Sy3Ng98SEO63xCxxIc+yyPItId+y1PJPQoGlzdImFFpes7wmPGLpsfQIRf+Ppeuuf038EvFc0g7d
9WHID0X+ceQfR36CWEU80ZhAeS3Kf4D8SuIS4y+Rr0JeffZx5Kvx7GPE41A+UQxDDj9bAvk14gRm
49f4s0/GRZTPFqcyG5PEu1DnZX7vx8h/vA9tWIryAPITkJ+A/ES1tRovAkdRh2R+/L/FscSntR6N
xd2voVXoqfgE+uVHy32cN5xA3oy7Ap76KUpCeNaGkruQfwrPLoC0u9CSp8BG1JmEOh7i8ciPR75E
LEO5gvwkSEA5eALuluDuF8QnmY0BtKQMNTk/wXAJddRxWAlpbZDGc/GY2IRylUvBM1FHgswWyKTR
0D/Db9Q/anQRv2Ak69ankH8KfMIYI67nOjo9+EXURzv1ArPBg5ovGt3E2yDzbi7RvcN53Ye4uxr1
n0b97yGfDWkfgk+j/lXxd1SuF98gnike47dwXvcnlHjEd4gncx2hj1lnBf8neB+zwYCa0yHnWa6v
ew8SmpD/Oe5OQ/0/o34R8ufAB8GvoP4HYh3VtBt/Q/krrLd6k/E1yl/ncl2tsYP4jEiaoM/hOsIH
xueJ/w+z7pxWQmwogZwc8Gg8K4NXg+8R/4y736D875n1p5BvAx8BvyjW8ByZPgC3gJvBDeBe5iGj
6F0T1RlEzRdM/Bsqtcg/Bb5T42ZwA5ifvQc1D+HuTpScQEk9Sjar88554hZwM7gB3Avm+tNRczGe
ElQ2/pC1AvkX0fJtyLeCt2klzeAGcC+4gvpywNgALfIx4+3vgD/Es6s1bgE3gxvALGE1RuN7XMew
Hvw9tPlD8GnIOc1t1n1g7CS+DP7A+BI4Ap4PhiYYe0jCPZivK6h5GnxB4+ehAwdZN1ByHRKuQ8J1
SLgOrTiDu2dQckYraSU2oC8PGA9BZzrBEfB88FvM0ITTqo5xnjSNpb2F/AcU03MbqERfpjH1Rf8m
a6l+NEpGo2Q0rHs0SyZ+A9wKzdxOfVyk6ickN4JXa8+yXcSh8/fw/8RN73oJHAHPB78B7gGzzFN4
9hRG4wikHUH+ReRf1phHrwPtfGYIS7tTZVXTkN+msvFVzGwE88h3P0T+A9MXeYRV5lYJKKE9LXMO
yo9gZo+gZBdspACcBy/0OPzbC6ZC4udQ/j580WXk1/AKovt3+LQ7VX/INXVDjV7iz8CbLQPfg9HY
gTrFsIW3kX8G3KT5QFpfdJCvH8Jseotn3/QdHg0jfKno4jEx7eG8qZjzhvPQ7SboSQm0txNP7THu
4mfFHWgV31VUf25izzmWmWzzGGzqGOyIreMh5Ffj7r9rfYyjPR48+zPU/xnGGR7GeJ7Hh5l8NbM6
X4+aaH3Up1D/TuQPoX695j2a4QcaeHWADXpQ/iL4bvBDeMs74D8PqeLZHLId7+W7T/Msk+VyPltj
lvl5zSdvovwo6ORbKMkDnzTdx/MLf/sy9Pkr8Nu72Ysaj0Inj3BNYyF0z8wlNHesw9nsz3WdqhXT
XplWBMzLUR5h8gOt0LFWWKXKb8BeWsFvYAVhX53Dz9J4voannocFPQ895LckuVWG6XzXMF31KiLF
Krr7YeNT8dQe00fwD1y/lFtLmswl59jSScPf5pUFLS/R/M/zqMlv2QpeDT5oepjzpu/CcmfwKgPL
PYW7bRqrFsr5WaaxuNuDkh60n0d4kukt9nVo7Uu8Gur+F9bEHLT2Y5T/EmN+P/J56MsZjpT01SLL
7xItxOc5etTfy0zz9Ty8Cs/aBvRxE9ua4XGsg48wG/JEKtH/FpJ/hJofQvK/If9vyE+D/E4eeWKW
bEWbw8zCTuQvgL9iHCpwXMHyn8RMFUFCl7r+chxFccI34P1Yw1cgerkgKugF69uDuLsBLX8L79oH
aTncU/FfeDSMGBPxI8xvitd3w0iWZnib8+KTyFeiv73oxUfwFR/BEnPQTnh7fRu30DARfb9Day23
JB/5YpFiV92b6PWvRYoGdVPQtsN4FtquLxODbON4ahbHwPpZhj8SrxWfJsnlmMfdosT6qf8R5Y9B
2vsas7SXIefzkFkiisTvMZPW3S9wVEYjYBiCcfgJnoqBG6ED50UevR2QUAj+AeQ4kU+i7y9hnKei
jwqeeh98CuznEaMoi3uxlKNWyt/BWoE1KARptWjnLMgxGdexB9C0kXv3Ktpz1TSG2fgh+G3wPpTn
g63sE9SYk2vqx4PLjO9gHeF8pRqFQs5b4Dch503IeRNy/hX1Pajv4RJ9BCWTUeJUo1bOC33cEuK3
wftQno88179TjWzxln0qI46aDjnT+Vn9s8g/q+ZZDvE+lOeD70fJaOgP4g3IfA/SLoObwD8Hbxd5
BZwGmdMgcxpkToPMaZA5DaM0jSUbirimoQgjcBASDiL/CvKvcC9oVDeh/cy/UvvLeWrbJsjZhKc+
hAQuKUU7P9K4A5bFbZhpfAzWyrPzvMjR5gFtd8BveUM8DpvF7oBrCmokfxax/b3YBVSBfwtp90J+
H/g4eDuenQOuxLN7UP4+uFMkLTXlc79MzcyiwnXELuNesnS8yxQz8jpVg7GKYAT+E/UtPKqmZtj1
42jtW9CT98CN2j7lHcxOO3TyHczaOxgZ6CdbGY1AAc+U8R7ijdgT6VEzFzXfQn4Z3j5Z1TfMxU+5
xGDATBlQPh313wN/BG4CtyOSbzKdw1u45M88LzS/nD+nMeYa+T2q5nAJaYIVM2jFjNM+Wlhm+Bfa
VzqNw5hNtG/9+PdsiR//3kizbPgRIqUOHhPxCV53RJnzhl+Cv4/yJo7HxJfhFVGfYmOOiz6HZ22I
iwKo+TrvN8U32UsbsH80PMv7ZTELd3+Fp37MPOQ+lI+EhGvg7ajvgp7U81wYXuGxNXQjPw08gVnM
4zkS86EbDaj/GjTqXWbjVtSZAK3I4ZqGb2Nm/4i8gruP4O4oaEsFJKh71e3gKrzrKUQFL2MFrOQR
M7yHFaQBvvEQVo12jk8MmxGRrsIatAXx4WKUvICophdy9oOPgd8Gvws5Z8Fd4AVYm97FOruH2fg6
8vXgvfCufViD/pnjN3Esorh3tXwLuBncAO7lu7zzMl7A+E9HzeHgJ0xfJVZ3ZNghGvZq3AxuALOE
X6LmQjz1CpcQc0k1lxjnQStqEOsuANvAEUSGMcSfldiTIoIVC6A/r+JdqGloYF8qooSYe3Eekh/S
uAXcDG4AkzTjI7wnNb0GnXnTOJKeGgZpm8FuMPanYjb6/k3kWzRuATeDG3CX+/VNHitxH+eH3G/6
IXgOy8dTosY8PtgjGLbzOBieQtS3WOOXwBHwfDB0iSM301DM+9dRs5J9o/Eh45uU/5PxdeIfovy4
xhHwfPAb4MdY33C3HSXtKPk2x7qGX7CF6r6FWDoX/EXwAsSWedgHPYHYtRhR8Spo1AJo7CqOA/WV
kPwr5L+J3etutO0PKP8DyxFtaH83l4j3afwSOAKeD2b7ephbJX6O97Cmn6g6zxahPwtpw8CbESEs
gR1lI36IQv834u67Gr8EjoDng99AHRpP8QF+i/F1Plck5jp78dRe5LMxAn0YpZPGZthCLt9VGTvW
c7xjFc9ziXEft0RsQf5PyIvQExH1Fxs/wCyozLvX3/PulUaDtaJLXIK2scYKyO9Fy/firupFy8HD
jNnEAs+X8V7TM5TfwuXGB6DJfwB/U/Ol7Hna4EtXo84K1P8pLO6PsKNh8Kil8MAbkH+VPTDpFT1l
PIB5aYdM7F4NayA5BGljkW/h/S/tcPluBDXbmM37WMPNAnZbP4BknJkMUb3977C7aYCFXoAFvQLr
+DwYu2PDzyHhJ5AmiC/QU22Q82tum4hzKhE7YpoLXkNl7IXjnCcJveBjsOte8DFYay/4GFr7K8p/
F2/cg1G6xjGA4UfwTm+CRbTtVd4ji/8TnGA24OTE0GFazusdrHg18q+g/st49ruw9AYuMfnYG5gC
KH8d9U+DnwVvNvUxD5nLKx3q/Jg1Z8h9yI8ET4C0a6i/Fm0eyquDOILPqcTHjDnQH87ruW3GHp59
cQRsZ7G634Q+bDceZj3hcvE9bU/NJ5bN2OM8AbuexmvEkCrM3duYqSc5bxpqvJPuXsGatZd3xKS9
7BMq+O6QKqwsm9mayF+1gt+AX2oF8xpqxTnSWJR3o7wb5X9C+VmUv4vyGkj7A96i7rwWY2U8Bt7L
7zWe5h6ZcB5r2IUd9xasceu5vv43vL8mLzcfI/wR2sx+6Qnea5vuhNX3wrr3M9NIdsLPPIaWMHfh
7jDERcM48iF/+DFs4SV4DL5bD27QvAc/9Q78xmu876Y6G1C+Ae2HvzI9R/kWtPlp8T7i/8Es5mH8
d6Kn/4rZSaHOV7SaXJKLfdBvuY/i3bxHNuBU2aDu2k5g13YYPvkfMQ6jMe+PYl/2Q2jLKCP5IpMZ
T/1f9s49Xqdqe/hjzbmeZ++tbZI2sZOzk7uSW0IOkXJJQipJnVyTkNguqYOkXFJRKgmVVHLrptPF
JUlIQhKiJEmFXDdJPPs3x3et83uz3/N5T+c958/z6dN3jWfMMceac8wxx3rWep79+IV3CK/q/Xii
V+jvLMJHqLF96duXvuORZ+m5zCWcsQvr8ix3/d2Y0WjucDeyI0I0D+tdeViVcd6E/UHOyKgSo5Dv
1XtzeydyZNMHD3Xgzfp+yb9v1F35bni2XhcY4Q/keXQ33ZhMaMbcL7KL/Lw6qp9kLhyqDJ8L51E5
dUdcrnJiSGIIo9J4tscm+rxjMdUsoa12gF7FEgF+ihL/dxnhi3rfbbciH9C7dVsDuZnerds5zKWI
jiTBDgpvCEt5zXTGP8Ie8BxufSaEe/RTnuQLvCfsrHfrfnY6nnP0nt2Ow+eAmBrDwvAGvU9PvAtv
1PsI+5vOPVmCCLTkHnwnvW7V+3RbHHkJrXmM5ydG+Ab6Q3yWkaORSVbi7A3hX5hvb1gnfm+pV9VS
9Fqjd+7mc71zt6OJTymeH+5ghJ1hS1ZnLOt4la6az15PMw9NacY5hbuYibBRJHOHMpG9NpE7nYl6
V+Vb/Z1IoiLvqJdieT98K/EA9VBlB6+KiIer8HAVHpphuZ97vaqqCaui2YxmSuhXPKCvKQcf5H75
Wu6Xr+UurB73d0/rvZLPBG9vemL5JWcswfvPC/F2ofYNmyLfFxHNferNczH6svBcruw+MonPmF2v
0N8V2qn4rIf/aHYN4T167+nHzyzwWRWfVZnpfma6X2MV3qCek00TG+D9mkV4eC0i8emC3Jw4NEq2
IlbKa7h/36r3734WrfTZV/gZ523FDtqGhyN4a6VXKx2VrzzKZ8LynreEI71+CBWV+2V/f62tY2Fp
NA3DUV7uF+rYLkRDvQ3PZS1+hoeUdrUysVYZXgjv076JapylOD5bwPpwJt7GRLHCwwFYiQjfDfto
xUtbqRFIb008j3PfdwdP6fuonJbkqtdZWxMVifBqLJsid1c5baV6S2+t70wSKe4H6zGvKDfqsspN
WZepyFl4aIDNHH0+YG/V+IfZrMJr5MZ5ehWzu3V2dh5yUeRh2GyHF9KrLMxiNUto38QMXfHETPS1
sHyZVR6rsvkZTb1kHThJ8w3LUrqaPk8eoAYq1+NzLnJ5xpxFDO9Rvbc8zmiPs0P5pD7/FQnE5n+M
PE8/y4Y1819GrgzH6KfkcesrcAb2Q5EjloQT0Ud95yPPx9tc+DWar5G3YOP1pm2+PhG9ED4AB8FG
cAscpgyMUvLQ1ISitD2Qn4AvwTNjWT812EzfI2gmwivo9ShyFq074Ak0nMW0Q3MAOfLfgLMfg1/S
+itcjDeLTQt4HfrvYlnHMAvNPDTNkPPpVQV5N1wG34J7sWyFfBw5iZyCJeHOVBV9Z8h4sJejqrFR
ZErDbNUEzDq4Aa5D/xXyIrgemyh6bVONvYfa0VqobBrB6fC5aBWQa0KBT8CXUvrudGkUf9UEr8Ij
tH6K58nR7JDPjiKPTQqb86K5oNnBqHYjfxbPpTHzSvd9h9L3XtUI8QmGY1kz1ZpZTGHkUxjtFMam
nIjmCNyL5jylRHJpmA13ccYKMAfWgD9wrigDH0P+Hmanmni2Rz6LlR0V5aTqzXzkC1J69/0Fcn30
ZIVJUybJtORgZfguHk5pBJJ9VE6sZq1fiiKT/4x+2oj9Q1Fu4O0xxvALNr8Sq7a6K/2eKkn+KydE
q3zqsO44ZjoopoE5nmfDRnAYrcPwNkw1Pp6qvxJ9TSgxc/S6gPxETLVsTbQ3x5HPYRWmQ5WvUL19
lNY8el3MCKMMz2NGxD/YGq0IM302ymfkbtgsIEobouqhsQo3ErFo/2YhlyYyy7BflrpMn0ohD8LP
QORpSssuti3IwOPEbSKtrGZwLvq9GsPgJGNOEr1sZpROlFJKn1eRrHMkVsFDMMrDzjFz6DsdP2q/
Dp8baH0FEk85yKz3wGnw0/yzPE8xx0JoXkc+FzmHVWuDvJaR/0hrKZV9xZjlNZfROgBOoXU6ESDb
bQ3kaKdna8RMZfTRjvgYPoPn7njojudNcZRUjirbGvb1cnbrD6wCVSUIifyl+Ikq4Vr4U34tjSTy
6qgGYjkOy/OjGshZPkPP7gtHsHdWIv+S38yPM7qOzKDafKGxCi9FvhL9fvz8gkwlNBmwKiwb7Vls
VsK34+p0sSdXimAVNguiHQ2pAGYSUWqIzUYY1Q3y1nBd8FH19xSWvR+8DPvDqFZUgk/BgehzkZvA
XmTg3ehfia8Fms8jY1kjEF07OmFPDTFdomsKq5kk/iXhRLgOLoLU8+B11isfeSE8Qd/10XohE8ng
AHIP2JooHUMuTOti5BbwutQxHSH67/A5Ac6Dc+P9G51LM38lmX+MHXEdbIZ+GXJd7O/DG9ed4CPO
niI3uDIGVHJbCsvFZAtycIxqvAl5LvoOyFFdZfWTs8moovB+KgzvT5Jl8BZVpOsY7Vv5U/UzJjzk
px5ivp7BCniCOtyOSjIP3oLlCepwJnOJrlNZcV3NIbe1MjRA04DoNaCqHENfmDgsjqm112LZIqZ6
mEXrvJg5XHd6E8Mcxql1KYfWNfAt+rbhGWMez/BL86SxdPJNb5kZf7tGv51Sl+/knOLZcmX9lmOw
Tmlm8/nvR9x78oQq+D7Ub+Ys5Y6MT1tM0+QZutP5BGetyuYD5MPhFu5V+cxL359LR1NB10WfSNgq
4e169vAFfY+hstkfHtJsVNrD4Uuiz5e8pXylDHrSq7kyMZtnGklYLbxX9yYeZoX+fa/thIeT2pps
T692sDbfTzgO08NsXXF7j0bMLlcblc0I/QsX01tp+9ntePOWskoZlI16odmgDPcp/SyUM+zDOgv8
NNWnCmZF5IfWDsrESDwch9vhOPiG1ec5VZRmkdW7+xy9rzfH0RRLdGSc+i2yTNXIBpXlK6W3V3mV
2ica4CeHXtWtfn+vgp2sq29nMLa5+kybXm/A+mgqqX1iCb12xSPR1g5optuhWm3QN4yp3yMKY28z
NEqM7W8qBzsYjzWBMpGnv3qDbIxRTbCEVv0Gcq1gJ9+Y1W+1tTHjPC/Upy5mkXlUq64ZrSM3L+q+
Vtk8aB70HGb0022j9sFE2E5p78DmCcN3Hc0Ez4vsWM/XkS+wL+PHy8ERLOlrrqDvo8hn4e2IZmnw
DWc/Yc7SvWw0KzqYkoyzqOa/4VN+k/SaxqaI7mVTUfey2getYVulHFVai4fmeLvOlNKaadbhU+Vj
5ju9aiDPxbIVHlL0/RPybvhBoBFewBj2BOd7y2qBPuH0ddFrTgb6KfOpIE+vBaa61lUzgk/t9Zdl
9wY7dDzKoLEpoRrzjl65gu/1mgtLw2pK781TvkOeAIsF27Hcrjsd+atgqF5N8LkumOk5Kdim1yMd
ifyAh6M6EnNSRL+FHh5UJrOQv0UuzLfTz0C+BP2raLyf8Pmk9xl2hE3hPqX9Ec5TJjLRn1SaED6M
phI2NyuTm7GsAlvRWha5C3IHLHejQR+OU6aVQa5I6/swDw1nsZ8gd0ceAdugGQmHKANGaxrS+jHy
DsaTxGYinE3rR8ivI/8Mr4E3omdG9hR9I29r4P3wdvgFlrWRmZf9jTPehbyc8WyCe9C8gLdu9KqL
5Wr05yHPR55GTN5BHgyfhZXp9Xyav/okz4lWR+VwH8yP1kjlRCaak8iXRWuE5rFopVS2N8MusB/e
bonWi15p0aohE5PkgWjVsJ8Hd9NaVplWBs37jO0iLMfDXlF8OPvljHBpFBPV+GuiylHEiHM4Azbg
jEQ7OEQrkTSL8EDWJSbBFdg/BzfAqyGzDqNMm8Y4h2FfHg/EPOEYA/ljKpB7GdjvwmYOciMsoxxr
Ap0yfY72TS/OOC02zfDwNsxCfw6zrkRkVmP/BK3skXAjvcpxLmJrJ0X7jhhupi+xDcfBivh5E5vq
+CeepjF9F6BnlyWiXO3JuaKdWCbKPfx8ioylGUuvvdg8DqMMIXq2f5TJnPc8YjVfGRxC8wznivLw
YngpbEvf9ci18FAT/gB/Rf8g5+qKfC1+mFeCsyfqYPkIfiYjE3lDfQhnwkHwOmyiM34OowxZSOsd
kHWxpTjjnZDIp6EJj3DGoeijmsYeDKPdzc5NFEFTDFIZLFlh8WaiSkVVMQexp2+YC1+Bs9BHtRHZ
rkOzEnk7ZyevLHvHHKYXWZeIdlM0o8XYFMJ+Kppo3ZegbwezIWO21MzkGHxGoyIrwm2QPRWSGwEj
Tw6n1z3Yn0BmJ4b3wi3oWVNL/BOd0FOjQqpWSD4YqnrYA76HfR45M4L8ierVbEgtSrCP7P1oosq5
n77RmrLulpVKkkv2JshesxMg2Zu2VplOViS4fiXI9iTRTmPuSVpD7C01ytaD1+jZRfQeJHw+pZ8W
dYRN4T6l/RHOUyYy0Z9UmhA+jKYSNjcrk5uxrAJb0VoWuQtyByx3o0EfjlOmlUGuSOv7MA8NZ7Gf
IHdHHgHboBkJhygDRmsa0vox8g7Gk8RmIpxN60fIryP/DK+BN6JnRvYUfSNva+D98Hb4BZa1kZmX
/Y0z3oW8nPFsgnvQvIC3bvSqi+Vq9Ochz0eeRkzeQR4Mn4WV6XsOffOxuQz5MVr7Id+CPg0yl+QB
eBGt42EveDm9lnLe0owwGjnzDWfABvRl1sEhWpmRWURfVj8xCa7A/jm4AV4NoxFGKx7Naxgsjwfm
nnD4ZB1NBXIgA/td2MxBboRltNZNIL3SaU0vzjgtNs3w8DbMovUJZDIz3IhNOTwTGcv47Zu0VscP
kTGN0S9AT/Ymohzoibcow6Nc/RQ9NmYsmr20Pg5ZHUMcbH/4DN6idbwYXgrb0roeuRa9asIf4K/o
H8RnV+Rr8cPIE5wlUQfLR/AzGZlYGXZWOBMOgtdhE53xcxit6UJa74BE0pbijHdCopeGJjzCGYei
j6oB2RtG+4KcTxRBUwyypyzraPFmoj3OfjQHsadvmAtfgbPQR1UF2a5DsxJ5O2cnEywZbg7TizxJ
RDkfzWgxNoWwn4omWtkl6NvBbMiYLdUmOQaf0ahY93AbZBeErH7AyJPD6XUP9ieQ2TvhvXALetbU
Ev9EJ/Ts7pBMMFTCsAd8DxuyOowqyX7kaKVYTUv8k2SIvQmS83YCJPfS1pL/rHWCep4gV5PEMI0Z
JWkNsbfUB1tPKdvMl6JPRdb61nLRcwz7iNc05767hz5tsDN4ktCC1un6t7E2R7+fZifzLMWoxvyE
/hHV6xcsRP/aQjWdlIkNyrAa+jz69qP1R2WyP3IP2Bxv+yNLztshfppRTvQZhd4bTkfzQPzEoxp/
W6dPUVry/OQEz0OyeDYyF/1M7WvWo+lB65PIBg/74SA4i7lnKs0IItBen5CYFTy1qI1c276tfdVG
8nlecVb8/MRTvlWbRE38tKNXU56Q1FdNcFY41etLxM9G5vIMZC7PQzxTj+Xrc6o2+Wu19iJ30Htb
s17l4ArkjrQ2RV6MvAXLe5HTkevT+iG99qApFnlDszOld/oXYFOMXtVhF1o3RaQ1G/kErU/joRz6
F9HXQa5CaxL5NuTR0RhUDr6MxkDrEJVT7fKP+UyogOYNKeW5FXm6yrYI9/L5StsQHkZzAnkylt8o
ExuUYYDewLm0piuDPOT9sDr2gs0jsAocResgxjAJuQvyLM64F5uhyKto7Y2fQvhfBmfGI9eR9ELz
DppFcBxkprY5rQ7NiNRC/hV29bwkpU8Cc/DcNx6D6r/SNbINlfIVfefDCXjjiYfZhaa92oQVUvpd
tUa0Nk697JmSVl5fFJsaqjEHozHjeYaOIXkumsUqBxPQt0u9rvmp9uFyWjdpq5+7rk4mntuhL4nP
Rxn/Ofkn/DhHMtqjjG2r9kr0Yy670T9H1g3TXkEdzjUUuSx+qqdO8gnCSY0nHKf076aUO9CUxmY3
cjGlvZxR1WbVVnCuIXjuwQh3KJMhsa0UZUj+dZp1amOKqUZ/f8dXSHZZWFTnkiyJ/W6VE1dik4mm
Y5SHRLs0Z8kkMsU0YsGDzLpDSp/N9maEs5ALpW7QHEvp086zYGvOvoJoXIHcRS2DPHpVRz6G5Qo8
TEAej34T0ViDvgKaI7RORLMVbxPRNMLygNJXHNYrykPG34q5fMsYdpAJUSZP0ln7u4DtRIl1hyNY
qTzsU3ioxrnq01qd/NmBvq7S13ddlxaxjXIXObABz+uj+MfR0JE3ZS47iFUJ9IVhByx7x+c9yb44
Se4dJhMiS41bGZV9bh8mk9XmFjgBzQ1YZnOubCzX0msFNlPgO7S2jvdvTT+XJGNewBw/RV8avs94
ekaWzLdvNGu19FnEU2syKhlHdQZZTTQ0MkFPPD9JHVhC9JbF51I/NVmpElGlotd+ei3DMkW2V8dy
AZmZpXKyrBQh0xay4jr+qdGOjveIeuvEGpWDtzLCfXHFK8W1Rs+yJt6zk33ra9FeVm++Wj7JqGrS
K6qr6nkUT4n3Szfyqpte0/Pbevl6sm4PNtQBG+2j8fRtbT4h8xeymjrHpVFtxHI4+vZEfpLS16WF
1AqtKtGKzILptOYw6ybMdzt8BJ7Ec1PW6zJYFraMbbTKDYvXUSvb41ozfT4sZDe9TFac5JPck+Tq
SfL5JGuh8nHiNiK+ipVCo7OewkwbRFcxas5+VmeRMo0sSuMqY3/EshvkGicHNQ/9e+CvqYGHqYFa
YdozzvpkaXVyeD1ZTS3yljOwVPtX0ffGsjnyVehnMvJNyHPRX5naCPux+w7re3I9S2py/k7Wq53u
Vtb0auZVNrqupT7k8/riOlpGPpK55GDZLsV7HvqWljLeZ3a8sl4+NU89i/A7bxLq3+nETxqVUgh9
IdWLqCZ1k37LOtVRvwmf4u9BUoWQayDXQK6l39NO1dbv0nt9P/Szkf+i3x/Tb+Z7+SPk/cj7VNa/
4vF939NfuUFfW78N6P3M4bdZjvL7NouU+ncEIvp37qks/WuOVJb+PUjqjWRv/ZWbtPv0V25UPrVY
5dTI5KP6KzdpB9V/cpcy7QDyNvWf9iPyb8iRTVtYC8vOsJv+7o2O7dSOaMzJp7CfgRz12sOY89CX
Q19UmXYZs6sGDzDfUbQugGnoL8GyCefah341PmuiqU9kIs0JWm/CfhxnXE2UTsDhnL0xllXpq5bV
kasj10yuQn8cuSp+In0FRnI9cmXkG/GzWZmehswv+aSn03oTmrF4e1d/AwcPl+ChBnIN5Fr69/Le
/jPkErA4va5gzDUZcxdWeRozPUorY0u+hOYv8COYR+vZnhelvYr8Gj6XII/H5k34OPoFyBuQj+gI
9Vc4/Gg1D2vxubw9lY9M3PST9FSNUz/peE6xFvrJu9cc1tZTizWSkSY1HOZAeuGhxqnlWNL3FLM+
NQ15Fz4/RN6EvJ9WMurUl2h+wI9+A0ekUDAmfY/Yrnf37y1Zt/XvfocM6905t6+8If7O79p2TXLE
31nk50txyZSklJbzpZhUk4ulnlwmLeUGudn7aCv3yH3SVW6XO2WgjI7tC0uanCvl5Cy5SOp4L43l
Kukgt/iztpN7ZaSvHL2knwySMfwbg1EfJ+m+ZpSXLKkul8il0sRX5xvlL2LkWvmr3C/d5Q65SwbL
WCkhtkWbNs2lZbtrrs6RLu3bXZUjk/FyNr8Z+idfmyt4jzWkgVwuzeRq6Si3ipUq0l6GySjpIb2l
vwyRcfTJkBypKHql+7M0ldZSVR5CX1KK+jicJ9lSyfutJXWloVwhzeUauUk6+3FfINfJcHlAbpM+
MkDulvHxCM6UM6SsnCOVvYfa0kiulBbSRjpJF0nIhXK9jJAHpaf0lVwZqr9l2rXmgK72engL7AH7
wkFwWNfOvXPtg3ACnAJnwvnwna6dB3S3y+AquBZuhFvhjq5d+/Szu2GeMjSwKCwDL4D1u/W+/bbw
StgKtuvW984+YQd4C+wGe8F+cBC8t0f/zl3DkXA8fBI+B2fDBXCJd9w5XAXXwo1wa+++A/uEO+Bu
uA8ehsdhSpkIe9/ZtXeiECwKS8IyvrF/ohysAqvDOrABbAKb36l+WsP2sCO8FfaAvWH/O/t365sY
AofBUf1UPw5OgE/CqXAGnAXnD/BrlFgA34PL4Cq4Fm4acHvfHomv4E74I9wP8+CJAX269ksKLASz
YBlYCdYcMKB6jWQD2BS2gu1hJ9jNs2ayN8yF98JRcDyc5FkrORXOhHPhArgILvesnVwDN8AtcDvc
BfcMGNhlQPIgPAZPKtMMTIduwMB+A9KyYDbMgRXgBbBmro9kWl3YEDaFLWEbeD3Ud+PG156sf+Fo
/T4/R0r/f0kBPxz6/2bCV4yEr6Jpkv4fexXyKpIDX/UKsvAfpPV17gx+c/nfkQJfvf8xi/1hGlbE
eK/6iqc9en3Qd4l/mGf+YZ77f7HoH2YOI7Ucg99RZ/B7nfuntP5KVUJK/ovS2UjGX5/K/kvH86Xc
v3QsLxX+hWPgr6T/nP88JoG/gv9zFvlDrOHfbeT6q/4kmSkLZLlslF2SF4RBVlAuqB00DdoH3YLc
YFQwKZgZLAiWBxuDXUGeCU0Z08oMNePMFDPbvGdWm61mjzlhC9lsW8XWty1tR9vLDrXj7BQ72+9B
PVd6lLO2dYHXXQq8Hl/g9SO/ex0WaE/6bb5F0oLfvS5U+/TXmTNO7++One4/q+Ppr4vL6f6LZxV4
XaGAffMCrzsVeF1gPsW3nv66RKUCr9sUeD3k9PGXfu709nMXnf66/AUFXlf73Wu//8pXL9A+ktfG
14di0QwrtomOlaKZhz7nSvhaVSHWro+PW+Pjrvh48B9ZV6kdHxvGx+bxsf3po6gy7vRZVq1z+utq
qdPtL+pw+usaBVahZs0Cr2sXeL2+wOsNBV7vK/B6/+mvaxX7XZZ5oU5Wgdd1TrevU7fA64LtLQu8
blXgdevTV7FeS0/nI9M1eEJ6BFOptl38f+J36iQJEkUTZ3KtKCbJzBZuRWZzt9wtdcu8Jhn8HPzs
7Q4GByUIDgeHxQRHg6NiXWPXWEJ3ubvcXzc1H4y9wup6GVPMFPca/Qsip+OxhX3Pav51CX830l+m
ygrZISeCLD+GdD+qrMy2YjKbZ7bzbJF5rafOrqivyTn+bqG6v+dp4H4Ua4r6Mf3EcYXzd1qmuH+9
l+MKt0mMf7XFc4Xb6rnKz1UzNFvKuh1+rEt967ccV7id/rjMv/6O44rfWe6KLb+PLXfHlj/Eln8f
71WMtxXjvZrx/r2lNS3X0NLm9y1uNSNcwwjXMsK/t6ynZQMtG2kxkmb8f36bnWH0m9tFTVEf1eI+
qjbzysxmPupL3VJJ+jEt85Gyolf8wPKEyf9fyfcf6Wc10r8sEhSR4UF2cK6M4N+zHBV0DDrJA0Hv
oI+M4d+wHBfcFeTKQ8G4YJw8GkwOnpYJwaHgkDwWHAuOyePBb8FvMklTQ54wSZOUJ02myZSnzJnm
TJlsSpgS8rQ5x5wjU8z55nx5xlQ2lWWqqW7ayDSTawbKEjPYDJalvvoPlQ/MX80wWWZGmVGy3Iw2
o+UjM8lMkhXmKfOUrDQzzWZZZQv7rDlpa9vakrJNbFPJty1si8DYaXZaYMPc8PkgTHRNdA1qJron
uge1ErclbgtqJ25P3B5cnBiQGBDUSQxMDAwuSQxODA7qJj5PjgnqFbq2UOfgQKHRZwRBKrNo5hXm
7sybMqebVwt3K9zLHCk8vPB4c8IZl27T3XnuPFvEne/Ot0VdeVfenukquoq2mKvsKtuzXFVX1Wa5
C92Ftri7yF1kS7garoY929V2tW1JV8fVsaVcXVfXZrv6rr49xzVwDWxp19A1tOe6y9xltoxr4prY
P7mmrqnNcc1dc3ueu8XdYsvqPylsz3c9XA9bzvV0PW1518f1sRXcne5OW9Hd5e6yldxAN9BWdoPd
YFvF3e3utlXdcDfcXuDuc/fZC90D7gFbzY1xY+xFbpwbZ6u7h93DtoZ71D1qa7rH3GO2lpvkJtna
7kn3pL3YTXaTbR03xU2xl7ipbqqt66a76baee849Z+u7GW6GvdTNdDNtA/eSe8n+2c1ys2xDN9vN
to3cXDfXXubmu/m2sXvdvW6buDfdm/Zy95Z7yzZ1b7u37RXuXfeuvdItdAttM7fELbHN3QfuA9vC
feg+tC3dR+4je5Vb6VbaVu5j97G92n3iPrGt3afuU3uNW+fW2TbuM/eZbes+d5/bdu4L94W91m12
m21796X70l7ntrlt9nr3jfvG3uB+dj/bDu6gO2hvdIfdYdvR5bk8e5M75n6xnXzydqZ+CZUrCE4E
J3wVyw/yffVIGH8fwD5LsM+S7LM0k22yJd2UNWUlw1QylaSQbe6r2xmJLokukpnolugmhRM9Ej3E
JXomekqRRP9EfymayE3kypmJQYlBUszluBw5y5V1Zf0eL+fKSXFXwVWQEq6SqyRnuyquipR0F7gL
pJSr5qpJtqvuqvM79bWktLvYXSznukvcJVLG1XP15E/uUnep5Lg/uz/Lea6Ra+Srldbf86m/5Vwz
10zKu5vdzVLBdXVdpaLr7rpLJXebu00qu96ut1RxfV1fqer6uX5ygct1uXKhG+QGSTU3xA2Ri9ww
N0yquxFuhNRwo9woqelGu9FSy411Y6W2G+/Gy8XuEfeI1HET3US5xD3uHpe67gn3hNRzT7mnpL57
2j0tl7pn3DO+Xk9z0+TP7ln3rDR0z7vnpZF7wb0gl7kX3YvS2L3sXpYm7hX3ilzu5rg50tTNc/Pk
Cveae02udG+4N6SZW+AWSHP3N/c3aeHece9IS/eee0+ucovdYmlF/bua+tfa187lco2vnSukjVvl
q2dbt9pX23Zuja+217q1vtq2d+t9lb3ObfBV9nq30VfZG9wmf83o4Lb4a8aNbqu/ZnR02912uYnf
iO/kDrgDcrM75A7JLe6IOyJ/cUfdUZ57RfdXgdSm1lb2uZUIbg5u9uruQXcJwrfDt8UkTyVPiU1v
mN7Q1+H/TPb5Gvjf7Ptv9sXZl032VdF3W8HtyW3/zbH/5th/KMeCRC//fr5oUNbUtleGHaS01Jcm
0lLaSUd/v9DLv38f6t9ZjpPHZIrMkNnyhrwny2S1bJCtslP2yGH/zl6CZJCZMURsxoCM3Iy7OQ7M
GMpxUMY9HAdn/NUfc700jGNuxnCOAzNGcByUcR/HwRn3++NAbzeKY27GAxwHZjzIcVDGaI6DM8b6
4yBvN45jbsZDHAdmjOc4KONhjoMzHvXHwd5uAsfcjIkcB2Y8xnFQxuMcB2fcK8a3jvQcmDHGc1DG
I56D/42IPMHMB2Q8GUfmqTgyk+PIPB1HZkocmWfiiEyNIzItjsizcUSeiyPyfByRGXFEXogj8mIc
kZfiiLwcR2RWHJFX4ojMiSMyN47IvDgi8+OIvBpHZJKf/4CM6URkJhGZ/W9G5PU4Im/EEXkzjsiC
OCJvxRF5O47IO3GuvBtH5r04MgvjyCyKI7M4jsySOCLvxxH5II7IsjgiH8YRWR5H5KM4IivjiKyK
I/JxHJHVcUQ+iSPyGhH5G5mylIis+Dcj8mkckbVxRNbFEVkfR+SzOCKfxxHZGEfkizgim+KIbI4j
8mUcka1xRLbFufJVHJmv48hsjyPzTRyZHXFkvo0j8l0ckV1xRL6PI7I7jsgPcUTWEJENRGQLmbLz
34zIT3FE9sQR2RtHZF8ckZ/jiByII3IwjsihOCKH44gciSNyNI7IsTgiv8QROR5H5Nc4Ir/FETkZ
R+RUHJFUnCv5UWQKSRSZQkEUmUImikwhG0fmRyKyn4jkEZETmin67zTquHma1kEqBxvMs7aVvcb2
sLfZXvYOO8AOtIPt3favdowda8fZh+x4+7C/C95pv7O77Pd2t/3B/mh/snvsXrvP/mz32wP2oD1k
D9sjNs8eLVxH/x2lYH2w3p9guv51rr3KXiXGtratxdputruEtqe9XZK2v+0v6TbX5kqGHWQH+XcC
Q+wQOcPea++VTDvM3i+F7TP2GTnLvmc/lazCFxe+mKcM2VIoLBP+KcwJzwvLhueH5cLyYYWwos7M
j+goT9ej9yul42cTVbXN94meXQe29/9aVIotLtBnU7a3b5EwK9RfAKsUVpIzftcvOm9WWDwsEZ4d
lgxLhdn623fe9v+c10g5KRIWC88KE2EyTAvTw4ywUHhGmBkWDl1YJCwa6vOu0M9tuB+k9jHhn8OG
khk2DhuL8211pKR9yc6yc+2rdrn9yK6wK+0q+7FdbT+xa+yn/yji+rTMvmhf9B5f1r9rtnPsHB/v
+dbXUR+5D/35dtq9/+v9RW81x7e+ZxfaRXaxXWLft0vtB3aZ/fAfrTHeX7Ivee+z7Cz9Rqad672/
an119iP81HvXeaj3apL1D73+g3kQs51xzLTfH8wu+mk2+H6JvmaB3C+j5AF5UEbLGBnr9/VDMp5/
XfRRmSAT/S5/XCbJE/KkPCWT5Wm/55+RqTJNpsuz8pw87yvACzJTXpSX5GWZJa/4ejBH5so8mS+v
ymvyuq8Ob8oCeUv+Jm/LO/KurxULZZEsliXyviyVD3zl+FCWy0eyQlbKKvnY15FPZI18KmtlnayX
z3xV+Vw2yheySTbLFvnS15ht8pV8LdvlG9kh3/qK853sku9lt/wgP8pPvv7slX3ys+yXA3JQDvlq
dETy5Kgck1/kuPwqJ+Q3OSmnJCX5Po0D09a0M9ea9uY6c725wXQwN5qO5ibTydxsbjF/MbeazqaL
6Wq6me6mh7nN9DS3m17mDtPb9DF9zZ2mn7nLPGe2mC/NVrPNfGW+NtvNN2aH+dbsNN+ZXeZ7s9v8
YH40P5k9Zq/ZZwuZn81+e4Y5YA6aQ+awOWLyzFFzzPxijptfzQnzmzlpTpmUyfclSL9tb21oEzZp
02y6zbBtbTt7rW1vO9mb7a22s+1j77Kj7AP2QTvaPm6ftlPta/Z1+6ZdYN+x79q1dp1dbz+zG+zn
dqP9wm6ym+0W+6XdarfZr+zX/8Ped0BFkaxtV/V0Tw3dPU2UjCIqiojMkATFiKiIgoKiYECSgooo
oi6uEcOKaxYMKIgopkXXjFkxYs6iYsKsmBMqgt/bBbq469679/7/3u8//7mnDlXV3UNPv/VWPc/z
VvV0K24obipuKYrYJqyn/N5W9gJ7kb3EFrCX2SvsVbaQvcZeZ2+wN9lbbBF7m73D3mXvsffZB+xD
9hH7mC1mn7BP2Wfsc/YF+5J9xb5m37Bv2XdsCfue/cB+ZEvZT2wZW85+5tScAWlJWhEv0pp4kzak
LWlHfEh74ks6kI7Ej/iTTqQzCSCBpAvpSoJIN9KdBJMQ0oP0JL1IbxJK+pAwEk4iIEVB6gcphvQn
A8hAEksGkTgymAwh8WQoSSDDyHAygvxAEslISKPIaDKGjCXjyHiSRCaQiWQSmUx+IlNIMplKfibT
yHQyg8wks8hsMofMJSkklcwj88kCspCkkUVkMUknGWQJySRLSRZZRpaTX0gOWUvWkV/JerKBbCSb
yGayhWyV3/1KtpMdZCfZRXaTPWQv2UfyyH5ygBwkh8hhcoTkk6PkGDlOTpCT5BQ5Tc6Qs+QcOU8u
kIvkEikgl8kVcpUUkmvkOrlBbpJbpIjcJnfIXXKP3CcPyEPyiDwmxeQJeUqekefkBXlJXpH35AP5
SErJJ1JGyslnFVJhkk1WkJVkFVlN1pDX5A15S96REv4HPpEfyf/Ij+JH82P4sfw4fjyfxE/gJ/KT
+MnCj8IoYbQwRhgrjBPGC0nCBGGiMFn4SZgiJAtThZ+FacJ0YYYwU5glpAmLhMVCupAhLBEyhaVC
lrBMWC5kCyuElcIqYbWwRvhFWCusE34V1gsbhI3CJmGzsEXYK+wT8oT9wgHhoHBIOCwcE44LJ4VT
wmnhjHBWOCecFy4IF4VLwmWhSLgj3BMeCI+EYuG58FJ4LbwR3grvhBLhvfBB+CiUCp+EcuGziEQs
MqJCZEVOVIp3xLviPfG++EB8KD4SH4vF4hPxqfhMfC6+EF+Kr8TX4hvxrfhOLBHfix/Ej2Kp+Eks
E8vFz2qkxmpGrVCzak6tVBO1Sq2j5tWCWlSr1ZJaV62n1lcbqA3VRupqamO1idpUbaY2V1uoLdVW
6urqGmprdU21jbqWura6jtpWvUi9WJ2uzlAvUWeql6qz1MvUy9XZ6hXqlepVdPWZzu3TOfaxzBIG
EJTOnC9VtAd+v6joCPxeoAhR9EBXFL0VoaiQsul1xWDFYHQDGG88uqmYo5iD7igWKBagu5TZ71He
uk956wHlrYeUtx4ptipy0WPKEE9YD7YxRnQGnuF4jscaTo/Tw1o6x+6kLFLexw+JhrjgZ3S+/TX/
E7+IYfhsfi9jwh/l3zNOdNY9nM63rwC2f4V0kCmyAc73AwWUBgywB9AZvkKYhBjpKK3l0Jq8RqOH
jJGlcAS2C4R8yK8IRyEvFE58/WwB1PKQCvSEKaoOCqB+xeqRcEXeLxRCfly4DvlJ4Sbkp4Wn8n9K
1eQzSsbyGSUT+Yz0XGX0rF/WaHRg65DEQ35EEr45okuP6NEj+t8cMaVHzOgRc3qEQTrgNQ34zp2R
35bUhGmCGKYN0wYpGB/GB7GMP+OPOH4uPxcp+Vw+FxH+Bf8Czsdwq5izfxPHfsuw/3/z63+GYWUO
/au8+XdypgGJJH1JNPkRGEhmTm/gzA6UzToDM82gPNkdOFJmxwpujPqLrDjqn/DhH9lwIfDgbwxY
lV3+X2PDr2wHvLgA+LsqK7YE9SFrjwrlIeuOTqA8PlTqjlJQHcGgODKo5lgCiuMj9Nog6Kmhcr/8
wp1M7Le8KeqJ+qKBaCgaidVEY9FENBXNRHPRQrQUrcTqYg3RWqwp2oi1xNpiHdFWrCvWE+3E+t9l
20nf51tJR+Il4S+xbs4feVfSlfQk/T+w7xEhXzhKOfjEd1m4AHj4ilAoXBdufuFjyVgyoZz89E9Z
ueyPvCyZSmaS+b/Fzt9ws1j2H2BnP8zgahDKmuN6yAh3wl1QLbrmXg/3xlHIHvfD/ZAzjsExyAUP
wLHIFcfhkcgdj8KpqDVOw+moN96CT6NwJp5JQKOZ4cxoNI4Zy4xHU5gJzE/oZyaZmY5mMTOZOSiV
rp4vZOYxgPY0xs9QiAoDtERhpDBCKxTGivpopaKBwhHtUmgVrdE+yvgXKONfpNHbJTaLPY0ec/qc
Pjbl3nHvsBn3nnuPzbmP3EdsoYTmwpbKZOV0bKWcqZyLbZSpygW4rjJNmY7tlUuUa7CjMke5GTdR
blUexq2V+cozuKvykvIS7q28oizEocrryps4HLRBGY5SfgZtkETcSBO8jTQlzfEelZ2qPs5TNVA5
4gMqrUqLj6jcVG44X+Wh8sBH5fUzfEzVQtUCH1e1UrXCJ1RtVG3wSZWPygefUnVQdcCnVV1UXfAZ
VTdVN3xWFaIKwedUoaoIfF4Vo4rBl3Ug7MdX+HA+Al/lo/hofI3vzyfgW/xwfjguBp5dhJ8Az+7F
b4Fn3+NygRF6METoJYxkwsQl4m1mrHq6Oo05UHF/C0Sj6+iKSy/ct3LP1ip7MGqMlJXawxY0jQsc
z4Yk5+tAFWTTUt7aXbm1G7auQ5LvsrHH9tBrGuKGQHfu2B3O2Ra3BXLxxb6IxQvwAnqXTT4K48w5
C86Ss+KqczU4a64mZ8PV4mpzdThbri5Xj7Pj6nP2XAPOgWvIOXIaTss5cc74PL6AL+JLuABfxlfw
VVyIr+Hr+Aa+iW/hInwb38F38T18Hz/AD/Ej/BgX4yesgmUV7xQliveKD4qPilLFJ0WZolzx+f9k
HwumsAydaWDprxX06dyPKSQFsoTEQsvVBUsbIPm+NEdIKmjVxqATPSHxqBkkAbVG3khEvpAk1A2S
LgpGIaAPe0MyQJGQDFE0JCM0FCWgaigRjUQmaCwkMxidDDLHulgPWcAYNUdWuDqujqrTu2NqwHjt
hKxhvIagmnRV14aO1Fp4IB6IatP7ZergYXg4ssWj8WgY08k4Gdnhn/E0VB/PwrNQAxjBacgBRvAW
1BDvw3nIER/GR5AWn8AnkDOdb3KhI8+Naur2dNapN5116vN1Luxg5VyYA7SUFaNltKAY3Rg3+bdh
TGtQjO2Z9qAYA5gAUIzdmG6IA90ThZSgeAaAYpzCT0Uqfho/Cwn8Cn4l0uNX8znIgL/EFyBj/gp/
DZnyN/k7oKVHCWNQTWCPiai2zAzIDphhKbKXcRw5Ao5fQlpA7+vIFRD8JnIDDL+DGgGO30PuEFs9
QB6A5Y9QY8DzYtQEMP0p+Ei+/6sJ0/OrLccqbWkItlT/xhYPxgM+K1ukYDpBLMNSizhqkRL0XQgi
1C4VqLchSIfaxVO71NQuA2qXEb+OXw8WbeS3IgtqozW10YZ/wD9Ctnwx/xzski1tSC3VUkvdqKXu
wH/ZEB+shCijObXam1rdFnjpHfIFViqDyES2yIfpX7n6Kv/KMZJa5CjbiAPouEdf9yA6l8ngaNzi
6z4Gd8ENYMvo6+dgBHynLTwZT2gLuUVY6mOOtouStguh7aKi7aIDurcX4mnrCNTrIm0jNR/MByMJ
IvMxSBeirzng+xR+EbKEGGwrqs1v4/ciN4jEnqNm/Ev+PYoCDfETigW1MAuNBHWQg5KA+7egVOD6
Kyid+n4b9f12YPAitIP2gJ20B+yiPWA37QF7aA/YS3vAPmD25ygP2P0l2g8MX4YOAJ8r0SnQOKbo
EuiamugGaJn66D6oEgE9A3Whj14Cx5tDBABICBHSEITkCBK1kmcZUGf5vi0UKPwoeqNT8D9WeCG9
y1Hxm0dQOG1XDe11nap4RPObR1AX1OzrPga1oKvnRl8/xyAFv5hfDt+8j8+H3vZBkPsv7KVxdsX1
1KRXoqn8dga+xfzfQVb4z2oUhxDFIUxxSEFxiKU4xFEcUlIcIhSHVBSHdCgO8RSHBIpDIsUhieKQ
LsUhPYpDBhSHDCkOGVEcqkZxyITikPy74v1ggci0U+yAlvhn6zAM5rEBXKUNro+dcGPcCrfHAXB1
4bg/HoyHg3ZJwlPwDJwC35qJV+AcvBFvw3vwQXwMn4G2uQbt8BA/w2/wRwB/JSMyBowpU52pzdSH
1nXD9cH6etAWDrQMAfaTy17Yg5a9cWNahuImtOyDPWkZhpvSMhw3o2UEbk7LSBh5chmFW9KyL25N
yxjchpYDgVHlMg770zKNM5FLditnSstczkwupVKVIJecoUqUS+VylZqWu1USLfeodGlZptKjZblK
n5afVQZyCerFkJbNdTH9nv7YDpBAF3iega0GkIcA28vaAfAArIQ+CDZqIe+DnSAPw86Qh2PQEWCb
K+SR2A3yKNwI8r64lXzvB/aCfAD2hnwg6AUGrGoH+WDsA/kQ3B7yeNwB8jTcEfLF2A/yRZwRYsDe
apDncvLMR6kKHAOWQq8GO1nId6tAb4CNSvluJhWBvFylgvyzSgcxYBuoH1VzZAejqifw7UDg2VFo
IpqGUtBitBzloM1oF/DYCXQBXYPI/wmM7cr1POhJptDXa0Nf0mA37Am9qR32A4QMAbv7ghVroLXS
oIV+oWUvnEPL3ngtLUPxOlr2wb/SMhyvp2UE3kDLMLyRlpF4Ey2j8GZa9lVZySXYWF0uwcoatNyt
sqblHlVNWpapbGhZrqpFy8+q2nIJFtehZXOcQf23hHouk3puKfVcFvXcMuqz5dRn2dSLK6jnVlLP
raKeWy37Q2VEW7wabXFj2uImtMVNaYub0RY3py1uQVvckrY4Rqwuond1KyhWIDrSsa78Ew35Sb5+
9J76esgJuLhyJgob075mQvuIqfzd8lmw2ddatNyTZOwFPJlH+wrN5RUyrAcIhXA1iGkwRSKG4ovM
aaYoGXfF3XAw7o6DcDTfHdgnpGJemBnGjGGmMKmKNMVqxUbpk1QmlUufAV/T+Qx+CZ/JL+Wz+GX8
csDaPH4/f4A/yB/iD/NH+HypRGIkhcRKnKSUiKTiP/Af+VL+E1/Gl/OfBYA9YbYwR5grpAipwjxh
vrBAWChsFXKFbcJ2YYewU9gl7Bb2CFeFa8IN4ZZwW7gr3BceCo+FJ8Iz4YXwSiSiStQReVEQRVEt
SqKuaC82EB3EhqKjqBG1opPoLLqIrqKb2Eh0Fz3ExmIT0VNsKjYTm4stxJZiK9FLbC16S6KkliTJ
QDKUjKT30gfpo2QhWUryGqQtjfoQjfQ4UA6+wGn9mYHA2gkQ0YnMaIjo1PTuZ4nGb7o0KtOjc6/6
ig2KDchA+atyPTJU5ipzUTVlibIEdBvEKshEjlVA39zg7yE7OWIBNTMFuLsxxOxbkBdE21dQB4i4
C1FHyt1+lLv9KXd3otzdmXJ3AOXuQMrdXSh3d6XcHUS5uxvl7u5CObB2sKgHTB1OmXo0ZepxUjVg
6glg5w4U8lc8+u958G/x0xcP8bQ1EW1NHdqOBrQdLWg71qaWO1DL3ajlnanlXahG6VYR+XH0TX9Q
b4/ked1WqHrV/v/7Xvzn/bGi78AZ9GlPQbSnKKiHldSfEvWnLvWnHvWnPvWnAfWnIfWnEfVnNepP
Y+pPE+pPU+pPM+pPc/CbCbKovHqBk6pcvQR6s3LEymOe9lNE+ymm/ZSh/VRR+b8ip1vlf01BlXxF
gS8jnSIHHQW0J3O0JxPak1UVUSx+id/h0ko1oM8YMxZMLcZO4cNFcFFcPy6GG8oN40ZINaVaUh2p
rmQn2UsOkqOklVwkN8ldaix5Ss2kFlIrqbXUTuotRUp9pWgpVoqThkjDpBFSojRWGi9NkqZIU6Xp
0kxpjpQizZMWSGnSYilDypSypOXSCmmVtEbKkdZJG6RN0hYpV9ou7ZT2SHnSAemQdEQ6Kh2XTkqn
pbPSeemiVCBdkQqlm9JT6YX0SnojvfvvXeX/vefy/9I9lwzSA83flzOUSoHzm/+le8phJOL+ymtV
7gBWyffKVN5V8w/vkfl6Hw2cg2nK9P4as1fs8QUE+hLzMvgNKgGN7sq4wye8YJ8/05kJYoKZnkwk
YNVgQL3R8prW95K8jlU1wVm+Te5/TPKqV9Ukr5F9N3n9LrWRV9C+Sf5/TPJqWtUEtvxJAj74JoHN
36bg7yXgj28StNK3qTdNv21H/i71g9T/T9Lg7yWh/NsErPVtMvtdsvk2VdpXcb30DP+dm/iTuQmM
bgB/egLXtwOV3YU+B+XL00/kJ6FMRbPQPIh+stAqtA7inx1oHzoMEdA5dBnaT0PXev/V3P3fyv3/
nfy78x8VsyMiFPPkuAe1lGMB4DpjGj3IaxwY20EczQDbp0J9Hp4P9QVYfnt3BkReDN6Cn8tPgMUv
IV55Rd+B8Ra/g3oJ/kA5sxTqn3A51D8z8htIGIaFPscxSqgTRn5qqsBA/M2o6fs89BiIsRkDxgjq
1RhjqJvI7+cAXrWAuiVTE+o2DERuTG35zR/AsXZQr8/Uh7o9Yw/1BkwDJL/RxAHqDRn5TTyLmEVQ
X8wshno6kw71DEVb+hRXH6RQtOcM5efEcWAvZ855y0825NoiBdeOC5Of083FQL2//FZg4OoRUP9B
fmIUN4mbBPXJ3D4kv+E4D+r7VYDMKgaiSEZlqzMAYZ2BOqD0dGLVqxFWr1FD1Kv+RZ0H9f3qQ1A/
DEoVS9VBZyhATX6mER6gsi6jW6/iN87UMwwKr/xl7m8aBFMNgqkGwVV+QYqpBsFUg2CqQTDVIJj+
7gNTDYKpBsFUg2CqQTDVIJhqEEw1SMUVMlSJYKpEMFUimCoRTJUIpkoEUyWCqRLBVIlgqkQwVSKY
KhFMlQimSgRTJYKpEsFUiWCqRDBVIpgqEUyVCKZKBFMlgqkSwVSJYKpEMFUimCoRTJUIpkoEUyWC
qRLBVIlgqkQwVSKYKhFMlQimSgRTJYKpEsFUiWCqRDBVIpgqEUyVCKZKBFMlgqkSwVSJYKpEMFUi
mCoRTJUIpkoEUyWCqRLBVIlgqkQwVSKYKhFMlQimSgRTJYKpEsFUiWCqRDBVIpgqEUyVCKZKBFMl
gqkSwVSJYKpEMFUimCoRTJUIpkrky/NBvj4txFp+up4R3Yuse2qSrLsrdepPbje5RI0Jk5lk7QO7
vBmMtYJGR8nZSwrGnEOaMCVvr8QsTmrEYDYzUNNZ06DKHsus6uMs6XKOJ/JH4WgoigMQjUIJ8Ccv
7zTT1KxyMtZo+P7XRwPOT5snXU0ZGN5//ny7MU8HZiZZ1NAksQc0SYpfMhUMZhhDZ7jE4ftPhT+S
ek1qRi94uEb99WoxB9c1gl6moiurNGS6BmoNNfryhsqQ7xY2NDpmUL+EuEFaPY0k7ySGJCAqMjZu
UKS2usZS3sMbVusYExEfNzSub4K1V1z84Lj4sIQY+I+amhrycYWh6W/Hu8TERjkEJoTFDrbu5NVS
U91ErXXVuGlctI1cNC7uIbDppvH4uqkZv+lvuTK1RpCPC4ZsR/9OAdq6mjoVm9UHecUMjo6Kt24d
6G3tHejXuFHLNi0dvF20Xg7eWhcnbR1NrQqLLL9rUWBU/PCYiChNErap2sLyS6eSAKVgP88kYYxy
HKuVtTcN9IyVfG3jLEZ3dUoI3xCXPulm0IfOGwfcGIh7GBXFtLEquL4y8mk/72VGvQ0TLMr7RMQs
6+W3agE5GLOwXeGKIWenHplU84fNhvazT5zP67G+g+6hRsN9122aUJ4qdJ/rfy8z3zOLzX+SFjCv
OPnwkrzMdyv9g/iDMT8X9bm9ZMfbvla+XpGONrkvNj8fNeGQvl6nw0t/Gnqyz+5Pk+dZvGGbdW6+
69SGGvFlm49766OuE9aNX9WvZ4xu0+TXe+eFNTfdZrc44cGhwO5BQlnSph9GDgk0m5LJWfQcsTz9
2kl2mll+if+OKwX9a0efDDOfcFKnW0yLNWsvd69tmn/s5/mJ7y89dSx2ZRQwjpYlYR1oEU5jBU1q
JYEcN5rXlesVfarn4v6ftWznX7pafJ7aKJD2IatarKnGeJxRLZf3VwLaDOaftigdXrrJfv0B1026
mi7yB2qwHTW+Gp/Mtpnek72iExIGN3Z0jIgf2DD2i58aRsTFOg4eECPvdRwcHxc5LCJhqONXN8pe
pE6EXtkQPqLprlTBwOQ4gjHbQdNe0+7LtoaZ7Fn5BSNGjPjeF0TF/4MzJ2gM5eutw4oa/sspFarf
DUiF3Eta9d+zN2NimFXM+S633KvdrrWwRjNz7z26U7elmwSkj9nZLeBVVIc3a+ddi9KkLS2uU2rx
JLJfqHFEwiCzhOajTr671yzAxL53/hGzHa1rLekV+/nwswbO68W0QXNn1r0WLEU3VTdeuZu1mXpj
V03DsWUtD7w+eLj509xtbXerfdImtAjZPXTJgZJP9Tr8ECzO8N3Iz3B79LRXefAxXSNlquP1Refz
Yjdun3bTKnndmZ1Ws/LiLo8Pv/vuRdcTfulW42MPnrzVqpPwRvm6bkr7kUda+JUs8Ludsu7kcfeY
1OU3kt437BZgk3Yt1T9BdWBZ7Rkjw7dGXlNa/dxuruOI8VmJxek+99PXm687Ompo9iKAsScAYxd+
gzHMN0hcV5D44wr5keiw9XsYS/xbwKKWpmbFoDevejwyyjowpt8gOOsfgMzJxbUqkMmbmvET/hNA
VvlxxZ98/J8C05xPcW47ixTb611qczYrbEd2m9II42YNP7Q9d+TJ0yMLN9h2Hrb76gldpZH+8oFm
GftCO3ZJvtux0+XpJ5eGZY8wTLNc+VSdULIyKPFhvZLAcxtGRtx6mzI/98mVtu8HNn1dZ8qmXfwh
duWMUZPaDbcMa7PG7ODI8J/z9ruuKe0edyhCmOujGW/x482xo/w3t40N/cHy160l8wwDnm8/29Hj
3tAb7fw8jdbMV3uc+LlzUc+zTV7M6PdY02d1x5B0r92FtXbs0y3w1Utf3PFF56yJa+4uXtn00rLn
vGm7VR83+GUvkHz3vjB6jfLXt7vUo9y9IFnfgdvhxfjboHl11o52HTQx+hdrU/d65ZZZehuyvwBT
H2iRnt8bqIoqaJVczmsf2568H3tk9uztKdOyTMOAtDrLh/VZwIvlbTStf+8fZ41W3uQM6ztrXT1c
7TUumkYezq4aB61b3zAHlwg3jUO4W3hfB49Ip3BtRKTG1cPd5RsAPK7/8Ni5zcbd8dFGDZ2Njbd3
SONraIIqANBfAxCYCRA42ftfAkDoy9CToROHatwdnLUOThqthkJgSBUI9NMACFaBwGZ/DQL/5NwJ
38O7FasCZ99sgsvDeilDivu+EC+XXJl4HnWW9M4uP2tS78E0Z3f7y16HFT8PK3ae82b17X5lTGG2
lZ+Xdy8Lnzu3/I1fjJn5Yor+saS1y0tXrA59O79P/o8H945aFPO0RlLey5MzfvANf1ugtiwINLg0
L+C5626zGZkt5i7lsx2MF+9vk6AqLnxzOdvHrYuBflfFph+NS9uWl0Z/2ufd83Zzg0TnrOdJh260
MCPPqh3iFwVzLVefmZ8xPkPR41P7O+YNuZxObR2nfUy8XN36PVdqN8DU6GM8myusTIt8ot/L39tn
up25Q+mZrTqBoS4pt4wPbn881PVht+dFxcYHTI8oNzU5HTbx9tbWySnLJmuSuIWAd+Mr8E4vca3x
0vaZ2Ws7DO3+hhg2jPo92IVSDOF15tgmz33VIBKbGSug+bVmGpNvdup89Y7WQWNfgQ61f0OHgLg4
gAhwV0zfmIiwhCjrlsMSouPiYxISZUgDb7lqPJyctR5OTgBpTpWbTu5a55C//wKSmD+iFSOjFQNo
BSHx614fx/W7ELJytdhglvUZV5XnsIknc0ny4uSrN04d6PNxdnRIRsoQO9Pho/bfyq8zPEXq/pF1
cbt/89eScTsedRfs595L5+6MsJld4hLpaTPbqneRzqxdRuWfhnU3K0rMJXOWrZsSrLq8hBxTdP8U
bRfrVHBu1XHfT0VCOyf/+8Xb1vrf7RlnmLKwMPXisMJV5rkpszeP6PG2nTizf+Joo8Hs6NhfZ729
Ovhy29y9ixwHPuByi/T75CTONhp16NKKu0VjLh4Yc2/OOU+0xS3pRmJR7Ostg94vcT56PGD00AVu
hT8vHZCVOn/Rshv7O9p+Vs7rV0eZ/yDn7jMD51TtwnxXlZ/LscTAi1v2RDgFt3Dbl+3Hdmxa2IM4
3+2+93nzwMjLrYJdu5Xpeo+qzXbMuOSeoD/fZtap6NYJc+Iu+satn3zniFurzDOf8vaFfFgWtl3T
dsg83nj97H2tUp/rja3X/079GhvunlQ0HzGEPWL9yUfXynvK8oLjY6asneHwxLvwYGf2aP1PTyZn
pOnP73HjVOCU+7dzy3JS99drUficnXVzvLPHlY3e2bV+UmZ3TdbuVDr0kVqajq7RcMv84/rF1S7W
zk55Xs0oucx36EenHp/OOqMPweGDidPjhr+0cPjx2PWa/Sw0C2car6m1quXZ9YP0F7kdvNEiYXFR
96i8PtVH9nDPn7mTtR11wbjFva0DBq6ZXIb2nsqrlJGdNf4UZK10WRZGzmGNrrxhKL/Dl9MooKgC
2VJOUp8WQXXn36tj+Kl+ER+YGnx3uUZPqVMZglXD8hnQH8AJ9h3S76ho3Od6rwD9ETM37nTL38jt
3Zy76rJ1ek9DxVZLm49KQ9et+REX0trG2XY71/Ulu8E29NLqTtGZu85tG3TiwKOcm2Ynf8gJTsjp
6+J20KLZQPcOzpLGQL3MtrxzIPr8a4jfRLVujbuxXEO/Sb7TBzrHdTkX+cveTr+OHumR2ehphEL3
k6HylLHbhS5NUi06hze+19HkAucxJ63uqh5rdj/ZueeOdXKfIQODNmUbnomVao1JVTyNbvrqcsS2
AR23PtRsKTqW4luStabXQs3Gpiv3dx5YzxrXrmvvi3LT9QcM3rNRL2mXuCj6zPQmtX9as7BefLpz
aPCs3W9vzM1oHB7i4nF7Sler7cr1eckDHApiDpgZuE08czTz6mfHmB823ht5tbhA3FeyO8Jkm4eh
e5Zbjx9fTQrqbxUZnud+e83ezn2zUt4aLO5rozfgVa5mjsMruxdNmxh5RWe9XGzX6Pgpd+s6saP6
vR5T26C2QjW+7ZPsjPlvTQtO77z4fPi852WnCoPSUzNbfZjfvahAa3M+NPh+s0E26LHXxK11Cq+8
VgVF74scYDXqyda5WeHdBjW8/KD7zINaH9vrN+xcf3qrGTK4h5FnzO5kg9HFDZeVXx6bkRQSwNvn
edlf0UxZkq9Xmjz9/tJJw5zHDMwoHGoYGR6T7Tj62LzYJe8hhJjTdFBNo5pHm946UDZ1QHr7srNL
0xd6jWi+/iqA8y4A5+UV4MyHOdua01Ba+78By1qNxt1Z6+Sk9XCmsFy56SRv/m+K4H8mLzfGB/c0
00TutUrrY23dauHwwIHNLC7FnTj+8vGA8vnGerduNk6YYJ7rmOn05PON/a38al2MR4Wu3fjkY+us
fd68iM7p6Ds9e3ei75BFbcnVsjo304dNOb1maOuxBeMLX+9+5bb8aE/va7+ubXqrXvR885XZ8UOD
Xpqk3C1zTYnPvDQ8tPoI7wmT3I3PDO3B7egXMD17Y4zjVTOhfE6C3e3hjl2uG2mC35+bHl52/Gho
G22n7XUN77bQnI6306tnc6SRX9NMp6azTi51V07q6ReUVK8+55TrW+Af8eCcQ/hL76YPclToXZul
GWd7TLMNfDhyTftXbU438nTP2DyiZ7ZJxvTj+jODPPNydEIV57/Iy97QIiH/CKe+K/OqgNxkjUFV
0OLoiTW1ftvHyGcpO6v1O287NbVoQZ8mq7RxKzx3XXbQmH39kBHDitV5FIiGoXDkhVp+IzS/i5Sd
KoSmj6atxjvTK7Pl5OZ/XWh+PRwPXVvWh1RidqkiMdtpQDFXkZju/0qULQ8Yr4qz/lFcAn4HezQb
a9vm1+K4FhuctvQvlhwHrfIpKQ4d9rRDE4cCr7VC+fFHDtpltU6M6rRgXM1eOU0dO+zIWhW0+M7g
nds2v0/c4hNf0uxxy7HHikSTmOPZi60dPgqdDgaddLjT/tyuwQ9WqbMU2UG3tk317fYqtdXil6+f
P7szuYaL57agtBeBtSbVX55kOfd2CrF6ddvv/bSlxx4aZs/2y7c4NzM+tf6Q2EXm7y1fBF7qd8Lm
c0+rk1nTdtfdmBgR1Dqr88kPj5Z1D7q+iPFu7Rj65uq6C0lOgz4tTzW8WxzzYHVWgz359npS1IyF
hW+zPhrY6kS5p7wcWaP9zrNFQQ/P/DDPtOdRV+PQ63OtfGY47Fnr0trymV41c9TrumuPmqcWHNF5
Nkma5h8rGfo1HWXXbnH82dcDj+U9Gbys25xuo1OmZ1q0U4SUnF7Wj0/Idnvq4GiSfz++kcGbuA2e
/ZI+BGyc7mwcVV2ael3vRuSbuFNtLpw3eZR4kN18vrTBzRpTM3L4UsO6Ldbe/VC0emybnaRP26g+
LfzWt3ri93TT8MTLvItOrOU4bY3bUpfr95aW3murtzZywedOxg1H7eVqjryd2vJ/pp55eHL/1JO9
N2YrruONmfNh0bq2jGaeLN3dZdkMstPWfhKr/ibWrLKz43zWCndD/Vl3HhfaXmeoS3K/eK7j5A6J
X3xFvQcX265ncsj6nzl72iOBFQJbzAM4rh22NWhiYweW3+9h5bdYhgm4/JYZkGa1ObDjByyxTY0N
LCHNahDX2ADEHbixWEKl9/yFORvv3/aYpFWTrSf5cO+jx0dnBioHrD13V8JPhf/dxeUXfdaWGCgI
vma/GjJV1HOKtNOkdTNiDNRuMWS/qN77ppOd/zsfy4wPnWfkTxurtM/99CVdRudP9fMO2VfP/RYv
PKgcfKr3l+t5zgtx6y9scGJZ9HNZzuT06xp33II3tF14quGmp76mzT80iOcJs87vrAkTDPLaP0ca
zP1Vd2365heK0+t+XBL+zLE9ODdoi+uE+R4MXu5pguqaaSumP7nM1ui16GfLckF3Ec6m+S1vQyv+
Mc6SDeBoZRAwcHu7/Z6y2+4juiHz18tVOBqWn5l937p58sJEpq2yvBv/fJ+9ifGcknfI/5+shw8p
cMNK79XAEFmOr/TGOkqJUnpjNjkbZ0AK38YJBo292IvfhclLEmmePJsw+51DpdQnalwVGNYC07sO
xzC7mN19uWVt+e1zlYG+jBv1Sgqjc3mEV5/bV92/Q++K0KKe3KQd4Uyn/RSEA2berXJ4FL57fcQs
mYeyjG1rdld86r7wxprx3aN9/VysJ3o9Hn0IFr3rv3rSk+e9WVcbDj6b8olNv5X55UQtFaWC39/+
PKmYqcf7nf1RwR4Jv7l92VxFU3cstJyTrns0kO9VUoy92IxuBftH7FJGP88YepUZ2moXcZ94VWD7
v5VL+P4hrsS+D9d3iL/2664/aqodt3j/6z213E7VV4KLFN8ZnNpdkRoTzSjOJcJ36ZbIjK82O9Mi
NuvqP//Z2nYmMOzF3IIpOWssfa58q9y/SqIqSfP9otmaJmzlUkknbeVy5Zs+cB/X2X3eefPTn29q
tz5esqLEdIff0UJlIbUybpugnsIoN2eRPZs3b/BNPzHf6X9DpWLDPFGDtBdOQnFSJ+YpKV5wfqn9
cvcXjzM6V24YNfioaXmoxEe9Cnu/7N7Muaes8vc2qpewCb4rU9w/u+mgesi2jVm2nQvLErfkLRRe
tn+V+weh/L9dRjmb/t0PPNGjfDJt71zZdqEUJlvd9ZH9O54oPt264VTylooQ1iuOegFrpmxYWrF6
84JppVI3J7ULlyrpG63gyFsQ3aO6f8H7llOK117L+Z+c9c7zwXfG1PxO7toTmSee5b1aPv2coeZ/
vqPRMTd8pRfe+KU/z14vVCz7pPDiv4ZNLMAszLKciZHRAJjdBq69jH1MGzHDt6DxCKi5Bk2/nMyG
PMjTh0AHIHjchnwGyLKioMYgTCOLIbBQ0mN9c8qe97Eu63q9/qIHnXyBEt/XGaQgaeExDDMIWaDV
oMHgy5DJkMxQxJAPnoFMYyhhUGAIYahkKADy0oHiiUBWBkPlQrUGFZyZtaSyID+9KLEgo1IfrVJh
aWJk0JawSfxVW3PIdH1yyu/2Z7ftc54J23aXaCy+urPf2f18/PEDOUuK/9+6+MXapVFH1LrgQkaZ
zY+n0uzl069bXgjXXHAnoYH50rF5IvETg85MbbApc9g1pzXAYLup1rW4GNmHQie3Mv59+e72xnm5
5b+cb5ck5Vc4GUq1Hl2gxDPZ+JXiKt77y/vabpzN37o2xT7u/71bkWvMX60omLzDesuic1KOs8Rj
T/5nybb/cvDn5O/r09Q7ok76CLIrBmjMNpz71D1I/LbiFXHFzNBuz97AS0XlIcym4f6rCqQ3dqzk
VJYN5e3cu4n1vDu7xe/KFZpe7N5TVrAGqHinFpmEFC6dsH7unc+HOH8sfNW3sIlJw6CJSQURR2yG
TUyiQCFBcKrsG7BWAPbpYqQ0GWsggZwkuRHT3oxAy+EyrIb84BkRS0NDQwsTSxNgwwY9RX6VPNSq
mHpct+TgCX6lRXqLuM0156KV16C0ksDnsLo+5rRUS0u3mk6yeNajR7URTWs7GI3LPmmH60aWntkd
2LfYJnjHVra3XBttAh9t7V68/RP/7N/x2+fZ/GycE1oXorAu+zurgD3/j8DECSKRE3dO+eS7Qizh
4vRp828uED10aMa22d+stC3+aXkHBEzdHHn5amvtu6B/LMtYNWR1Oku/r4xcvCwyT4wz54LIe6/n
syyuGUYf4vANXXq9ZMcrn44mVm8lzstswSoNmR4uYsErmDpX3o6afvLJLqb9r/Lf3Ai/ea/hXM72
VSuNAy+EKSyOborMbnOe4nzlu7Wj01+d2sydUwyWq3rMeLRQx45b/dRCYff8FqbelsRbqqJPLFic
PLsn9i4AAN3fQwYNCmVuZHN0cmVhbQ0KZW5kb2JqDQozNjEgMCBvYmoNCjw8L1R5cGUvWFJlZi9T
aXplIDM2MS9XWyAxIDQgMl0gL1Jvb3QgMSAwIFIvSW5mbyA0NiAwIFIvSURbPDNENkZCNDMzRjEw
MURCNEY5MjhBNzZCOTUxMjVDMjQ5PjwzRDZGQjQzM0YxMDFEQjRGOTI4QTc2Qjk1MTI1QzI0OT5d
IC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDc3OD4+DQpzdHJlYW0NCnicLdZ5mFVjHMDx887U
lL2pSDFMCSFkyYRGNZWk0DIRTRPVpJBCC42RNdllDRWRfVf27Ev27LJli2Rfkt2Yfp9z/7if5733
3HPf8z7nOd83yxpe9fWp4b04y9ZSh2VBWhUUjsXcoFGfoHEXjA+KSoImLYOmk4Jm7TAPi4PiSviw
+aygxcygQ1HQqX9Qvijo1ibosTyoMJeKGUHPjpgS9DKX3guCvtXBAJcy0D8MmhoMLg0qnXpI72DY
iqDKd1VDg+GTg5Fdg1GufXQ/rAlqVmZZQcOadU5t0Q5bBdk6yA9p3/CDMavzUdYIhUgoQFM0QWMU
oRLrOufWRhtgfayHlmiB5ijGhtgIzbAxNkErtEFrbIoSbI7NUIotsQXylbAumVXK2iOf/DbYFh2w
A7bHduiI3bArdsRO2BmdsAt2x57ogs7YA2XYC/ugHHujK3qgO7qhAj3RB/uiF3pjP/TF/jgA/dEP
A3AQDsRgDMJATMYQ90S+nkNxCA7GCTge1RiOQ3EYhqEKR2IMRuBwHIGRGIXRqMFxmIixGIejcDSO
wXgciwmYhFcxxdXmt81JOBFTMQ11OBm1eAUv4xScjdNxGk7FdMzAWTgTZ+B8nIdzcQ5m4ipcglm4
GBfgQlyE2bgSV+BSXIbLcR2uxTzMxdW4BnNwJ27BzbgJ83E9bsAC3Ig7cDtuw624D/fiHtyNu/Ao
HsD9WISFeAQP4yE8iJfwFJ7EE1iMx/A4XsQLWIKn8QyexXN43g2WP91eM8ofT2/hTSzF63jDkfmD
8wO8jXfwLt7DMryP5fgQH+Fj/Id/8SVW4BN8is/wOb7AD/geX2ElvsYqfINv8R1+w2r8iJ/wM37B
r/gHf+MvrMHv+AN/WrO8ePVGeTe1MWljEswkn0kbkzYmkUoilcQtSV3S1CTJKc+nUibdTCqahC/J
YNLGpJtJRZOmJoVNupn0L4likqykhkkNU0nDFqB2aWwd6lqvJRXMDwqXBNPKgtqatRSUlmNc0HZ2
UF2G2KMUjOiOOcGEhcHEVln2P4j/7uMNCmVuZHN0cmVhbQ0KZW5kb2JqDQp4cmVmDQowIDM2Mg0K
MDAwMDAwMDA0NyA2NTUzNSBmDQowMDAwMDAwMDE3IDAwMDAwIG4NCjAwMDAwMDAxMjUgMDAwMDAg
bg0KMDAwMDAwMDIxNiAwMDAwMCBuDQowMDAwMDAwNDg5IDAwMDAwIG4NCjAwMDAwMDA4NzIgMDAw
MDAgbg0KMDAwMDAwMDkyNSAwMDAwMCBuDQowMDAwMDAxMDk1IDAwMDAwIG4NCjAwMDAwMDEzMzYg
MDAwMDAgbg0KMDAwMDAwMTM4OSAwMDAwMCBuDQowMDAwMDAxNTY1IDAwMDAwIG4NCjAwMDAwMDE4
MTIgMDAwMDAgbg0KMDAwMDAwMjE2NCAwMDAwMCBuDQowMDAwMDA0MTMwIDAwMDAwIG4NCjAwMDAw
MDQyNTQgMDAwMDAgbg0KMDAwMDAwNDI4NCAwMDAwMCBuDQowMDAwMDA0NDM2IDAwMDAwIG4NCjAw
MDAwMDQ1MTAgMDAwMDAgbg0KMDAwMDAwNDc1MyAwMDAwMCBuDQowMDAwMDA1MDAwIDAwMDAwIG4N
CjAwMDAwMTAyNDYgMDAwMDAgbg0KMDAwMDAxMjM2NCAwMDAwMCBuDQowMDAwMDE1Nzk2IDAwMDAw
IG4NCjAwMDAwMTYxNTQgMDAwMDAgbg0KMDAwMDAxNjg2MiAwMDAwMCBuDQowMDAwMDE3MDAwIDAw
MDAwIG4NCjAwMDAwMTcwMzAgMDAwMDAgbg0KMDAwMDAxNzE5NiAwMDAwMCBuDQowMDAwMDE3Mjcw
IDAwMDAwIG4NCjAwMDAwMTc1MTcgMDAwMDAgbg0KMDAwMDAxNzgyOCAwMDAwMCBuDQowMDAwMDE4
NzgyIDAwMDAwIG4NCjAwMDAwMjA2OTYgMDAwMDAgbg0KMDAwMDAyMDg3MiAwMDAwMCBuDQowMDAw
MDIxMTExIDAwMDAwIG4NCjAwMDAwMjEyODAgMDAwMDAgbg0KMDAwMDAyMTUzMCAwMDAwMCBuDQow
MDAwMDIxODI5IDAwMDAwIG4NCjAwMDAwMjM1MjQgMDAwMDAgbg0KMDAwMDAyMzU4NCAwMDAwMCBu
DQowMDAwMDIzNjQwIDAwMDAwIG4NCjAwMDAwMjM5MjUgMDAwMDAgbg0KMDAwMDAyNTE0OCAwMDAw
MCBuDQowMDAwMDI1NDE1IDAwMDAwIG4NCjAwMDAwMjU2NzUgMDAwMDAgbg0KMDAwMDAyNTg0NiAw
MDAwMCBuDQowMDAwMDI2MDg3IDAwMDAwIG4NCjAwMDAwMDAwNDggNjU1MzUgZg0KMDAwMDAwMDA0
OSA2NTUzNSBmDQowMDAwMDAwMDUwIDY1NTM1IGYNCjAwMDAwMDAwNTEgNjU1MzUgZg0KMDAwMDAw
MDA1MiA2NTUzNSBmDQowMDAwMDAwMDUzIDY1NTM1IGYNCjAwMDAwMDAwNTQgNjU1MzUgZg0KMDAw
MDAwMDA1NSA2NTUzNSBmDQowMDAwMDAwMDU2IDY1NTM1IGYNCjAwMDAwMDAwNTcgNjU1MzUgZg0K
MDAwMDAwMDA1OCA2NTUzNSBmDQowMDAwMDAwMDU5IDY1NTM1IGYNCjAwMDAwMDAwNjAgNjU1MzUg
Zg0KMDAwMDAwMDA2MSA2NTUzNSBmDQowMDAwMDAwMDYyIDY1NTM1IGYNCjAwMDAwMDAwNjMgNjU1
MzUgZg0KMDAwMDAwMDA2NCA2NTUzNSBmDQowMDAwMDAwMDY1IDY1NTM1IGYNCjAwMDAwMDAwNjYg
NjU1MzUgZg0KMDAwMDAwMDA2NyA2NTUzNSBmDQowMDAwMDAwMDY4IDY1NTM1IGYNCjAwMDAwMDAw
NjkgNjU1MzUgZg0KMDAwMDAwMDA3MCA2NTUzNSBmDQowMDAwMDAwMDcxIDY1NTM1IGYNCjAwMDAw
MDAwNzIgNjU1MzUgZg0KMDAwMDAwMDA3MyA2NTUzNSBmDQowMDAwMDAwMDc0IDY1NTM1IGYNCjAw
MDAwMDAwNzUgNjU1MzUgZg0KMDAwMDAwMDA3NiA2NTUzNSBmDQowMDAwMDAwMDc3IDY1NTM1IGYN
CjAwMDAwMDAwNzggNjU1MzUgZg0KMDAwMDAwMDA3OSA2NTUzNSBmDQowMDAwMDAwMDgwIDY1NTM1
IGYNCjAwMDAwMDAwODEgNjU1MzUgZg0KMDAwMDAwMDA4MiA2NTUzNSBmDQowMDAwMDAwMDgzIDY1
NTM1IGYNCjAwMDAwMDAwODQgNjU1MzUgZg0KMDAwMDAwMDA4NSA2NTUzNSBmDQowMDAwMDAwMDg2
IDY1NTM1IGYNCjAwMDAwMDAwODcgNjU1MzUgZg0KMDAwMDAwMDA4OCA2NTUzNSBmDQowMDAwMDAw
MDg5IDY1NTM1IGYNCjAwMDAwMDAwOTAgNjU1MzUgZg0KMDAwMDAwMDA5MSA2NTUzNSBmDQowMDAw
MDAwMDkyIDY1NTM1IGYNCjAwMDAwMDAwOTMgNjU1MzUgZg0KMDAwMDAwMDA5NCA2NTUzNSBmDQow
MDAwMDAwMDk1IDY1NTM1IGYNCjAwMDAwMDAwOTYgNjU1MzUgZg0KMDAwMDAwMDA5NyA2NTUzNSBm
DQowMDAwMDAwMDk4IDY1NTM1IGYNCjAwMDAwMDAwOTkgNjU1MzUgZg0KMDAwMDAwMDEwMCA2NTUz
NSBmDQowMDAwMDAwMTAxIDY1NTM1IGYNCjAwMDAwMDAxMDIgNjU1MzUgZg0KMDAwMDAwMDEwMyA2
NTUzNSBmDQowMDAwMDAwMTA0IDY1NTM1IGYNCjAwMDAwMDAxMDUgNjU1MzUgZg0KMDAwMDAwMDEw
NiA2NTUzNSBmDQowMDAwMDAwMTA3IDY1NTM1IGYNCjAwMDAwMDAxMDggNjU1MzUgZg0KMDAwMDAw
MDEwOSA2NTUzNSBmDQowMDAwMDAwMTEwIDY1NTM1IGYNCjAwMDAwMDAxMTEgNjU1MzUgZg0KMDAw
MDAwMDExMiA2NTUzNSBmDQowMDAwMDAwMTEzIDY1NTM1IGYNCjAwMDAwMDAxMTQgNjU1MzUgZg0K
MDAwMDAwMDExNSA2NTUzNSBmDQowMDAwMDAwMTE2IDY1NTM1IGYNCjAwMDAwMDAxMTcgNjU1MzUg
Zg0KMDAwMDAwMDExOCA2NTUzNSBmDQowMDAwMDAwMTE5IDY1NTM1IGYNCjAwMDAwMDAxMjAgNjU1
MzUgZg0KMDAwMDAwMDEyMSA2NTUzNSBmDQowMDAwMDAwMTIyIDY1NTM1IGYNCjAwMDAwMDAxMjMg
NjU1MzUgZg0KMDAwMDAwMDEyNCA2NTUzNSBmDQowMDAwMDAwMTI1IDY1NTM1IGYNCjAwMDAwMDAx
MjYgNjU1MzUgZg0KMDAwMDAwMDEyNyA2NTUzNSBmDQowMDAwMDAwMTI4IDY1NTM1IGYNCjAwMDAw
MDAxMjkgNjU1MzUgZg0KMDAwMDAwMDEzMCA2NTUzNSBmDQowMDAwMDAwMTMxIDY1NTM1IGYNCjAw
MDAwMDAxMzIgNjU1MzUgZg0KMDAwMDAwMDEzMyA2NTUzNSBmDQowMDAwMDAwMTM0IDY1NTM1IGYN
CjAwMDAwMDAxMzUgNjU1MzUgZg0KMDAwMDAwMDEzNiA2NTUzNSBmDQowMDAwMDAwMTM3IDY1NTM1
IGYNCjAwMDAwMDAxMzggNjU1MzUgZg0KMDAwMDAwMDEzOSA2NTUzNSBmDQowMDAwMDAwMTQwIDY1
NTM1IGYNCjAwMDAwMDAxNDEgNjU1MzUgZg0KMDAwMDAwMDE0MiA2NTUzNSBmDQowMDAwMDAwMTQz
IDY1NTM1IGYNCjAwMDAwMDAxNDQgNjU1MzUgZg0KMDAwMDAwMDE0NSA2NTUzNSBmDQowMDAwMDAw
MTQ2IDY1NTM1IGYNCjAwMDAwMDAxNDcgNjU1MzUgZg0KMDAwMDAwMDE0OCA2NTUzNSBmDQowMDAw
MDAwMTQ5IDY1NTM1IGYNCjAwMDAwMDAxNTAgNjU1MzUgZg0KMDAwMDAwMDE1MSA2NTUzNSBmDQow
MDAwMDAwMTUyIDY1NTM1IGYNCjAwMDAwMDAxNTMgNjU1MzUgZg0KMDAwMDAwMDE1NCA2NTUzNSBm
DQowMDAwMDAwMTU1IDY1NTM1IGYNCjAwMDAwMDAxNTYgNjU1MzUgZg0KMDAwMDAwMDE1NyA2NTUz
NSBmDQowMDAwMDAwMTU4IDY1NTM1IGYNCjAwMDAwMDAxNTkgNjU1MzUgZg0KMDAwMDAwMDE2MCA2
NTUzNSBmDQowMDAwMDAwMTYxIDY1NTM1IGYNCjAwMDAwMDAxNjIgNjU1MzUgZg0KMDAwMDAwMDE2
MyA2NTUzNSBmDQowMDAwMDAwMTY0IDY1NTM1IGYNCjAwMDAwMDAxNjUgNjU1MzUgZg0KMDAwMDAw
MDE2NiA2NTUzNSBmDQowMDAwMDAwMTY3IDY1NTM1IGYNCjAwMDAwMDAxNjggNjU1MzUgZg0KMDAw
MDAwMDE2OSA2NTUzNSBmDQowMDAwMDAwMTcwIDY1NTM1IGYNCjAwMDAwMDAxNzEgNjU1MzUgZg0K
MDAwMDAwMDE3MiA2NTUzNSBmDQowMDAwMDAwMTczIDY1NTM1IGYNCjAwMDAwMDAxNzQgNjU1MzUg
Zg0KMDAwMDAwMDE3NSA2NTUzNSBmDQowMDAwMDAwMTc2IDY1NTM1IGYNCjAwMDAwMDAxNzcgNjU1
MzUgZg0KMDAwMDAwMDE3OCA2NTUzNSBmDQowMDAwMDAwMTc5IDY1NTM1IGYNCjAwMDAwMDAxODAg
NjU1MzUgZg0KMDAwMDAwMDE4MSA2NTUzNSBmDQowMDAwMDAwMTgyIDY1NTM1IGYNCjAwMDAwMDAx
ODMgNjU1MzUgZg0KMDAwMDAwMDE4NCA2NTUzNSBmDQowMDAwMDAwMTg1IDY1NTM1IGYNCjAwMDAw
MDAxODYgNjU1MzUgZg0KMDAwMDAwMDE4NyA2NTUzNSBmDQowMDAwMDAwMTg4IDY1NTM1IGYNCjAw
MDAwMDAxODkgNjU1MzUgZg0KMDAwMDAwMDE5MCA2NTUzNSBmDQowMDAwMDAwMTkxIDY1NTM1IGYN
CjAwMDAwMDAxOTIgNjU1MzUgZg0KMDAwMDAwMDE5MyA2NTUzNSBmDQowMDAwMDAwMTk0IDY1NTM1
IGYNCjAwMDAwMDAxOTUgNjU1MzUgZg0KMDAwMDAwMDE5NiA2NTUzNSBmDQowMDAwMDAwMTk3IDY1
NTM1IGYNCjAwMDAwMDAxOTggNjU1MzUgZg0KMDAwMDAwMDE5OSA2NTUzNSBmDQowMDAwMDAwMjAw
IDY1NTM1IGYNCjAwMDAwMDAyMDEgNjU1MzUgZg0KMDAwMDAwMDIwMiA2NTUzNSBmDQowMDAwMDAw
MjAzIDY1NTM1IGYNCjAwMDAwMDAyMDQgNjU1MzUgZg0KMDAwMDAwMDIwNSA2NTUzNSBmDQowMDAw
MDAwMjA2IDY1NTM1IGYNCjAwMDAwMDAyMDcgNjU1MzUgZg0KMDAwMDAwMDIwOCA2NTUzNSBmDQow
MDAwMDAwMjA5IDY1NTM1IGYNCjAwMDAwMDAyMTAgNjU1MzUgZg0KMDAwMDAwMDIxMSA2NTUzNSBm
DQowMDAwMDAwMjEyIDY1NTM1IGYNCjAwMDAwMDAyMTMgNjU1MzUgZg0KMDAwMDAwMDIxNCA2NTUz
NSBmDQowMDAwMDAwMjE1IDY1NTM1IGYNCjAwMDAwMDAyMTYgNjU1MzUgZg0KMDAwMDAwMDIxNyA2
NTUzNSBmDQowMDAwMDAwMjE4IDY1NTM1IGYNCjAwMDAwMDAyMTkgNjU1MzUgZg0KMDAwMDAwMDIy
MCA2NTUzNSBmDQowMDAwMDAwMjIxIDY1NTM1IGYNCjAwMDAwMDAyMjIgNjU1MzUgZg0KMDAwMDAw
MDIyMyA2NTUzNSBmDQowMDAwMDAwMjI0IDY1NTM1IGYNCjAwMDAwMDAyMjUgNjU1MzUgZg0KMDAw
MDAwMDIyNiA2NTUzNSBmDQowMDAwMDAwMjI3IDY1NTM1IGYNCjAwMDAwMDAyMjggNjU1MzUgZg0K
MDAwMDAwMDIyOSA2NTUzNSBmDQowMDAwMDAwMjMwIDY1NTM1IGYNCjAwMDAwMDAyMzEgNjU1MzUg
Zg0KMDAwMDAwMDIzMiA2NTUzNSBmDQowMDAwMDAwMjMzIDY1NTM1IGYNCjAwMDAwMDAyMzQgNjU1
MzUgZg0KMDAwMDAwMDIzNSA2NTUzNSBmDQowMDAwMDAwMjM2IDY1NTM1IGYNCjAwMDAwMDAyMzcg
NjU1MzUgZg0KMDAwMDAwMDIzOCA2NTUzNSBmDQowMDAwMDAwMjM5IDY1NTM1IGYNCjAwMDAwMDAy
NDAgNjU1MzUgZg0KMDAwMDAwMDI0MSA2NTUzNSBmDQowMDAwMDAwMjQyIDY1NTM1IGYNCjAwMDAw
MDAyNDMgNjU1MzUgZg0KMDAwMDAwMDI0NCA2NTUzNSBmDQowMDAwMDAwMjQ1IDY1NTM1IGYNCjAw
MDAwMDAyNDYgNjU1MzUgZg0KMDAwMDAwMDI0NyA2NTUzNSBmDQowMDAwMDAwMjQ4IDY1NTM1IGYN
CjAwMDAwMDAyNDkgNjU1MzUgZg0KMDAwMDAwMDI1MCA2NTUzNSBmDQowMDAwMDAwMjUxIDY1NTM1
IGYNCjAwMDAwMDAyNTIgNjU1MzUgZg0KMDAwMDAwMDI1MyA2NTUzNSBmDQowMDAwMDAwMjU0IDY1
NTM1IGYNCjAwMDAwMDAyNTUgNjU1MzUgZg0KMDAwMDAwMDI1NiA2NTUzNSBmDQowMDAwMDAwMjU3
IDY1NTM1IGYNCjAwMDAwMDAyNTggNjU1MzUgZg0KMDAwMDAwMDI1OSA2NTUzNSBmDQowMDAwMDAw
MjYwIDY1NTM1IGYNCjAwMDAwMDAyNjEgNjU1MzUgZg0KMDAwMDAwMDI2MiA2NTUzNSBmDQowMDAw
MDAwMjYzIDY1NTM1IGYNCjAwMDAwMDAyNjQgNjU1MzUgZg0KMDAwMDAwMDI2NSA2NTUzNSBmDQow
MDAwMDAwMjY2IDY1NTM1IGYNCjAwMDAwMDAyNjcgNjU1MzUgZg0KMDAwMDAwMDI2OCA2NTUzNSBm
DQowMDAwMDAwMjY5IDY1NTM1IGYNCjAwMDAwMDAyNzAgNjU1MzUgZg0KMDAwMDAwMDI3MSA2NTUz
NSBmDQowMDAwMDAwMjcyIDY1NTM1IGYNCjAwMDAwMDAyNzMgNjU1MzUgZg0KMDAwMDAwMDI3NCA2
NTUzNSBmDQowMDAwMDAwMjc1IDY1NTM1IGYNCjAwMDAwMDAyNzYgNjU1MzUgZg0KMDAwMDAwMDI3
NyA2NTUzNSBmDQowMDAwMDAwMjc4IDY1NTM1IGYNCjAwMDAwMDAyNzkgNjU1MzUgZg0KMDAwMDAw
MDI4MCA2NTUzNSBmDQowMDAwMDAwMjgxIDY1NTM1IGYNCjAwMDAwMDAyODIgNjU1MzUgZg0KMDAw
MDAwMDI4MyA2NTUzNSBmDQowMDAwMDAwMjg0IDY1NTM1IGYNCjAwMDAwMDAyODUgNjU1MzUgZg0K
MDAwMDAwMDI4NiA2NTUzNSBmDQowMDAwMDAwMjg3IDY1NTM1IGYNCjAwMDAwMDAyODggNjU1MzUg
Zg0KMDAwMDAwMDI4OSA2NTUzNSBmDQowMDAwMDAwMjkwIDY1NTM1IGYNCjAwMDAwMDAyOTEgNjU1
MzUgZg0KMDAwMDAwMDI5MiA2NTUzNSBmDQowMDAwMDAwMjkzIDY1NTM1IGYNCjAwMDAwMDAyOTQg
NjU1MzUgZg0KMDAwMDAwMDI5NSA2NTUzNSBmDQowMDAwMDAwMjk2IDY1NTM1IGYNCjAwMDAwMDAy
OTcgNjU1MzUgZg0KMDAwMDAwMDI5OCA2NTUzNSBmDQowMDAwMDAwMjk5IDY1NTM1IGYNCjAwMDAw
MDAzMDAgNjU1MzUgZg0KMDAwMDAwMDMwMSA2NTUzNSBmDQowMDAwMDAwMzAyIDY1NTM1IGYNCjAw
MDAwMDAzMDMgNjU1MzUgZg0KMDAwMDAwMDMwNCA2NTUzNSBmDQowMDAwMDAwMzA1IDY1NTM1IGYN
CjAwMDAwMDAzMDYgNjU1MzUgZg0KMDAwMDAwMDMwNyA2NTUzNSBmDQowMDAwMDAwMzA4IDY1NTM1
IGYNCjAwMDAwMDAzMDkgNjU1MzUgZg0KMDAwMDAwMDMxMCA2NTUzNSBmDQowMDAwMDAwMzExIDY1
NTM1IGYNCjAwMDAwMDAzMTIgNjU1MzUgZg0KMDAwMDAwMDMxMyA2NTUzNSBmDQowMDAwMDAwMzE0
IDY1NTM1IGYNCjAwMDAwMDAzMTUgNjU1MzUgZg0KMDAwMDAwMDMxNiA2NTUzNSBmDQowMDAwMDAw
MzE3IDY1NTM1IGYNCjAwMDAwMDAzMTggNjU1MzUgZg0KMDAwMDAwMDMxOSA2NTUzNSBmDQowMDAw
MDAwMzIwIDY1NTM1IGYNCjAwMDAwMDAzMjEgNjU1MzUgZg0KMDAwMDAwMDMyMiA2NTUzNSBmDQow
MDAwMDAwMzIzIDY1NTM1IGYNCjAwMDAwMDAzMjQgNjU1MzUgZg0KMDAwMDAwMDMyNSA2NTUzNSBm
DQowMDAwMDAwMzI2IDY1NTM1IGYNCjAwMDAwMDAzMjcgNjU1MzUgZg0KMDAwMDAwMDMyOCA2NTUz
NSBmDQowMDAwMDAwMzI5IDY1NTM1IGYNCjAwMDAwMDAzMzAgNjU1MzUgZg0KMDAwMDAwMDMzMSA2
NTUzNSBmDQowMDAwMDAwMzMyIDY1NTM1IGYNCjAwMDAwMDAzMzMgNjU1MzUgZg0KMDAwMDAwMDMz
NCA2NTUzNSBmDQowMDAwMDAwMzM1IDY1NTM1IGYNCjAwMDAwMDAzMzYgNjU1MzUgZg0KMDAwMDAw
MDMzNyA2NTUzNSBmDQowMDAwMDAwMzM4IDY1NTM1IGYNCjAwMDAwMDAzMzkgNjU1MzUgZg0KMDAw
MDAwMDM0MCA2NTUzNSBmDQowMDAwMDAwMzQxIDY1NTM1IGYNCjAwMDAwMDAzNDIgNjU1MzUgZg0K
MDAwMDAwMDM0MyA2NTUzNSBmDQowMDAwMDAwMzQ0IDY1NTM1IGYNCjAwMDAwMDAzNDUgNjU1MzUg
Zg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDMxNjk1IDAwMDAwIG4NCjAwMDAwMzIwMjUgMDAw
MDAgbg0KMDAwMDA2NjIwOSAwMDAwMCBuDQowMDAwMDY2NTAzIDAwMDAwIG4NCjAwMDAwOTY4MjMg
MDAwMDAgbg0KMDAwMDA5NzEyNSAwMDAwMCBuDQowMDAwMTM5MzI1IDAwMDAwIG4NCjAwMDAxMzkz
NjkgMDAwMDAgbg0KMDAwMDEzOTY3MiAwMDAwMCBuDQowMDAwMTU1MTkxIDAwMDAwIG4NCjAwMDAx
NTUyMjQgMDAwMDAgbg0KMDAwMDE1NTQ1NiAwMDAwMCBuDQowMDAwMTU1NTQ4IDAwMDAwIG4NCjAw
MDAxNTk2NjcgMDAwMDAgbg0KMDAwMDE1OTc2NyAwMDAwMCBuDQowMDAwMjM5ODMxIDAwMDAwIG4N
CnRyYWlsZXINCjw8L1NpemUgMzYyL1Jvb3QgMSAwIFIvSW5mbyA0NiAwIFIvSURbPDNENkZCNDMz
RjEwMURCNEY5MjhBNzZCOTUxMjVDMjQ5PjwzRDZGQjQzM0YxMDFEQjRGOTI4QTc2Qjk1MTI1QzI0
OT5dID4+DQpzdGFydHhyZWYNCjI0MDgxMg0KJSVFT0YNCnhyZWYNCjAgMA0KdHJhaWxlcg0KPDwv
U2l6ZSAzNjIvUm9vdCAxIDAgUi9JbmZvIDQ2IDAgUi9JRFs8M0Q2RkI0MzNGMTAxREI0RjkyOEE3
NkI5NTEyNUMyNDk+PDNENkZCNDMzRjEwMURCNEY5MjhBNzZCOTUxMjVDMjQ5Pl0gL1ByZXYgMjQw
ODEyL1hSZWZTdG0gMjM5ODMxPj4NCnN0YXJ0eHJlZg0KMjQ4MjEyDQolJUVPRg==

--_004_HK2PR06MB09134BAD122CA79EA6E1CF9987AF0HK2PR06MB0913apcp_--


From nobody Wed Jul 12 02:11:37 2017
Return-Path: <Lucas.Pardue@bbc.co.uk>
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 A2C4313150C for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 02:11:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level: 
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 kFfgML97jRFP for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 02:11:34 -0700 (PDT)
Received: from mailout0.telhc.bbc.co.uk (mailout0.telhc.bbc.co.uk [132.185.161.179]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C0CAC131669 for <quic@ietf.org>; Wed, 12 Jul 2017 02:11:33 -0700 (PDT)
Received: from BGB01XI1006.national.core.bbc.co.uk ([10.184.50.56]) by mailout0.telhc.bbc.co.uk (8.15.2/8.15.2) with ESMTP id v6C9BVj1011755; Wed, 12 Jul 2017 10:11:31 +0100 (BST)
Received: from BGB01XUD1012.national.core.bbc.co.uk ([10.161.14.10]) by BGB01XI1006.national.core.bbc.co.uk ([10.184.50.56]) with mapi id 14.03.0319.002; Wed, 12 Jul 2017 10:11:31 +0100
From: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
To: Mark Nottingham <mnot@mnot.net>, IETF QUIC WG <quic@ietf.org>
Subject: RE: [hackathon] Hackathon Registration Closing at end of today
Thread-Topic: [hackathon] Hackathon Registration Closing at end of today
Thread-Index: AQHS+nVhGTVWalboN061ixi9yTHgNaJPOb3xgACulxc=
Date: Wed, 12 Jul 2017 09:11:31 +0000
Message-ID: <7CF7F94CB496BF4FAB1676F375F9666A377403F3@bgb01xud1012>
References: <884CF365-66BD-4EBE-9938-A9F93ABEB978@cisco.com>, <8E4E4148-E2FD-4A28-93B3-87F5A65709C0@mnot.net>
In-Reply-To: <8E4E4148-E2FD-4A28-93B3-87F5A65709C0@mnot.net>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.19.161.212]
x-exclaimer-md-config: 1cd3ac1c-62e5-43f2-8404-6b688271c769
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-23190.005
x-tm-as-result: No--25.493300-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5pT5jDHZ12aixVWhguDIEHg8ncE>
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: Wed, 12 Jul 2017 09:11:35 -0000

I won't be there in person, and have no implementation but I've registered =
and at worst case will cheerlead on the jabber channel!
________________________________________
From: QUIC [quic-bounces@ietf.org] on behalf of Mark Nottingham [mnot@mnot.=
net]
Sent: 11 July 2017 23:44
To: IETF QUIC WG
Subject: Fwd: [hackathon] Hackathon Registration Closing at end of today

For those who are interested but still undecided, please register. Even if =
you don't have an implementation, you can still help others, etc.

  https://www.ietf.org/hackathon/99-hackathon.html

Cheers,



Begin forwarded message:

From: "Charles Eckel (eckelcu)" <eckelcu@cisco.com<mailto:eckelcu@cisco.com=
>>
Subject: [hackathon] Hackathon Registration Closing at end of today
Date: 12 July 2017 at 4:42:00 am AEST
To: "hackathon@ietf.org<mailto:hackathon@ietf.org>" <hackathon@ietf.org<mai=
lto:hackathon@ietf.org>>
Cc: "ietf@ietf.org<mailto:ietf@ietf.org>" <ietf@ietf.org<mailto:ietf@ietf.o=
rg>>
Archived-At: <https://mailarchive.ietf.org/arch/msg/hackathon/UvfwtL9VLPbNl=
Rjs4uKx7AgPCRw>

Thanks to all of you who have registered for the hackathon.
The good news is we have a record number of registrations.
The bad news is, we have run out of space.
Registration will be closed after today.

Cheers,
Charles


_______________________________________________
hackathon mailing list
hackathon@ietf.org<mailto:hackathon@ietf.org>
https://www.ietf.org/mailman/listinfo/hackathon

--
Mark Nottingham   https://www.mnot.net/



-----------------------------
http://www.bbc.co.uk
This e-mail (and any attachments) is confidential and
may contain personal views which are not the views of the BBC unless specif=
ically stated.
If you have received it in
error, please delete it from your system.
Do not use, copy or disclose the
information in any way nor act in reliance on it and notify the sender
immediately.
Please note that the BBC monitors e-mails
sent or received.
Further communication will signify your consent to
this.
-----------------------------


From nobody Wed Jul 12 09:54:08 2017
Return-Path: <ianswett@google.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 877E3131738 for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:53:59 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 FdExag72ZR-M for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:53:58 -0700 (PDT)
Received: from mail-yb0-x230.google.com (mail-yb0-x230.google.com [IPv6:2607:f8b0:4002:c09::230]) (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 E509D131737 for <quic@ietf.org>; Wed, 12 Jul 2017 09:53:57 -0700 (PDT)
Received: by mail-yb0-x230.google.com with SMTP id 84so9386566ybe.0 for <quic@ietf.org>; Wed, 12 Jul 2017 09:53:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=aGG02QBQZUF/NwT+UyRV992mLizLMVpe/96NVK8mHTI=; b=vsvzZRkwi03YjbG8HmHJnXMHBnPLr69JMZA+50geXygN9QKXsfpN7zYsdE788lD2j9 dZUaIlyBj5qrWQiDD9gg8CClS4cNdDqHGRpc0f79viit7QVetQfeY+vBuT9z0gdxY6wu 7ljnHEklWfSZa0OxlQ2EkQZdZhlg5IIiVOLcjF7P09DK+4M/bo/2TcIJVXbv+KlCTfLi gwwqZL069YEB9R/sEaHu4lHM28BMjXDe7nJt3OdrbKSNnHFmxiTeEb6oXYCEFix180fC JdRZeFF8hkJTXXqG9Jsij8EnSGOJAilcyIhZgsKaZttackPVW7Nhx6MjV5TCxJITq3cL spCA==
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=aGG02QBQZUF/NwT+UyRV992mLizLMVpe/96NVK8mHTI=; b=OiqqcJVDsMYjO1leVkAiFeZdqlOF4dM2cTpRRMIJYkBOV6ViIlk1RF+0qQ5nZ4f5aN 1vCaN/lzNNXdNmPdprQJ/SI1qlpHy4CDvU0IpEAihXsEh6u8oARcODAz2D2Itw6kk4SJ o+RIIRd9jW8OKPjwHRVruivJwS02CvYq+iGxDD8zw+oSSK0/EeIuGiVZLdwYwEj01Rtj nDmqaZrlCNNR7Eoi/lw0JqeqqWOO4xUw1X1xR60SQ0EM9sZFpRyrVXREHZgrvyHZYMHL FrJu8fncyhBmUl8vzHb/hOrH80POISwjan3pNDmyS+dXDJ26YIC4wjIyC4lh2aGqVPjj lNyQ==
X-Gm-Message-State: AIVw110+AtUHZr3mKMtLmP14MoFQHxFkek+EldwynWZrTQA26tPtSbbB 6g143PzIzIWzBh/+NtHZ/uBhy5HAPBLq
X-Received: by 10.37.47.80 with SMTP id v77mr1490349ybv.127.1499878437053; Wed, 12 Jul 2017 09:53:57 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Wed, 12 Jul 2017 09:53:36 -0700 (PDT)
In-Reply-To: <CAOdDvNobQu471iOqi1LTi_9DVV2KvdwxaeE3EYvFbL+GSHqJXw@mail.gmail.com>
References: <CABcZeBNNG4vwTYsFXndou6gGSy-B7i0GeHf4-uTaYQqMcPNW8w@mail.gmail.com> <CAOdDvNobQu471iOqi1LTi_9DVV2KvdwxaeE3EYvFbL+GSHqJXw@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Wed, 12 Jul 2017 12:53:36 -0400
Message-ID: <CAKcm_gOuzem5Mo-iYqmxYtwfO1RcM8QtpG-H13d_JdcSd3XEzw@mail.gmail.com>
Subject: Re: ALPN token to use for first implementation draft
To: Patrick McManus <pmcmanus@mozilla.com>
Cc: Eric Rescorla <ekr@rtfm.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a1140bb0872e4c5055421a9a4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/yPk7N-arN_hPwwstNBy2zP0gefY>
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: Wed, 12 Jul 2017 16:53:59 -0000

--001a1140bb0872e4c5055421a9a4
Content-Type: text/plain; charset="UTF-8"

I have a slight preference for keeping the draft number in the alpn token,
so I'd lean towards hq-04.

I'm pretty sure the Chromium implementation will support some non-IETF
standard HTTP over QUIC based on the first implementation milestone, so
it's not a complete lie.

On Mon, Jul 10, 2017 at 1:17 PM, Patrick McManus <pmcmanus@mozilla.com>
wrote:

> In the spirit of "doing more than the first implementation requires"
> (which is explicitly in scope by 1st implementation), I'll have my client
> send ALPN hq-04 and my server select that if offered, but neither end will
> fail if its peer doesn't reciprocate.
>
> Remember - hackathon this coming weekend. Jabber is an option!
>
> -P
>
>
> On Sun, Jul 2, 2017 at 6:12 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>
>> The TLS draft implies (though I suppose one could argue) that QUIC should
>> always negotiate ALPN. The HTTP draft specifies "hq-<version>" but we're
>> not
>> doing HTTP for the first implementation draft.
>>
>> We want to get into the habit of using ALPN, so I think we should define
>> one.
>> Perhaps "implementation-1"?
>>
>> -Ekr
>>
>>
>>
>>
>>
>>
>

--001a1140bb0872e4c5055421a9a4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I have a slight preference for keeping the draft number in=
 the alpn token, so I&#39;d lean towards hq-04.<div><br></div><div>I&#39;m =
pretty sure the Chromium implementation will support some non-IETF standard=
 HTTP over QUIC based on the first implementation milestone, so it&#39;s no=
t a complete lie.</div></div><div class=3D"gmail_extra"><br><div class=3D"g=
mail_quote">On Mon, Jul 10, 2017 at 1:17 PM, Patrick McManus <span dir=3D"l=
tr">&lt;<a href=3D"mailto:pmcmanus@mozilla.com" target=3D"_blank">pmcmanus@=
mozilla.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div di=
r=3D"ltr"><div>In the spirit of &quot;doing more than the first implementat=
ion requires&quot; (which is explicitly in scope by 1st implementation), I&=
#39;ll have my client send ALPN hq-04 and my server select that if offered,=
 but neither end will fail if its peer doesn&#39;t reciprocate.</div><div><=
br></div><div>Remember - hackathon this coming weekend. Jabber is an option=
!</div><span class=3D"HOEnZb"><font color=3D"#888888"><div><br></div><div>-=
P</div><div><br></div></font></span></div><div class=3D"HOEnZb"><div class=
=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Sun, J=
ul 2, 2017 at 6:12 PM, Eric Rescorla <span dir=3D"ltr">&lt;<a href=3D"mailt=
o:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&gt;</span> wrote:<br><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex"><div dir=3D"ltr">The TLS draft implies (though =
I suppose one could argue) that QUIC should<div>always negotiate ALPN. The =
HTTP draft specifies &quot;hq-&lt;version&gt;&quot; but we&#39;re not</div>=
<div>doing HTTP for the first implementation draft.</div><div><br></div><di=
v>We want to get into the habit of using ALPN, so I think we should define =
one.</div><div>Perhaps &quot;implementation-1&quot;?</div><div><br></div><d=
iv>-Ekr</div><div><br></div><div><br></div><div><br></div><div><br></div><d=
iv><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a1140bb0872e4c5055421a9a4--


From nobody Wed Jul 12 09:55:27 2017
Return-Path: <ekr@rtfm.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 4E8F71300CF for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:55:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 UgsZqRDrjBdS for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:55:25 -0700 (PDT)
Received: from mail-yb0-x22f.google.com (mail-yb0-x22f.google.com [IPv6:2607:f8b0:4002:c09::22f]) (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 0C048127978 for <quic@ietf.org>; Wed, 12 Jul 2017 09:55:25 -0700 (PDT)
Received: by mail-yb0-x22f.google.com with SMTP id f194so9373196yba.3 for <quic@ietf.org>; Wed, 12 Jul 2017 09:55:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=FrFt4lveueHyTO+tbLUIRrZvdXDR1qOFz22QAk0yBcI=; b=bNoj+BY1Vv//H6Q/3MxoPGYU3/Rixh1AmfdP2Tcgj8xOhKw6vlSb9tcI84HxZXqF78 upMe53wH+5I5aRuQIyeFINLi+lI6sHBDw/Z/v2/KYY7CbnysTkEvaaWIm5zWx/itHWQ4 Iju7+00XqIVFSTvqwpLLLktfBhXqndJuafNe767wotRA9vh2SER6uWR0SXNRc3G7KaSZ PTm56U1pJXAQS8U9TANqgSpwXCd/N4tbREp30Vz4OJ/E9SJMWvaaXIew20z+r3rJcJ/T jvKGOMzBDodtYiNZjz6BU8Ynz4DxgLncwNK/qWhwznuZKKFwLCm55bXiyjS/RN/9A5hC c/hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=FrFt4lveueHyTO+tbLUIRrZvdXDR1qOFz22QAk0yBcI=; b=VqfoegUO5/DzxreKqTKhkRIBwBsJjlZ717mA3QoC800QayS9hItXEVfiwCNC71yBIa 1fSonfKPFeNvo4MRzwb5q/gDawHRCwR9bSXmzal0Q89pjHRD+batpUlhz1Vuq10GfPaa UrBo8kD6O96pQWkiiPY1nSb+XBtFUUt3OT3l58mOCIisT02bpqKCOq5PpRf4NOmuiTnP tRKDYqaD39l56PPuOr08xJnJFNr/UbSq9i0BAKb83bygnBH6KpRUBjZQXYSOdKQZtKQr cwwFtFtJ8wT+9uBmwzVjcCDWGwO465t6omXdF3na7m2PIQP2KqI0JqyTs8IBJ024oqJm zT/Q==
X-Gm-Message-State: AIVw112Z0Kw+3EH2QCnmZGaDk0MkhkSdbbARsy6Jl0DIfjX7dMJ5teyu 8lJ13xUZqIsO2waOOCxVNCXBNVouqemxHCk=
X-Received: by 10.37.2.2 with SMTP id 2mr1503033ybc.29.1499878524119; Wed, 12 Jul 2017 09:55:24 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.215.9 with HTTP; Wed, 12 Jul 2017 09:54:43 -0700 (PDT)
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 12 Jul 2017 09:54:43 -0700
Message-ID: <CABcZeBMAVSvcbtR5tGcyfi=V6nN=k9upM6dDWY1+G5sE+C7VSg@mail.gmail.com>
Subject: Version numbers for implementation drafts
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a113d4474a343eb055421aea8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/MIHPDR3icTJk3u-BDroqSrU2ES0>
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: Wed, 12 Jul 2017 16:55:26 -0000

--001a113d4474a343eb055421aea8
Content-Type: text/plain; charset="UTF-8"

It seems like people have started looking at implementing what's in
the editor's copy rather than strict -04, and that seems like it potentially
creates an opportunity for confusion. So, how shall we handle that?
Just call it -05 and you're at your own risk?

-Ekr

--001a113d4474a343eb055421aea8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>It seems like people have started looking at implemen=
ting what&#39;s in</div><div>the editor&#39;s copy rather than strict -04, =
and that seems like it potentially</div><div>creates an opportunity for con=
fusion. So, how shall we handle that?</div><div>Just call it -05 and you&#3=
9;re at your own risk?</div><div><br></div><div>-Ekr</div><div><br></div><d=
iv><br></div></div>

--001a113d4474a343eb055421aea8--


From nobody Wed Jul 12 09:58:34 2017
Return-Path: <ekr@rtfm.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 2DB6F129BA4 for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:58:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 2OXKJhqpHdgq for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:58:31 -0700 (PDT)
Received: from mail-yb0-x22f.google.com (mail-yb0-x22f.google.com [IPv6:2607:f8b0:4002:c09::22f]) (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 AB057127978 for <quic@ietf.org>; Wed, 12 Jul 2017 09:58:31 -0700 (PDT)
Received: by mail-yb0-x22f.google.com with SMTP id f194so9436634yba.3 for <quic@ietf.org>; Wed, 12 Jul 2017 09:58:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=2NiWcnIEfPw7ac/TK5ea3M3jb4vbOHSb/OU/bIsiZR4=; b=UzxO0fw+xk6ej6nx3iHrQlZ57AkHgf8tg9BoZE0DWlcDdnVJ1+3yO7a6glrHRgCXoz yK27lR1ugT2Mb/bq3HnNFAlm1NmQsiHV0W99eKL4v+F0uPPvbdS3caBBnukhAwyJIiYQ 0ne7W0m509p/BPVElOmSn9h2MfvmVdu5OLQ8+lfi9xTUJdHFI/6V40/fOnSAG++zoXaR LL2LHzQoHevnQ24l11bpd9vnPufuPW+yLjFdpru1Vq3wFtvztvvAUbVJu7BxMl4NDsC/ NJp5mP+pojiK/+B0Qe4XmTwYeTOvWraLVkGOnppZvh6Dh4jFGlM88r1+HNzO+lNopX2V UUug==
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=2NiWcnIEfPw7ac/TK5ea3M3jb4vbOHSb/OU/bIsiZR4=; b=c3BCEDoATcHP7NiChaQ6SU0+htMCrU8TmzvYAMQBBdl5LZIWk5PVfPVMd5QItOKVnT fhw1afVfpFlGWEi8Sk9wcpkit61/KTBGmqJvgeiDXta9uhqtEtZVwyPwe48El3VKfK0C 55bTpB2BUiGiWUc5ALBvZzZEaRx/X0aUlO7gvT0RuSSM9vTsuzzAYXdgL1qjqzuybOlH EWYzl7KwPa/i4MxkLDohIKIAqKRgZPL+WVVL5YXYulMVWc0JH/n+MnZeQ1cnK8+EdoMX QRdA4H/J2AnKGsCH3CBcoatZKgOdydgvbMKicO2yXcF6jKlvfSVyVcZQAvU+GbDR6z0J 2d4w==
X-Gm-Message-State: AIVw110zxNdPMoDvPhT2chlc3yeK7y81ZIfSdNIQj7VRXfSecRxIXmAA XF4mDe9UTtTmFmFnm2XCpvOPuWF4z9Lw
X-Received: by 10.37.122.68 with SMTP id v65mr1589042ybc.15.1499878710993; Wed, 12 Jul 2017 09:58:30 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.215.9 with HTTP; Wed, 12 Jul 2017 09:57:50 -0700 (PDT)
In-Reply-To: <CAKcm_gOuzem5Mo-iYqmxYtwfO1RcM8QtpG-H13d_JdcSd3XEzw@mail.gmail.com>
References: <CABcZeBNNG4vwTYsFXndou6gGSy-B7i0GeHf4-uTaYQqMcPNW8w@mail.gmail.com> <CAOdDvNobQu471iOqi1LTi_9DVV2KvdwxaeE3EYvFbL+GSHqJXw@mail.gmail.com> <CAKcm_gOuzem5Mo-iYqmxYtwfO1RcM8QtpG-H13d_JdcSd3XEzw@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 12 Jul 2017 09:57:50 -0700
Message-ID: <CABcZeBPrs140OVVWfcog1tEmE5kobL5Ypd8Y8q0K0aDt99hkLA@mail.gmail.com>
Subject: Re: ALPN token to use for first implementation draft
To: Ian Swett <ianswett@google.com>
Cc: Patrick McManus <pmcmanus@mozilla.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114c713ec69970055421b98a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/pYW6COUGdKcXG3oVWo1mwNtuYiQ>
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: Wed, 12 Jul 2017 16:58:33 -0000

--001a114c713ec69970055421b98a
Content-Type: text/plain; charset="UTF-8"

hq-04 sounds good. In that case, I think we should move towards being
strict about it, though, assuming we agree.

-Ekr



On Wed, Jul 12, 2017 at 9:53 AM, Ian Swett <ianswett@google.com> wrote:

> I have a slight preference for keeping the draft number in the alpn token,
> so I'd lean towards hq-04.
>
> I'm pretty sure the Chromium implementation will support some non-IETF
> standard HTTP over QUIC based on the first implementation milestone, so
> it's not a complete lie.
>
> On Mon, Jul 10, 2017 at 1:17 PM, Patrick McManus <pmcmanus@mozilla.com>
> wrote:
>
>> In the spirit of "doing more than the first implementation requires"
>> (which is explicitly in scope by 1st implementation), I'll have my client
>> send ALPN hq-04 and my server select that if offered, but neither end will
>> fail if its peer doesn't reciprocate.
>>
>> Remember - hackathon this coming weekend. Jabber is an option!
>>
>> -P
>>
>>
>> On Sun, Jul 2, 2017 at 6:12 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>>
>>> The TLS draft implies (though I suppose one could argue) that QUIC should
>>> always negotiate ALPN. The HTTP draft specifies "hq-<version>" but we're
>>> not
>>> doing HTTP for the first implementation draft.
>>>
>>> We want to get into the habit of using ALPN, so I think we should define
>>> one.
>>> Perhaps "implementation-1"?
>>>
>>> -Ekr
>>>
>>>
>>>
>>>
>>>
>>>
>>
>

--001a114c713ec69970055421b98a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">hq-04 sounds good. In that case, I think we should move to=
wards being strict about it, though, assuming we agree.<div><br></div><div>=
-Ekr</div><div><br><div><div><br></div></div></div></div><div class=3D"gmai=
l_extra"><br><div class=3D"gmail_quote">On Wed, Jul 12, 2017 at 9:53 AM, Ia=
n Swett <span dir=3D"ltr">&lt;<a href=3D"mailto:ianswett@google.com" target=
=3D"_blank">ianswett@google.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr">I have a slight preference for keeping the d=
raft number in the alpn token, so I&#39;d lean towards hq-04.<div><br></div=
><div>I&#39;m pretty sure the Chromium implementation will support some non=
-IETF standard HTTP over QUIC based on the first implementation milestone, =
so it&#39;s not a complete lie.</div></div><div class=3D"HOEnZb"><div class=
=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, J=
ul 10, 2017 at 1:17 PM, Patrick McManus <span dir=3D"ltr">&lt;<a href=3D"ma=
ilto:pmcmanus@mozilla.com" target=3D"_blank">pmcmanus@mozilla.com</a>&gt;</=
span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div>In the=
 spirit of &quot;doing more than the first implementation requires&quot; (w=
hich is explicitly in scope by 1st implementation), I&#39;ll have my client=
 send ALPN hq-04 and my server select that if offered, but neither end will=
 fail if its peer doesn&#39;t reciprocate.</div><div><br></div><div>Remembe=
r - hackathon this coming weekend. Jabber is an option!</div><span class=3D=
"m_-2878996656681607915HOEnZb"><font color=3D"#888888"><div><br></div><div>=
-P</div><div><br></div></font></span></div><div class=3D"m_-287899665668160=
7915HOEnZb"><div class=3D"m_-2878996656681607915h5"><div class=3D"gmail_ext=
ra"><br><div class=3D"gmail_quote">On Sun, Jul 2, 2017 at 6:12 PM, Eric Res=
corla <span dir=3D"ltr">&lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_blan=
k">ekr@rtfm.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v dir=3D"ltr">The TLS draft implies (though I suppose one could argue) that=
 QUIC should<div>always negotiate ALPN. The HTTP draft specifies &quot;hq-&=
lt;version&gt;&quot; but we&#39;re not</div><div>doing HTTP for the first i=
mplementation draft.</div><div><br></div><div>We want to get into the habit=
 of using ALPN, so I think we should define one.</div><div>Perhaps &quot;im=
plementation-1&quot;?</div><div><br></div><div>-Ekr</div><div><br></div><di=
v><br></div><div><br></div><div><br></div><div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a114c713ec69970055421b98a--


From nobody Wed Jul 12 09:58:47 2017
Return-Path: <ianswett@google.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 84E22131737 for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:58:36 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 k8nUKEyc1e8i for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 09:58:35 -0700 (PDT)
Received: from mail-yb0-x22d.google.com (mail-yb0-x22d.google.com [IPv6:2607:f8b0:4002:c09::22d]) (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 2937512ECC7 for <quic@ietf.org>; Wed, 12 Jul 2017 09:58:35 -0700 (PDT)
Received: by mail-yb0-x22d.google.com with SMTP id n205so7130923yba.1 for <quic@ietf.org>; Wed, 12 Jul 2017 09:58:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ai4zjwRkDc5hyF5+cao2g5dA9DHCOJRwolcDdz/5qVM=; b=afNn+ZXFmJt/reh+HCJKvM/rsyiYgHtRcfIZTjieyvxZKCiid777+MeMyzZnIgUQeF SHbfqnh3BRusYvb9jvrJ41mSOnVzhRiWFFuWgIlCMmQhWruOE+DzeKb2FLPX/nDtbzc5 ao1eLpp10na0ePHCmWBw76k5xTMSChvIL6VT0QWRkutKw5RF7elOqOWgXEr82x01DUle rsY7skQu79vhOly8xmUti4p+5Wl2k8AM2/Q6BWgoBqeCh+E48sf/TjWhBH/goEb7HZ9W xjlzOtT06VbIudJjA40wwR9mPdi3f8hDWbRhf94DMi8uZdmqBk8/GZCe1s1cgHK/0bLp rELg==
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=ai4zjwRkDc5hyF5+cao2g5dA9DHCOJRwolcDdz/5qVM=; b=btC5GRY+YJCvcEBBxoniK75mD/F+QYotiee9S2P1P1WaL5B2q0lSg48dFV0Rbm4IPH JdE11xV2IHfZkHR95Ohr0mtzd9lbT/ts44uv4Kt5F3BNK1tiw3HoIXXYMVux57lelbci q/L3JVRp492CXChjoSWs34qENkiDwWV0fX7Uw+n0rWO68EbPIy5QtxMVPzUFJJePFzgN svFxMaDXI+7SKRoT8lBeaU5zWmxdo+xeoVR6C9uYW6xQ/fFaQ8VNNQ+wYSTfdQ70mEcp XMM9Y3PdL9UbBfszpqApLJTXvwSdOGQ/Y+hacI5MnePdcBxi2YSXYSWF7SLTLr7N/c6K 0S3A==
X-Gm-Message-State: AIVw1112CGXpnTapUy/EC48sCdzVm25m/8B8scHna2HjM45QFOGZQ1mg Ab80vOYENsJgxa09LnCJiOY1XqfoofTO
X-Received: by 10.37.48.139 with SMTP id w133mr1522439ybw.84.1499878714284; Wed, 12 Jul 2017 09:58:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Wed, 12 Jul 2017 09:58:13 -0700 (PDT)
In-Reply-To: <CABcZeBMAVSvcbtR5tGcyfi=V6nN=k9upM6dDWY1+G5sE+C7VSg@mail.gmail.com>
References: <CABcZeBMAVSvcbtR5tGcyfi=V6nN=k9upM6dDWY1+G5sE+C7VSg@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Wed, 12 Jul 2017 12:58:13 -0400
Message-ID: <CAKcm_gOUPj5+z5GM=W50PdsRf7trMB0nrcp3ENgnuSJFwF-x-w@mail.gmail.com>
Subject: Re: Version numbers for implementation drafts
To: Eric Rescorla <ekr@rtfm.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11488df6f8fed1055421b926"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/U_BM0bXoPoSRyFcROUyYcBZU71w>
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: Wed, 12 Jul 2017 16:58:36 -0000

--001a11488df6f8fed1055421b926
Content-Type: text/plain; charset="UTF-8"

05 SGTM

On Wed, Jul 12, 2017 at 12:54 PM, Eric Rescorla <ekr@rtfm.com> wrote:

> It seems like people have started looking at implementing what's in
> the editor's copy rather than strict -04, and that seems like it
> potentially
> creates an opportunity for confusion. So, how shall we handle that?
> Just call it -05 and you're at your own risk?
>
> -Ekr
>
>
>

--001a11488df6f8fed1055421b926
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">05 SGTM</div><div class=3D"gmail_extra"><br><div class=3D"=
gmail_quote">On Wed, Jul 12, 2017 at 12:54 PM, Eric Rescorla <span dir=3D"l=
tr">&lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&=
gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div>I=
t seems like people have started looking at implementing what&#39;s in</div=
><div>the editor&#39;s copy rather than strict -04, and that seems like it =
potentially</div><div>creates an opportunity for confusion. So, how shall w=
e handle that?</div><div>Just call it -05 and you&#39;re at your own risk?<=
/div><div><br></div><div>-Ekr</div><div><br></div><div><br></div></div>
</blockquote></div><br></div>

--001a11488df6f8fed1055421b926--


From nobody Wed Jul 12 10:19:03 2017
Return-Path: <pmcmanus@mozilla.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 F37D0128990 for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 10:19:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.735
X-Spam-Level: 
X-Spam-Status: No, score=-0.735 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_HELO_PASS=-0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 vRHSh6YfiQUB for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 10:18:54 -0700 (PDT)
Received: from linode64.ducksong.com (www.ducksong.com [192.155.95.102]) by ietfa.amsl.com (Postfix) with ESMTP id 9043B12785F for <quic@ietf.org>; Wed, 12 Jul 2017 10:18:54 -0700 (PDT)
Received: from mail-qt0-f178.google.com (mail-qt0-f178.google.com [209.85.216.178]) by linode64.ducksong.com (Postfix) with ESMTPSA id BD7473A0A1 for <quic@ietf.org>; Wed, 12 Jul 2017 13:18:53 -0400 (EDT)
Received: by mail-qt0-f178.google.com with SMTP id i2so18061440qta.3 for <quic@ietf.org>; Wed, 12 Jul 2017 10:18:53 -0700 (PDT)
X-Gm-Message-State: AIVw111fB+lc6z4foOFRt6Nna66X4TM4XWWFcSnRAIj1pVMMLCmt/GXl cFBoE4lLMl6oU+TAzoi5oLY10uOT7w==
X-Received: by 10.237.51.70 with SMTP id u64mr7645100qtd.211.1499879933503; Wed, 12 Jul 2017 10:18:53 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.182.17 with HTTP; Wed, 12 Jul 2017 10:18:53 -0700 (PDT)
In-Reply-To: <CAKcm_gOUPj5+z5GM=W50PdsRf7trMB0nrcp3ENgnuSJFwF-x-w@mail.gmail.com>
References: <CABcZeBMAVSvcbtR5tGcyfi=V6nN=k9upM6dDWY1+G5sE+C7VSg@mail.gmail.com> <CAKcm_gOUPj5+z5GM=W50PdsRf7trMB0nrcp3ENgnuSJFwF-x-w@mail.gmail.com>
From: Patrick McManus <pmcmanus@mozilla.com>
Date: Wed, 12 Jul 2017 13:18:53 -0400
X-Gmail-Original-Message-ID: <CAOdDvNq_OseqAM2U3aR-mQ9HoYe2FY9JNtucwGDHYFjSqMt1eA@mail.gmail.com>
Message-ID: <CAOdDvNq_OseqAM2U3aR-mQ9HoYe2FY9JNtucwGDHYFjSqMt1eA@mail.gmail.com>
Subject: Re: Version numbers for implementation drafts
To: Ian Swett <ianswett@google.com>
Cc: Eric Rescorla <ekr@rtfm.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114d6d48a46ea50554220217"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/FUmD76st5u5vJAUjWVEEj-ywWos>
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: Wed, 12 Jul 2017 17:19:02 -0000

--001a114d6d48a46ea50554220217
Content-Type: text/plain; charset="UTF-8"

we should have used 160 bit version numbers to accommodate sha-1
git-revision's of the editor's copy :)

I'm using some other random codepoint I squatted on the wiki for
experimentation when not talking about a published ID...

On Wed, Jul 12, 2017 at 12:58 PM, Ian Swett <ianswett@google.com> wrote:

> 05 SGTM
>
> On Wed, Jul 12, 2017 at 12:54 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>
>> It seems like people have started looking at implementing what's in
>> the editor's copy rather than strict -04, and that seems like it
>> potentially
>> creates an opportunity for confusion. So, how shall we handle that?
>> Just call it -05 and you're at your own risk?
>>
>> -Ekr
>>
>>
>>
>

--001a114d6d48a46ea50554220217
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>we should have used 160 bit version numbers to accomm=
odate sha-1 git-revision&#39;s of the editor&#39;s copy :)<br></div><div><b=
r></div><div>I&#39;m using some other random codepoint I squatted on the wi=
ki for experimentation when not talking about a published ID... <br></div><=
/div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Wed, Jul =
12, 2017 at 12:58 PM, Ian Swett <span dir=3D"ltr">&lt;<a href=3D"mailto:ian=
swett@google.com" target=3D"_blank">ianswett@google.com</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">05 SGTM</div><div cla=
ss=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On Wed, Jul 12, 2017 at 12:54 PM, Eric Rescorla <span dir=
=3D"ltr">&lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><=
div>It seems like people have started looking at implementing what&#39;s in=
</div><div>the editor&#39;s copy rather than strict -04, and that seems lik=
e it potentially</div><div>creates an opportunity for confusion. So, how sh=
all we handle that?</div><div>Just call it -05 and you&#39;re at your own r=
isk?</div><div><br></div><div>-Ekr</div><div><br></div><div><br></div></div=
>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a114d6d48a46ea50554220217--


From nobody Wed Jul 12 10:30:51 2017
Return-Path: <Lucas.Pardue@bbc.co.uk>
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 21E7A128BA2 for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 10:30:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level: 
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 tvM8sh4_w0aI for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 10:30:49 -0700 (PDT)
Received: from mailout0.cwwtf.bbc.co.uk (mailout0.cwwtf.bbc.co.uk [132.185.160.179]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 68B2312785F for <quic@ietf.org>; Wed, 12 Jul 2017 10:30:49 -0700 (PDT)
Received: from BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) by mailout0.cwwtf.bbc.co.uk (8.15.2/8.15.2) with ESMTP id v6CHUlq3003481; Wed, 12 Jul 2017 18:30:47 +0100 (BST)
Received: from BGB01XUD1012.national.core.bbc.co.uk ([10.161.14.10]) by BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) with mapi id 14.03.0319.002; Wed, 12 Jul 2017 18:30:46 +0100
From: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
To: Patrick McManus <pmcmanus@mozilla.com>, Ian Swett <ianswett@google.com>
CC: Eric Rescorla <ekr@rtfm.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Version numbers for implementation drafts
Thread-Topic: Version numbers for implementation drafts
Thread-Index: AQHS+y+t9fe+gHqe+UCPBmh2T4wdkaJQWPWAgAAFxoCAABQKdQ==
Date: Wed, 12 Jul 2017 17:30:46 +0000
Message-ID: <7CF7F94CB496BF4FAB1676F375F9666A37740562@bgb01xud1012>
References: <CABcZeBMAVSvcbtR5tGcyfi=V6nN=k9upM6dDWY1+G5sE+C7VSg@mail.gmail.com> <CAKcm_gOUPj5+z5GM=W50PdsRf7trMB0nrcp3ENgnuSJFwF-x-w@mail.gmail.com>, <CAOdDvNq_OseqAM2U3aR-mQ9HoYe2FY9JNtucwGDHYFjSqMt1eA@mail.gmail.com>
In-Reply-To: <CAOdDvNq_OseqAM2U3aR-mQ9HoYe2FY9JNtucwGDHYFjSqMt1eA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.19.161.212]
x-exclaimer-md-config: 1cd3ac1c-62e5-43f2-8404-6b688271c769
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-23190.007
x-tm-as-result: No--11.651200-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Wy-X9Dqv8xifgdUuxzQYhIZ8JgI>
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: Wed, 12 Jul 2017 17:30:51 -0000

What about hq-04.01-transitional?
________________________________________
From: QUIC [quic-bounces@ietf.org] on behalf of Patrick McManus [pmcmanus@m=
ozilla.com]
Sent: 12 July 2017 18:18
To: Ian Swett
Cc: Eric Rescorla; IETF QUIC WG
Subject: Re: Version numbers for implementation drafts

we should have used 160 bit version numbers to accommodate sha-1 git-revisi=
on's of the editor's copy :)

I'm using some other random codepoint I squatted on the wiki for experiment=
ation when not talking about a published ID...

On Wed, Jul 12, 2017 at 12:58 PM, Ian Swett <ianswett@google.com<mailto:ian=
swett@google.com>> wrote:
05 SGTM

On Wed, Jul 12, 2017 at 12:54 PM, Eric Rescorla <ekr@rtfm.com<mailto:ekr@rt=
fm.com>> wrote:
It seems like people have started looking at implementing what's in
the editor's copy rather than strict -04, and that seems like it potentiall=
y
creates an opportunity for confusion. So, how shall we handle that?
Just call it -05 and you're at your own risk?

-Ekr






-----------------------------
http://www.bbc.co.uk
This e-mail (and any attachments) is confidential and
may contain personal views which are not the views of the BBC unless specif=
ically stated.
If you have received it in
error, please delete it from your system.
Do not use, copy or disclose the
information in any way nor act in reliance on it and notify the sender
immediately.
Please note that the BBC monitors e-mails
sent or received.
Further communication will signify your consent to
this.
-----------------------------


From nobody Wed Jul 12 10:34:29 2017
Return-Path: <ekr@rtfm.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 0100413167A for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 10:34:28 -0700 (PDT)
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=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, 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=rtfm-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 JMUkNalz539O for <quic@ietfa.amsl.com>; Wed, 12 Jul 2017 10:34:26 -0700 (PDT)
Received: from mail-yw0-x22b.google.com (mail-yw0-x22b.google.com [IPv6:2607:f8b0:4002:c05::22b]) (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 8B6A4127077 for <quic@ietf.org>; Wed, 12 Jul 2017 10:34:26 -0700 (PDT)
Received: by mail-yw0-x22b.google.com with SMTP id l21so12843548ywb.1 for <quic@ietf.org>; Wed, 12 Jul 2017 10:34:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=RhA2agqXQFIOdTE0c+2SnYORT3Ufy1x/THoIsoCA+3Y=; b=w0IqnluIMzHJ4r6xgzAYNI9TjhsKBod8REOVlxqC420ZHeuA0xUeIWGPvMVkEAs0w4 vj9MHwOxtD+EZ9NVSejkl90cABcE6V2mm95Y7/iPxkBVRUViH5f+xHqD6IIVF2V9TjGG /C2rvpYstjXjs/MeZR3amEEYNzoG09mYIlC7aWtpFyBuFFnqGM3P08wcNWf/iD8+uBZ1 J1/H1kSGjR3j8qLxH8QwkQxbpGfh5IQ+aMiF1wLSgCGwsufpe7/iH38RImYdQjxb5LAA q7/214O8X8lTNPLzBXxOapZCXuZ+/B8hiizWfuc+plG7GkfAQLHcdLV83RXMfK8n5u/+ StrQ==
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=RhA2agqXQFIOdTE0c+2SnYORT3Ufy1x/THoIsoCA+3Y=; b=POMIMyIdWajn6weApuqV7LeROJVAMbG/gSzCV0F78y0a+j4+xpTTlvfU3vxUdU6HXw ZgthcFDoBjleoyT9tq5CyHoI6BunqWvhsZwILiFaRg3lLOgOM9BmivxIIwnXSppdmUem vY+LDD4VgVNs3axses9GOKeSEUVlUUYOIcnsrRG3O7HWpSik/moTZKRgo2yJyN0wnG8L lYwO9bzxk/7Et/PPQ5gGHYtLLWwg77OuRKbUxP+aswJpQqb0hxP7QRDVkEP2z9V7c8w7 ejbp2bxU4TxGLW96yZviJFFaNXbdHuVMfGuPX56NkXv/Gja+fc/GMuaz1p2ozDIUHRdD Ch5w==
X-Gm-Message-State: AIVw113128urK+Ybv8Ca2up4QxmNF4C2NxP9EFVJBkcNeztCSEdTTdac S3PoOLPp6Phc5k69b1fqD+pzdxORR4sB
X-Received: by 10.129.177.132 with SMTP id p126mr3089961ywh.45.1499880865719;  Wed, 12 Jul 2017 10:34:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.215.9 with HTTP; Wed, 12 Jul 2017 10:33:45 -0700 (PDT)
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A37740562@bgb01xud1012>
References: <CABcZeBMAVSvcbtR5tGcyfi=V6nN=k9upM6dDWY1+G5sE+C7VSg@mail.gmail.com> <CAKcm_gOUPj5+z5GM=W50PdsRf7trMB0nrcp3ENgnuSJFwF-x-w@mail.gmail.com> <CAOdDvNq_OseqAM2U3aR-mQ9HoYe2FY9JNtucwGDHYFjSqMt1eA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37740562@bgb01xud1012>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 12 Jul 2017 10:33:45 -0700
Message-ID: <CABcZeBOWyo52JdJKAi0R=JKpb+7GAH2JyHTYuWfKq-mpkx7GCw@mail.gmail.com>
Subject: Re: Version numbers for implementation drafts
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
Cc: Patrick McManus <pmcmanus@mozilla.com>, Ian Swett <ianswett@google.com>,  IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c146264350bff0554223a81"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/De0SUHH8EhaurBjb8E-_P3Zn684>
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: Wed, 12 Jul 2017 17:34:28 -0000

--94eb2c146264350bff0554223a81
Content-Type: text/plain; charset="UTF-8"

On Wed, Jul 12, 2017 at 10:30 AM, Lucas Pardue <Lucas.Pardue@bbc.co.uk>
wrote:

> What about hq-04.01-transitional?
> ____________________________


This is about the QUIC version #, which is just an integer. The other
thread is about ALPN :)

-Ekr

> ___________
> From: QUIC [quic-bounces@ietf.org] on behalf of Patrick McManus [
> pmcmanus@mozilla.com]
> Sent: 12 July 2017 18:18
> To: Ian Swett
> Cc: Eric Rescorla; IETF QUIC WG
> Subject: Re: Version numbers for implementation drafts
>
> we should have used 160 bit version numbers to accommodate sha-1
> git-revision's of the editor's copy :)
>
> I'm using some other random codepoint I squatted on the wiki for
> experimentation when not talking about a published ID...
>
> On Wed, Jul 12, 2017 at 12:58 PM, Ian Swett <ianswett@google.com<mailto:ia
> nswett@google.com>> wrote:
> 05 SGTM
>
> On Wed, Jul 12, 2017 at 12:54 PM, Eric Rescorla <ekr@rtfm.com<mailto:
> ekr@rtfm.com>> wrote:
> It seems like people have started looking at implementing what's in
> the editor's copy rather than strict -04, and that seems like it
> potentially
> creates an opportunity for confusion. So, how shall we handle that?
> Just call it -05 and you're at your own risk?
>
> -Ekr
>
>
>
>
>
>
> -----------------------------
> http://www.bbc.co.uk
> This e-mail (and any attachments) is confidential and
> may contain personal views which are not the views of the BBC unless
> specifically stated.
> If you have received it in
> error, please delete it from your system.
> Do not use, copy or disclose the
> information in any way nor act in reliance on it and notify the sender
> immediately.
> Please note that the BBC monitors e-mails
> sent or received.
> Further communication will signify your consent to
> this.
> -----------------------------
>

--94eb2c146264350bff0554223a81
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Jul 12, 2017 at 10:30 AM, Lucas Pardue <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:Lucas.Pardue@bbc.co.uk" target=3D"_blank">Lucas.Pardue@bbc.=
co.uk</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What about hq=
-04.01-transitional?<br>
____________________________</blockquote><div><br></div><div>This is about =
the QUIC version #, which is just an integer. The other thread is about ALP=
N :)</div><div><br></div><div>-Ekr=C2=A0</div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
">___________<br>
From: QUIC [<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">quic=
-bounces@ietf.org</a>] on behalf of Patrick McManus [<a href=3D"mailto:pmcm=
anus@mozilla.com" target=3D"_blank">pmcmanus@mozilla.com</a>]<br>
Sent: 12 July 2017 18:18<br>
To: Ian Swett<br>
Cc: Eric Rescorla; IETF QUIC WG<br>
Subject: Re: Version numbers for implementation drafts<br>
<span><br>
we should have used 160 bit version numbers to accommodate sha-1 git-revisi=
on&#39;s of the editor&#39;s copy :)<br>
<br>
I&#39;m using some other random codepoint I squatted on the wiki for experi=
mentation when not talking about a published ID...<br>
<br>
</span><span>On Wed, Jul 12, 2017 at 12:58 PM, Ian Swett &lt;<a href=3D"mai=
lto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>&lt;mailt=
o:<a href=3D"mailto:ianswett@google.com" target=3D"_blank">ia<wbr>nswett@go=
ogle.com</a>&gt;&gt; wrote:<br>
05 SGTM<br>
<br>
</span><span>On Wed, Jul 12, 2017 at 12:54 PM, Eric Rescorla &lt;<a href=3D=
"mailto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&lt;mailto:<a href=
=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.<wbr>com</a>&gt;&gt; wr=
ote:<br>
It seems like people have started looking at implementing what&#39;s in<br>
the editor&#39;s copy rather than strict -04, and that seems like it potent=
ially<br>
creates an opportunity for confusion. So, how shall we handle that?<br>
Just call it -05 and you&#39;re at your own risk?<br>
<br>
-Ekr<br>
<br>
<br>
<br>
<br>
<br>
<br>
</span>-----------------------------<br>
<a href=3D"http://www.bbc.co.uk" rel=3D"noreferrer" target=3D"_blank">http:=
//www.bbc.co.uk</a><br>
This e-mail (and any attachments) is confidential and<br>
may contain personal views which are not the views of the BBC unless specif=
ically stated.<br>
If you have received it in<br>
error, please delete it from your system.<br>
Do not use, copy or disclose the<br>
information in any way nor act in reliance on it and notify the sender<br>
immediately.<br>
Please note that the BBC monitors e-mails<br>
sent or received.<br>
Further communication will signify your consent to<br>
this.<br>
-----------------------------<br>
</blockquote></div><br></div></div>

--94eb2c146264350bff0554223a81--


From nobody Thu Jul 13 12:45:46 2017
Return-Path: <pmcmanus@mozilla.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 103C8131751 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 12:45:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.734
X-Spam-Level: 
X-Spam-Status: No, score=-0.734 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_HELO_PASS=-0.001, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
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 1ZXXV6kHJd4n for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 12:45:41 -0700 (PDT)
Received: from linode64.ducksong.com (www.ducksong.com [192.155.95.102]) by ietfa.amsl.com (Postfix) with ESMTP id CAB8912EB96 for <quic@ietf.org>; Thu, 13 Jul 2017 12:45:41 -0700 (PDT)
Received: from mail-qk0-f170.google.com (mail-qk0-f170.google.com [209.85.220.170]) by linode64.ducksong.com (Postfix) with ESMTPSA id 5B4D23A019 for <quic@ietf.org>; Thu, 13 Jul 2017 15:45:40 -0400 (EDT)
Received: by mail-qk0-f170.google.com with SMTP id 16so59558749qkg.2 for <quic@ietf.org>; Thu, 13 Jul 2017 12:45:40 -0700 (PDT)
X-Gm-Message-State: AIVw112Edyhr4ekvT8oIXyEV0TzXlC5GMNNgRHd/t/6/PNXcoHsejEIq XEklpo+6ApHUfg5fdRiuTX5LbaKwOg==
X-Received: by 10.233.222.69 with SMTP id s66mr6919857qkf.30.1499975140145; Thu, 13 Jul 2017 12:45:40 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.182.17 with HTTP; Thu, 13 Jul 2017 12:45:39 -0700 (PDT)
From: Patrick McManus <pmcmanus@mozilla.com>
Date: Thu, 13 Jul 2017 15:45:39 -0400
X-Gmail-Original-Message-ID: <CAOdDvNoei=OfrTCqGk15BUVqMswPv7oTAtnkGtqa3pGYGO6UOg@mail.gmail.com>
Message-ID: <CAOdDvNoei=OfrTCqGk15BUVqMswPv7oTAtnkGtqa3pGYGO6UOg@mail.gmail.com>
Subject: quicdev slack, hackathon, etc..
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c0438e86683ff0554382d14"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ZGisofD1kujpAW4yR6pPHpZsbQE>
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: Thu, 13 Jul 2017 19:45:44 -0000

--94eb2c0438e86683ff0554382d14
Content-Type: text/plain; charset="UTF-8"

You knew it was inevtiable - the slack for collaborating on ietf quic
interop is here: https://quicdev.slack.com

Afaict for membership slack either allows whitelisting of domains (not
practical) or invites from existing members. If you would like to join just
send a member (e.g. me!) a note. I've bootstrapped the process at least a
little bit.

For the hackathon this will likely be a more useful forum than jabber and
hackathon etiquette explicitly lets individual projects organize in
whatever way works best for them.

See you all soon!

--94eb2c0438e86683ff0554382d14
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>You knew it was inevtiable - the slack for collaborat=
ing on ietf quic interop is here: <a href=3D"https://quicdev.slack.com" tar=
get=3D"_blank">https://quicdev.slack.com</a><br></div><div><br></div><div>A=
faict for membership slack either allows whitelisting of domains (not pract=
ical) or invites from existing members. If you would like to join just send=
 a member (e.g. me!) a note. I&#39;ve bootstrapped the process at least a l=
ittle bit.<br></div><div><br></div><div>For the hackathon this will likely =
be a more useful forum than jabber and hackathon etiquette explicitly lets =
individual projects organize in whatever way works best for them.</div><div=
><br></div><div>See you all soon!</div><div><br></div><div><br></div><div><=
br></div><div><br></div></div>

--94eb2c0438e86683ff0554382d14--


From nobody Thu Jul 13 16:46:12 2017
Return-Path: <martin.h.duke@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 5E81512EC0C for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 16:46:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 O_Ssp4tJgYOF for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 16:46:08 -0700 (PDT)
Received: from mail-wr0-x22b.google.com (mail-wr0-x22b.google.com [IPv6:2a00:1450:400c:c0c::22b]) (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 E8DEB129A97 for <quic@ietf.org>; Thu, 13 Jul 2017 16:46:07 -0700 (PDT)
Received: by mail-wr0-x22b.google.com with SMTP id k67so59853653wrc.2 for <quic@ietf.org>; Thu, 13 Jul 2017 16:46:07 -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=Xh6o9XE1wDOZILaCbO+bYGPcEnjc/9xEqjZfwbnh1Os=; b=AxVvNS/xOcaeRT7Ih0tDLiJosU+6XAnfyoJISj0y9MqGNBayB4paEts4UR8u4lB51T 2gHu9GOnTeiWVgtH7nMsnaKoeMcf2xkWu4tOpWf7QeviEWyFhsJ3woSGOz4TRz0Fy+lk tVgzYUBZxvcFVHRGEcW/ax0M8xFc5nsc0EO9eL+NbmGnq7wHfju351PbTLlRUBGVMsA5 8/Gvae2Sr+yI0UzoHtdd9/osdIflzDM7vAMpy4k7PN+p4NncOzBY+A/AeUqM6wzaGbsZ ogSqdXbdxli8yioeS1H1hzIMIOLYaVxmZy6qlIUIbEYlda0/NOFEl1WrqSY9ZeUm+GIE KrqA==
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=Xh6o9XE1wDOZILaCbO+bYGPcEnjc/9xEqjZfwbnh1Os=; b=uIionChNFnQJbz6sDmbEde/oW0l9OsckXQbGBRbgnc/DSmirrUvHKjPFS4HNhrcSVK CRcDpvgKbTApsb31ilEj0GUeFXLCnZz0wvP9UzfE58DdJj8/YZrv0SnTODp/vrLvAicJ r4MGgKegLnVylbWculV2rVQ+swB4Snocg13nBVGVpaPCaxAFGzVt1EnBCb+tUS+zUEnc 9fyRgMsN2ZxRz8D40jHO47CTBBsyR2h9E/yQ+vHp7SLMU6cST0ar7Y5fKg7471kU2UbY 31VY3z6TjG0IDm9HQZWgEOoqGhXNeM1Wd9QUcyPMSv41iJDW98Bn3gX8dkSsHr59SBBp U5jA==
X-Gm-Message-State: AIVw111DDVsZp036OYLnAoZLd/71q9bY98V6h183HpX2ZltxB44/Ja0t rdgBNFfegWfxdTCx5Sm0+y82CpDqtA==
X-Received: by 10.223.165.10 with SMTP id i10mr2869314wrb.59.1499989566412; Thu, 13 Jul 2017 16:46:06 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Thu, 13 Jul 2017 16:46:05 -0700 (PDT)
In-Reply-To: <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 13 Jul 2017 16:46:05 -0700
Message-ID: <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Ian Swett <ianswett@google.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="f403045f165845dff005543b89b4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/d-E1_5ixBafHn8ATzenWz8aFIjg>
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: Thu, 13 Jul 2017 23:46:10 -0000

--f403045f165845dff005543b89b4
Content-Type: text/plain; charset="UTF-8"

Alright, I updated the second implementation draft significantly.

https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft

There are now two strategies: "Lock down the wire image" and "do what we
need to allow useful performance testing". I much prefer the former but it
is worth discussing, since people appear to be interested in both.

It's also clear (at least to me) that we need to do basic stream life-cycle
stuff in either case, so that has moved into the "must include" category.

Martin

On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com> wrote:

> Agreed, performance analysis is going to be useless in the absence of loss
> recovery and congestion control.  Presumably anyone deploying this at scale
> would implement the recovery draft in a relatively complete manner, but
> that doesn't mean everyone has to do it.
>
> But there's nothing interesting to measure with no application.
>
> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>> I'm not sure how "performance analysis" is going to function in the
>> absence of loss recovery or congestion control. An alternate approach to
>> implementations is to tackle the big performance drivers first, presumably
>> loss recovery, congestion control, and streaming to prevent HOL blocking.
>> However, this would run directly opposite to Jana's suggestion to lock down
>> the wire image to prevent ossification.
>>
>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com> wrote:
>>
>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>> >
>>> >
>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
>>> wrote:
>>> >>
>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>> >> > I've been thinking about this, and I'm starting to think that we
>>> should
>>> >> > cover more ground in the second implementation draft.
>>> >> >
>>> >> > I'm hearing about increasing deployments of gQUIC, largely due to
>>> market
>>> >> > pressures. The availability of the Chromium implementation makes it
>>> >> > particularly easy for folks to deploy QUIC with that code. I think
>>> we
>>> >> > need
>>> >> > to move with some urgency, even if we don't change everything about
>>> QUIC
>>> >> > to
>>> >> > make it perfect, so that we can start getting IETF QUIC deployments
>>> out
>>> >> > there. Specifically, I think we should:
>>> >> > 1. work out the wire-visible invariants and finalize all of those
>>> for
>>> >> > the
>>> >> > second impl draft. We know that there are some middleboxes that
>>> already
>>> >> > have
>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>> IETF-QUIC so
>>> >> > we
>>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>>> take,
>>> >> > the
>>> >> > more widespread gQUIC ossification will be.
>>> >> > 2. allow impls to make serious progress towards a basic HTTP mapping
>>> >> > over
>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps
>>> test
>>> >> > a
>>> >> > basic HTTP request-response over QUIC. We can still punt
>>> >> > performance-oriented things such as full loss recovery and
>>> congestion
>>> >> > control to later. This forces us to try and finalize the HTTP
>>> mapping
>>> >> > details, which is a good thing, IMO.
>>> >>
>>> >> I agree with Jana.
>>> >>
>>> >> If we can have some basic HTTP mapping (it can be as basic as using
>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>>> >> version of QUIC performs well in the field, by comparing its
>>> >> performance to HTTP over TCP.
>>> >
>>> >
>>> > Interesting idea. One challenge with performance analysis is that
>>> it'll be a
>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>>> (without
>>> > header compression) against HTTP/2 (with header compression) or
>>> HTTP/1.1
>>> > (over multiple connections).
>>>
>>> Agreed.
>>>
>>> Though I might argue that collecting metrics of a QUIC implementation
>>> without header compression could be useful. We can use that as a
>>> baseline when we formalize QPACK / QCRAM.
>>>
>>> --
>>> Kazuho Oku
>>>
>>
>>
>

--f403045f165845dff005543b89b4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Alright, I updated the second implementation draft signifi=
cantly.<div><br></div><div><a href=3D"https://github.com/quicwg/base-drafts=
/wiki/Second-Implementation-Draft">https://github.com/quicwg/base-drafts/wi=
ki/Second-Implementation-Draft</a><br></div><div><br></div><div>There are n=
ow two strategies: &quot;Lock down the wire image&quot; and &quot;do what w=
e need to allow useful performance testing&quot;. I much prefer the former =
but it is worth discussing, since people appear to be interested in both.</=
div><div><br></div><div>It&#39;s also clear (at least to me) that we need t=
o do basic stream life-cycle stuff in either case, so that has moved into t=
he &quot;must include&quot; category.</div><div><br></div><div>Martin</div>=
</div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Jul=
 10, 2017 at 5:06 PM, Ian Swett <span dir=3D"ltr">&lt;<a href=3D"mailto:ian=
swett@google.com" target=3D"_blank">ianswett@google.com</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Agreed, performance a=
nalysis is going to be useless in the absence of loss recovery and congesti=
on control.=C2=A0 Presumably anyone deploying this at scale would implement=
 the recovery draft in a relatively complete manner, but that doesn&#39;t m=
ean everyone has to do it.<div><br></div><div>But there&#39;s nothing inter=
esting to measure with no application.</div></div><div class=3D"HOEnZb"><di=
v class=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On=
 Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <span dir=3D"ltr">&lt;<a href=
=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.c=
om</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"=
>I&#39;m not sure how &quot;performance analysis&quot; is going to function=
 in the absence of loss recovery or congestion control. An alternate approa=
ch to implementations is to tackle the big performance drivers first, presu=
mably loss recovery, congestion control, and streaming to prevent HOL block=
ing. However, this would run directly opposite to Jana&#39;s suggestion to =
lock down the wire image to prevent ossification.</div><div class=3D"m_6760=
645630289411464HOEnZb"><div class=3D"m_6760645630289411464h5"><div class=3D=
"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Jul 10, 2017 at 12:32 =
AM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"mailto:kazuhooku@gmail.com"=
 target=3D"_blank">kazuhooku@gmail.com</a>&gt;</span> wrote:<br><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex"><div class=3D"m_6760645630289411464m_395040588780772733=
2HOEnZb"><div class=3D"m_6760645630289411464m_3950405887807727332h5">2017-0=
7-10 12:28 GMT+09:00 Ryan Hamilton &lt;<a href=3D"mailto:rch@google.com" ta=
rget=3D"_blank">rch@google.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com" target=3D"_blank">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"m_6760645630289411464m_3950405887807727332HOEnZb"><font colo=
r=3D"#888888"><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--f403045f165845dff005543b89b4--


From nobody Thu Jul 13 17:29:16 2017
Return-Path: <ianswett@google.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 01997126B72 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:29:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.02
X-Spam-Level: 
X-Spam-Status: No, score=-1.02 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_FACE_BAD=0.981, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 KVrhrtJlIrTN for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:29:10 -0700 (PDT)
Received: from mail-yb0-x22f.google.com (mail-yb0-x22f.google.com [IPv6:2607:f8b0:4002:c09::22f]) (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 1983C131943 for <quic@ietf.org>; Thu, 13 Jul 2017 17:28:33 -0700 (PDT)
Received: by mail-yb0-x22f.google.com with SMTP id n205so25821714yba.1 for <quic@ietf.org>; Thu, 13 Jul 2017 17:28:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=2Fx74/5Ypgm8bSbW2gPifw9bF5so8fxkw2z1XTs/pmg=; b=FX33KmJuKFQKKvks1Af/zqh5GEJqCYCco/w39T2m56iMjjKIQpWN4UlkZnouKDvRyg 8BvWKBJKuiYIJDysgvXIeTnAA6G21mYq4SdbRFnwJ09A9CpIERoIE0risX3c2cLuDde5 I78k6GRI/OKi3ryI1uXx6LCtwiik+an6lGb4Ag7tR/lA3ND9bRL3IKc39dy5SB4gDjRF /x8vhrlJ4WKNcbt34tTQxE9mn5gjQQdUZW3++xeSltD0O2D4/bolFuNe1SwSafG1GIQu Jnb/cdv3uXHuTe6xk3Zz1o2IWAh/36kyT/Tcx82XqTsr8dIjZmhWaAdSwvtVZr83i4l9 Efcw==
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=2Fx74/5Ypgm8bSbW2gPifw9bF5so8fxkw2z1XTs/pmg=; b=aa+MbWvWjOW7PP2enJdNrCBSGPTxQTskaL7fnx7LFOTMWx5JQe08pu5IKViB0S8E/4 2jmlSHYSN/KJ7sxr3O02AoJASJCYXvH0LXjMfu+BOqjTNfIxFFkai5Pt2uymx0Hf9G+Y 1JPGZJzwhK8MTZ+laR14eohS9r/+ypUe2Zvw9t0JmrPZlCs2Qt2yGrlWRQn6iYLGiEAi +PRQyvRE74GigT5I0mk24ahmiM1Lm7ZZ19XXZPP1nN9GwDgFhqeGb2HZeQeGVQg9yt9K RV/CjOSuW1+6qKWXZxiZEmM1r9hs7qiETz21jqYPp+N4Zwbxx1UbsV/9TOISA7Z6OWoD bSdA==
X-Gm-Message-State: AIVw111BNx9qZ8Qk27f2pQ6Ii2MuvtvClev7kYjvXlUQspzgVtfSMWkb 6lWDI5GqlzKgompSv4I2r3mw6U3T+TH3
X-Received: by 10.37.60.129 with SMTP id j123mr5067655yba.226.1499992112106; Thu, 13 Jul 2017 17:28:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Thu, 13 Jul 2017 17:28:11 -0700 (PDT)
In-Reply-To: <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Thu, 13 Jul 2017 20:28:11 -0400
Message-ID: <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a114be9a2028e4405543c2117"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/6eJA7DQ9k1PeheAETlMQuVhPVUc>
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: Fri, 14 Jul 2017 00:29:13 -0000

--001a114be9a2028e4405543c2117
Content-Type: text/plain; charset="UTF-8"

Thanks for the update.  I would suggest a third potential option, which is
a mix of what you have with a small clarification(in bold):


   -

   Further revisions to mechanisms in the First Implementation Draft (e.g.
   changes to the public header format, connection close).
   -

   Transport Parameter Exchange. At the very least, the four parameters
   specified as MUST in the draft.
   -

   Address validation and HelloRetryRequest
   -

   An HTTP/2 application to require multiple streams *(with stateless HPACK
   compression, no QPACK, QCRAM, etc) and no server push*.


Any implementations that deploy at any scale must also do:


   -

   Loss Recovery beyond the exising 1-RTO retransmissions. (I believe this
   includes a number of concepts that are extensively tested in TCP and has
   low interoperability concerns).
   -

   Congestion Control


The reasoning being that both stateless reset and 0RTT are a fair bit of
work to get right based on my experience, and are not critical to having a
useful QUIC application.

On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
wrote:

> Alright, I updated the second implementation draft significantly.
>
> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>
> There are now two strategies: "Lock down the wire image" and "do what we
> need to allow useful performance testing". I much prefer the former but it
> is worth discussing, since people appear to be interested in both.
>
> It's also clear (at least to me) that we need to do basic stream
> life-cycle stuff in either case, so that has moved into the "must include"
> category.
>
> Martin
>
> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com> wrote:
>
>> Agreed, performance analysis is going to be useless in the absence of
>> loss recovery and congestion control.  Presumably anyone deploying this at
>> scale would implement the recovery draft in a relatively complete manner,
>> but that doesn't mean everyone has to do it.
>>
>> But there's nothing interesting to measure with no application.
>>
>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
>> wrote:
>>
>>> I'm not sure how "performance analysis" is going to function in the
>>> absence of loss recovery or congestion control. An alternate approach to
>>> implementations is to tackle the big performance drivers first, presumably
>>> loss recovery, congestion control, and streaming to prevent HOL blocking.
>>> However, this would run directly opposite to Jana's suggestion to lock down
>>> the wire image to prevent ossification.
>>>
>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>>> wrote:
>>>
>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>>> >
>>>> >
>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
>>>> wrote:
>>>> >>
>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>>> >> > I've been thinking about this, and I'm starting to think that we
>>>> should
>>>> >> > cover more ground in the second implementation draft.
>>>> >> >
>>>> >> > I'm hearing about increasing deployments of gQUIC, largely due to
>>>> market
>>>> >> > pressures. The availability of the Chromium implementation makes it
>>>> >> > particularly easy for folks to deploy QUIC with that code. I think
>>>> we
>>>> >> > need
>>>> >> > to move with some urgency, even if we don't change everything
>>>> about QUIC
>>>> >> > to
>>>> >> > make it perfect, so that we can start getting IETF QUIC
>>>> deployments out
>>>> >> > there. Specifically, I think we should:
>>>> >> > 1. work out the wire-visible invariants and finalize all of those
>>>> for
>>>> >> > the
>>>> >> > second impl draft. We know that there are some middleboxes that
>>>> already
>>>> >> > have
>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>>> IETF-QUIC so
>>>> >> > we
>>>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>>>> take,
>>>> >> > the
>>>> >> > more widespread gQUIC ossification will be.
>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>>>> mapping
>>>> >> > over
>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps
>>>> test
>>>> >> > a
>>>> >> > basic HTTP request-response over QUIC. We can still punt
>>>> >> > performance-oriented things such as full loss recovery and
>>>> congestion
>>>> >> > control to later. This forces us to try and finalize the HTTP
>>>> mapping
>>>> >> > details, which is a good thing, IMO.
>>>> >>
>>>> >> I agree with Jana.
>>>> >>
>>>> >> If we can have some basic HTTP mapping (it can be as basic as using
>>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>>>> >> version of QUIC performs well in the field, by comparing its
>>>> >> performance to HTTP over TCP.
>>>> >
>>>> >
>>>> > Interesting idea. One challenge with performance analysis is that
>>>> it'll be a
>>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>>>> (without
>>>> > header compression) against HTTP/2 (with header compression) or
>>>> HTTP/1.1
>>>> > (over multiple connections).
>>>>
>>>> Agreed.
>>>>
>>>> Though I might argue that collecting metrics of a QUIC implementation
>>>> without header compression could be useful. We can use that as a
>>>> baseline when we formalize QPACK / QCRAM.
>>>>
>>>> --
>>>> Kazuho Oku
>>>>
>>>
>>>
>>
>

--001a114be9a2028e4405543c2117
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks for the update.=C2=A0 I would suggest a third poten=
tial option, which is a mix of what you have with a small clarification(in =
bold):<div><br></div><div><ul style=3D"box-sizing:border-box;padding-left:2=
em;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple=
-system,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;App=
le Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;=
;font-size:16px"><li style=3D"box-sizing:border-box"><p style=3D"box-sizing=
:border-box;margin-top:16px;margin-bottom:16px">Further revisions to mechan=
isms in the First Implementation Draft (e.g. changes to the public header f=
ormat, connection close).</p></li><li style=3D"box-sizing:border-box;margin=
-top:0.25em"><p style=3D"box-sizing:border-box;margin-top:16px;margin-botto=
m:16px">Transport Parameter Exchange. At the very least, the four parameter=
s specified as MUST in the draft.</p></li><li style=3D"box-sizing:border-bo=
x;margin-top:0.25em"><p style=3D"box-sizing:border-box;margin-top:16px;marg=
in-bottom:16px">Address validation and HelloRetryRequest</p></li><li style=
=3D"box-sizing:border-box;margin-top:0.25em"><p style=3D"box-sizing:border-=
box;margin-top:16px;margin-bottom:16px">An HTTP/2 application to require mu=
ltiple streams <b>(with stateless HPACK compression, no QPACK, QCRAM, etc) =
and no server push</b>.<br></p></li></ul><br>Any implementations that deplo=
y at any scale must also do:</div><div><font color=3D"#24292e" face=3D"-app=
le-system, system-ui, Segoe UI, Helvetica, Arial, sans-serif, Apple Color E=
moji, Segoe UI Emoji, Segoe UI Symbol"><span style=3D"font-size:16px"><br><=
/span></font></div><div><ul style=3D"box-sizing:border-box;padding-left:2em=
;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-s=
ystem,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple=
 Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;f=
ont-size:16px"><li style=3D"box-sizing:border-box;margin-top:0.25em"><p sty=
le=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">Loss Recove=
ry beyond the exising 1-RTO retransmissions. (I believe this includes a num=
ber of concepts that are extensively tested in TCP and has low interoperabi=
lity concerns).</p></li><li style=3D"box-sizing:border-box;margin-top:0.25e=
m"><p style=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">Co=
ngestion Control</p></li></ul><div><font color=3D"#24292e" face=3D"-apple-s=
ystem, system-ui, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji=
, Segoe UI Emoji, Segoe UI Symbol"><span style=3D"font-size:16px"><br></spa=
n></font></div></div>The reasoning being that both stateless reset and 0RTT=
 are a fair bit of work to get right based on my experience, and are not cr=
itical to having a useful QUIC application. =C2=A0</div><div class=3D"gmail=
_extra"><br><div class=3D"gmail_quote">On Thu, Jul 13, 2017 at 7:46 PM, Mar=
tin Duke <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" t=
arget=3D"_blank">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex"><div dir=3D"ltr">Alright, I updated the second implem=
entation draft significantly.<div><br></div><div><a href=3D"https://github.=
com/quicwg/base-drafts/wiki/Second-Implementation-Draft" target=3D"_blank">=
https://github.com/quicwg/<wbr>base-drafts/wiki/Second-<wbr>Implementation-=
Draft</a><br></div><div><br></div><div>There are now two strategies: &quot;=
Lock down the wire image&quot; and &quot;do what we need to allow useful pe=
rformance testing&quot;. I much prefer the former but it is worth discussin=
g, since people appear to be interested in both.</div><div><br></div><div>I=
t&#39;s also clear (at least to me) that we need to do basic stream life-cy=
cle stuff in either case, so that has moved into the &quot;must include&quo=
t; category.</div><span class=3D"HOEnZb"><font color=3D"#888888"><div><br><=
/div><div>Martin</div></font></span></div><div class=3D"HOEnZb"><div class=
=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, J=
ul 10, 2017 at 5:06 PM, Ian Swett <span dir=3D"ltr">&lt;<a href=3D"mailto:i=
answett@google.com" target=3D"_blank">ianswett@google.com</a>&gt;</span> wr=
ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Agreed, performance=
 analysis is going to be useless in the absence of loss recovery and conges=
tion control.=C2=A0 Presumably anyone deploying this at scale would impleme=
nt the recovery draft in a relatively complete manner, but that doesn&#39;t=
 mean everyone has to do it.<div><br></div><div>But there&#39;s nothing int=
eresting to measure with no application.</div></div><div class=3D"m_2058533=
480902030982HOEnZb"><div class=3D"m_2058533480902030982h5"><div class=3D"gm=
ail_extra"><br><div class=3D"gmail_quote">On Mon, Jul 10, 2017 at 12:55 PM,=
 Martin Duke <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.co=
m" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div dir=3D"ltr">I&#39;m not sure how &quot;perfo=
rmance analysis&quot; is going to function in the absence of loss recovery =
or congestion control. An alternate approach to implementations is to tackl=
e the big performance drivers first, presumably loss recovery, congestion c=
ontrol, and streaming to prevent HOL blocking. However, this would run dire=
ctly opposite to Jana&#39;s suggestion to lock down the wire image to preve=
nt ossification.</div><div class=3D"m_2058533480902030982m_6760645630289411=
464HOEnZb"><div class=3D"m_2058533480902030982m_6760645630289411464h5"><div=
 class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Jul 10, 2017 =
at 12:32 AM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"mailto:kazuhooku@g=
mail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt;</span> wrote:<br><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex"><div class=3D"m_2058533480902030982m_676064563=
0289411464m_3950405887807727332HOEnZb"><div class=3D"m_2058533480902030982m=
_6760645630289411464m_3950405887807727332h5">2017-07-10 12:28 GMT+09:00 Rya=
n Hamilton &lt;<a href=3D"mailto:rch@google.com" target=3D"_blank">rch@goog=
le.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com" target=3D"_blank">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"m_2058533480902030982m_6760645630289411464m_3950405887807727=
332HOEnZb"><font color=3D"#888888"><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a114be9a2028e4405543c2117--


From nobody Thu Jul 13 17:42:28 2017
Return-Path: <martin.h.duke@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 CA3D7126B72 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:42:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.718
X-Spam-Level: 
X-Spam-Status: No, score=-1.718 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_FONT_FACE_BAD=0.981, 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 jeu2V86BwGF6 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:42:24 -0700 (PDT)
Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (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 27664127866 for <quic@ietf.org>; Thu, 13 Jul 2017 17:42:23 -0700 (PDT)
Received: by mail-wm0-x22b.google.com with SMTP id i127so7965602wma.0 for <quic@ietf.org>; Thu, 13 Jul 2017 17:42:23 -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=VY2EMJbHfFsfvUzs8XZ61ctgzpibBokZLUR+skhgxMI=; b=PPTrR/OXp/Mp3a5lVkqoFC31SMw8GOQ6W9xD13083x01oWu5dwFOqEU8DeuRB+JBH5 3kYUpOswQr/izKRnGo41uLNuibcLKxvJXQPZWJN4OaF+/n1tlX8UItajdZvU03VwvUk0 APcidVKZZpbsmUKgoXJKBDSFObXgXfezJ2jOLvB1I5ofGpnKyuoIeAynqsFBx3rzK7al kHKXen9stytQwEcJ/qUjDv9r1wvGlr2PRwwPv3xRYR6U4/OHKE5ZpsGOtl+Cw80XB0jF EB1ZnEj+V3ofWSqyfILW+1hgo/Kbili99R0IMDcZVsbeSUwvlsfUXAhRqUgKnNCRyK8P 3zQw==
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=VY2EMJbHfFsfvUzs8XZ61ctgzpibBokZLUR+skhgxMI=; b=BjzAC6XoaGCoIKQqEhOBpeoOWv4WDW0zReEPT4QgaECWG13GoqcupnoVvdpv4RKysD aQHOHZHUH8ZWAAylXlhUqsJTkpjvLmrn9okLuJW32x51jUh1hb2pbB+PBw8Epra0yFRA wAMb3ebuK4F1b9j0nzRjJ79NbknUlnB5KeA4Qhn9Uu/HikV7OVIT8+poq+x0SIailyE9 Zu3g9KgFzzc62cZ++krPlL0YBuRprgsKUv62GvXsxAPKHUs4drxx7a4PuJLwIg/cNoDG uaddM/z5lbBlwsxgmRscRt8Ik6wPXDIz+upT2siWXajOYQgAtrxIbQ1HIvacK8zH1PqB 4Wrw==
X-Gm-Message-State: AIVw113OAGJtLV+TD6GLN3LBji37SJlfgERgkNlbRCPb7A1xb9ScPJCX eprlLSg3dpeMDONG6ibfQglKGlhL/Q==
X-Received: by 10.28.173.65 with SMTP id w62mr784660wme.113.1499992941646; Thu, 13 Jul 2017 17:42:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Thu, 13 Jul 2017 17:42:21 -0700 (PDT)
In-Reply-To: <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 13 Jul 2017 17:42:21 -0700
Message-ID: <CAM4esxSjmdFsqpeasRe3-V8RNXOzOQUxJSxcideiQn=kSa6=jw@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Ian Swett <ianswett@google.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a1144270e73e3ae05543c52c5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/_Y_pgmjt5q9tYQKsMimmdg3buiA>
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: Fri, 14 Jul 2017 00:42:27 -0000

--001a1144270e73e3ae05543c52c5
Content-Type: text/plain; charset="UTF-8"

Stateless reset (NOT stateless Reject)  is in option 1 because it is a wire
image issue. 0-RTT is in option 2 because I think it's an important to
performance.

On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com> wrote:

> Thanks for the update.  I would suggest a third potential option, which is
> a mix of what you have with a small clarification(in bold):
>
>
>    -
>
>    Further revisions to mechanisms in the First Implementation Draft
>    (e.g. changes to the public header format, connection close).
>    -
>
>    Transport Parameter Exchange. At the very least, the four parameters
>    specified as MUST in the draft.
>    -
>
>    Address validation and HelloRetryRequest
>    -
>
>    An HTTP/2 application to require multiple streams *(with stateless
>    HPACK compression, no QPACK, QCRAM, etc) and no server push*.
>
>
> Any implementations that deploy at any scale must also do:
>
>
>    -
>
>    Loss Recovery beyond the exising 1-RTO retransmissions. (I believe
>    this includes a number of concepts that are extensively tested in TCP and
>    has low interoperability concerns).
>    -
>
>    Congestion Control
>
>
> The reasoning being that both stateless reset and 0RTT are a fair bit of
> work to get right based on my experience, and are not critical to having a
> useful QUIC application.
>
> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>> Alright, I updated the second implementation draft significantly.
>>
>> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>>
>> There are now two strategies: "Lock down the wire image" and "do what we
>> need to allow useful performance testing". I much prefer the former but it
>> is worth discussing, since people appear to be interested in both.
>>
>> It's also clear (at least to me) that we need to do basic stream
>> life-cycle stuff in either case, so that has moved into the "must include"
>> category.
>>
>> Martin
>>
>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com> wrote:
>>
>>> Agreed, performance analysis is going to be useless in the absence of
>>> loss recovery and congestion control.  Presumably anyone deploying this at
>>> scale would implement the recovery draft in a relatively complete manner,
>>> but that doesn't mean everyone has to do it.
>>>
>>> But there's nothing interesting to measure with no application.
>>>
>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
>>> wrote:
>>>
>>>> I'm not sure how "performance analysis" is going to function in the
>>>> absence of loss recovery or congestion control. An alternate approach to
>>>> implementations is to tackle the big performance drivers first, presumably
>>>> loss recovery, congestion control, and streaming to prevent HOL blocking.
>>>> However, this would run directly opposite to Jana's suggestion to lock down
>>>> the wire image to prevent ossification.
>>>>
>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>>>> wrote:
>>>>
>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>>>> >
>>>>> >
>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
>>>>> wrote:
>>>>> >>
>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>>>> >> > I've been thinking about this, and I'm starting to think that we
>>>>> should
>>>>> >> > cover more ground in the second implementation draft.
>>>>> >> >
>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely due to
>>>>> market
>>>>> >> > pressures. The availability of the Chromium implementation makes
>>>>> it
>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>>>>> think we
>>>>> >> > need
>>>>> >> > to move with some urgency, even if we don't change everything
>>>>> about QUIC
>>>>> >> > to
>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>>>>> deployments out
>>>>> >> > there. Specifically, I think we should:
>>>>> >> > 1. work out the wire-visible invariants and finalize all of those
>>>>> for
>>>>> >> > the
>>>>> >> > second impl draft. We know that there are some middleboxes that
>>>>> already
>>>>> >> > have
>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>>>> IETF-QUIC so
>>>>> >> > we
>>>>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>>>>> take,
>>>>> >> > the
>>>>> >> > more widespread gQUIC ossification will be.
>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>>>>> mapping
>>>>> >> > over
>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>>>>> perhaps test
>>>>> >> > a
>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>>>>> >> > performance-oriented things such as full loss recovery and
>>>>> congestion
>>>>> >> > control to later. This forces us to try and finalize the HTTP
>>>>> mapping
>>>>> >> > details, which is a good thing, IMO.
>>>>> >>
>>>>> >> I agree with Jana.
>>>>> >>
>>>>> >> If we can have some basic HTTP mapping (it can be as basic as using
>>>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>>>>> >> version of QUIC performs well in the field, by comparing its
>>>>> >> performance to HTTP over TCP.
>>>>> >
>>>>> >
>>>>> > Interesting idea. One challenge with performance analysis is that
>>>>> it'll be a
>>>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>>>>> (without
>>>>> > header compression) against HTTP/2 (with header compression) or
>>>>> HTTP/1.1
>>>>> > (over multiple connections).
>>>>>
>>>>> Agreed.
>>>>>
>>>>> Though I might argue that collecting metrics of a QUIC implementation
>>>>> without header compression could be useful. We can use that as a
>>>>> baseline when we formalize QPACK / QCRAM.
>>>>>
>>>>> --
>>>>> Kazuho Oku
>>>>>
>>>>
>>>>
>>>
>>
>

--001a1144270e73e3ae05543c52c5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Stateless reset (NOT stateless Reject) =C2=A0is in option =
1 because it is a wire image issue. 0-RTT is in option 2 because I think it=
&#39;s an important to performance.</div><div class=3D"gmail_extra"><br><di=
v class=3D"gmail_quote">On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <span di=
r=3D"ltr">&lt;<a href=3D"mailto:ianswett@google.com" target=3D"_blank">ians=
wett@google.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v dir=3D"ltr">Thanks for the update.=C2=A0 I would suggest a third potentia=
l option, which is a mix of what you have with a small clarification(in bol=
d):<div><br></div><div><ul style=3D"box-sizing:border-box;padding-left:2em;=
margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-sy=
stem,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple =
Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;fo=
nt-size:16px"><li style=3D"box-sizing:border-box"><p style=3D"box-sizing:bo=
rder-box;margin-top:16px;margin-bottom:16px">Further revisions to mechanism=
s in the First Implementation Draft (e.g. changes to the public header form=
at, connection close).</p></li><li style=3D"box-sizing:border-box;margin-to=
p:0.25em"><p style=3D"box-sizing:border-box;margin-top:16px;margin-bottom:1=
6px">Transport Parameter Exchange. At the very least, the four parameters s=
pecified as MUST in the draft.</p></li><li style=3D"box-sizing:border-box;m=
argin-top:0.25em"><p style=3D"box-sizing:border-box;margin-top:16px;margin-=
bottom:16px">Address validation and HelloRetryRequest</p></li><li style=3D"=
box-sizing:border-box;margin-top:0.25em"><p style=3D"box-sizing:border-box;=
margin-top:16px;margin-bottom:16px">An HTTP/2 application to require multip=
le streams <b>(with stateless HPACK compression, no QPACK, QCRAM, etc) and =
no server push</b>.<br></p></li></ul><br>Any implementations that deploy at=
 any scale must also do:</div><div><font color=3D"#24292e" face=3D"-apple-s=
ystem, system-ui, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji=
, Segoe UI Emoji, Segoe UI Symbol"><span style=3D"font-size:16px"><br></spa=
n></font></div><div><ul style=3D"box-sizing:border-box;padding-left:2em;mar=
gin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-syste=
m,system-ui,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Col=
or Emoji&quot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-=
size:16px"><li style=3D"box-sizing:border-box;margin-top:0.25em"><p style=
=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">Loss Recovery=
 beyond the exising 1-RTO retransmissions. (I believe this includes a numbe=
r of concepts that are extensively tested in TCP and has low interoperabili=
ty concerns).</p></li><li style=3D"box-sizing:border-box;margin-top:0.25em"=
><p style=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">Cong=
estion Control</p></li></ul><div><font color=3D"#24292e" face=3D"-apple-sys=
tem, system-ui, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, =
Segoe UI Emoji, Segoe UI Symbol"><span style=3D"font-size:16px"><br></span>=
</font></div></div>The reasoning being that both stateless reset and 0RTT a=
re a fair bit of work to get right based on my experience, and are not crit=
ical to having a useful QUIC application. =C2=A0</div><div class=3D"HOEnZb"=
><div class=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote=
">On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <span dir=3D"ltr">&lt;<a hre=
f=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.=
com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr=
">Alright, I updated the second implementation draft significantly.<div><br=
></div><div><a href=3D"https://github.com/quicwg/base-drafts/wiki/Second-Im=
plementation-Draft" target=3D"_blank">https://github.com/quicwg/base<wbr>-d=
rafts/wiki/Second-Implementa<wbr>tion-Draft</a><br></div><div><br></div><di=
v>There are now two strategies: &quot;Lock down the wire image&quot; and &q=
uot;do what we need to allow useful performance testing&quot;. I much prefe=
r the former but it is worth discussing, since people appear to be interest=
ed in both.</div><div><br></div><div>It&#39;s also clear (at least to me) t=
hat we need to do basic stream life-cycle stuff in either case, so that has=
 moved into the &quot;must include&quot; category.</div><span class=3D"m_28=
0304177524248446HOEnZb"><font color=3D"#888888"><div><br></div><div>Martin<=
/div></font></span></div><div class=3D"m_280304177524248446HOEnZb"><div cla=
ss=3D"m_280304177524248446h5"><div class=3D"gmail_extra"><br><div class=3D"=
gmail_quote">On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <span dir=3D"ltr">&=
lt;<a href=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google=
.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r">Agreed, performance analysis is going to be useless in the absence of lo=
ss recovery and congestion control.=C2=A0 Presumably anyone deploying this =
at scale would implement the recovery draft in a relatively complete manner=
, but that doesn&#39;t mean everyone has to do it.<div><br></div><div>But t=
here&#39;s nothing interesting to measure with no application.</div></div><=
div class=3D"m_280304177524248446m_2058533480902030982HOEnZb"><div class=3D=
"m_280304177524248446m_2058533480902030982h5"><div class=3D"gmail_extra"><b=
r><div class=3D"gmail_quote">On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke =
<span dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"=
_blank">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr">I&#39;m not sure how &quot;performance analy=
sis&quot; is going to function in the absence of loss recovery or congestio=
n control. An alternate approach to implementations is to tackle the big pe=
rformance drivers first, presumably loss recovery, congestion control, and =
streaming to prevent HOL blocking. However, this would run directly opposit=
e to Jana&#39;s suggestion to lock down the wire image to prevent ossificat=
ion.</div><div class=3D"m_280304177524248446m_2058533480902030982m_67606456=
30289411464HOEnZb"><div class=3D"m_280304177524248446m_2058533480902030982m=
_6760645630289411464h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_=
quote">On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <span dir=3D"ltr">&lt;<=
a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"m_28=
0304177524248446m_2058533480902030982m_6760645630289411464m_395040588780772=
7332HOEnZb"><div class=3D"m_280304177524248446m_2058533480902030982m_676064=
5630289411464m_3950405887807727332h5">2017-07-10 12:28 GMT+09:00 Ryan Hamil=
ton &lt;<a href=3D"mailto:rch@google.com" target=3D"_blank">rch@google.com<=
/a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com" target=3D"_blank">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"m_280304177524248446m_2058533480902030982m_67606456302894114=
64m_3950405887807727332HOEnZb"><font color=3D"#888888"><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a1144270e73e3ae05543c52c5--


From nobody Thu Jul 13 17:47:03 2017
Return-Path: <ianswett@google.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 9435B1317B1 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:47:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.02
X-Spam-Level: 
X-Spam-Status: No, score=-1.02 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_FACE_BAD=0.981, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 wgkfy5sWwZ75 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:46:59 -0700 (PDT)
Received: from mail-yb0-x22c.google.com (mail-yb0-x22c.google.com [IPv6:2607:f8b0:4002:c09::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 03642126B72 for <quic@ietf.org>; Thu, 13 Jul 2017 17:46:59 -0700 (PDT)
Received: by mail-yb0-x22c.google.com with SMTP id f194so28275479yba.3 for <quic@ietf.org>; Thu, 13 Jul 2017 17:46:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=fPT+CnSsjk74Jxx4EmkhqNdITh8xIRA/gYlM6e7Rxyg=; b=Q36Ih6dVz4Krikqk1iqsJsUhDkssYzxiA7vK0Ief7Uyw/EYM0i0BVzfIdU8tuDFZUD WkwgjxnYDI/RGr3H1zzNm9qBu+Y4rUuSn9Ehjki3qWMmzWzz832kCWDInDAf3aFs/AIP Iy7dI0QCYCbN1fwVnluiDKJvsGuo2K0wyoW4q7v1Okr9zqBayZb6r9Lew53QiFGClZUq r/8HfytMTJTyxb9f3goLFdxh8hbV/aBwWGBJbWCGf4gPRgVEyNlQXyrv4ODrN19lY24t h9pjML4CV1/2bLwiyIlyF9RpYl+1SO42dypIraEFB7EjjQzcWIppZv9MT/RT4krqV/Kd 36+g==
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=fPT+CnSsjk74Jxx4EmkhqNdITh8xIRA/gYlM6e7Rxyg=; b=SGAkQIJW5Tf/hqmbqMEY1YAWx4n01I5j6Jv1q3fLHAMK0D//2CtPkNVYYhqDowIej1 N3TuMoYIvKqf/ys5IanvfmDd0OU92XL5qIV3od8/Fa0YSgeplj5v3MOS+OqVEvFFCnHY /W00AYXpWKbSFtyeUQBD07cUFPQTWaYqp7zfgsWKhRvJtzEjZXVLut1wGzR/G9ztiiCJ 1cPWdSyZPsBm58KXlA3Ci5DyEn3w7+sg+vdRYmCyawWEA+kSdCEARKOPDoBeyeQ+bSuj mAjlWRKuqQrS6LRkIGmaIoO2D12PLOYBEHM+3OYnJ9mluwLPhoKbk/S1qzf9l854xeOd 1+4g==
X-Gm-Message-State: AIVw112nmMO6TmzYQLW6hyBBQXFl7Qwg/voBneHSsXZuq9hVAfSBXT9n shjkiGqWFNxdvZaCNfy6jffomnyX3kS2
X-Received: by 10.37.60.129 with SMTP id j123mr5111143yba.226.1499993218036; Thu, 13 Jul 2017 17:46:58 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Thu, 13 Jul 2017 17:46:37 -0700 (PDT)
In-Reply-To: <CAM4esxSjmdFsqpeasRe3-V8RNXOzOQUxJSxcideiQn=kSa6=jw@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxSjmdFsqpeasRe3-V8RNXOzOQUxJSxcideiQn=kSa6=jw@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Thu, 13 Jul 2017 20:46:37 -0400
Message-ID: <CAKcm_gOEVjwSpwMYLbOXfyCH_LB2QS5uezx5duORnS5Fg99_HQ@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a114be9a2ed9fd205543c622c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/4xy7aXch535RyYn4ZcWHdi6FJXo>
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: Fri, 14 Jul 2017 00:47:01 -0000

--001a114be9a2ed9fd205543c622c
Content-Type: text/plain; charset="UTF-8"

Sorry, I am still not used to the new name.  I meant to say stateless
reject is a substantial amount of work.  Stateless reset should definitely
be in scope.

And I'm now starting to think one of them should be renamed.

On Thu, Jul 13, 2017 at 8:42 PM, Martin Duke <martin.h.duke@gmail.com>
wrote:

> Stateless reset (NOT stateless Reject)  is in option 1 because it is a
> wire image issue. 0-RTT is in option 2 because I think it's an important to
> performance.
>
> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com> wrote:
>
>> Thanks for the update.  I would suggest a third potential option, which
>> is a mix of what you have with a small clarification(in bold):
>>
>>
>>    -
>>
>>    Further revisions to mechanisms in the First Implementation Draft
>>    (e.g. changes to the public header format, connection close).
>>    -
>>
>>    Transport Parameter Exchange. At the very least, the four parameters
>>    specified as MUST in the draft.
>>    -
>>
>>    Address validation and HelloRetryRequest
>>    -
>>
>>    An HTTP/2 application to require multiple streams *(with stateless
>>    HPACK compression, no QPACK, QCRAM, etc) and no server push*.
>>
>>
>> Any implementations that deploy at any scale must also do:
>>
>>
>>    -
>>
>>    Loss Recovery beyond the exising 1-RTO retransmissions. (I believe
>>    this includes a number of concepts that are extensively tested in TCP and
>>    has low interoperability concerns).
>>    -
>>
>>    Congestion Control
>>
>>
>> The reasoning being that both stateless reset and 0RTT are a fair bit of
>> work to get right based on my experience, and are not critical to having a
>> useful QUIC application.
>>
>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
>> wrote:
>>
>>> Alright, I updated the second implementation draft significantly.
>>>
>>> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>>>
>>> There are now two strategies: "Lock down the wire image" and "do what we
>>> need to allow useful performance testing". I much prefer the former but it
>>> is worth discussing, since people appear to be interested in both.
>>>
>>> It's also clear (at least to me) that we need to do basic stream
>>> life-cycle stuff in either case, so that has moved into the "must include"
>>> category.
>>>
>>> Martin
>>>
>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com> wrote:
>>>
>>>> Agreed, performance analysis is going to be useless in the absence of
>>>> loss recovery and congestion control.  Presumably anyone deploying this at
>>>> scale would implement the recovery draft in a relatively complete manner,
>>>> but that doesn't mean everyone has to do it.
>>>>
>>>> But there's nothing interesting to measure with no application.
>>>>
>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
>>>> wrote:
>>>>
>>>>> I'm not sure how "performance analysis" is going to function in the
>>>>> absence of loss recovery or congestion control. An alternate approach to
>>>>> implementations is to tackle the big performance drivers first, presumably
>>>>> loss recovery, congestion control, and streaming to prevent HOL blocking.
>>>>> However, this would run directly opposite to Jana's suggestion to lock down
>>>>> the wire image to prevent ossification.
>>>>>
>>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>>>>> >
>>>>>> >
>>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
>>>>>> wrote:
>>>>>> >>
>>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>>>>> >> > I've been thinking about this, and I'm starting to think that we
>>>>>> should
>>>>>> >> > cover more ground in the second implementation draft.
>>>>>> >> >
>>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely due
>>>>>> to market
>>>>>> >> > pressures. The availability of the Chromium implementation makes
>>>>>> it
>>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>>>>>> think we
>>>>>> >> > need
>>>>>> >> > to move with some urgency, even if we don't change everything
>>>>>> about QUIC
>>>>>> >> > to
>>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>>>>>> deployments out
>>>>>> >> > there. Specifically, I think we should:
>>>>>> >> > 1. work out the wire-visible invariants and finalize all of
>>>>>> those for
>>>>>> >> > the
>>>>>> >> > second impl draft. We know that there are some middleboxes that
>>>>>> already
>>>>>> >> > have
>>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>>>>> IETF-QUIC so
>>>>>> >> > we
>>>>>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>>>>>> take,
>>>>>> >> > the
>>>>>> >> > more widespread gQUIC ossification will be.
>>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>>>>>> mapping
>>>>>> >> > over
>>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>>>>>> perhaps test
>>>>>> >> > a
>>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>>>>>> >> > performance-oriented things such as full loss recovery and
>>>>>> congestion
>>>>>> >> > control to later. This forces us to try and finalize the HTTP
>>>>>> mapping
>>>>>> >> > details, which is a good thing, IMO.
>>>>>> >>
>>>>>> >> I agree with Jana.
>>>>>> >>
>>>>>> >> If we can have some basic HTTP mapping (it can be as basic as using
>>>>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>>>>>> >> version of QUIC performs well in the field, by comparing its
>>>>>> >> performance to HTTP over TCP.
>>>>>> >
>>>>>> >
>>>>>> > Interesting idea. One challenge with performance analysis is that
>>>>>> it'll be a
>>>>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>>>>>> (without
>>>>>> > header compression) against HTTP/2 (with header compression) or
>>>>>> HTTP/1.1
>>>>>> > (over multiple connections).
>>>>>>
>>>>>> Agreed.
>>>>>>
>>>>>> Though I might argue that collecting metrics of a QUIC implementation
>>>>>> without header compression could be useful. We can use that as a
>>>>>> baseline when we formalize QPACK / QCRAM.
>>>>>>
>>>>>> --
>>>>>> Kazuho Oku
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

--001a114be9a2ed9fd205543c622c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Sorry, I am still not used to the new name.=C2=A0 I meant =
to say stateless reject is a substantial amount of work.=C2=A0 Stateless re=
set should definitely be in scope.<div><br></div><div>And I&#39;m now start=
ing to think one of them should be renamed.</div></div><div class=3D"gmail_=
extra"><br><div class=3D"gmail_quote">On Thu, Jul 13, 2017 at 8:42 PM, Mart=
in Duke <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" ta=
rget=3D"_blank">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquot=
e class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc sol=
id;padding-left:1ex"><div dir=3D"ltr">Stateless reset (NOT stateless Reject=
) =C2=A0is in option 1 because it is a wire image issue. 0-RTT is in option=
 2 because I think it&#39;s an important to performance.</div><div class=3D=
"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gma=
il_quote">On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <span dir=3D"ltr">&lt;=
<a href=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google.co=
m</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margi=
n:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">=
Thanks for the update.=C2=A0 I would suggest a third potential option, whic=
h is a mix of what you have with a small clarification(in bold):<div><br></=
div><div><ul style=3D"box-sizing:border-box;padding-left:2em;margin-top:0px=
;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui=
,&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&qu=
ot;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px">=
<li style=3D"box-sizing:border-box"><p style=3D"box-sizing:border-box;margi=
n-top:16px;margin-bottom:16px">Further revisions to mechanisms in the First=
 Implementation Draft (e.g. changes to the public header format, connection=
 close).</p></li><li style=3D"box-sizing:border-box;margin-top:0.25em"><p s=
tyle=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">Transport=
 Parameter Exchange. At the very least, the four parameters specified as MU=
ST in the draft.</p></li><li style=3D"box-sizing:border-box;margin-top:0.25=
em"><p style=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">A=
ddress validation and HelloRetryRequest</p></li><li style=3D"box-sizing:bor=
der-box;margin-top:0.25em"><p style=3D"box-sizing:border-box;margin-top:16p=
x;margin-bottom:16px">An HTTP/2 application to require multiple streams <b>=
(with stateless HPACK compression, no QPACK, QCRAM, etc) and no server push=
</b>.<br></p></li></ul><br>Any implementations that deploy at any scale mus=
t also do:</div><div><font color=3D"#24292e" face=3D"-apple-system, system-=
ui, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emo=
ji, Segoe UI Symbol"><span style=3D"font-size:16px"><br></span></font></div=
><div><ul style=3D"box-sizing:border-box;padding-left:2em;margin-top:0px;ma=
rgin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,&q=
uot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;=
,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px"><li=
 style=3D"box-sizing:border-box;margin-top:0.25em"><p style=3D"box-sizing:b=
order-box;margin-top:16px;margin-bottom:16px">Loss Recovery beyond the exis=
ing 1-RTO retransmissions. (I believe this includes a number of concepts th=
at are extensively tested in TCP and has low interoperability concerns).</p=
></li><li style=3D"box-sizing:border-box;margin-top:0.25em"><p style=3D"box=
-sizing:border-box;margin-top:16px;margin-bottom:16px">Congestion Control</=
p></li></ul><div><font color=3D"#24292e" face=3D"-apple-system, system-ui, =
Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, =
Segoe UI Symbol"><span style=3D"font-size:16px"><br></span></font></div></d=
iv>The reasoning being that both stateless reset and 0RTT are a fair bit of=
 work to get right based on my experience, and are not critical to having a=
 useful QUIC application. =C2=A0</div><div class=3D"m_7876026714700365316HO=
EnZb"><div class=3D"m_7876026714700365316h5"><div class=3D"gmail_extra"><br=
><div class=3D"gmail_quote">On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <s=
pan dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_b=
lank">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div dir=3D"ltr">Alright, I updated the second implementation dr=
aft significantly.<div><br></div><div><a href=3D"https://github.com/quicwg/=
base-drafts/wiki/Second-Implementation-Draft" target=3D"_blank">https://git=
hub.com/quicwg/base<wbr>-drafts/wiki/Second-Implementa<wbr>tion-Draft</a><b=
r></div><div><br></div><div>There are now two strategies: &quot;Lock down t=
he wire image&quot; and &quot;do what we need to allow useful performance t=
esting&quot;. I much prefer the former but it is worth discussing, since pe=
ople appear to be interested in both.</div><div><br></div><div>It&#39;s als=
o clear (at least to me) that we need to do basic stream life-cycle stuff i=
n either case, so that has moved into the &quot;must include&quot; category=
.</div><span class=3D"m_7876026714700365316m_280304177524248446HOEnZb"><fon=
t color=3D"#888888"><div><br></div><div>Martin</div></font></span></div><di=
v class=3D"m_7876026714700365316m_280304177524248446HOEnZb"><div class=3D"m=
_7876026714700365316m_280304177524248446h5"><div class=3D"gmail_extra"><br>=
<div class=3D"gmail_quote">On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <span=
 dir=3D"ltr">&lt;<a href=3D"mailto:ianswett@google.com" target=3D"_blank">i=
answett@google.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
<div dir=3D"ltr">Agreed, performance analysis is going to be useless in the=
 absence of loss recovery and congestion control.=C2=A0 Presumably anyone d=
eploying this at scale would implement the recovery draft in a relatively c=
omplete manner, but that doesn&#39;t mean everyone has to do it.<div><br></=
div><div>But there&#39;s nothing interesting to measure with no application=
.</div></div><div class=3D"m_7876026714700365316m_280304177524248446m_20585=
33480902030982HOEnZb"><div class=3D"m_7876026714700365316m_2803041775242484=
46m_2058533480902030982h5"><div class=3D"gmail_extra"><br><div class=3D"gma=
il_quote">On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <span dir=3D"ltr">&=
lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.du=
ke@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div d=
ir=3D"ltr">I&#39;m not sure how &quot;performance analysis&quot; is going t=
o function in the absence of loss recovery or congestion control. An altern=
ate approach to implementations is to tackle the big performance drivers fi=
rst, presumably loss recovery, congestion control, and streaming to prevent=
 HOL blocking. However, this would run directly opposite to Jana&#39;s sugg=
estion to lock down the wire image to prevent ossification.</div><div class=
=3D"m_7876026714700365316m_280304177524248446m_2058533480902030982m_6760645=
630289411464HOEnZb"><div class=3D"m_7876026714700365316m_280304177524248446=
m_2058533480902030982m_6760645630289411464h5"><div class=3D"gmail_extra"><b=
r><div class=3D"gmail_quote">On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <=
span dir=3D"ltr">&lt;<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blan=
k">kazuhooku@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex"><div class=3D"m_7876026714700365316m_280304177524248446m_20585334809020=
30982m_6760645630289411464m_3950405887807727332HOEnZb"><div class=3D"m_7876=
026714700365316m_280304177524248446m_2058533480902030982m_67606456302894114=
64m_3950405887807727332h5">2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<a =
href=3D"mailto:rch@google.com" target=3D"_blank">rch@google.com</a>&gt;:<br=
>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com" target=3D"_blank">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"m_7876026714700365316m_280304177524248446m_20585334809020309=
82m_6760645630289411464m_3950405887807727332HOEnZb"><font color=3D"#888888"=
><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a114be9a2ed9fd205543c622c--


From nobody Thu Jul 13 17:48:00 2017
Return-Path: <martin.h.duke@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 4C6FA126B72 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:47:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.718
X-Spam-Level: 
X-Spam-Status: No, score=-1.718 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_FONT_FACE_BAD=0.981, 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 5O0_IaRQ-_Zw for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:47:56 -0700 (PDT)
Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) (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 374DA1242F5 for <quic@ietf.org>; Thu, 13 Jul 2017 17:47:56 -0700 (PDT)
Received: by mail-wm0-x233.google.com with SMTP id f67so8012179wmh.1 for <quic@ietf.org>; Thu, 13 Jul 2017 17:47:56 -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=MIEaqkIBxBYUVT1WrzT5Ai+5162ZwUOPbGv5e5lLLnI=; b=TAiZWmA6/H/hueagGkdSscowOAgwj6B5TiIt5DJUb+2nA+jrR4kBD82rqXsR+KPMFL uY9KQqk667e9P1mHbf85OVd5AOJLKMJ4Zevm0u3TlJHv4HQURk6FcPoOu3RFhIl0L7wQ 6Qo0pc1LGoiWINOkB8bd4h7SErPmKVCfh1n+D5KydOBvzXo801mO3hm8y/Lpu53ywt0O d53gvNejogRTO74lnpJp93DAK1nT2b39dLG9/U8rJPfa2LHfQSCSjFJ1LMYt7atref6M PTWRbq6SLfrrcupeWZGDPrwUvuqRs8VIXSWVpknJ8GGwTJqSMhicYRVUFKvuP3MEd5+K +3yg==
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=MIEaqkIBxBYUVT1WrzT5Ai+5162ZwUOPbGv5e5lLLnI=; b=LdA71ZxQTOUmWuVpXj87d+Z6chjceg/HnnhEx6+M7gsZc2fxsxEboap2WMMmjf85XY 09mIRb0ssBWec9adU+mnag4Gx2NrA4TaX+mnsbL5iVvJ8UVsjpH3SdiEZ5rXp6cw2jJZ c9doz2M11+PF+rF1l4E7Ub1ISSyV9pLF0SQNRoR/I8B4eoL6/xbgcacQuJxicMg4bGdG fN68fFMZl3ZrOESQ3rGaEdx8eKqpHeYelrJtRxOo+3HTyttfTpBMoX4xk+KZIzX8W134 EHoaC+oqr/kx06V7glfKGF4wzkoe7/AWdevFYd6u8acOpNaJGuYzwTjlqlLSHcUNrCgJ 9iFA==
X-Gm-Message-State: AIVw113IbhnCzndMpCNmjjQqy8NbvCuV/KpCjqQZB4RfnZgjsWvHX4B4 2jFVZGElIXKY0TfXTXZt9pk3fvSlJQ==
X-Received: by 10.28.184.87 with SMTP id i84mr844710wmf.22.1499993274743; Thu, 13 Jul 2017 17:47:54 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Thu, 13 Jul 2017 17:47:53 -0700 (PDT)
In-Reply-To: <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 13 Jul 2017 17:47:53 -0700
Message-ID: <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Ian Swett <ianswett@google.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a114b64044e94e605543c66b9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/4w5d722RT3CCpNFKTNJiBSBK1ZM>
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: Fri, 14 Jul 2017 00:47:59 -0000

--001a114b64044e94e605543c66b9
Content-Type: text/plain; charset="UTF-8"

I'm a little concerned that a blend of the strategies leaves us with
something that still allows ossification and isn't quite enough for decent
performance testing. But I did add your further clarifications about
HTTP/2, and the "at scale" provision.

Is your option 3 the MVP for something you'd like to do with this iteration?

On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com> wrote:

> Thanks for the update.  I would suggest a third potential option, which is
> a mix of what you have with a small clarification(in bold):
>
>
>    -
>
>    Further revisions to mechanisms in the First Implementation Draft
>    (e.g. changes to the public header format, connection close).
>    -
>
>    Transport Parameter Exchange. At the very least, the four parameters
>    specified as MUST in the draft.
>    -
>
>    Address validation and HelloRetryRequest
>    -
>
>    An HTTP/2 application to require multiple streams *(with stateless
>    HPACK compression, no QPACK, QCRAM, etc) and no server push*.
>
>
> Any implementations that deploy at any scale must also do:
>
>
>    -
>
>    Loss Recovery beyond the exising 1-RTO retransmissions. (I believe
>    this includes a number of concepts that are extensively tested in TCP and
>    has low interoperability concerns).
>    -
>
>    Congestion Control
>
>
> The reasoning being that both stateless reset and 0RTT are a fair bit of
> work to get right based on my experience, and are not critical to having a
> useful QUIC application.
>
> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>> Alright, I updated the second implementation draft significantly.
>>
>> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>>
>> There are now two strategies: "Lock down the wire image" and "do what we
>> need to allow useful performance testing". I much prefer the former but it
>> is worth discussing, since people appear to be interested in both.
>>
>> It's also clear (at least to me) that we need to do basic stream
>> life-cycle stuff in either case, so that has moved into the "must include"
>> category.
>>
>> Martin
>>
>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com> wrote:
>>
>>> Agreed, performance analysis is going to be useless in the absence of
>>> loss recovery and congestion control.  Presumably anyone deploying this at
>>> scale would implement the recovery draft in a relatively complete manner,
>>> but that doesn't mean everyone has to do it.
>>>
>>> But there's nothing interesting to measure with no application.
>>>
>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
>>> wrote:
>>>
>>>> I'm not sure how "performance analysis" is going to function in the
>>>> absence of loss recovery or congestion control. An alternate approach to
>>>> implementations is to tackle the big performance drivers first, presumably
>>>> loss recovery, congestion control, and streaming to prevent HOL blocking.
>>>> However, this would run directly opposite to Jana's suggestion to lock down
>>>> the wire image to prevent ossification.
>>>>
>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>>>> wrote:
>>>>
>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>>>> >
>>>>> >
>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
>>>>> wrote:
>>>>> >>
>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>>>> >> > I've been thinking about this, and I'm starting to think that we
>>>>> should
>>>>> >> > cover more ground in the second implementation draft.
>>>>> >> >
>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely due to
>>>>> market
>>>>> >> > pressures. The availability of the Chromium implementation makes
>>>>> it
>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>>>>> think we
>>>>> >> > need
>>>>> >> > to move with some urgency, even if we don't change everything
>>>>> about QUIC
>>>>> >> > to
>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>>>>> deployments out
>>>>> >> > there. Specifically, I think we should:
>>>>> >> > 1. work out the wire-visible invariants and finalize all of those
>>>>> for
>>>>> >> > the
>>>>> >> > second impl draft. We know that there are some middleboxes that
>>>>> already
>>>>> >> > have
>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>>>> IETF-QUIC so
>>>>> >> > we
>>>>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>>>>> take,
>>>>> >> > the
>>>>> >> > more widespread gQUIC ossification will be.
>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>>>>> mapping
>>>>> >> > over
>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>>>>> perhaps test
>>>>> >> > a
>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>>>>> >> > performance-oriented things such as full loss recovery and
>>>>> congestion
>>>>> >> > control to later. This forces us to try and finalize the HTTP
>>>>> mapping
>>>>> >> > details, which is a good thing, IMO.
>>>>> >>
>>>>> >> I agree with Jana.
>>>>> >>
>>>>> >> If we can have some basic HTTP mapping (it can be as basic as using
>>>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>>>>> >> version of QUIC performs well in the field, by comparing its
>>>>> >> performance to HTTP over TCP.
>>>>> >
>>>>> >
>>>>> > Interesting idea. One challenge with performance analysis is that
>>>>> it'll be a
>>>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>>>>> (without
>>>>> > header compression) against HTTP/2 (with header compression) or
>>>>> HTTP/1.1
>>>>> > (over multiple connections).
>>>>>
>>>>> Agreed.
>>>>>
>>>>> Though I might argue that collecting metrics of a QUIC implementation
>>>>> without header compression could be useful. We can use that as a
>>>>> baseline when we formalize QPACK / QCRAM.
>>>>>
>>>>> --
>>>>> Kazuho Oku
>>>>>
>>>>
>>>>
>>>
>>
>

--001a114b64044e94e605543c66b9
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I&#39;m a little concerned that a blend of the strategies =
leaves us with something that still allows ossification and isn&#39;t quite=
 enough for decent performance testing. But I did add your further clarific=
ations about HTTP/2, and the &quot;at scale&quot; provision.<div><br></div>=
<div>Is your option 3 the MVP for something you&#39;d like to do with this =
iteration?</div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_qu=
ote">On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>=
&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Thank=
s for the update.=C2=A0 I would suggest a third potential option, which is =
a mix of what you have with a small clarification(in bold):<div><br></div><=
div><ul style=3D"box-sizing:border-box;padding-left:2em;margin-top:0px;marg=
in-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,&quo=
t;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&=
quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px"><li s=
tyle=3D"box-sizing:border-box"><p style=3D"box-sizing:border-box;margin-top=
:16px;margin-bottom:16px">Further revisions to mechanisms in the First Impl=
ementation Draft (e.g. changes to the public header format, connection clos=
e).</p></li><li style=3D"box-sizing:border-box;margin-top:0.25em"><p style=
=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">Transport Par=
ameter Exchange. At the very least, the four parameters specified as MUST i=
n the draft.</p></li><li style=3D"box-sizing:border-box;margin-top:0.25em">=
<p style=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">Addre=
ss validation and HelloRetryRequest</p></li><li style=3D"box-sizing:border-=
box;margin-top:0.25em"><p style=3D"box-sizing:border-box;margin-top:16px;ma=
rgin-bottom:16px">An HTTP/2 application to require multiple streams <b>(wit=
h stateless HPACK compression, no QPACK, QCRAM, etc) and no server push</b>=
.<br></p></li></ul><br>Any implementations that deploy at any scale must al=
so do:</div><div><font color=3D"#24292e" face=3D"-apple-system, system-ui, =
Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, =
Segoe UI Symbol"><span style=3D"font-size:16px"><br></span></font></div><di=
v><ul style=3D"box-sizing:border-box;padding-left:2em;margin-top:0px;margin=
-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,system-ui,&quot;=
Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&qu=
ot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px"><li sty=
le=3D"box-sizing:border-box;margin-top:0.25em"><p style=3D"box-sizing:borde=
r-box;margin-top:16px;margin-bottom:16px">Loss Recovery beyond the exising =
1-RTO retransmissions. (I believe this includes a number of concepts that a=
re extensively tested in TCP and has low interoperability concerns).</p></l=
i><li style=3D"box-sizing:border-box;margin-top:0.25em"><p style=3D"box-siz=
ing:border-box;margin-top:16px;margin-bottom:16px">Congestion Control</p></=
li></ul><div><font color=3D"#24292e" face=3D"-apple-system, system-ui, Sego=
e UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Sego=
e UI Symbol"><span style=3D"font-size:16px"><br></span></font></div></div>T=
he reasoning being that both stateless reset and 0RTT are a fair bit of wor=
k to get right based on my experience, and are not critical to having a use=
ful QUIC application. =C2=A0</div><div class=3D"HOEnZb"><div class=3D"h5"><=
div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Thu, Jul 13, 20=
17 at 7:46 PM, Martin Duke <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.h=
.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;</span> w=
rote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Alright, I updated=
 the second implementation draft significantly.<div><br></div><div><a href=
=3D"https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft"=
 target=3D"_blank">https://github.com/quicwg/base<wbr>-drafts/wiki/Second-I=
mplementa<wbr>tion-Draft</a><br></div><div><br></div><div>There are now two=
 strategies: &quot;Lock down the wire image&quot; and &quot;do what we need=
 to allow useful performance testing&quot;. I much prefer the former but it=
 is worth discussing, since people appear to be interested in both.</div><d=
iv><br></div><div>It&#39;s also clear (at least to me) that we need to do b=
asic stream life-cycle stuff in either case, so that has moved into the &qu=
ot;must include&quot; category.</div><span class=3D"m_280304177524248446HOE=
nZb"><font color=3D"#888888"><div><br></div><div>Martin</div></font></span>=
</div><div class=3D"m_280304177524248446HOEnZb"><div class=3D"m_28030417752=
4248446h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon=
, Jul 10, 2017 at 5:06 PM, Ian Swett <span dir=3D"ltr">&lt;<a href=3D"mailt=
o:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>&gt;</span>=
 wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Agreed, performa=
nce analysis is going to be useless in the absence of loss recovery and con=
gestion control.=C2=A0 Presumably anyone deploying this at scale would impl=
ement the recovery draft in a relatively complete manner, but that doesn&#3=
9;t mean everyone has to do it.<div><br></div><div>But there&#39;s nothing =
interesting to measure with no application.</div></div><div class=3D"m_2803=
04177524248446m_2058533480902030982HOEnZb"><div class=3D"m_2803041775242484=
46m_2058533480902030982h5"><div class=3D"gmail_extra"><br><div class=3D"gma=
il_quote">On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <span dir=3D"ltr">&=
lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.du=
ke@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div d=
ir=3D"ltr">I&#39;m not sure how &quot;performance analysis&quot; is going t=
o function in the absence of loss recovery or congestion control. An altern=
ate approach to implementations is to tackle the big performance drivers fi=
rst, presumably loss recovery, congestion control, and streaming to prevent=
 HOL blocking. However, this would run directly opposite to Jana&#39;s sugg=
estion to lock down the wire image to prevent ossification.</div><div class=
=3D"m_280304177524248446m_2058533480902030982m_6760645630289411464HOEnZb"><=
div class=3D"m_280304177524248446m_2058533480902030982m_6760645630289411464=
h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Jul 1=
0, 2017 at 12:32 AM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"mailto:kaz=
uhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div class=3D"m_280304177524248446m_20=
58533480902030982m_6760645630289411464m_3950405887807727332HOEnZb"><div cla=
ss=3D"m_280304177524248446m_2058533480902030982m_6760645630289411464m_39504=
05887807727332h5">2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<a href=3D"m=
ailto:rch@google.com" target=3D"_blank">rch@google.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com" target=3D"_blank">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"m_280304177524248446m_2058533480902030982m_67606456302894114=
64m_3950405887807727332HOEnZb"><font color=3D"#888888"><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a114b64044e94e605543c66b9--


From nobody Thu Jul 13 17:57:29 2017
Return-Path: <ianswett@google.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 AF133126B72 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:57:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.02
X-Spam-Level: 
X-Spam-Status: No, score=-1.02 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_FACE_BAD=0.981, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 pITz7PXno4xe for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:57:24 -0700 (PDT)
Received: from mail-yb0-x230.google.com (mail-yb0-x230.google.com [IPv6:2607:f8b0:4002:c09::230]) (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 5D7CF12EC1D for <quic@ietf.org>; Thu, 13 Jul 2017 17:57:24 -0700 (PDT)
Received: by mail-yb0-x230.google.com with SMTP id j80so11892176ybg.2 for <quic@ietf.org>; Thu, 13 Jul 2017 17:57:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ufvPoBbMLiTG3ldJgKqY8za26KB+i7rQGldWEt3Qph8=; b=mlAdsA21e0FhjvNLiya1etqEjKT1sGpVOltuOiRA9L7LjOS+4bLXZTh9huIYZQFIB6 mKOBsKhOl5/wr18+Gf4rsLkmxnAOCYFlsiNNm1n1Qflft+qOgoR+bI7pPfhuOXEsxQ8w BMx8n00OCBCtxMBs7XjgJMLi/3czkEfnBMissW+hj+2l4pZ/LE5BAoIL+sWYBKdSDv7c O8K9aJiDCKVULN0N+HgojjFx9WePlETlatw9nYjLoYgzMzyajTtUVy0i4eNuhhaReazS 473kkHlWPg7d7XIdmJAzng8SrIiKJfyYL06PGnI6VQzKMmifzLkYLz0ps4vxEc9hTd+d +/SA==
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=ufvPoBbMLiTG3ldJgKqY8za26KB+i7rQGldWEt3Qph8=; b=Qm9ndEL87VDEPnRvWBAznHwruryQaCBisSwTNL9OUb8fPlRjPfBZl48Uj6opGR+bq5 U6Iijo37jKrstO5cFQ6u38hiaHWgLexcWgj1cqYP3av4gWsTa0rIB7udUG2CCvEjFV0U 42ZEBiKiTHJ6Bj7NfmMXaGwsyCC4Azv+jPLpXzWcOIXjFwbDeX+T/42QUnouLwbCrCSd wmLlrd5O/NvtJsqi4cpCDEnEqAGk1una82p92ljXruuDghsuWNv6gIam1C0kPw0Zdxqo 1f0qSBzHTUMXKkfu8L4NmYTS8Sg1McSjQN8AGX54xeMCx2gpTW8Flu3/umbI1M4t+HS9 /FYw==
X-Gm-Message-State: AIVw110qMPdEtncZo4TGqDyVG3wtLC34c8wS9+gd7PWJCJgKYFkdlMW+ C9IT5FotPw1dOHl5cAydcZAV+8anLA0r
X-Received: by 10.37.97.11 with SMTP id v11mr5163324ybb.130.1499993843491; Thu, 13 Jul 2017 17:57:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Thu, 13 Jul 2017 17:57:02 -0700 (PDT)
In-Reply-To: <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Thu, 13 Jul 2017 20:57:02 -0400
Message-ID: <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a1142ee163584f505543c8878"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/hadNxkbbK-ROjIiWJs1WVX-gzE8>
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: Fri, 14 Jul 2017 00:57:27 -0000

--001a1142ee163584f505543c8878
Content-Type: text/plain; charset="UTF-8"

I think it is an MVP of HTTP over QUIC, and one I believe Google would be
willing to deploy at some scale.

That's not to say I'm opposed to the other two options, but I have a
preference for something I believe can run real applications with
reasonable performance, even if it's not ideal.

On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke <martin.h.duke@gmail.com>
wrote:

> I'm a little concerned that a blend of the strategies leaves us with
> something that still allows ossification and isn't quite enough for decent
> performance testing. But I did add your further clarifications about
> HTTP/2, and the "at scale" provision.
>
> Is your option 3 the MVP for something you'd like to do with this
> iteration?
>
> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com> wrote:
>
>> Thanks for the update.  I would suggest a third potential option, which
>> is a mix of what you have with a small clarification(in bold):
>>
>>
>>    -
>>
>>    Further revisions to mechanisms in the First Implementation Draft
>>    (e.g. changes to the public header format, connection close).
>>    -
>>
>>    Transport Parameter Exchange. At the very least, the four parameters
>>    specified as MUST in the draft.
>>    -
>>
>>    Address validation and HelloRetryRequest
>>    -
>>
>>    An HTTP/2 application to require multiple streams *(with stateless
>>    HPACK compression, no QPACK, QCRAM, etc) and no server push*.
>>
>>
>> Any implementations that deploy at any scale must also do:
>>
>>
>>    -
>>
>>    Loss Recovery beyond the exising 1-RTO retransmissions. (I believe
>>    this includes a number of concepts that are extensively tested in TCP and
>>    has low interoperability concerns).
>>    -
>>
>>    Congestion Control
>>
>>
>> The reasoning being that both stateless reset and 0RTT are a fair bit of
>> work to get right based on my experience, and are not critical to having a
>> useful QUIC application.
>>
>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
>> wrote:
>>
>>> Alright, I updated the second implementation draft significantly.
>>>
>>> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>>>
>>> There are now two strategies: "Lock down the wire image" and "do what we
>>> need to allow useful performance testing". I much prefer the former but it
>>> is worth discussing, since people appear to be interested in both.
>>>
>>> It's also clear (at least to me) that we need to do basic stream
>>> life-cycle stuff in either case, so that has moved into the "must include"
>>> category.
>>>
>>> Martin
>>>
>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com> wrote:
>>>
>>>> Agreed, performance analysis is going to be useless in the absence of
>>>> loss recovery and congestion control.  Presumably anyone deploying this at
>>>> scale would implement the recovery draft in a relatively complete manner,
>>>> but that doesn't mean everyone has to do it.
>>>>
>>>> But there's nothing interesting to measure with no application.
>>>>
>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
>>>> wrote:
>>>>
>>>>> I'm not sure how "performance analysis" is going to function in the
>>>>> absence of loss recovery or congestion control. An alternate approach to
>>>>> implementations is to tackle the big performance drivers first, presumably
>>>>> loss recovery, congestion control, and streaming to prevent HOL blocking.
>>>>> However, this would run directly opposite to Jana's suggestion to lock down
>>>>> the wire image to prevent ossification.
>>>>>
>>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>>>>> >
>>>>>> >
>>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
>>>>>> wrote:
>>>>>> >>
>>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>>>>> >> > I've been thinking about this, and I'm starting to think that we
>>>>>> should
>>>>>> >> > cover more ground in the second implementation draft.
>>>>>> >> >
>>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely due
>>>>>> to market
>>>>>> >> > pressures. The availability of the Chromium implementation makes
>>>>>> it
>>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>>>>>> think we
>>>>>> >> > need
>>>>>> >> > to move with some urgency, even if we don't change everything
>>>>>> about QUIC
>>>>>> >> > to
>>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>>>>>> deployments out
>>>>>> >> > there. Specifically, I think we should:
>>>>>> >> > 1. work out the wire-visible invariants and finalize all of
>>>>>> those for
>>>>>> >> > the
>>>>>> >> > second impl draft. We know that there are some middleboxes that
>>>>>> already
>>>>>> >> > have
>>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>>>>> IETF-QUIC so
>>>>>> >> > we
>>>>>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>>>>>> take,
>>>>>> >> > the
>>>>>> >> > more widespread gQUIC ossification will be.
>>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>>>>>> mapping
>>>>>> >> > over
>>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>>>>>> perhaps test
>>>>>> >> > a
>>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>>>>>> >> > performance-oriented things such as full loss recovery and
>>>>>> congestion
>>>>>> >> > control to later. This forces us to try and finalize the HTTP
>>>>>> mapping
>>>>>> >> > details, which is a good thing, IMO.
>>>>>> >>
>>>>>> >> I agree with Jana.
>>>>>> >>
>>>>>> >> If we can have some basic HTTP mapping (it can be as basic as using
>>>>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>>>>>> >> version of QUIC performs well in the field, by comparing its
>>>>>> >> performance to HTTP over TCP.
>>>>>> >
>>>>>> >
>>>>>> > Interesting idea. One challenge with performance analysis is that
>>>>>> it'll be a
>>>>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>>>>>> (without
>>>>>> > header compression) against HTTP/2 (with header compression) or
>>>>>> HTTP/1.1
>>>>>> > (over multiple connections).
>>>>>>
>>>>>> Agreed.
>>>>>>
>>>>>> Though I might argue that collecting metrics of a QUIC implementation
>>>>>> without header compression could be useful. We can use that as a
>>>>>> baseline when we formalize QPACK / QCRAM.
>>>>>>
>>>>>> --
>>>>>> Kazuho Oku
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

--001a1142ee163584f505543c8878
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I think it is an MVP of HTTP over QUIC, and one I believe =
Google would be willing to deploy at some scale.<div><br></div><div>That&#3=
9;s not to say I&#39;m opposed to the other two options, but I have a prefe=
rence for something I believe can run real applications with reasonable per=
formance, even if it&#39;s not ideal.</div></div><div class=3D"gmail_extra"=
><br><div class=3D"gmail_quote">On Thu, Jul 13, 2017 at 8:47 PM, Martin Duk=
e <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=
=3D"_blank">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div dir=3D"ltr">I&#39;m a little concerned that a blend o=
f the strategies leaves us with something that still allows ossification an=
d isn&#39;t quite enough for decent performance testing. But I did add your=
 further clarifications about HTTP/2, and the &quot;at scale&quot; provisio=
n.<div><br></div><div>Is your option 3 the MVP for something you&#39;d like=
 to do with this iteration?</div></div><div class=3D"HOEnZb"><div class=3D"=
h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Thu, Jul 1=
3, 2017 at 5:28 PM, Ian Swett <span dir=3D"ltr">&lt;<a href=3D"mailto:iansw=
ett@google.com" target=3D"_blank">ianswett@google.com</a>&gt;</span> wrote:=
<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Thanks for the update.=
=C2=A0 I would suggest a third potential option, which is a mix of what you=
 have with a small clarification(in bold):<div><br></div><div><ul style=3D"=
box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;co=
lor:rgb(36,41,46);font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,=
Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emo=
ji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px"><li style=3D"box-sizin=
g:border-box"><p style=3D"box-sizing:border-box;margin-top:16px;margin-bott=
om:16px">Further revisions to mechanisms in the First Implementation Draft =
(e.g. changes to the public header format, connection close).</p></li><li s=
tyle=3D"box-sizing:border-box;margin-top:0.25em"><p style=3D"box-sizing:bor=
der-box;margin-top:16px;margin-bottom:16px">Transport Parameter Exchange. A=
t the very least, the four parameters specified as MUST in the draft.</p></=
li><li style=3D"box-sizing:border-box;margin-top:0.25em"><p style=3D"box-si=
zing:border-box;margin-top:16px;margin-bottom:16px">Address validation and =
HelloRetryRequest</p></li><li style=3D"box-sizing:border-box;margin-top:0.2=
5em"><p style=3D"box-sizing:border-box;margin-top:16px;margin-bottom:16px">=
An HTTP/2 application to require multiple streams <b>(with stateless HPACK =
compression, no QPACK, QCRAM, etc) and no server push</b>.<br></p></li></ul=
><br>Any implementations that deploy at any scale must also do:</div><div><=
font color=3D"#24292e" face=3D"-apple-system, system-ui, Segoe UI, Helvetic=
a, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol"><=
span style=3D"font-size:16px"><br></span></font></div><div><ul style=3D"box=
-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;color=
:rgb(36,41,46);font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Hel=
vetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&=
quot;,&quot;Segoe UI Symbol&quot;;font-size:16px"><li style=3D"box-sizing:b=
order-box;margin-top:0.25em"><p style=3D"box-sizing:border-box;margin-top:1=
6px;margin-bottom:16px">Loss Recovery beyond the exising 1-RTO retransmissi=
ons. (I believe this includes a number of concepts that are extensively tes=
ted in TCP and has low interoperability concerns).</p></li><li style=3D"box=
-sizing:border-box;margin-top:0.25em"><p style=3D"box-sizing:border-box;mar=
gin-top:16px;margin-bottom:16px">Congestion Control</p></li></ul><div><font=
 color=3D"#24292e" face=3D"-apple-system, system-ui, Segoe UI, Helvetica, A=
rial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol"><span=
 style=3D"font-size:16px"><br></span></font></div></div>The reasoning being=
 that both stateless reset and 0RTT are a fair bit of work to get right bas=
ed on my experience, and are not critical to having a useful QUIC applicati=
on. =C2=A0</div><div class=3D"m_2100167064484153137HOEnZb"><div class=3D"m_=
2100167064484153137h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_q=
uote">On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gm=
ail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D=
"ltr">Alright, I updated the second implementation draft significantly.<div=
><br></div><div><a href=3D"https://github.com/quicwg/base-drafts/wiki/Secon=
d-Implementation-Draft" target=3D"_blank">https://github.com/quicwg/base<wb=
r>-drafts/wiki/Second-Implementa<wbr>tion-Draft</a><br></div><div><br></div=
><div>There are now two strategies: &quot;Lock down the wire image&quot; an=
d &quot;do what we need to allow useful performance testing&quot;. I much p=
refer the former but it is worth discussing, since people appear to be inte=
rested in both.</div><div><br></div><div>It&#39;s also clear (at least to m=
e) that we need to do basic stream life-cycle stuff in either case, so that=
 has moved into the &quot;must include&quot; category.</div><span class=3D"=
m_2100167064484153137m_280304177524248446HOEnZb"><font color=3D"#888888"><d=
iv><br></div><div>Martin</div></font></span></div><div class=3D"m_210016706=
4484153137m_280304177524248446HOEnZb"><div class=3D"m_2100167064484153137m_=
280304177524248446h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_qu=
ote">On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>=
&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Agree=
d, performance analysis is going to be useless in the absence of loss recov=
ery and congestion control.=C2=A0 Presumably anyone deploying this at scale=
 would implement the recovery draft in a relatively complete manner, but th=
at doesn&#39;t mean everyone has to do it.<div><br></div><div>But there&#39=
;s nothing interesting to measure with no application.</div></div><div clas=
s=3D"m_2100167064484153137m_280304177524248446m_2058533480902030982HOEnZb">=
<div class=3D"m_2100167064484153137m_280304177524248446m_205853348090203098=
2h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, Jul =
10, 2017 at 12:55 PM, Martin Duke <span dir=3D"ltr">&lt;<a href=3D"mailto:m=
artin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;</=
span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I&#39;m not=
 sure how &quot;performance analysis&quot; is going to function in the abse=
nce of loss recovery or congestion control. An alternate approach to implem=
entations is to tackle the big performance drivers first, presumably loss r=
ecovery, congestion control, and streaming to prevent HOL blocking. However=
, this would run directly opposite to Jana&#39;s suggestion to lock down th=
e wire image to prevent ossification.</div><div class=3D"m_2100167064484153=
137m_280304177524248446m_2058533480902030982m_6760645630289411464HOEnZb"><d=
iv class=3D"m_2100167064484153137m_280304177524248446m_2058533480902030982m=
_6760645630289411464h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_=
quote">On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <span dir=3D"ltr">&lt;<=
a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"m_21=
00167064484153137m_280304177524248446m_2058533480902030982m_676064563028941=
1464m_3950405887807727332HOEnZb"><div class=3D"m_2100167064484153137m_28030=
4177524248446m_2058533480902030982m_6760645630289411464m_395040588780772733=
2h5">2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<a href=3D"mailto:rch@goo=
gle.com" target=3D"_blank">rch@google.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku &lt;<a href=3D"mailto:kazuh=
ooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyengar &lt;<a href=3D"mailto:jri@g=
oogle.com" target=3D"_blank">jri@google.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;ve been thinking about this, and I&#39;m starting to th=
ink that we should<br>
&gt;&gt; &gt; cover more ground in the second implementation draft.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m hearing about increasing deployments of gQUIC, largel=
y due to market<br>
&gt;&gt; &gt; pressures. The availability of the Chromium implementation ma=
kes it<br>
&gt;&gt; &gt; particularly easy for folks to deploy QUIC with that code. I =
think we<br>
&gt;&gt; &gt; need<br>
&gt;&gt; &gt; to move with some urgency, even if we don&#39;t change everyt=
hing about QUIC<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; make it perfect, so that we can start getting IETF QUIC deplo=
yments out<br>
&gt;&gt; &gt; there. Specifically, I think we should:<br>
&gt;&gt; &gt; 1. work out the wire-visible invariants and finalize all of t=
hose for<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; second impl draft. We know that there are some middleboxes th=
at already<br>
&gt;&gt; &gt; have<br>
&gt;&gt; &gt; classifiers for gQUIC, and we need to move quickly and push I=
ETF-QUIC so<br>
&gt;&gt; &gt; we<br>
&gt;&gt; &gt; can test that IETF-QUIC is deployable. I fear that the longer=
 we take,<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; more widespread gQUIC ossification will be.<br>
&gt;&gt; &gt; 2. allow impls to make serious progress towards a basic HTTP =
mapping<br>
&gt;&gt; &gt; over<br>
&gt;&gt; &gt; QUIC. We can punt on header compression (QPACK/QCRAM), but pe=
rhaps test<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; basic HTTP request-response over QUIC. We can still punt<br>
&gt;&gt; &gt; performance-oriented things such as full loss recovery and co=
ngestion<br>
&gt;&gt; &gt; control to later. This forces us to try and finalize the HTTP=
 mapping<br>
&gt;&gt; &gt; details, which is a good thing, IMO.<br>
&gt;&gt;<br>
&gt;&gt; I agree with Jana.<br>
&gt;&gt;<br>
&gt;&gt; If we can have some basic HTTP mapping (it can be as basic as usin=
g<br>
&gt;&gt; HTTP/1.0 over each stream), we can use that to test how the IETF<b=
r>
&gt;&gt; version of QUIC performs well in the field, by comparing its<br>
&gt;&gt; performance to HTTP over TCP.<br>
&gt;<br>
&gt;<br>
&gt; Interesting idea. One challenge with performance analysis is that it&#=
39;ll be a<br>
&gt; bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (wit=
hout<br>
&gt; header compression) against HTTP/2 (with header compression) or HTTP/1=
.1<br>
&gt; (over multiple connections).<br>
<br>
</div></div>Agreed.<br>
<br>
Though I might argue that collecting metrics of a QUIC implementation<br>
without header compression could be useful. We can use that as a<br>
baseline when we formalize QPACK / QCRAM.<br>
<span class=3D"m_2100167064484153137m_280304177524248446m_20585334809020309=
82m_6760645630289411464m_3950405887807727332HOEnZb"><font color=3D"#888888"=
><br>
--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a1142ee163584f505543c8878--


From nobody Thu Jul 13 18:33:42 2017
Return-Path: <kazuhooku@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 879621315DA for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 18:33:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 wGqIJj1-zfUJ for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 18:33:38 -0700 (PDT)
Received: from mail-pg0-x22f.google.com (mail-pg0-x22f.google.com [IPv6:2607:f8b0:400e:c05::22f]) (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 4F7DC12EBF7 for <quic@ietf.org>; Thu, 13 Jul 2017 18:33:38 -0700 (PDT)
Received: by mail-pg0-x22f.google.com with SMTP id t186so37949516pgb.1 for <quic@ietf.org>; Thu, 13 Jul 2017 18:33:38 -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=XkZY5akbYngGTXnSVCrIdjauO+aN3cFWxf+fesiXphQ=; b=p57NWlVWma8rS3UQnLZ/Ctuyw6901wLGtROX5SGF7TwiV2xrsABxVL+nZho6SXrnmA L+GHY+CVI+a1j667EebjfUdgLU1Bzj/HFSvjaEokwAUOMB1JG+kKoOSu9kTw/Jeo0+7e GBt/56vtN/a/3WuuV7I0Pnj/GHLOvF5i9cKvlAnrPjvPLbl63X0en+V8ayQulTgJzo85 xskDZMZndrYILRijIVsHajlAullJcfK8GBkBTFAXoS7wy76CgnQDS3tRlv6+1QXutMHg gFjuxz4oWBXxNMt+naN3SE1kzppzD2T3ChpTMVqr6yYywkqdyPhy4Q+mKOcM8YhlNyMF nb5A==
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=XkZY5akbYngGTXnSVCrIdjauO+aN3cFWxf+fesiXphQ=; b=dZkjME2CBXIKog61LdZeOysV+jZulRO4exJxoSZtMogKCnF7/3gvkPIBOxydENTclO eYBK/xSqcTG+L8L+/NqIZUTpDmxoJ3rAVnYKKkZjIYwNWcfJW0iIffrMWEAYRicWb4bx yOCXWc8wbiE/Du466L/UPrYpnvfcWDXP7t7Oq2sDIRkcY7xrVDQDrvPYTAWwf08kI8zs i7YRY3ifl3EK+P1kMa57FoCvHaSqjymrSxEri7Cqoos2+lc8xA9xaHX84NebYvAEVMpj 0zyzYdJ3kEKTO6NT/MTwMGzy2F8BRZfMaPvR6+Hk0uHnplARK6L6GYXfc5Z71n7cV9tS Oaew==
X-Gm-Message-State: AIVw110AFShebv01j+QxmrExBh/tYY71KbLj3R4upOJvgRA0xTXOecHm 8pD4cWsJQzngG88+x1HfF6wqr+WgHA==
X-Received: by 10.98.2.149 with SMTP id 143mr2612929pfc.52.1499996017452; Thu, 13 Jul 2017 18:33:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Thu, 13 Jul 2017 18:33:36 -0700 (PDT)
In-Reply-To: <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com> <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 14 Jul 2017 10:33:36 +0900
Message-ID: <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Ian Swett <ianswett@google.com>
Cc: Martin Duke <martin.h.duke@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/sCFHVjPLWNaDrH3UZN6O7iDK9V0>
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: Fri, 14 Jul 2017 01:33:40 -0000

2017-07-14 9:57 GMT+09:00 Ian Swett <ianswett@google.com>:
> I think it is an MVP of HTTP over QUIC, and one I believe Google would be
> willing to deploy at some scale.
>
> That's not to say I'm opposed to the other two options, but I have a
> preference for something I believe can run real applications with reasonable
> performance, even if it's not ideal.

+1.

I agree that think that sending multiple HTTP requests / responses
over QUIC, with stateless HPACK would be a nicely balanced approach
that can be used deployed at some scale as well as one that can be
used for preliminary performance measurements.

> On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>>
>> I'm a little concerned that a blend of the strategies leaves us with
>> something that still allows ossification and isn't quite enough for decent
>> performance testing. But I did add your further clarifications about HTTP/2,
>> and the "at scale" provision.
>>
>> Is your option 3 the MVP for something you'd like to do with this
>> iteration?
>>
>> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com> wrote:
>>>
>>> Thanks for the update.  I would suggest a third potential option, which
>>> is a mix of what you have with a small clarification(in bold):
>>>
>>> Further revisions to mechanisms in the First Implementation Draft (e.g.
>>> changes to the public header format, connection close).
>>>
>>> Transport Parameter Exchange. At the very least, the four parameters
>>> specified as MUST in the draft.
>>>
>>> Address validation and HelloRetryRequest
>>>
>>> An HTTP/2 application to require multiple streams (with stateless HPACK
>>> compression, no QPACK, QCRAM, etc) and no server push.
>>>
>>>
>>> Any implementations that deploy at any scale must also do:
>>>
>>> Loss Recovery beyond the exising 1-RTO retransmissions. (I believe this
>>> includes a number of concepts that are extensively tested in TCP and has low
>>> interoperability concerns).
>>>
>>> Congestion Control
>>>
>>>
>>> The reasoning being that both stateless reset and 0RTT are a fair bit of
>>> work to get right based on my experience, and are not critical to having a
>>> useful QUIC application.
>>>
>>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
>>> wrote:
>>>>
>>>> Alright, I updated the second implementation draft significantly.
>>>>
>>>> https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft
>>>>
>>>> There are now two strategies: "Lock down the wire image" and "do what we
>>>> need to allow useful performance testing". I much prefer the former but it
>>>> is worth discussing, since people appear to be interested in both.
>>>>
>>>> It's also clear (at least to me) that we need to do basic stream
>>>> life-cycle stuff in either case, so that has moved into the "must include"
>>>> category.
>>>>
>>>> Martin
>>>>
>>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com> wrote:
>>>>>
>>>>> Agreed, performance analysis is going to be useless in the absence of
>>>>> loss recovery and congestion control.  Presumably anyone deploying this at
>>>>> scale would implement the recovery draft in a relatively complete manner,
>>>>> but that doesn't mean everyone has to do it.
>>>>>
>>>>> But there's nothing interesting to measure with no application.
>>>>>
>>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <martin.h.duke@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> I'm not sure how "performance analysis" is going to function in the
>>>>>> absence of loss recovery or congestion control. An alternate approach to
>>>>>> implementations is to tackle the big performance drivers first, presumably
>>>>>> loss recovery, congestion control, and streaming to prevent HOL blocking.
>>>>>> However, this would run directly opposite to Jana's suggestion to lock down
>>>>>> the wire image to prevent ossification.
>>>>>>
>>>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>>>>>> >
>>>>>>> >
>>>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
>>>>>>> > wrote:
>>>>>>> >>
>>>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>>>>>> >> > I've been thinking about this, and I'm starting to think that we
>>>>>>> >> > should
>>>>>>> >> > cover more ground in the second implementation draft.
>>>>>>> >> >
>>>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely due
>>>>>>> >> > to market
>>>>>>> >> > pressures. The availability of the Chromium implementation makes
>>>>>>> >> > it
>>>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>>>>>>> >> > think we
>>>>>>> >> > need
>>>>>>> >> > to move with some urgency, even if we don't change everything
>>>>>>> >> > about QUIC
>>>>>>> >> > to
>>>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>>>>>>> >> > deployments out
>>>>>>> >> > there. Specifically, I think we should:
>>>>>>> >> > 1. work out the wire-visible invariants and finalize all of
>>>>>>> >> > those for
>>>>>>> >> > the
>>>>>>> >> > second impl draft. We know that there are some middleboxes that
>>>>>>> >> > already
>>>>>>> >> > have
>>>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>>>>>> >> > IETF-QUIC so
>>>>>>> >> > we
>>>>>>> >> > can test that IETF-QUIC is deployable. I fear that the longer we
>>>>>>> >> > take,
>>>>>>> >> > the
>>>>>>> >> > more widespread gQUIC ossification will be.
>>>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>>>>>>> >> > mapping
>>>>>>> >> > over
>>>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>>>>>>> >> > perhaps test
>>>>>>> >> > a
>>>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>>>>>>> >> > performance-oriented things such as full loss recovery and
>>>>>>> >> > congestion
>>>>>>> >> > control to later. This forces us to try and finalize the HTTP
>>>>>>> >> > mapping
>>>>>>> >> > details, which is a good thing, IMO.
>>>>>>> >>
>>>>>>> >> I agree with Jana.
>>>>>>> >>
>>>>>>> >> If we can have some basic HTTP mapping (it can be as basic as
>>>>>>> >> using
>>>>>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
>>>>>>> >> version of QUIC performs well in the field, by comparing its
>>>>>>> >> performance to HTTP over TCP.
>>>>>>> >
>>>>>>> >
>>>>>>> > Interesting idea. One challenge with performance analysis is that
>>>>>>> > it'll be a
>>>>>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
>>>>>>> > (without
>>>>>>> > header compression) against HTTP/2 (with header compression) or
>>>>>>> > HTTP/1.1
>>>>>>> > (over multiple connections).
>>>>>>>
>>>>>>> Agreed.
>>>>>>>
>>>>>>> Though I might argue that collecting metrics of a QUIC implementation
>>>>>>> without header compression could be useful. We can use that as a
>>>>>>> baseline when we formalize QPACK / QCRAM.
>>>>>>>
>>>>>>> --
>>>>>>> Kazuho Oku
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>



-- 
Kazuho Oku


From nobody Fri Jul 14 09:51:05 2017
Return-Path: <martin.h.duke@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 8E323127369 for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 09:51:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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_NONE=-0.0001, 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 ObV9FqZbLjAV for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 09:51:01 -0700 (PDT)
Received: from mail-wr0-x236.google.com (mail-wr0-x236.google.com [IPv6:2a00:1450:400c:c0c::236]) (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 3734A126C22 for <quic@ietf.org>; Fri, 14 Jul 2017 09:51:01 -0700 (PDT)
Received: by mail-wr0-x236.google.com with SMTP id u110so5584628wrb.0 for <quic@ietf.org>; Fri, 14 Jul 2017 09:51:01 -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=h3AyRe6HVwGe0R/0f7qU1FCRxtQvR/L32Cuv9ThKDIs=; b=Cu6zS3qcjempgv2nkl+Hy4UHfTcZzW2LB9tJvvyaLg73lkF5aAs3EsdqrAX0HR42nd ecSli//W/wNTWc8MeW2Yc2DyrQvjHfQBv8SrAN+0NNyrY020/M9AHdsU1r509W6G1gHx E5spwTlJPl3CW2K1fftIEMXoS9akWehQD7A8D/XvAWV5/ChTaCVyJHrBBn7r7tb0eWTN 3d6O1wrJ0tJWhMq8LySoX84B/7gE6MvHVM+t1w2T2BLX9fDv9zHHT1opDk/NOIpiIscA mrXpNIhWJiUEU0K0/rJRA1OWIikMfUixbacfzZ/Vs0lvLfQHPczzRDNb8ftcfVZc4e3w n4Lw==
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=h3AyRe6HVwGe0R/0f7qU1FCRxtQvR/L32Cuv9ThKDIs=; b=kMv5q34Wjh0AKdTECtUJkL5LXxPrusXooBMRFpUkG6NBypYwpqxtzANriqmsR6EGhD TVQFIc1diTrL02R6GHh/ZwMot6uYuEdMuaejnVoM5iipLGzoazH2urzE/kJpvef4Hgoj ENDWmy/tzqI1DvtFl+ulYw/oTZAhxOTQZLDHN2qcCSvYeFldxGVYDrJB20npWyw8a9rS FpuLwxldM08EcGJATMyhk4bb2Ew6hMMxHm28YcqaIHMBCL+APuq5BAyaMKaDwKIh+ber 31fVI84ZCz+aQH2OH5Fk8gAojmxp7cSrrR2OtikQMBUn6zS5dCNDl44Pk/sRE0mQFDcH NlQA==
X-Gm-Message-State: AIVw111m9gCx/I9rlqVnNWReQMCL543hRPTeas+J1oaPMiC4S5F4bwHF xbspMTzE7hkscYHMApMchT0wQOd+EQ==
X-Received: by 10.223.157.35 with SMTP id k35mr4790677wre.156.1500051059711; Fri, 14 Jul 2017 09:50:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Fri, 14 Jul 2017 09:50:58 -0700 (PDT)
In-Reply-To: <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com> <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com> <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Fri, 14 Jul 2017 09:50:58 -0700
Message-ID: <CAM4esxRb4+xMXgL=qNEnQiO53uJXL0AxRFN654N5vxAUj8LQHw@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Ian Swett <ianswett@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="f40304388d0c8f255b055449da8c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/GjgLWkVGZOohOoYVK-IkoUA2Uxg>
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: Fri, 14 Jul 2017 16:51:04 -0000

--f40304388d0c8f255b055449da8c
Content-Type: text/plain; charset="UTF-8"

OK, I understand now. I've added a third option as you described. But I
omitted

Further revisions to mechanisms in the First Implementation Draft (e.g.
changes to the public header format, connection close).

as something that might not be entirely relevant to getting something
deployed, in the interests of reducing scope. If that's a big mistake, let
me know.

On Thu, Jul 13, 2017 at 6:33 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:

> 2017-07-14 9:57 GMT+09:00 Ian Swett <ianswett@google.com>:
> > I think it is an MVP of HTTP over QUIC, and one I believe Google would be
> > willing to deploy at some scale.
> >
> > That's not to say I'm opposed to the other two options, but I have a
> > preference for something I believe can run real applications with
> reasonable
> > performance, even if it's not ideal.
>
> +1.
>
> I agree that think that sending multiple HTTP requests / responses
> over QUIC, with stateless HPACK would be a nicely balanced approach
> that can be used deployed at some scale as well as one that can be
> used for preliminary performance measurements.
>
> > On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke <martin.h.duke@gmail.com>
> > wrote:
> >>
> >> I'm a little concerned that a blend of the strategies leaves us with
> >> something that still allows ossification and isn't quite enough for
> decent
> >> performance testing. But I did add your further clarifications about
> HTTP/2,
> >> and the "at scale" provision.
> >>
> >> Is your option 3 the MVP for something you'd like to do with this
> >> iteration?
> >>
> >> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com> wrote:
> >>>
> >>> Thanks for the update.  I would suggest a third potential option, which
> >>> is a mix of what you have with a small clarification(in bold):
> >>>
> >>> Further revisions to mechanisms in the First Implementation Draft (e.g.
> >>> changes to the public header format, connection close).
> >>>
> >>> Transport Parameter Exchange. At the very least, the four parameters
> >>> specified as MUST in the draft.
> >>>
> >>> Address validation and HelloRetryRequest
> >>>
> >>> An HTTP/2 application to require multiple streams (with stateless HPACK
> >>> compression, no QPACK, QCRAM, etc) and no server push.
> >>>
> >>>
> >>> Any implementations that deploy at any scale must also do:
> >>>
> >>> Loss Recovery beyond the exising 1-RTO retransmissions. (I believe this
> >>> includes a number of concepts that are extensively tested in TCP and
> has low
> >>> interoperability concerns).
> >>>
> >>> Congestion Control
> >>>
> >>>
> >>> The reasoning being that both stateless reset and 0RTT are a fair bit
> of
> >>> work to get right based on my experience, and are not critical to
> having a
> >>> useful QUIC application.
> >>>
> >>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
> >>> wrote:
> >>>>
> >>>> Alright, I updated the second implementation draft significantly.
> >>>>
> >>>> https://github.com/quicwg/base-drafts/wiki/Second-
> Implementation-Draft
> >>>>
> >>>> There are now two strategies: "Lock down the wire image" and "do what
> we
> >>>> need to allow useful performance testing". I much prefer the former
> but it
> >>>> is worth discussing, since people appear to be interested in both.
> >>>>
> >>>> It's also clear (at least to me) that we need to do basic stream
> >>>> life-cycle stuff in either case, so that has moved into the "must
> include"
> >>>> category.
> >>>>
> >>>> Martin
> >>>>
> >>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com>
> wrote:
> >>>>>
> >>>>> Agreed, performance analysis is going to be useless in the absence of
> >>>>> loss recovery and congestion control.  Presumably anyone deploying
> this at
> >>>>> scale would implement the recovery draft in a relatively complete
> manner,
> >>>>> but that doesn't mean everyone has to do it.
> >>>>>
> >>>>> But there's nothing interesting to measure with no application.
> >>>>>
> >>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <
> martin.h.duke@gmail.com>
> >>>>> wrote:
> >>>>>>
> >>>>>> I'm not sure how "performance analysis" is going to function in the
> >>>>>> absence of loss recovery or congestion control. An alternate
> approach to
> >>>>>> implementations is to tackle the big performance drivers first,
> presumably
> >>>>>> loss recovery, congestion control, and streaming to prevent HOL
> blocking.
> >>>>>> However, this would run directly opposite to Jana's suggestion to
> lock down
> >>>>>> the wire image to prevent ossification.
> >>>>>>
> >>>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
> >>>>>> wrote:
> >>>>>>>
> >>>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
> >>>>>>> >
> >>>>>>> >
> >>>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com>
> >>>>>>> > wrote:
> >>>>>>> >>
> >>>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
> >>>>>>> >> > I've been thinking about this, and I'm starting to think that
> we
> >>>>>>> >> > should
> >>>>>>> >> > cover more ground in the second implementation draft.
> >>>>>>> >> >
> >>>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely due
> >>>>>>> >> > to market
> >>>>>>> >> > pressures. The availability of the Chromium implementation
> makes
> >>>>>>> >> > it
> >>>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
> >>>>>>> >> > think we
> >>>>>>> >> > need
> >>>>>>> >> > to move with some urgency, even if we don't change everything
> >>>>>>> >> > about QUIC
> >>>>>>> >> > to
> >>>>>>> >> > make it perfect, so that we can start getting IETF QUIC
> >>>>>>> >> > deployments out
> >>>>>>> >> > there. Specifically, I think we should:
> >>>>>>> >> > 1. work out the wire-visible invariants and finalize all of
> >>>>>>> >> > those for
> >>>>>>> >> > the
> >>>>>>> >> > second impl draft. We know that there are some middleboxes
> that
> >>>>>>> >> > already
> >>>>>>> >> > have
> >>>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
> >>>>>>> >> > IETF-QUIC so
> >>>>>>> >> > we
> >>>>>>> >> > can test that IETF-QUIC is deployable. I fear that the longer
> we
> >>>>>>> >> > take,
> >>>>>>> >> > the
> >>>>>>> >> > more widespread gQUIC ossification will be.
> >>>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
> >>>>>>> >> > mapping
> >>>>>>> >> > over
> >>>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
> >>>>>>> >> > perhaps test
> >>>>>>> >> > a
> >>>>>>> >> > basic HTTP request-response over QUIC. We can still punt
> >>>>>>> >> > performance-oriented things such as full loss recovery and
> >>>>>>> >> > congestion
> >>>>>>> >> > control to later. This forces us to try and finalize the HTTP
> >>>>>>> >> > mapping
> >>>>>>> >> > details, which is a good thing, IMO.
> >>>>>>> >>
> >>>>>>> >> I agree with Jana.
> >>>>>>> >>
> >>>>>>> >> If we can have some basic HTTP mapping (it can be as basic as
> >>>>>>> >> using
> >>>>>>> >> HTTP/1.0 over each stream), we can use that to test how the IETF
> >>>>>>> >> version of QUIC performs well in the field, by comparing its
> >>>>>>> >> performance to HTTP over TCP.
> >>>>>>> >
> >>>>>>> >
> >>>>>>> > Interesting idea. One challenge with performance analysis is that
> >>>>>>> > it'll be a
> >>>>>>> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1
> >>>>>>> > (without
> >>>>>>> > header compression) against HTTP/2 (with header compression) or
> >>>>>>> > HTTP/1.1
> >>>>>>> > (over multiple connections).
> >>>>>>>
> >>>>>>> Agreed.
> >>>>>>>
> >>>>>>> Though I might argue that collecting metrics of a QUIC
> implementation
> >>>>>>> without header compression could be useful. We can use that as a
> >>>>>>> baseline when we formalize QPACK / QCRAM.
> >>>>>>>
> >>>>>>> --
> >>>>>>> Kazuho Oku
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>
>
>
> --
> Kazuho Oku
>

--f40304388d0c8f255b055449da8c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">OK, I understand now. I&#39;ve added a third option as you=
 described. But I omitted=C2=A0<div><br></div><div><span style=3D"color:rgb=
(36,41,46);font-family:-apple-system,system-ui,&quot;Segoe UI&quot;,Helveti=
ca,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot=
;,&quot;Segoe UI Symbol&quot;;font-size:16px">Further revisions to mechanis=
ms in the First Implementation Draft (e.g. changes to the public header for=
mat, connection close).</span><br></div><div><br></div><div>as something th=
at might not be entirely relevant to getting something deployed, in the int=
erests of reducing scope. If that&#39;s a big mistake, let me know.</div></=
div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Thu, Jul 1=
3, 2017 at 6:33 PM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"mailto:kazu=
hooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt;</span> wrote=
:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex"><span class=3D"">2017-07-14 9:57 GMT+09=
:00 Ian Swett &lt;<a href=3D"mailto:ianswett@google.com">ianswett@google.co=
m</a>&gt;:<br>
&gt; I think it is an MVP of HTTP over QUIC, and one I believe Google would=
 be<br>
&gt; willing to deploy at some scale.<br>
&gt;<br>
&gt; That&#39;s not to say I&#39;m opposed to the other two options, but I =
have a<br>
&gt; preference for something I believe can run real applications with reas=
onable<br>
&gt; performance, even if it&#39;s not ideal.<br>
<br>
</span>+1.<br>
<br>
I agree that think that sending multiple HTTP requests / responses<br>
over QUIC, with stateless HPACK would be a nicely balanced approach<br>
that can be used deployed at some scale as well as one that can be<br>
used for preliminary performance measurements.<br>
<div class=3D"HOEnZb"><div class=3D"h5"><br>
&gt; On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke &lt;<a href=3D"mailto:mar=
tin.h.duke@gmail.com">martin.h.duke@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m a little concerned that a blend of the strategies leaves u=
s with<br>
&gt;&gt; something that still allows ossification and isn&#39;t quite enoug=
h for decent<br>
&gt;&gt; performance testing. But I did add your further clarifications abo=
ut HTTP/2,<br>
&gt;&gt; and the &quot;at scale&quot; provision.<br>
&gt;&gt;<br>
&gt;&gt; Is your option 3 the MVP for something you&#39;d like to do with t=
his<br>
&gt;&gt; iteration?<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett &lt;<a href=3D"mailto:i=
answett@google.com">ianswett@google.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks for the update.=C2=A0 I would suggest a third potential=
 option, which<br>
&gt;&gt;&gt; is a mix of what you have with a small clarification(in bold):=
<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Further revisions to mechanisms in the First Implementation Dr=
aft (e.g.<br>
&gt;&gt;&gt; changes to the public header format, connection close).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Transport Parameter Exchange. At the very least, the four para=
meters<br>
&gt;&gt;&gt; specified as MUST in the draft.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Address validation and HelloRetryRequest<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; An HTTP/2 application to require multiple streams (with statel=
ess HPACK<br>
&gt;&gt;&gt; compression, no QPACK, QCRAM, etc) and no server push.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any implementations that deploy at any scale must also do:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Loss Recovery beyond the exising 1-RTO retransmissions. (I bel=
ieve this<br>
&gt;&gt;&gt; includes a number of concepts that are extensively tested in T=
CP and has low<br>
&gt;&gt;&gt; interoperability concerns).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Congestion Control<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The reasoning being that both stateless reset and 0RTT are a f=
air bit of<br>
&gt;&gt;&gt; work to get right based on my experience, and are not critical=
 to having a<br>
&gt;&gt;&gt; useful QUIC application.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke &lt;<a href=3D"ma=
ilto:martin.h.duke@gmail.com">martin.h.duke@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Alright, I updated the second implementation draft signifi=
cantly.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href=3D"https://github.com/quicwg/base-drafts/wiki/Seco=
nd-Implementation-Draft" rel=3D"noreferrer" target=3D"_blank">https://githu=
b.com/quicwg/<wbr>base-drafts/wiki/Second-<wbr>Implementation-Draft</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; There are now two strategies: &quot;Lock down the wire ima=
ge&quot; and &quot;do what we<br>
&gt;&gt;&gt;&gt; need to allow useful performance testing&quot;. I much pre=
fer the former but it<br>
&gt;&gt;&gt;&gt; is worth discussing, since people appear to be interested =
in both.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It&#39;s also clear (at least to me) that we need to do ba=
sic stream<br>
&gt;&gt;&gt;&gt; life-cycle stuff in either case, so that has moved into th=
e &quot;must include&quot;<br>
&gt;&gt;&gt;&gt; category.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Martin<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett &lt;<a href=3D"=
mailto:ianswett@google.com">ianswett@google.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Agreed, performance analysis is going to be useless in=
 the absence of<br>
&gt;&gt;&gt;&gt;&gt; loss recovery and congestion control.=C2=A0 Presumably=
 anyone deploying this at<br>
&gt;&gt;&gt;&gt;&gt; scale would implement the recovery draft in a relative=
ly complete manner,<br>
&gt;&gt;&gt;&gt;&gt; but that doesn&#39;t mean everyone has to do it.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; But there&#39;s nothing interesting to measure with no=
 application.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke &lt;<a h=
ref=3D"mailto:martin.h.duke@gmail.com">martin.h.duke@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I&#39;m not sure how &quot;performance analysis&qu=
ot; is going to function in the<br>
&gt;&gt;&gt;&gt;&gt;&gt; absence of loss recovery or congestion control. An=
 alternate approach to<br>
&gt;&gt;&gt;&gt;&gt;&gt; implementations is to tackle the big performance d=
rivers first, presumably<br>
&gt;&gt;&gt;&gt;&gt;&gt; loss recovery, congestion control, and streaming t=
o prevent HOL blocking.<br>
&gt;&gt;&gt;&gt;&gt;&gt; However, this would run directly opposite to Jana&=
#39;s suggestion to lock down<br>
&gt;&gt;&gt;&gt;&gt;&gt; the wire image to prevent ossification.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku &lt;<=
a href=3D"mailto:kazuhooku@gmail.com">kazuhooku@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<=
a href=3D"mailto:rch@google.com">rch@google.com</a>&gt;:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Ok=
u &lt;<a href=3D"mailto:kazuhooku@gmail.com">kazuhooku@gmail.com</a>&gt;<br=
>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyenga=
r &lt;<a href=3D"mailto:jri@google.com">jri@google.com</a>&gt;:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve been thinking about thi=
s, and I&#39;m starting to think that we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; should<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; cover more ground in the second =
implementation draft.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;m hearing about increasing=
 deployments of gQUIC, largely due<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to market<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; pressures. The availability of t=
he Chromium implementation makes<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; it<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; particularly easy for folks to d=
eploy QUIC with that code. I<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; think we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; need<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to move with some urgency, even =
if we don&#39;t change everything<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; about QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; make it perfect, so that we can =
start getting IETF QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; deployments out<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; there. Specifically, I think we =
should:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 1. work out the wire-visible inv=
ariants and finalize all of<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; those for<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; second impl draft. We know that =
there are some middleboxes that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; already<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; have<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; classifiers for gQUIC, and we ne=
ed to move quickly and push<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; IETF-QUIC so<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; can test that IETF-QUIC is deplo=
yable. I fear that the longer we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; take,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; more widespread gQUIC ossificati=
on will be.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 2. allow impls to make serious p=
rogress towards a basic HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; over<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; QUIC. We can punt on header comp=
ression (QPACK/QCRAM), but<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; perhaps test<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; basic HTTP request-response over=
 QUIC. We can still punt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; performance-oriented things such=
 as full loss recovery and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; congestion<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; control to later. This forces us=
 to try and finalize the HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; details, which is a good thing, =
IMO.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; I agree with Jana.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; If we can have some basic HTTP mappin=
g (it can be as basic as<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; using<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; HTTP/1.0 over each stream), we can us=
e that to test how the IETF<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; version of QUIC performs well in the =
field, by comparing its<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; performance to HTTP over TCP.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Interesting idea. One challenge with perf=
ormance analysis is that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; it&#39;ll be a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; bit of an apples to oranges comparison. Q=
UIC will be doing HTTP/1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (without<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; header compression) against HTTP/2 (with =
header compression) or<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; HTTP/1.1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (over multiple connections).<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Agreed.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Though I might argue that collecting metrics o=
f a QUIC implementation<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; without header compression could be useful. We=
 can use that as a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; baseline when we formalize QPACK / QCRAM.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Kazuho Oku<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><span class=3D"HOEnZb"><font color=3D"#888888">--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>

--f40304388d0c8f255b055449da8c--


From nobody Fri Jul 14 10:01:50 2017
Return-Path: <ianswett@google.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 EE2D1126C22 for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 10:01:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level: 
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 YiZwg5W9UjF5 for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 10:01:46 -0700 (PDT)
Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (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 A94B6128B8D for <quic@ietf.org>; Fri, 14 Jul 2017 10:01:46 -0700 (PDT)
Received: by mail-yw0-x236.google.com with SMTP id v193so27813843ywg.2 for <quic@ietf.org>; Fri, 14 Jul 2017 10:01:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=e4KWom71KBYE9z606zkTd+xc0T9kIGLDeZGtWbTVVP0=; b=QHGLeUqzQuM7HrYFVBABms34sjkSl4KfzsyPiBCKl1Hgb9oH+jSAt5GnQkTFhBfKq1 I6qjJJNUK04dlgYQ+tPrJ1VkwPj+tZDeGZHHb06YtdeiS2ak8F+opb1BZi8HANJFmLTy jqFxXWUr5aEepAbc4RrEvB8lU6bcCN5j/SVz7Ja2Kt5VV9Z3nmQ/D9Dy3sG8B6iEiRyt PBZrABDsmLSRheKF2tXbbn7amqe8P52ja2rAVKcIwPTGwT6dLOcsIr8PDOygUz9msTYw OqIzcEXv7CeTaCncMqecMHwa5GpzBG64A/jdpsRJtqNG6SyZVpZVyRLs5Y4vo1haD8aI LdGg==
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=e4KWom71KBYE9z606zkTd+xc0T9kIGLDeZGtWbTVVP0=; b=t/Syv1ndFwt6Vc3ammmc68r8pRn3E+jWw7xp2H0Gc0VR6JdpSaXao8XqwlASXC5VFB IkzvnhLKi/MBBpEb5mhjZKJxlP5A0jwaOEdaOFP84xssU8S/smiuzKwOheQxi5OAnuSl epL5UrheNrtP23hzl7334IOCFXF+W/Tx9P+YZ9ZMnJMrUQPu0SnAIIefPFwbPYXF+JxB +MGMRz+U9s0TDiyBZkkctbtRl49Ga8X4BmPuddUBLv0cus6N9GB47QwtPJpOHcd0/2Q2 mrRAnyNbmjIaeEkhX/mDMpOHt0IUOhipJ5BKJ+Pjf4f3Ancglwo9cGJv/I5KknKp8klp C8AA==
X-Gm-Message-State: AIVw110kyJrBCAESDF3DiZ7eKtUxvej9y2TX8d9jS9GU0624MIkXCkAd yfcEmKV04XqWYS4Tt6VT3Tvp2cjZAKS5
X-Received: by 10.129.220.5 with SMTP id h5mr7495687ywj.224.1500051705589; Fri, 14 Jul 2017 10:01:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Fri, 14 Jul 2017 10:01:24 -0700 (PDT)
In-Reply-To: <CAM4esxRb4+xMXgL=qNEnQiO53uJXL0AxRFN654N5vxAUj8LQHw@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com> <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com> <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com> <CAM4esxRb4+xMXgL=qNEnQiO53uJXL0AxRFN654N5vxAUj8LQHw@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Fri, 14 Jul 2017 13:01:24 -0400
Message-ID: <CAKcm_gNJYjWFmsakw3vgXMjvbsHzcJwOuOXff3kR3MJNSX3aCQ@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="089e08221a980f4c4205544a01f5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/V6ReT2ta_CEzJx94W1Qfzm9P2QU>
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: Fri, 14 Jul 2017 17:01:49 -0000

--089e08221a980f4c4205544a01f5
Content-Type: text/plain; charset="UTF-8"

Thanks Martin!

On Fri, Jul 14, 2017 at 12:50 PM, Martin Duke <martin.h.duke@gmail.com>
wrote:

> OK, I understand now. I've added a third option as you described. But I
> omitted
>
> Further revisions to mechanisms in the First Implementation Draft (e.g.
> changes to the public header format, connection close).
>
> as something that might not be entirely relevant to getting something
> deployed, in the interests of reducing scope. If that's a big mistake, let
> me know.
>
> On Thu, Jul 13, 2017 at 6:33 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
>
>> 2017-07-14 9:57 GMT+09:00 Ian Swett <ianswett@google.com>:
>> > I think it is an MVP of HTTP over QUIC, and one I believe Google would
>> be
>> > willing to deploy at some scale.
>> >
>> > That's not to say I'm opposed to the other two options, but I have a
>> > preference for something I believe can run real applications with
>> reasonable
>> > performance, even if it's not ideal.
>>
>> +1.
>>
>> I agree that think that sending multiple HTTP requests / responses
>> over QUIC, with stateless HPACK would be a nicely balanced approach
>> that can be used deployed at some scale as well as one that can be
>> used for preliminary performance measurements.
>>
>> > On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke <martin.h.duke@gmail.com>
>> > wrote:
>> >>
>> >> I'm a little concerned that a blend of the strategies leaves us with
>> >> something that still allows ossification and isn't quite enough for
>> decent
>> >> performance testing. But I did add your further clarifications about
>> HTTP/2,
>> >> and the "at scale" provision.
>> >>
>> >> Is your option 3 the MVP for something you'd like to do with this
>> >> iteration?
>> >>
>> >> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com>
>> wrote:
>> >>>
>> >>> Thanks for the update.  I would suggest a third potential option,
>> which
>> >>> is a mix of what you have with a small clarification(in bold):
>> >>>
>> >>> Further revisions to mechanisms in the First Implementation Draft
>> (e.g.
>> >>> changes to the public header format, connection close).
>> >>>
>> >>> Transport Parameter Exchange. At the very least, the four parameters
>> >>> specified as MUST in the draft.
>> >>>
>> >>> Address validation and HelloRetryRequest
>> >>>
>> >>> An HTTP/2 application to require multiple streams (with stateless
>> HPACK
>> >>> compression, no QPACK, QCRAM, etc) and no server push.
>> >>>
>> >>>
>> >>> Any implementations that deploy at any scale must also do:
>> >>>
>> >>> Loss Recovery beyond the exising 1-RTO retransmissions. (I believe
>> this
>> >>> includes a number of concepts that are extensively tested in TCP and
>> has low
>> >>> interoperability concerns).
>> >>>
>> >>> Congestion Control
>> >>>
>> >>>
>> >>> The reasoning being that both stateless reset and 0RTT are a fair bit
>> of
>> >>> work to get right based on my experience, and are not critical to
>> having a
>> >>> useful QUIC application.
>> >>>
>> >>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com
>> >
>> >>> wrote:
>> >>>>
>> >>>> Alright, I updated the second implementation draft significantly.
>> >>>>
>> >>>> https://github.com/quicwg/base-drafts/wiki/Second-Implementa
>> tion-Draft
>> >>>>
>> >>>> There are now two strategies: "Lock down the wire image" and "do
>> what we
>> >>>> need to allow useful performance testing". I much prefer the former
>> but it
>> >>>> is worth discussing, since people appear to be interested in both.
>> >>>>
>> >>>> It's also clear (at least to me) that we need to do basic stream
>> >>>> life-cycle stuff in either case, so that has moved into the "must
>> include"
>> >>>> category.
>> >>>>
>> >>>> Martin
>> >>>>
>> >>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com>
>> wrote:
>> >>>>>
>> >>>>> Agreed, performance analysis is going to be useless in the absence
>> of
>> >>>>> loss recovery and congestion control.  Presumably anyone deploying
>> this at
>> >>>>> scale would implement the recovery draft in a relatively complete
>> manner,
>> >>>>> but that doesn't mean everyone has to do it.
>> >>>>>
>> >>>>> But there's nothing interesting to measure with no application.
>> >>>>>
>> >>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <
>> martin.h.duke@gmail.com>
>> >>>>> wrote:
>> >>>>>>
>> >>>>>> I'm not sure how "performance analysis" is going to function in the
>> >>>>>> absence of loss recovery or congestion control. An alternate
>> approach to
>> >>>>>> implementations is to tackle the big performance drivers first,
>> presumably
>> >>>>>> loss recovery, congestion control, and streaming to prevent HOL
>> blocking.
>> >>>>>> However, this would run directly opposite to Jana's suggestion to
>> lock down
>> >>>>>> the wire image to prevent ossification.
>> >>>>>>
>> >>>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>> >>>>>> wrote:
>> >>>>>>>
>> >>>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>> >>>>>>> >
>> >>>>>>> >
>> >>>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com
>> >
>> >>>>>>> > wrote:
>> >>>>>>> >>
>> >>>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>> >>>>>>> >> > I've been thinking about this, and I'm starting to think
>> that we
>> >>>>>>> >> > should
>> >>>>>>> >> > cover more ground in the second implementation draft.
>> >>>>>>> >> >
>> >>>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely
>> due
>> >>>>>>> >> > to market
>> >>>>>>> >> > pressures. The availability of the Chromium implementation
>> makes
>> >>>>>>> >> > it
>> >>>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>> >>>>>>> >> > think we
>> >>>>>>> >> > need
>> >>>>>>> >> > to move with some urgency, even if we don't change everything
>> >>>>>>> >> > about QUIC
>> >>>>>>> >> > to
>> >>>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>> >>>>>>> >> > deployments out
>> >>>>>>> >> > there. Specifically, I think we should:
>> >>>>>>> >> > 1. work out the wire-visible invariants and finalize all of
>> >>>>>>> >> > those for
>> >>>>>>> >> > the
>> >>>>>>> >> > second impl draft. We know that there are some middleboxes
>> that
>> >>>>>>> >> > already
>> >>>>>>> >> > have
>> >>>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>> >>>>>>> >> > IETF-QUIC so
>> >>>>>>> >> > we
>> >>>>>>> >> > can test that IETF-QUIC is deployable. I fear that the
>> longer we
>> >>>>>>> >> > take,
>> >>>>>>> >> > the
>> >>>>>>> >> > more widespread gQUIC ossification will be.
>> >>>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>> >>>>>>> >> > mapping
>> >>>>>>> >> > over
>> >>>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>> >>>>>>> >> > perhaps test
>> >>>>>>> >> > a
>> >>>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>> >>>>>>> >> > performance-oriented things such as full loss recovery and
>> >>>>>>> >> > congestion
>> >>>>>>> >> > control to later. This forces us to try and finalize the HTTP
>> >>>>>>> >> > mapping
>> >>>>>>> >> > details, which is a good thing, IMO.
>> >>>>>>> >>
>> >>>>>>> >> I agree with Jana.
>> >>>>>>> >>
>> >>>>>>> >> If we can have some basic HTTP mapping (it can be as basic as
>> >>>>>>> >> using
>> >>>>>>> >> HTTP/1.0 over each stream), we can use that to test how the
>> IETF
>> >>>>>>> >> version of QUIC performs well in the field, by comparing its
>> >>>>>>> >> performance to HTTP over TCP.
>> >>>>>>> >
>> >>>>>>> >
>> >>>>>>> > Interesting idea. One challenge with performance analysis is
>> that
>> >>>>>>> > it'll be a
>> >>>>>>> > bit of an apples to oranges comparison. QUIC will be doing
>> HTTP/1
>> >>>>>>> > (without
>> >>>>>>> > header compression) against HTTP/2 (with header compression) or
>> >>>>>>> > HTTP/1.1
>> >>>>>>> > (over multiple connections).
>> >>>>>>>
>> >>>>>>> Agreed.
>> >>>>>>>
>> >>>>>>> Though I might argue that collecting metrics of a QUIC
>> implementation
>> >>>>>>> without header compression could be useful. We can use that as a
>> >>>>>>> baseline when we formalize QPACK / QCRAM.
>> >>>>>>>
>> >>>>>>> --
>> >>>>>>> Kazuho Oku
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >
>>
>>
>>
>> --
>> Kazuho Oku
>>
>
>

--089e08221a980f4c4205544a01f5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks Martin!</div><div class=3D"gmail_extra"><br><div cl=
ass=3D"gmail_quote">On Fri, Jul 14, 2017 at 12:50 PM, Martin Duke <span dir=
=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">m=
artin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex"><div dir=3D"ltr">OK, I understand now. I&#39;ve added a third option as=
 you described. But I omitted=C2=A0<span class=3D""><div><br></div><div><sp=
an style=3D"color:rgb(36,41,46);font-family:-apple-system,system-ui,&quot;S=
egoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quo=
t;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px">Further =
revisions to mechanisms in the First Implementation Draft (e.g. changes to =
the public header format, connection close).</span><br></div><div><br></div=
></span><div>as something that might not be entirely relevant to getting so=
mething deployed, in the interests of reducing scope. If that&#39;s a big m=
istake, let me know.</div></div><div class=3D"HOEnZb"><div class=3D"h5"><di=
v class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Thu, Jul 13, 2017=
 at 6:33 PM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"mailto:kazuhooku@g=
mail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt;</span> wrote:<br><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex"><span>2017-07-14 9:57 GMT+09:00 Ian Swett &lt;=
<a href=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google.co=
m</a>&gt;:<br>
&gt; I think it is an MVP of HTTP over QUIC, and one I believe Google would=
 be<br>
&gt; willing to deploy at some scale.<br>
&gt;<br>
&gt; That&#39;s not to say I&#39;m opposed to the other two options, but I =
have a<br>
&gt; preference for something I believe can run real applications with reas=
onable<br>
&gt; performance, even if it&#39;s not ideal.<br>
<br>
</span>+1.<br>
<br>
I agree that think that sending multiple HTTP requests / responses<br>
over QUIC, with stateless HPACK would be a nicely balanced approach<br>
that can be used deployed at some scale as well as one that can be<br>
used for preliminary performance measurements.<br>
<div class=3D"m_1766850723993538285HOEnZb"><div class=3D"m_1766850723993538=
285h5"><br>
&gt; On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke &lt;<a href=3D"mailto:mar=
tin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m a little concerned that a blend of the strategies leaves u=
s with<br>
&gt;&gt; something that still allows ossification and isn&#39;t quite enoug=
h for decent<br>
&gt;&gt; performance testing. But I did add your further clarifications abo=
ut HTTP/2,<br>
&gt;&gt; and the &quot;at scale&quot; provision.<br>
&gt;&gt;<br>
&gt;&gt; Is your option 3 the MVP for something you&#39;d like to do with t=
his<br>
&gt;&gt; iteration?<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett &lt;<a href=3D"mailto:i=
answett@google.com" target=3D"_blank">ianswett@google.com</a>&gt; wrote:<br=
>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks for the update.=C2=A0 I would suggest a third potential=
 option, which<br>
&gt;&gt;&gt; is a mix of what you have with a small clarification(in bold):=
<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Further revisions to mechanisms in the First Implementation Dr=
aft (e.g.<br>
&gt;&gt;&gt; changes to the public header format, connection close).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Transport Parameter Exchange. At the very least, the four para=
meters<br>
&gt;&gt;&gt; specified as MUST in the draft.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Address validation and HelloRetryRequest<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; An HTTP/2 application to require multiple streams (with statel=
ess HPACK<br>
&gt;&gt;&gt; compression, no QPACK, QCRAM, etc) and no server push.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any implementations that deploy at any scale must also do:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Loss Recovery beyond the exising 1-RTO retransmissions. (I bel=
ieve this<br>
&gt;&gt;&gt; includes a number of concepts that are extensively tested in T=
CP and has low<br>
&gt;&gt;&gt; interoperability concerns).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Congestion Control<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The reasoning being that both stateless reset and 0RTT are a f=
air bit of<br>
&gt;&gt;&gt; work to get right based on my experience, and are not critical=
 to having a<br>
&gt;&gt;&gt; useful QUIC application.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke &lt;<a href=3D"ma=
ilto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>=
&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Alright, I updated the second implementation draft signifi=
cantly.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href=3D"https://github.com/quicwg/base-drafts/wiki/Seco=
nd-Implementation-Draft" rel=3D"noreferrer" target=3D"_blank">https://githu=
b.com/quicwg/base<wbr>-drafts/wiki/Second-Implementa<wbr>tion-Draft</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; There are now two strategies: &quot;Lock down the wire ima=
ge&quot; and &quot;do what we<br>
&gt;&gt;&gt;&gt; need to allow useful performance testing&quot;. I much pre=
fer the former but it<br>
&gt;&gt;&gt;&gt; is worth discussing, since people appear to be interested =
in both.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It&#39;s also clear (at least to me) that we need to do ba=
sic stream<br>
&gt;&gt;&gt;&gt; life-cycle stuff in either case, so that has moved into th=
e &quot;must include&quot;<br>
&gt;&gt;&gt;&gt; category.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Martin<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett &lt;<a href=3D"=
mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>&gt; w=
rote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Agreed, performance analysis is going to be useless in=
 the absence of<br>
&gt;&gt;&gt;&gt;&gt; loss recovery and congestion control.=C2=A0 Presumably=
 anyone deploying this at<br>
&gt;&gt;&gt;&gt;&gt; scale would implement the recovery draft in a relative=
ly complete manner,<br>
&gt;&gt;&gt;&gt;&gt; but that doesn&#39;t mean everyone has to do it.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; But there&#39;s nothing interesting to measure with no=
 application.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke &lt;<a h=
ref=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmai=
l.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I&#39;m not sure how &quot;performance analysis&qu=
ot; is going to function in the<br>
&gt;&gt;&gt;&gt;&gt;&gt; absence of loss recovery or congestion control. An=
 alternate approach to<br>
&gt;&gt;&gt;&gt;&gt;&gt; implementations is to tackle the big performance d=
rivers first, presumably<br>
&gt;&gt;&gt;&gt;&gt;&gt; loss recovery, congestion control, and streaming t=
o prevent HOL blocking.<br>
&gt;&gt;&gt;&gt;&gt;&gt; However, this would run directly opposite to Jana&=
#39;s suggestion to lock down<br>
&gt;&gt;&gt;&gt;&gt;&gt; the wire image to prevent ossification.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku &lt;<=
a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com=
</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<=
a href=3D"mailto:rch@google.com" target=3D"_blank">rch@google.com</a>&gt;:<=
br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Ok=
u &lt;<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gm=
ail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyenga=
r &lt;<a href=3D"mailto:jri@google.com" target=3D"_blank">jri@google.com</a=
>&gt;:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve been thinking about thi=
s, and I&#39;m starting to think that we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; should<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; cover more ground in the second =
implementation draft.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;m hearing about increasing=
 deployments of gQUIC, largely due<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to market<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; pressures. The availability of t=
he Chromium implementation makes<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; it<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; particularly easy for folks to d=
eploy QUIC with that code. I<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; think we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; need<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to move with some urgency, even =
if we don&#39;t change everything<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; about QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; make it perfect, so that we can =
start getting IETF QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; deployments out<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; there. Specifically, I think we =
should:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 1. work out the wire-visible inv=
ariants and finalize all of<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; those for<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; second impl draft. We know that =
there are some middleboxes that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; already<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; have<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; classifiers for gQUIC, and we ne=
ed to move quickly and push<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; IETF-QUIC so<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; can test that IETF-QUIC is deplo=
yable. I fear that the longer we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; take,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; more widespread gQUIC ossificati=
on will be.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 2. allow impls to make serious p=
rogress towards a basic HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; over<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; QUIC. We can punt on header comp=
ression (QPACK/QCRAM), but<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; perhaps test<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; basic HTTP request-response over=
 QUIC. We can still punt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; performance-oriented things such=
 as full loss recovery and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; congestion<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; control to later. This forces us=
 to try and finalize the HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; details, which is a good thing, =
IMO.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; I agree with Jana.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; If we can have some basic HTTP mappin=
g (it can be as basic as<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; using<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; HTTP/1.0 over each stream), we can us=
e that to test how the IETF<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; version of QUIC performs well in the =
field, by comparing its<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; performance to HTTP over TCP.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Interesting idea. One challenge with perf=
ormance analysis is that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; it&#39;ll be a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; bit of an apples to oranges comparison. Q=
UIC will be doing HTTP/1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (without<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; header compression) against HTTP/2 (with =
header compression) or<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; HTTP/1.1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (over multiple connections).<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Agreed.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Though I might argue that collecting metrics o=
f a QUIC implementation<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; without header compression could be useful. We=
 can use that as a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; baseline when we formalize QPACK / QCRAM.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Kazuho Oku<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><span class=3D"m_1766850723993538285HOEnZb"><font color=3D"#888=
888">--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--089e08221a980f4c4205544a01f5--


From nobody Fri Jul 14 10:45:59 2017
Return-Path: <ekr@rtfm.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 E297C131756 for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 10:45:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 eT18VrH8NVyI for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 10:45:53 -0700 (PDT)
Received: from mail-yw0-x229.google.com (mail-yw0-x229.google.com [IPv6:2607:f8b0:4002:c05::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 16ABC131760 for <quic@ietf.org>; Fri, 14 Jul 2017 10:45:53 -0700 (PDT)
Received: by mail-yw0-x229.google.com with SMTP id a12so28225150ywh.3 for <quic@ietf.org>; Fri, 14 Jul 2017 10:45:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=+fS4wyD9YfVtMaGnCF/pmfB7LFU1xOUQAani5svvKBg=; b=bYBHkKIZMCkefEy60AIerGzGiQUfatzvv2mpV5YEvdSkySIr1E22L1WF4YKaQot6Aj nW34rSfOj+s0n4ksY4XKZagFDmri8jBBn5BtOXUTOKwoRWcu78i1d5GDF35dHGmzdLMB DJK2Bdh4meLHLXxolwo9YXnY3OOBXo7uGVTHuQiZ+FE65RRq6T0yllhpv4CEsifWFtU6 +dOpu6EAevh45mJGrYZkinye80AtaTg8GvPMR7h4U1WAIhTwzbcyQsR0d3z4i36tcOHy a12lOodTDfaRgl1VAlnuDEhFb8AZTaNCw2CoW4q3AMQ7CHKuE2M63PuArgf5WdH6AAQA aXJw==
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=+fS4wyD9YfVtMaGnCF/pmfB7LFU1xOUQAani5svvKBg=; b=KwkwUbSa9GVhEqCtGCrpwq0sPKAVKxD8PKMgZ3Bx9xGHZ62dpETdZstzL8eZpgXe4j TQMRqtDv2OByZQ9Y2t27ZJvgeWu5uE4NuhfxD2SN4SUUN0YdvNV8d4E/4la0KpEqbw/L 65Rb9NEpO0Ng33QAoDmdvjV6BxhgZ8phUvFH+K1aiIQOQNGdNuQMHLw15+LYyIhxHfSl uj2s2fj7vhn+FNzWeXB/dt7oQbRTJxS2mLSGTINn3eleJAKy7mEhXQm8Mv++VCnccmLN VepjmExGduirm6ulKJSLMJYPlsg1Exu6EcjUCOI7XcqMrRiKh1g/zX4raXphTYt3iSTX WV7g==
X-Gm-Message-State: AIVw110aTwSJwTAbp8FtKijOhEAhHV6gBx0LiBFcIg/3WXtqjv9X8Hb8 KjzuQVMZ8+QlXYUulJrXhubwpdG9B3SG
X-Received: by 10.13.213.77 with SMTP id x74mr6814333ywd.311.1500054352283; Fri, 14 Jul 2017 10:45:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.215.9 with HTTP; Fri, 14 Jul 2017 10:45:11 -0700 (PDT)
In-Reply-To: <CAM4esxRb4+xMXgL=qNEnQiO53uJXL0AxRFN654N5vxAUj8LQHw@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com> <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com> <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com> <CAM4esxRb4+xMXgL=qNEnQiO53uJXL0AxRFN654N5vxAUj8LQHw@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Fri, 14 Jul 2017 10:45:11 -0700
Message-ID: <CABcZeBMKdT4L1O85whgLTZ1sK5dBUk8D+TSdxBVN2z8S1UoEFQ@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Martin Duke <martin.h.duke@gmail.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, Ian Swett <ianswett@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a114fa1b8cffa1e05544a9e11"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/VZ1sxMu53u9wmNmd5zpFVZ8_foA>
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: Fri, 14 Jul 2017 17:45:56 -0000

--001a114fa1b8cffa1e05544a9e11
Content-Type: text/plain; charset="UTF-8"

I think it would be good to declare another "implementation draft" very
soon, with roughly the contents of -05. What I see people doing now is some
mix of -04 and -05(pre), and informally coordinating. It would probably be
easier if we just published -05 and said "do -05". I totally don't care if
we call it the second implementation draft or the first implementation
draft bis or anything else.

-Ekr


On Fri, Jul 14, 2017 at 9:50 AM, Martin Duke <martin.h.duke@gmail.com>
wrote:

> OK, I understand now. I've added a third option as you described. But I
> omitted
>
> Further revisions to mechanisms in the First Implementation Draft (e.g.
> changes to the public header format, connection close).
>
> as something that might not be entirely relevant to getting something
> deployed, in the interests of reducing scope. If that's a big mistake, let
> me know.
>
> On Thu, Jul 13, 2017 at 6:33 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
>
>> 2017-07-14 9:57 GMT+09:00 Ian Swett <ianswett@google.com>:
>> > I think it is an MVP of HTTP over QUIC, and one I believe Google would
>> be
>> > willing to deploy at some scale.
>> >
>> > That's not to say I'm opposed to the other two options, but I have a
>> > preference for something I believe can run real applications with
>> reasonable
>> > performance, even if it's not ideal.
>>
>> +1.
>>
>> I agree that think that sending multiple HTTP requests / responses
>> over QUIC, with stateless HPACK would be a nicely balanced approach
>> that can be used deployed at some scale as well as one that can be
>> used for preliminary performance measurements.
>>
>> > On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke <martin.h.duke@gmail.com>
>> > wrote:
>> >>
>> >> I'm a little concerned that a blend of the strategies leaves us with
>> >> something that still allows ossification and isn't quite enough for
>> decent
>> >> performance testing. But I did add your further clarifications about
>> HTTP/2,
>> >> and the "at scale" provision.
>> >>
>> >> Is your option 3 the MVP for something you'd like to do with this
>> >> iteration?
>> >>
>> >> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com>
>> wrote:
>> >>>
>> >>> Thanks for the update.  I would suggest a third potential option,
>> which
>> >>> is a mix of what you have with a small clarification(in bold):
>> >>>
>> >>> Further revisions to mechanisms in the First Implementation Draft
>> (e.g.
>> >>> changes to the public header format, connection close).
>> >>>
>> >>> Transport Parameter Exchange. At the very least, the four parameters
>> >>> specified as MUST in the draft.
>> >>>
>> >>> Address validation and HelloRetryRequest
>> >>>
>> >>> An HTTP/2 application to require multiple streams (with stateless
>> HPACK
>> >>> compression, no QPACK, QCRAM, etc) and no server push.
>> >>>
>> >>>
>> >>> Any implementations that deploy at any scale must also do:
>> >>>
>> >>> Loss Recovery beyond the exising 1-RTO retransmissions. (I believe
>> this
>> >>> includes a number of concepts that are extensively tested in TCP and
>> has low
>> >>> interoperability concerns).
>> >>>
>> >>> Congestion Control
>> >>>
>> >>>
>> >>> The reasoning being that both stateless reset and 0RTT are a fair bit
>> of
>> >>> work to get right based on my experience, and are not critical to
>> having a
>> >>> useful QUIC application.
>> >>>
>> >>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com
>> >
>> >>> wrote:
>> >>>>
>> >>>> Alright, I updated the second implementation draft significantly.
>> >>>>
>> >>>> https://github.com/quicwg/base-drafts/wiki/Second-Implementa
>> tion-Draft
>> >>>>
>> >>>> There are now two strategies: "Lock down the wire image" and "do
>> what we
>> >>>> need to allow useful performance testing". I much prefer the former
>> but it
>> >>>> is worth discussing, since people appear to be interested in both.
>> >>>>
>> >>>> It's also clear (at least to me) that we need to do basic stream
>> >>>> life-cycle stuff in either case, so that has moved into the "must
>> include"
>> >>>> category.
>> >>>>
>> >>>> Martin
>> >>>>
>> >>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com>
>> wrote:
>> >>>>>
>> >>>>> Agreed, performance analysis is going to be useless in the absence
>> of
>> >>>>> loss recovery and congestion control.  Presumably anyone deploying
>> this at
>> >>>>> scale would implement the recovery draft in a relatively complete
>> manner,
>> >>>>> but that doesn't mean everyone has to do it.
>> >>>>>
>> >>>>> But there's nothing interesting to measure with no application.
>> >>>>>
>> >>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <
>> martin.h.duke@gmail.com>
>> >>>>> wrote:
>> >>>>>>
>> >>>>>> I'm not sure how "performance analysis" is going to function in the
>> >>>>>> absence of loss recovery or congestion control. An alternate
>> approach to
>> >>>>>> implementations is to tackle the big performance drivers first,
>> presumably
>> >>>>>> loss recovery, congestion control, and streaming to prevent HOL
>> blocking.
>> >>>>>> However, this would run directly opposite to Jana's suggestion to
>> lock down
>> >>>>>> the wire image to prevent ossification.
>> >>>>>>
>> >>>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com>
>> >>>>>> wrote:
>> >>>>>>>
>> >>>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>> >>>>>>> >
>> >>>>>>> >
>> >>>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com
>> >
>> >>>>>>> > wrote:
>> >>>>>>> >>
>> >>>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>> >>>>>>> >> > I've been thinking about this, and I'm starting to think
>> that we
>> >>>>>>> >> > should
>> >>>>>>> >> > cover more ground in the second implementation draft.
>> >>>>>>> >> >
>> >>>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely
>> due
>> >>>>>>> >> > to market
>> >>>>>>> >> > pressures. The availability of the Chromium implementation
>> makes
>> >>>>>>> >> > it
>> >>>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>> >>>>>>> >> > think we
>> >>>>>>> >> > need
>> >>>>>>> >> > to move with some urgency, even if we don't change everything
>> >>>>>>> >> > about QUIC
>> >>>>>>> >> > to
>> >>>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>> >>>>>>> >> > deployments out
>> >>>>>>> >> > there. Specifically, I think we should:
>> >>>>>>> >> > 1. work out the wire-visible invariants and finalize all of
>> >>>>>>> >> > those for
>> >>>>>>> >> > the
>> >>>>>>> >> > second impl draft. We know that there are some middleboxes
>> that
>> >>>>>>> >> > already
>> >>>>>>> >> > have
>> >>>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>> >>>>>>> >> > IETF-QUIC so
>> >>>>>>> >> > we
>> >>>>>>> >> > can test that IETF-QUIC is deployable. I fear that the
>> longer we
>> >>>>>>> >> > take,
>> >>>>>>> >> > the
>> >>>>>>> >> > more widespread gQUIC ossification will be.
>> >>>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>> >>>>>>> >> > mapping
>> >>>>>>> >> > over
>> >>>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>> >>>>>>> >> > perhaps test
>> >>>>>>> >> > a
>> >>>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>> >>>>>>> >> > performance-oriented things such as full loss recovery and
>> >>>>>>> >> > congestion
>> >>>>>>> >> > control to later. This forces us to try and finalize the HTTP
>> >>>>>>> >> > mapping
>> >>>>>>> >> > details, which is a good thing, IMO.
>> >>>>>>> >>
>> >>>>>>> >> I agree with Jana.
>> >>>>>>> >>
>> >>>>>>> >> If we can have some basic HTTP mapping (it can be as basic as
>> >>>>>>> >> using
>> >>>>>>> >> HTTP/1.0 over each stream), we can use that to test how the
>> IETF
>> >>>>>>> >> version of QUIC performs well in the field, by comparing its
>> >>>>>>> >> performance to HTTP over TCP.
>> >>>>>>> >
>> >>>>>>> >
>> >>>>>>> > Interesting idea. One challenge with performance analysis is
>> that
>> >>>>>>> > it'll be a
>> >>>>>>> > bit of an apples to oranges comparison. QUIC will be doing
>> HTTP/1
>> >>>>>>> > (without
>> >>>>>>> > header compression) against HTTP/2 (with header compression) or
>> >>>>>>> > HTTP/1.1
>> >>>>>>> > (over multiple connections).
>> >>>>>>>
>> >>>>>>> Agreed.
>> >>>>>>>
>> >>>>>>> Though I might argue that collecting metrics of a QUIC
>> implementation
>> >>>>>>> without header compression could be useful. We can use that as a
>> >>>>>>> baseline when we formalize QPACK / QCRAM.
>> >>>>>>>
>> >>>>>>> --
>> >>>>>>> Kazuho Oku
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >
>>
>>
>>
>> --
>> Kazuho Oku
>>
>
>

--001a114fa1b8cffa1e05544a9e11
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I think it would be good to declare another &quot;implemen=
tation draft&quot; very soon, with roughly the contents of -05. What I see =
people doing now is some mix of -04 and -05(pre), and informally coordinati=
ng. It would probably be easier if we just published -05 and said &quot;do =
-05&quot;. I totally don&#39;t care if we call it the second implementation=
 draft or the first implementation draft bis or anything else.<div><br></di=
v><div><div><div><div>-Ekr</div><div><br><div class=3D"gmail_extra"><br><di=
v class=3D"gmail_quote">On Fri, Jul 14, 2017 at 9:50 AM, Martin Duke <span =
dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank=
">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex"><div dir=3D"ltr">OK, I understand now. I&#39;ve added a third option=
 as you described. But I omitted=C2=A0<span class=3D""><div><br></div><div>=
<span style=3D"color:rgb(36,41,46);font-family:-apple-system,system-ui,&quo=
t;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&=
quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px">Furth=
er revisions to mechanisms in the First Implementation Draft (e.g. changes =
to the public header format, connection close).</span><br></div><div><br></=
div></span><div>as something that might not be entirely relevant to getting=
 something deployed, in the interests of reducing scope. If that&#39;s a bi=
g mistake, let me know.</div></div><div class=3D"HOEnZb"><div class=3D"h5">=
<div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Thu, Jul 13, 2=
017 at 6:33 PM, Kazuho Oku <span dir=3D"ltr">&lt;<a href=3D"mailto:kazuhook=
u@gmail.com" target=3D"_blank">kazuhooku@gmail.com</a>&gt;</span> wrote:<br=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><span>2017-07-14 9:57 GMT+09:00 Ian Swett &=
lt;<a href=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google=
.com</a>&gt;:<br>
&gt; I think it is an MVP of HTTP over QUIC, and one I believe Google would=
 be<br>
&gt; willing to deploy at some scale.<br>
&gt;<br>
&gt; That&#39;s not to say I&#39;m opposed to the other two options, but I =
have a<br>
&gt; preference for something I believe can run real applications with reas=
onable<br>
&gt; performance, even if it&#39;s not ideal.<br>
<br>
</span>+1.<br>
<br>
I agree that think that sending multiple HTTP requests / responses<br>
over QUIC, with stateless HPACK would be a nicely balanced approach<br>
that can be used deployed at some scale as well as one that can be<br>
used for preliminary performance measurements.<br>
<div class=3D"m_7550167308617420832HOEnZb"><div class=3D"m_7550167308617420=
832h5"><br>
&gt; On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke &lt;<a href=3D"mailto:mar=
tin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m a little concerned that a blend of the strategies leaves u=
s with<br>
&gt;&gt; something that still allows ossification and isn&#39;t quite enoug=
h for decent<br>
&gt;&gt; performance testing. But I did add your further clarifications abo=
ut HTTP/2,<br>
&gt;&gt; and the &quot;at scale&quot; provision.<br>
&gt;&gt;<br>
&gt;&gt; Is your option 3 the MVP for something you&#39;d like to do with t=
his<br>
&gt;&gt; iteration?<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett &lt;<a href=3D"mailto:i=
answett@google.com" target=3D"_blank">ianswett@google.com</a>&gt; wrote:<br=
>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks for the update.=C2=A0 I would suggest a third potential=
 option, which<br>
&gt;&gt;&gt; is a mix of what you have with a small clarification(in bold):=
<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Further revisions to mechanisms in the First Implementation Dr=
aft (e.g.<br>
&gt;&gt;&gt; changes to the public header format, connection close).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Transport Parameter Exchange. At the very least, the four para=
meters<br>
&gt;&gt;&gt; specified as MUST in the draft.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Address validation and HelloRetryRequest<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; An HTTP/2 application to require multiple streams (with statel=
ess HPACK<br>
&gt;&gt;&gt; compression, no QPACK, QCRAM, etc) and no server push.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any implementations that deploy at any scale must also do:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Loss Recovery beyond the exising 1-RTO retransmissions. (I bel=
ieve this<br>
&gt;&gt;&gt; includes a number of concepts that are extensively tested in T=
CP and has low<br>
&gt;&gt;&gt; interoperability concerns).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Congestion Control<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The reasoning being that both stateless reset and 0RTT are a f=
air bit of<br>
&gt;&gt;&gt; work to get right based on my experience, and are not critical=
 to having a<br>
&gt;&gt;&gt; useful QUIC application.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke &lt;<a href=3D"ma=
ilto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>=
&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Alright, I updated the second implementation draft signifi=
cantly.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href=3D"https://github.com/quicwg/base-drafts/wiki/Seco=
nd-Implementation-Draft" rel=3D"noreferrer" target=3D"_blank">https://githu=
b.com/quicwg/base<wbr>-drafts/wiki/Second-Implementa<wbr>tion-Draft</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; There are now two strategies: &quot;Lock down the wire ima=
ge&quot; and &quot;do what we<br>
&gt;&gt;&gt;&gt; need to allow useful performance testing&quot;. I much pre=
fer the former but it<br>
&gt;&gt;&gt;&gt; is worth discussing, since people appear to be interested =
in both.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It&#39;s also clear (at least to me) that we need to do ba=
sic stream<br>
&gt;&gt;&gt;&gt; life-cycle stuff in either case, so that has moved into th=
e &quot;must include&quot;<br>
&gt;&gt;&gt;&gt; category.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Martin<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett &lt;<a href=3D"=
mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>&gt; w=
rote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Agreed, performance analysis is going to be useless in=
 the absence of<br>
&gt;&gt;&gt;&gt;&gt; loss recovery and congestion control.=C2=A0 Presumably=
 anyone deploying this at<br>
&gt;&gt;&gt;&gt;&gt; scale would implement the recovery draft in a relative=
ly complete manner,<br>
&gt;&gt;&gt;&gt;&gt; but that doesn&#39;t mean everyone has to do it.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; But there&#39;s nothing interesting to measure with no=
 application.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke &lt;<a h=
ref=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmai=
l.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I&#39;m not sure how &quot;performance analysis&qu=
ot; is going to function in the<br>
&gt;&gt;&gt;&gt;&gt;&gt; absence of loss recovery or congestion control. An=
 alternate approach to<br>
&gt;&gt;&gt;&gt;&gt;&gt; implementations is to tackle the big performance d=
rivers first, presumably<br>
&gt;&gt;&gt;&gt;&gt;&gt; loss recovery, congestion control, and streaming t=
o prevent HOL blocking.<br>
&gt;&gt;&gt;&gt;&gt;&gt; However, this would run directly opposite to Jana&=
#39;s suggestion to lock down<br>
&gt;&gt;&gt;&gt;&gt;&gt; the wire image to prevent ossification.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku &lt;<=
a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com=
</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<=
a href=3D"mailto:rch@google.com" target=3D"_blank">rch@google.com</a>&gt;:<=
br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Ok=
u &lt;<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gm=
ail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyenga=
r &lt;<a href=3D"mailto:jri@google.com" target=3D"_blank">jri@google.com</a=
>&gt;:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve been thinking about thi=
s, and I&#39;m starting to think that we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; should<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; cover more ground in the second =
implementation draft.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;m hearing about increasing=
 deployments of gQUIC, largely due<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to market<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; pressures. The availability of t=
he Chromium implementation makes<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; it<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; particularly easy for folks to d=
eploy QUIC with that code. I<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; think we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; need<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to move with some urgency, even =
if we don&#39;t change everything<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; about QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; make it perfect, so that we can =
start getting IETF QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; deployments out<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; there. Specifically, I think we =
should:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 1. work out the wire-visible inv=
ariants and finalize all of<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; those for<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; second impl draft. We know that =
there are some middleboxes that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; already<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; have<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; classifiers for gQUIC, and we ne=
ed to move quickly and push<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; IETF-QUIC so<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; can test that IETF-QUIC is deplo=
yable. I fear that the longer we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; take,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; more widespread gQUIC ossificati=
on will be.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 2. allow impls to make serious p=
rogress towards a basic HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; over<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; QUIC. We can punt on header comp=
ression (QPACK/QCRAM), but<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; perhaps test<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; basic HTTP request-response over=
 QUIC. We can still punt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; performance-oriented things such=
 as full loss recovery and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; congestion<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; control to later. This forces us=
 to try and finalize the HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; details, which is a good thing, =
IMO.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; I agree with Jana.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; If we can have some basic HTTP mappin=
g (it can be as basic as<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; using<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; HTTP/1.0 over each stream), we can us=
e that to test how the IETF<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; version of QUIC performs well in the =
field, by comparing its<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; performance to HTTP over TCP.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Interesting idea. One challenge with perf=
ormance analysis is that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; it&#39;ll be a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; bit of an apples to oranges comparison. Q=
UIC will be doing HTTP/1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (without<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; header compression) against HTTP/2 (with =
header compression) or<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; HTTP/1.1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (over multiple connections).<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Agreed.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Though I might argue that collecting metrics o=
f a QUIC implementation<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; without header compression could be useful. We=
 can use that as a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; baseline when we formalize QPACK / QCRAM.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Kazuho Oku<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><span class=3D"m_7550167308617420832HOEnZb"><font color=3D"#888=
888">--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></div></div></div></div>

--001a114fa1b8cffa1e05544a9e11--


From nobody Fri Jul 14 17:18:03 2017
Return-Path: <martin.h.duke@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 B76BB12ECC1 for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 17:18:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.698
X-Spam-Level: 
X-Spam-Status: No, score=-1.698 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, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 K901lgMZI9lh for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 17:17:58 -0700 (PDT)
Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (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 E4DD912EC25 for <quic@ietf.org>; Fri, 14 Jul 2017 17:17:57 -0700 (PDT)
Received: by mail-wm0-x236.google.com with SMTP id w126so32692088wme.0 for <quic@ietf.org>; Fri, 14 Jul 2017 17:17:57 -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=S4L2J9nYq9Rm3d9VIRrPMSpQ8iY2alLrRjS5Xz97+QI=; b=Nb3Q4DP1HTXlKX1DxAD/ty6qjjh1Sa6HP/Ycd7lyODNj1QgVVjFok+qdib3UWslD5g e/hO6/sKF7KDytIGogxEIbpvuclP+Ln9h+MOyiuo6oLAry2M2ZSOoWKy7iEbK0JVrW6p 2ubsph1SyFENisnil0pN9CJ29DlsIBzpv1WZslSiz0hsTf5qrhcxC/3eKpMYxCSj4VcT jNBURSrvUufeQMbB14AoehA6NTJJ0EZDeu0zLl6wfOjpEhQvz2J8ykURgWbgjd5FgSQF HqlLyXcXSEwk6boErmgjZrskUtgElnrANJQ2XSHBRGGlBl+hXvgaBeK5ha12twHCn5NK 3t3g==
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=S4L2J9nYq9Rm3d9VIRrPMSpQ8iY2alLrRjS5Xz97+QI=; b=jGpWZRwWzFfuBqmQ3vJh+CiBG8lTZl3a2quSDGqRKgtSJyc3qh8qiQ3gwTU4BE+8m/ 7EMjXHxZC0jQaChTo7LrvO/ac60B1Q4jUD30OSkur0o7Z+lmKFwyD6UkxI1njb/aVMoa jGpddscwf0qlrsLoL6RIiH1j92MlOfJVxYjr2zaVbq0Zgss19h06l3qp2zz0GYmsigAM UJM+QoLVncdaROgIJK442dKcSQ1pHobBSvhRx2/xhVehygaB1aeyxE3lAjnzDwFKC7kV Vs66FmzSvTWdsJZltR5+zm6Rt4JEQ4r26Y394hnGS4EhBfW7iMEkGmg1LEQ7IW4wO9MY abQA==
X-Gm-Message-State: AIVw112ULQwpdIe881E0m+BuBOMWNMTJZ2ut00oBpsBX8X7KewUAJH86 5x06x4rrLKj3oHrLwvQRGnsgR2xH6A==
X-Received: by 10.28.16.17 with SMTP id 17mr4596788wmq.1.1500077876323; Fri, 14 Jul 2017 17:17:56 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Fri, 14 Jul 2017 17:17:55 -0700 (PDT)
In-Reply-To: <CABcZeBMKdT4L1O85whgLTZ1sK5dBUk8D+TSdxBVN2z8S1UoEFQ@mail.gmail.com>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com> <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com> <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com> <CAM4esxRb4+xMXgL=qNEnQiO53uJXL0AxRFN654N5vxAUj8LQHw@mail.gmail.com> <CABcZeBMKdT4L1O85whgLTZ1sK5dBUk8D+TSdxBVN2z8S1UoEFQ@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Fri, 14 Jul 2017 17:17:55 -0700
Message-ID: <CAM4esxQ0pJcMFs0TafuTcOrieSYuDju8XFZMbOHEftd+Nk=xAQ@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Eric Rescorla <ekr@rtfm.com>
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Jana Iyengar <jri@google.com>, Ian Swett <ianswett@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="001a1145ad26f42e5b05545018cf"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/qpmVVR6jP1Gt5BIm6xdAjlqqUGc>
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: Sat, 15 Jul 2017 00:18:01 -0000

--001a1145ad26f42e5b05545018cf
Content-Type: text/plain; charset="UTF-8"

If there are some improvements in -05, that's fine with me, but that's a
bit orthogonal to the purpose of this document. The first interop is
attached to a specific set of features, which might involve more than one
draft.

This document is trying to figure out what the next set of features should
be. It should also drive which open issues we should prioritize.

On Fri, Jul 14, 2017 at 10:45 AM, Eric Rescorla <ekr@rtfm.com> wrote:

> I think it would be good to declare another "implementation draft" very
> soon, with roughly the contents of -05. What I see people doing now is some
> mix of -04 and -05(pre), and informally coordinating. It would probably be
> easier if we just published -05 and said "do -05". I totally don't care if
> we call it the second implementation draft or the first implementation
> draft bis or anything else.
>
> -Ekr
>
>
> On Fri, Jul 14, 2017 at 9:50 AM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>> OK, I understand now. I've added a third option as you described. But I
>> omitted
>>
>> Further revisions to mechanisms in the First Implementation Draft (e.g.
>> changes to the public header format, connection close).
>>
>> as something that might not be entirely relevant to getting something
>> deployed, in the interests of reducing scope. If that's a big mistake, let
>> me know.
>>
>> On Thu, Jul 13, 2017 at 6:33 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
>>
>>> 2017-07-14 9:57 GMT+09:00 Ian Swett <ianswett@google.com>:
>>> > I think it is an MVP of HTTP over QUIC, and one I believe Google would
>>> be
>>> > willing to deploy at some scale.
>>> >
>>> > That's not to say I'm opposed to the other two options, but I have a
>>> > preference for something I believe can run real applications with
>>> reasonable
>>> > performance, even if it's not ideal.
>>>
>>> +1.
>>>
>>> I agree that think that sending multiple HTTP requests / responses
>>> over QUIC, with stateless HPACK would be a nicely balanced approach
>>> that can be used deployed at some scale as well as one that can be
>>> used for preliminary performance measurements.
>>>
>>> > On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke <martin.h.duke@gmail.com>
>>> > wrote:
>>> >>
>>> >> I'm a little concerned that a blend of the strategies leaves us with
>>> >> something that still allows ossification and isn't quite enough for
>>> decent
>>> >> performance testing. But I did add your further clarifications about
>>> HTTP/2,
>>> >> and the "at scale" provision.
>>> >>
>>> >> Is your option 3 the MVP for something you'd like to do with this
>>> >> iteration?
>>> >>
>>> >> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com>
>>> wrote:
>>> >>>
>>> >>> Thanks for the update.  I would suggest a third potential option,
>>> which
>>> >>> is a mix of what you have with a small clarification(in bold):
>>> >>>
>>> >>> Further revisions to mechanisms in the First Implementation Draft
>>> (e.g.
>>> >>> changes to the public header format, connection close).
>>> >>>
>>> >>> Transport Parameter Exchange. At the very least, the four parameters
>>> >>> specified as MUST in the draft.
>>> >>>
>>> >>> Address validation and HelloRetryRequest
>>> >>>
>>> >>> An HTTP/2 application to require multiple streams (with stateless
>>> HPACK
>>> >>> compression, no QPACK, QCRAM, etc) and no server push.
>>> >>>
>>> >>>
>>> >>> Any implementations that deploy at any scale must also do:
>>> >>>
>>> >>> Loss Recovery beyond the exising 1-RTO retransmissions. (I believe
>>> this
>>> >>> includes a number of concepts that are extensively tested in TCP and
>>> has low
>>> >>> interoperability concerns).
>>> >>>
>>> >>> Congestion Control
>>> >>>
>>> >>>
>>> >>> The reasoning being that both stateless reset and 0RTT are a fair
>>> bit of
>>> >>> work to get right based on my experience, and are not critical to
>>> having a
>>> >>> useful QUIC application.
>>> >>>
>>> >>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <
>>> martin.h.duke@gmail.com>
>>> >>> wrote:
>>> >>>>
>>> >>>> Alright, I updated the second implementation draft significantly.
>>> >>>>
>>> >>>> https://github.com/quicwg/base-drafts/wiki/Second-Implementa
>>> tion-Draft
>>> >>>>
>>> >>>> There are now two strategies: "Lock down the wire image" and "do
>>> what we
>>> >>>> need to allow useful performance testing". I much prefer the former
>>> but it
>>> >>>> is worth discussing, since people appear to be interested in both.
>>> >>>>
>>> >>>> It's also clear (at least to me) that we need to do basic stream
>>> >>>> life-cycle stuff in either case, so that has moved into the "must
>>> include"
>>> >>>> category.
>>> >>>>
>>> >>>> Martin
>>> >>>>
>>> >>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com>
>>> wrote:
>>> >>>>>
>>> >>>>> Agreed, performance analysis is going to be useless in the absence
>>> of
>>> >>>>> loss recovery and congestion control.  Presumably anyone deploying
>>> this at
>>> >>>>> scale would implement the recovery draft in a relatively complete
>>> manner,
>>> >>>>> but that doesn't mean everyone has to do it.
>>> >>>>>
>>> >>>>> But there's nothing interesting to measure with no application.
>>> >>>>>
>>> >>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <
>>> martin.h.duke@gmail.com>
>>> >>>>> wrote:
>>> >>>>>>
>>> >>>>>> I'm not sure how "performance analysis" is going to function in
>>> the
>>> >>>>>> absence of loss recovery or congestion control. An alternate
>>> approach to
>>> >>>>>> implementations is to tackle the big performance drivers first,
>>> presumably
>>> >>>>>> loss recovery, congestion control, and streaming to prevent HOL
>>> blocking.
>>> >>>>>> However, this would run directly opposite to Jana's suggestion to
>>> lock down
>>> >>>>>> the wire image to prevent ossification.
>>> >>>>>>
>>> >>>>>> On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku <kazuhooku@gmail.com
>>> >
>>> >>>>>> wrote:
>>> >>>>>>>
>>> >>>>>>> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
>>> >>>>>>> >
>>> >>>>>>> >
>>> >>>>>>> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <
>>> kazuhooku@gmail.com>
>>> >>>>>>> > wrote:
>>> >>>>>>> >>
>>> >>>>>>> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
>>> >>>>>>> >> > I've been thinking about this, and I'm starting to think
>>> that we
>>> >>>>>>> >> > should
>>> >>>>>>> >> > cover more ground in the second implementation draft.
>>> >>>>>>> >> >
>>> >>>>>>> >> > I'm hearing about increasing deployments of gQUIC, largely
>>> due
>>> >>>>>>> >> > to market
>>> >>>>>>> >> > pressures. The availability of the Chromium implementation
>>> makes
>>> >>>>>>> >> > it
>>> >>>>>>> >> > particularly easy for folks to deploy QUIC with that code. I
>>> >>>>>>> >> > think we
>>> >>>>>>> >> > need
>>> >>>>>>> >> > to move with some urgency, even if we don't change
>>> everything
>>> >>>>>>> >> > about QUIC
>>> >>>>>>> >> > to
>>> >>>>>>> >> > make it perfect, so that we can start getting IETF QUIC
>>> >>>>>>> >> > deployments out
>>> >>>>>>> >> > there. Specifically, I think we should:
>>> >>>>>>> >> > 1. work out the wire-visible invariants and finalize all of
>>> >>>>>>> >> > those for
>>> >>>>>>> >> > the
>>> >>>>>>> >> > second impl draft. We know that there are some middleboxes
>>> that
>>> >>>>>>> >> > already
>>> >>>>>>> >> > have
>>> >>>>>>> >> > classifiers for gQUIC, and we need to move quickly and push
>>> >>>>>>> >> > IETF-QUIC so
>>> >>>>>>> >> > we
>>> >>>>>>> >> > can test that IETF-QUIC is deployable. I fear that the
>>> longer we
>>> >>>>>>> >> > take,
>>> >>>>>>> >> > the
>>> >>>>>>> >> > more widespread gQUIC ossification will be.
>>> >>>>>>> >> > 2. allow impls to make serious progress towards a basic HTTP
>>> >>>>>>> >> > mapping
>>> >>>>>>> >> > over
>>> >>>>>>> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but
>>> >>>>>>> >> > perhaps test
>>> >>>>>>> >> > a
>>> >>>>>>> >> > basic HTTP request-response over QUIC. We can still punt
>>> >>>>>>> >> > performance-oriented things such as full loss recovery and
>>> >>>>>>> >> > congestion
>>> >>>>>>> >> > control to later. This forces us to try and finalize the
>>> HTTP
>>> >>>>>>> >> > mapping
>>> >>>>>>> >> > details, which is a good thing, IMO.
>>> >>>>>>> >>
>>> >>>>>>> >> I agree with Jana.
>>> >>>>>>> >>
>>> >>>>>>> >> If we can have some basic HTTP mapping (it can be as basic as
>>> >>>>>>> >> using
>>> >>>>>>> >> HTTP/1.0 over each stream), we can use that to test how the
>>> IETF
>>> >>>>>>> >> version of QUIC performs well in the field, by comparing its
>>> >>>>>>> >> performance to HTTP over TCP.
>>> >>>>>>> >
>>> >>>>>>> >
>>> >>>>>>> > Interesting idea. One challenge with performance analysis is
>>> that
>>> >>>>>>> > it'll be a
>>> >>>>>>> > bit of an apples to oranges comparison. QUIC will be doing
>>> HTTP/1
>>> >>>>>>> > (without
>>> >>>>>>> > header compression) against HTTP/2 (with header compression) or
>>> >>>>>>> > HTTP/1.1
>>> >>>>>>> > (over multiple connections).
>>> >>>>>>>
>>> >>>>>>> Agreed.
>>> >>>>>>>
>>> >>>>>>> Though I might argue that collecting metrics of a QUIC
>>> implementation
>>> >>>>>>> without header compression could be useful. We can use that as a
>>> >>>>>>> baseline when we formalize QPACK / QCRAM.
>>> >>>>>>>
>>> >>>>>>> --
>>> >>>>>>> Kazuho Oku
>>> >>>>>>
>>> >>>>>>
>>> >>>>>
>>> >>>>
>>> >>>
>>> >>
>>> >
>>>
>>>
>>>
>>> --
>>> Kazuho Oku
>>>
>>
>>
>

--001a1145ad26f42e5b05545018cf
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">If there are some improvements in -05, that&#39;s fine wit=
h me, but that&#39;s a bit orthogonal to the purpose of this document. The =
first interop is attached to a specific set of features, which might involv=
e more than one draft.<div><br></div><div>This document is trying to figure=
 out what the next set of features should be. It should also drive which op=
en issues we should prioritize.</div></div><div class=3D"gmail_extra"><br><=
div class=3D"gmail_quote">On Fri, Jul 14, 2017 at 10:45 AM, Eric Rescorla <=
span dir=3D"ltr">&lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@=
rtfm.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"ltr">I think it would be good to declare another &quot;implementation d=
raft&quot; very soon, with roughly the contents of -05. What I see people d=
oing now is some mix of -04 and -05(pre), and informally coordinating. It w=
ould probably be easier if we just published -05 and said &quot;do -05&quot=
;. I totally don&#39;t care if we call it the second implementation draft o=
r the first implementation draft bis or anything else.<div><br></div><div><=
div><div><div>-Ekr</div><div><div class=3D"h5"><div><br><div class=3D"gmail=
_extra"><br><div class=3D"gmail_quote">On Fri, Jul 14, 2017 at 9:50 AM, Mar=
tin Duke <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" t=
arget=3D"_blank">martin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex"><div dir=3D"ltr">OK, I understand now. I&#39;ve added=
 a third option as you described. But I omitted=C2=A0<span><div><br></div><=
div><span style=3D"color:rgb(36,41,46);font-family:-apple-system,system-ui,=
&quot;Segoe UI&quot;,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quo=
t;,&quot;Segoe UI Emoji&quot;,&quot;Segoe UI Symbol&quot;;font-size:16px">F=
urther revisions to mechanisms in the First Implementation Draft (e.g. chan=
ges to the public header format, connection close).</span><br></div><div><b=
r></div></span><div>as something that might not be entirely relevant to get=
ting something deployed, in the interests of reducing scope. If that&#39;s =
a big mistake, let me know.</div></div><div class=3D"m_6805349575656196799H=
OEnZb"><div class=3D"m_6805349575656196799h5"><div class=3D"gmail_extra"><b=
r><div class=3D"gmail_quote">On Thu, Jul 13, 2017 at 6:33 PM, Kazuho Oku <s=
pan dir=3D"ltr">&lt;<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank=
">kazuhooku@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x"><span>2017-07-14 9:57 GMT+09:00 Ian Swett &lt;<a href=3D"mailto:ianswett=
@google.com" target=3D"_blank">ianswett@google.com</a>&gt;:<br>
&gt; I think it is an MVP of HTTP over QUIC, and one I believe Google would=
 be<br>
&gt; willing to deploy at some scale.<br>
&gt;<br>
&gt; That&#39;s not to say I&#39;m opposed to the other two options, but I =
have a<br>
&gt; preference for something I believe can run real applications with reas=
onable<br>
&gt; performance, even if it&#39;s not ideal.<br>
<br>
</span>+1.<br>
<br>
I agree that think that sending multiple HTTP requests / responses<br>
over QUIC, with stateless HPACK would be a nicely balanced approach<br>
that can be used deployed at some scale as well as one that can be<br>
used for preliminary performance measurements.<br>
<div class=3D"m_6805349575656196799m_7550167308617420832HOEnZb"><div class=
=3D"m_6805349575656196799m_7550167308617420832h5"><br>
&gt; On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke &lt;<a href=3D"mailto:mar=
tin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m a little concerned that a blend of the strategies leaves u=
s with<br>
&gt;&gt; something that still allows ossification and isn&#39;t quite enoug=
h for decent<br>
&gt;&gt; performance testing. But I did add your further clarifications abo=
ut HTTP/2,<br>
&gt;&gt; and the &quot;at scale&quot; provision.<br>
&gt;&gt;<br>
&gt;&gt; Is your option 3 the MVP for something you&#39;d like to do with t=
his<br>
&gt;&gt; iteration?<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett &lt;<a href=3D"mailto:i=
answett@google.com" target=3D"_blank">ianswett@google.com</a>&gt; wrote:<br=
>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks for the update.=C2=A0 I would suggest a third potential=
 option, which<br>
&gt;&gt;&gt; is a mix of what you have with a small clarification(in bold):=
<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Further revisions to mechanisms in the First Implementation Dr=
aft (e.g.<br>
&gt;&gt;&gt; changes to the public header format, connection close).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Transport Parameter Exchange. At the very least, the four para=
meters<br>
&gt;&gt;&gt; specified as MUST in the draft.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Address validation and HelloRetryRequest<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; An HTTP/2 application to require multiple streams (with statel=
ess HPACK<br>
&gt;&gt;&gt; compression, no QPACK, QCRAM, etc) and no server push.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any implementations that deploy at any scale must also do:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Loss Recovery beyond the exising 1-RTO retransmissions. (I bel=
ieve this<br>
&gt;&gt;&gt; includes a number of concepts that are extensively tested in T=
CP and has low<br>
&gt;&gt;&gt; interoperability concerns).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Congestion Control<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The reasoning being that both stateless reset and 0RTT are a f=
air bit of<br>
&gt;&gt;&gt; work to get right based on my experience, and are not critical=
 to having a<br>
&gt;&gt;&gt; useful QUIC application.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke &lt;<a href=3D"ma=
ilto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmail.com</a>=
&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Alright, I updated the second implementation draft signifi=
cantly.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href=3D"https://github.com/quicwg/base-drafts/wiki/Seco=
nd-Implementation-Draft" rel=3D"noreferrer" target=3D"_blank">https://githu=
b.com/quicwg/base<wbr>-drafts/wiki/Second-Implementa<wbr>tion-Draft</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; There are now two strategies: &quot;Lock down the wire ima=
ge&quot; and &quot;do what we<br>
&gt;&gt;&gt;&gt; need to allow useful performance testing&quot;. I much pre=
fer the former but it<br>
&gt;&gt;&gt;&gt; is worth discussing, since people appear to be interested =
in both.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It&#39;s also clear (at least to me) that we need to do ba=
sic stream<br>
&gt;&gt;&gt;&gt; life-cycle stuff in either case, so that has moved into th=
e &quot;must include&quot;<br>
&gt;&gt;&gt;&gt; category.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Martin<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett &lt;<a href=3D"=
mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>&gt; w=
rote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Agreed, performance analysis is going to be useless in=
 the absence of<br>
&gt;&gt;&gt;&gt;&gt; loss recovery and congestion control.=C2=A0 Presumably=
 anyone deploying this at<br>
&gt;&gt;&gt;&gt;&gt; scale would implement the recovery draft in a relative=
ly complete manner,<br>
&gt;&gt;&gt;&gt;&gt; but that doesn&#39;t mean everyone has to do it.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; But there&#39;s nothing interesting to measure with no=
 application.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke &lt;<a h=
ref=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.duke@gmai=
l.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I&#39;m not sure how &quot;performance analysis&qu=
ot; is going to function in the<br>
&gt;&gt;&gt;&gt;&gt;&gt; absence of loss recovery or congestion control. An=
 alternate approach to<br>
&gt;&gt;&gt;&gt;&gt;&gt; implementations is to tackle the big performance d=
rivers first, presumably<br>
&gt;&gt;&gt;&gt;&gt;&gt; loss recovery, congestion control, and streaming t=
o prevent HOL blocking.<br>
&gt;&gt;&gt;&gt;&gt;&gt; However, this would run directly opposite to Jana&=
#39;s suggestion to lock down<br>
&gt;&gt;&gt;&gt;&gt;&gt; the wire image to prevent ossification.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Mon, Jul 10, 2017 at 12:32 AM, Kazuho Oku &lt;<=
a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gmail.com=
</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 2017-07-10 12:28 GMT+09:00 Ryan Hamilton &lt;<=
a href=3D"mailto:rch@google.com" target=3D"_blank">rch@google.com</a>&gt;:<=
br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Ok=
u &lt;<a href=3D"mailto:kazuhooku@gmail.com" target=3D"_blank">kazuhooku@gm=
ail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; 2017-07-09 1:45 GMT+09:00 Jana Iyenga=
r &lt;<a href=3D"mailto:jri@google.com" target=3D"_blank">jri@google.com</a=
>&gt;:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve been thinking about thi=
s, and I&#39;m starting to think that we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; should<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; cover more ground in the second =
implementation draft.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; I&#39;m hearing about increasing=
 deployments of gQUIC, largely due<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to market<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; pressures. The availability of t=
he Chromium implementation makes<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; it<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; particularly easy for folks to d=
eploy QUIC with that code. I<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; think we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; need<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to move with some urgency, even =
if we don&#39;t change everything<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; about QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; make it perfect, so that we can =
start getting IETF QUIC<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; deployments out<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; there. Specifically, I think we =
should:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 1. work out the wire-visible inv=
ariants and finalize all of<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; those for<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; second impl draft. We know that =
there are some middleboxes that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; already<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; have<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; classifiers for gQUIC, and we ne=
ed to move quickly and push<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; IETF-QUIC so<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; can test that IETF-QUIC is deplo=
yable. I fear that the longer we<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; take,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; more widespread gQUIC ossificati=
on will be.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; 2. allow impls to make serious p=
rogress towards a basic HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; over<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; QUIC. We can punt on header comp=
ression (QPACK/QCRAM), but<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; perhaps test<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; basic HTTP request-response over=
 QUIC. We can still punt<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; performance-oriented things such=
 as full loss recovery and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; congestion<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; control to later. This forces us=
 to try and finalize the HTTP<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; mapping<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; &gt; details, which is a good thing, =
IMO.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; I agree with Jana.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; If we can have some basic HTTP mappin=
g (it can be as basic as<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; using<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; HTTP/1.0 over each stream), we can us=
e that to test how the IETF<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; version of QUIC performs well in the =
field, by comparing its<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt; performance to HTTP over TCP.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Interesting idea. One challenge with perf=
ormance analysis is that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; it&#39;ll be a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; bit of an apples to oranges comparison. Q=
UIC will be doing HTTP/1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (without<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; header compression) against HTTP/2 (with =
header compression) or<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; HTTP/1.1<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; (over multiple connections).<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Agreed.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Though I might argue that collecting metrics o=
f a QUIC implementation<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; without header compression could be useful. We=
 can use that as a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; baseline when we formalize QPACK / QCRAM.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Kazuho Oku<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div><span class=3D"m_6805349575656196799m_7550167308617420832HOEnZb=
"><font color=3D"#888888">--<br>
Kazuho Oku<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></div></div></div></div></di=
v></div>
</blockquote></div><br></div>

--001a1145ad26f42e5b05545018cf--


From nobody Mon Jul 17 15:40:20 2017
Return-Path: <ckrasic@google.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 689A2131CDF for <quic@ietfa.amsl.com>; Mon, 17 Jul 2017 15:40:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 I5J5VtW9bY8Q for <quic@ietfa.amsl.com>; Mon, 17 Jul 2017 15:40:16 -0700 (PDT)
Received: from mail-yw0-x22b.google.com (mail-yw0-x22b.google.com [IPv6:2607:f8b0:4002:c05::22b]) (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 5FD54131CE8 for <quic@ietf.org>; Mon, 17 Jul 2017 15:40:16 -0700 (PDT)
Received: by mail-yw0-x22b.google.com with SMTP id v193so960353ywg.2 for <quic@ietf.org>; Mon, 17 Jul 2017 15:40:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=pSQ9U3EuTV+Ymb5JG6egdcWQQwacq/aSRYUlWYcfBro=; b=mv4yQvppi4aNekzISpcdRQykJFRnFHyYKUHxDCQeaC0O+RhZO5WhAQc9SVPkX2GBRQ SWoQeqLGAZBGIfvRvYQyh5SzC1OD/ZaZrRlK5l9cH4YzpY0p675sTHmGGrG9hW2LVYj3 05RCAVEK7HYJ+/mjoClxb8Gmh5jJsHnH8rT1pkr+RwL9dKKGyhL5uwCujZdX2zBQ+u/3 C5AHAWKNpn2y1K9i3bGKHhuqHrhJ4nHfgJuR3XhyNGefhxFbk5yU0xVb/YrHrp3vc4Pq 3vD6ctzEwoCz824xYKVZgBODOTnDkDfbXZFam5MoVmGFaifPrLVw2k9vTAtyHo1qkOuf VDZg==
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=pSQ9U3EuTV+Ymb5JG6egdcWQQwacq/aSRYUlWYcfBro=; b=IjN+/ufeuWDSs7oW7nykXW+/11ynG1TCM2odXqxli76nebXSiorPwjjw1pDBPmP22K eFQeKhv3nQc2bWEeOlbgm5KR8E0gMjDo8vXX2pfDR/UmaItYR6vgLbYfN/9CkvOVeyVA ynXQVwdjucJmtJk+15nTNRjLkAkPk02JHkynnaTc0E8JGtikXTEFNmyYsoFEdsjeeq2V lvE9DRsfkv1JMl3v+P0qOtTpfYtoGvDlkNwceb1UngB5QrjDs02khaWUSSPtY+Qz5x+4 OHn5faew2gR+5sEK2RzKqDC+3y9QrgW/W3pJ1Nlx2c+YpbHTndLY1gzIxC+UboJA7C2J p+Cw==
X-Gm-Message-State: AIVw110+VCaem01wXmkQpQX+Sz6kOrPPxZHIMARZARVgo8Mq/JHFSP4A gvwTcpISrJAhgbb8KRe6/cn7x5NsYrUtaVb6vA==
X-Received: by 10.129.104.215 with SMTP id d206mr17308312ywc.31.1500331215296;  Mon, 17 Jul 2017 15:40:15 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.171.75 with HTTP; Mon, 17 Jul 2017 15:39:54 -0700 (PDT)
In-Reply-To: <150033047901.11270.14123902986348483364.idtracker@ietfa.amsl.com>
References: <150033047901.11270.14123902986348483364.idtracker@ietfa.amsl.com>
From: "Charles 'Buck' Krasic" <ckrasic@google.com>
Date: Mon, 17 Jul 2017 15:39:54 -0700
Message-ID: <CAD-iZUbo1h7UqcGfg0=UEHwH6T4qmr+jAT9sVYzU89MR2NDsbg@mail.gmail.com>
Subject: Fwd: New Version Notification for draft-krasic-quic-qcram-01.txt
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a1149018a22ac0d05548b15bf"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/hQa2p11RD7sdOmvQvvfzGaEF86A>
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: Mon, 17 Jul 2017 22:40:18 -0000

--001a1149018a22ac0d05548b15bf
Content-Type: text/plain; charset="UTF-8"

Hi all.  I have uploaded a new revision of the QCRAM draft.

The main changes:

   - assuming we'll move back to one stream per HTTP message exchange, and
   adopted Mike's idea to split updates off onto the connection control
   stream.
   - introduced de-duplication to handle a table explosion case.
   - more clearly defined HPACK fallback options, and I think they handle
   some corner cases much more neatly now.


---------- Forwarded message ----------
From: <internet-drafts@ietf.org>
Date: Mon, Jul 17, 2017 at 3:27 PM
Subject: New Version Notification for draft-krasic-quic-qcram-01.txt
To: Charles 'Buck' Krasic <ckrasic@google.com>



A new version of I-D, draft-krasic-quic-qcram-01.txt
has been successfully submitted by Charles 'Buck' Krasic and posted to the
IETF repository.

Name:           draft-krasic-quic-qcram
Revision:       01
Title:          Header Compression for HTTP over QUIC
Document date:  2017-07-17
Group:          Individual Submission
Pages:          12
URL:            https://www.ietf.org/internet-drafts/draft-krasic-quic-
qcram-01.txt
Status:         https://datatracker.ietf.org/doc/draft-krasic-quic-qcram/
Htmlized:       https://tools.ietf.org/html/draft-krasic-quic-qcram-01
Htmlized:       https://datatracker.ietf.org/doc/html/draft-krasic-quic-
qcram-01
Diff:           https://www.ietf.org/rfcdiff?url2=draft-krasic-quic-qcram-01

Abstract:
   The design of the core QUIC transport and the mapping of HTTP
   semantics over it subsume many HTTP/2 features, prominent among them
   stream multiplexing and HTTP header compression.  A key advantage of
   the QUIC transport is that provides stream multiplexing free of HoL
   blocking between streams, while in HTTP/2 multiplexed streams can
   suffer HoL blocking primarily due to HTTP/2's layering above TCP.
   However, assuming HPACK is used for header compression, HTTP over
   QUIC is still vulnerable to HoL blocking, because of how HPACK
   exploits header redundancies between multiplexed HTTP transactions.
   This draft defines QCRAM, a variation of HPACK and mechanisms in the
   QUIC HTTP mapping that allow QUIC implementations the flexibility to
   avoid header-compression induced HoL blocking.




Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat




-- 
Charles 'Buck' Krasic | Software Engineer | ckrasic@google.com | +1 (408)
412-1141

--001a1149018a22ac0d05548b15bf
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi all.=C2=A0 I have uploaded a new revision of the Q=
CRAM draft.</div><div><br></div><div>The main changes:</div><div><ul><li>as=
suming we&#39;ll move back to one stream per HTTP message exchange, and ado=
pted Mike&#39;s idea to split updates off onto the connection control strea=
m.=C2=A0 =C2=A0<br></li><li>introduced de-duplication to handle a table exp=
losion case.</li><li>more clearly defined HPACK fallback options, and I thi=
nk they handle some corner cases much more neatly now.</li></ul><div><br></=
div></div><div class=3D"gmail_quote">---------- Forwarded message ---------=
-<br>From: <b class=3D"gmail_sendername"></b> <span dir=3D"ltr">&lt;<a href=
=3D"mailto:internet-drafts@ietf.org">internet-drafts@ietf.org</a>&gt;</span=
><br>Date: Mon, Jul 17, 2017 at 3:27 PM<br>Subject: New Version Notificatio=
n for draft-krasic-quic-qcram-01.txt<br>To: Charles &#39;Buck&#39; Krasic &=
lt;<a href=3D"mailto:ckrasic@google.com">ckrasic@google.com</a>&gt;<br><br>=
<br><br>
A new version of I-D, draft-krasic-quic-qcram-01.txt<br>
has been successfully submitted by Charles &#39;Buck&#39; Krasic and posted=
 to the<br>
IETF repository.<br>
<br>
Name:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0draft-krasic-quic-qcram<br>
Revision:=C2=A0 =C2=A0 =C2=A0 =C2=A001<br>
Title:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Header Compression for HTTP over Q=
UIC<br>
Document date:=C2=A0 2017-07-17<br>
Group:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Individual Submission<br>
Pages:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 12<br>
URL:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"https://www.ietf.o=
rg/internet-drafts/draft-krasic-quic-qcram-01.txt" rel=3D"noreferrer" targe=
t=3D"_blank">https://www.ietf.org/internet-<wbr>drafts/draft-krasic-quic-<w=
br>qcram-01.txt</a><br>
Status:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://datatracker.iet=
f.org/doc/draft-krasic-quic-qcram/" rel=3D"noreferrer" target=3D"_blank">ht=
tps://datatracker.ietf.org/<wbr>doc/draft-krasic-quic-qcram/</a><br>
Htmlized:=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://tools.ietf.org/html/=
draft-krasic-quic-qcram-01" rel=3D"noreferrer" target=3D"_blank">https://to=
ols.ietf.org/html/<wbr>draft-krasic-quic-qcram-01</a><br>
Htmlized:=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://datatracker.ietf.org=
/doc/html/draft-krasic-quic-qcram-01" rel=3D"noreferrer" target=3D"_blank">=
https://datatracker.ietf.org/<wbr>doc/html/draft-krasic-quic-<wbr>qcram-01<=
/a><br>
Diff:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://www.ietf.o=
rg/rfcdiff?url2=3Ddraft-krasic-quic-qcram-01" rel=3D"noreferrer" target=3D"=
_blank">https://www.ietf.org/rfcdiff?<wbr>url2=3Ddraft-krasic-quic-qcram-<w=
br>01</a><br>
<br>
Abstract:<br>
=C2=A0 =C2=A0The design of the core QUIC transport and the mapping of HTTP<=
br>
=C2=A0 =C2=A0semantics over it subsume many HTTP/2 features, prominent amon=
g them<br>
=C2=A0 =C2=A0stream multiplexing and HTTP header compression.=C2=A0 A key a=
dvantage of<br>
=C2=A0 =C2=A0the QUIC transport is that provides stream multiplexing free o=
f HoL<br>
=C2=A0 =C2=A0blocking between streams, while in HTTP/2 multiplexed streams =
can<br>
=C2=A0 =C2=A0suffer HoL blocking primarily due to HTTP/2&#39;s layering abo=
ve TCP.<br>
=C2=A0 =C2=A0However, assuming HPACK is used for header compression, HTTP o=
ver<br>
=C2=A0 =C2=A0QUIC is still vulnerable to HoL blocking, because of how HPACK=
<br>
=C2=A0 =C2=A0exploits header redundancies between multiplexed HTTP transact=
ions.<br>
=C2=A0 =C2=A0This draft defines QCRAM, a variation of HPACK and mechanisms =
in the<br>
=C2=A0 =C2=A0QUIC HTTP mapping that allow QUIC implementations the flexibil=
ity to<br>
=C2=A0 =C2=A0avoid header-compression induced HoL blocking.<br>
<br>
<br>
<br>
<br>
Please note that it may take a couple of minutes from the time of submissio=
n<br>
until the htmlized version and diff are available at <a href=3D"http://tool=
s.ietf.org" rel=3D"noreferrer" target=3D"_blank">tools.ietf.org</a>.<br>
<br>
The IETF Secretariat<br>
<br>
</div><br><br clear=3D"all"><div><br></div>-- <br><div class=3D"gmail_signa=
ture"><span style=3D"font-family:&quot;Times New Roman&quot;;font-size:medi=
um"><span style=3D"color:rgb(85,85,85);font-family:sans-serif;line-height:2=
0px;font-size:small"><span style=3D"border-width:2px 0px 0px;border-style:s=
olid;border-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Charles &#=
39;Buck&#39; Krasic=C2=A0|</span><span style=3D"border-width:2px 0px 0px;bo=
rder-style:solid;border-color:rgb(51,105,232);padding-top:2px;margin-top:2p=
x">=C2=A0Software Engineer=C2=A0|</span><span style=3D"border-width:2px 0px=
 0px;border-style:solid;border-color:rgb(0,153,57);padding-top:2px;margin-t=
op:2px">=C2=A0<a href=3D"mailto:ckrasic@google.com" target=3D"_blank">ckras=
ic@google.com</a>=C2=A0|</span><span style=3D"border-width:2px 0px 0px;bord=
er-style:solid;border-color:rgb(238,178,17);padding-top:2px;margin-top:2px"=
>=C2=A0<span title=3D"Call with Google Voice">+1 (408) 412-1141</span></spa=
n></span><br><br></span></div>
</div>

--001a1149018a22ac0d05548b15bf--


From nobody Wed Jul 19 01:29:14 2017
Return-Path: <lars@netapp.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 EAAE4131C1E for <quic@ietfa.amsl.com>; Wed, 19 Jul 2017 01:29:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.901
X-Spam-Level: 
X-Spam-Status: No, score=-6.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=netapp.onmicrosoft.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 ftYBdwRB1EHo for <quic@ietfa.amsl.com>; Wed, 19 Jul 2017 01:29:13 -0700 (PDT)
Received: from mx142.netapp.com (mx142.netapp.com [216.240.21.19]) (using TLSv1.2 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F2AE5131563 for <quic@ietf.org>; Wed, 19 Jul 2017 01:29:12 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.40,380,1496127600";  d="asc'?scan'208";a="201374793"
Received: from vmwexchts02-prd.hq.netapp.com ([10.122.105.23]) by mx142-out.netapp.com with ESMTP; 19 Jul 2017 01:03:17 -0700
Received: from VMWEXCCAS10-PRD.hq.netapp.com (10.122.105.28) by VMWEXCHTS02-PRD.hq.netapp.com (10.122.105.23) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Wed, 19 Jul 2017 01:24:11 -0700
Received: from NAM01-BN3-obe.outbound.protection.outlook.com (10.120.60.153) by VMWEXCCAS10-PRD.hq.netapp.com (10.122.105.28) with Microsoft SMTP Server (TLS) id 15.0.1210.3 via Frontend Transport; Wed, 19 Jul 2017 01:24:11 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector1-netapp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=A2/JJ9wFRO4/l97jEJghuFFb9I1jzwXM61yp9ZPCl5M=; b=fPDJXDsByFUkp8UjRHOqI9Ut1NnbRqTrOBFY7GnksFhotgDdHwZ+nP7+WwD1W/g77U1yf9agEkJd2AYG9WeIlYrRNmOclBDdO9wUrM6iUCjJDGsIbg652CxyZE5w50a99COAKbV6BTzJnSm2Z2PlGozmH/Yl6VmFbE2+hn2tpiQ=
Received: from BLUPR06MB1764.namprd06.prod.outlook.com (10.162.224.150) by BLUPR06MB1763.namprd06.prod.outlook.com (10.162.224.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Wed, 19 Jul 2017 08:24:11 +0000
Received: from BLUPR06MB1764.namprd06.prod.outlook.com ([10.162.224.150]) by BLUPR06MB1764.namprd06.prod.outlook.com ([10.162.224.150]) with mapi id 15.01.1282.011; Wed, 19 Jul 2017 08:24:11 +0000
From: "Eggert, Lars" <lars@netapp.com>
To: IETF QUIC WG <quic@ietf.org>
Subject: Update: October interim
Thread-Topic: Update: October interim
Thread-Index: AQHS4Q7f7Ux8d10Gnkud9ELD8hTzg6JbDqwA
Date: Wed, 19 Jul 2017 08:24:10 +0000
Message-ID: <9475E8A5-017D-4061-ACB1-3AF6E988DF72@netapp.com>
References: <AB9D382D-74C2-4FD1-B1AD-60D4C0744C1F@netapp.com>
In-Reply-To: <AB9D382D-74C2-4FD1-B1AD-60D4C0744C1F@netapp.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.3273)
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=netapp.com;
x-originating-ip: [2001:67c:370:128:1155:16a4:3b94:22c6]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BLUPR06MB1763; 7:I0K9sbfWTp1s57s3nmPgAXYpIuMeBR5Rq3ofd/8RDZ3SuuXjr0NW0ixNCPg0Qyo5t7md2k/WxT21Pig24x2fQQ+E+wHz3V3oeqi9e7+Pzkf4EbIkJ0gCTQh231VfjN18Gmcv4p22wEvoJ7W2kDHYN3qQxClaUXCRdzxf6Qjv9i8RtPDiV4csq+t/SHVexBqi/qBAgO2tO++cwKz3O+YsXwuULYTAZ2PeY6nrN6ih5uOd4RkV10W8ErPTu+lwj/wXzZxn0cYwAt1M6hBXcSUvbDRxC6keic2PT8iySqT3/LDTNNirEXk38E+rIPbccK2RrX+JhgQe88eN6jXppKyr8SXKxwyCqWiukg7JJy3CdIwx4KBhz/9F3ElTWLTXR85dbH7pfbBAGGg9F+jcOgn2Vg7dWPL6yqYZki8QdApYrWmN+9KHWKVSw2nloue8k0kKBrXvSU6Cu6pIgMh6dy2GB2S3huXMGhBq7Yn0QKxASfr4TgPqPqU+aFnjrBeKYPkFpp1XTI9Fiq2sIr24l1glta04u0RMO2GrOm2fpHGANmpDla8ZHEE1otZATDPA/Lxes5ATkfF/s0I8G/CF0+EWaHK96um8ZD/xktN2nAMOAs5tVLSMTXM2uiEo2AlLNQhkFzkfjlMqlCw4huCOke7nnJWxC91r5YjQ9IOgHeumj83nKqN/RVIUlwkZkWXZzW0TF8nKG31y1sUBEbx3G/se62nRRKUxynQ5jp89LZJKVqfYp6kwhWCZjilUd0bogwVOi/7w+qk8rBDbJvf1oITibas7XnEgjn/P+DQ1WFVCGZk=
x-ms-office365-filtering-correlation-id: 905160aa-bea5-4168-56c8-08d4ce7f885c
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(49563074)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BLUPR06MB1763; 
x-ms-traffictypediagnostic: BLUPR06MB1763:
x-exchange-antispam-report-test: UriScan:(236129657087228)(167848164394848);
x-microsoft-antispam-prvs: <BLUPR06MB176369104689DD7D730FA765A7A60@BLUPR06MB1763.namprd06.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(5005006)(2017060910075)(8121501046)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123562025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR06MB1763; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR06MB1763; 
x-forefront-prvs: 0373D94D15
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39840400002)(39850400002)(39400400002)(39410400002)(377424004)(24454002)(57306001)(110136004)(33656002)(38730400002)(99936001)(102836003)(6116002)(50986999)(76176999)(86362001)(77096006)(6486002)(478600001)(3280700002)(8936002)(6436002)(6512007)(8676002)(2906002)(81166006)(99286003)(6506006)(53936002)(50226002)(36756003)(6916009)(2950100002)(3660700001)(5660300001)(25786009)(7736002)(305945005)(14454004)(83716003)(2900100001)(4001150100001)(53546010)(82746002)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR06MB1763; H:BLUPR06MB1764.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/signed; boundary="Apple-Mail=_B4DCA0C3-6563-4EE0-83CE-C7C9D93533A9"; protocol="application/pgp-signature"; micalg=pgp-sha512
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2017 08:24:10.8753 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR06MB1763
X-OriginatorOrg: netapp.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/0EbeertV1bI-GBc-9-kQRI4Pzig>
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: Wed, 19 Jul 2017 08:29:14 -0000

--Apple-Mail=_B4DCA0C3-6563-4EE0-83CE-C7C9D93533A9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi,

On 2017-6-9, at 12:55, Eggert, Lars <lars@netapp.com> wrote:
> We'll be meeting October 3-5, 2017 (Tue-Thu) in Seattle, WA, USA(*), =
hosted by F5 Networks. Do note that it is likely that there will be an =
interop event before the interim, most likely on Mon, Oct 2.

based on feedback, we are adjusting the scheduling as follows:

* no meetings on Mon, Oct 2
* interop on Tue, Oct 3
* WG interim Wed+Thu, Oct 4+5

Lars

--Apple-Mail=_B4DCA0C3-6563-4EE0-83CE-C7C9D93533A9
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmpq0ZpSoejRmyhheVLXDCb9wwVcFAllvFyoACgkQVLXDCb9w
wVe3Og//QfevkqK0PU6z3ZCyKSTddLVFOp5qdP+ezAivbJ7ZLSs6pKLode1dPT5o
caIc3KSj6O0YChZBuNz+uF/UIleAm8sUX9wMBvnOxy7HWf4+le8W1XmyjF/+GgdJ
IZKiHDtHjYR1dVAIZ9zqIL3/rPdvoH6NdBHh3yA09r2sChBqdTmjGzlrZ62CJuXq
XliHM5j/61aHmpqWsiXOfaYdmkp/+auXOqPr+oJHPwz7z50xM6kVUSKXTHNGdU6P
63maRKcyelRPkQoz36yD8IRQANsnxPeVW56LsyxtSe0B5VY5/yH0lRcTkFe1KbS/
ULk4p0C3tiny4kvhlHvRcn60v0+UX3A8sY77vCXNyJJ1G7DpS65pwyQuXsxcOFDW
o3SLSsIZPStwf18zHyyan5H0rQzaRf/OVxyPC2+p2Ap3hzwAj+4uUpmK5Ehutxl9
P7gbTCWd0k0GcPAPyr5zG3aj34G3PgAikjFJST7sA/NsOHg/PLEDjo9n0D7MsbrL
j9e9Vyl92mlWolXQWFdB+PMACBL7NkiyZOnTpK26SzLBNixdg0a5tfenCE9pcRMX
PCB/3DYkur5hpKwZld49+WniVuOdvcRVz3obNo5B9hlaijq9PAEOf5hkkSoQyHQC
CCmfDlesHPcEFOGHuxfrk9z6YPfOFnF/YCGN7/evITllsTRownI=
=sgEd
-----END PGP SIGNATURE-----

--Apple-Mail=_B4DCA0C3-6563-4EE0-83CE-C7C9D93533A9--


From nobody Wed Jul 19 01:40:39 2017
Return-Path: <lars@netapp.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 B4600131C3B for <quic@ietfa.amsl.com>; Wed, 19 Jul 2017 01:40:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.902
X-Spam-Level: 
X-Spam-Status: No, score=-6.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=netapp.onmicrosoft.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 7qyd-WqN3n-D for <quic@ietfa.amsl.com>; Wed, 19 Jul 2017 01:40:36 -0700 (PDT)
Received: from mx141.netapp.com (mx141.netapp.com [216.240.21.12]) (using TLSv1.2 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 76B46131C31 for <quic@ietf.org>; Wed, 19 Jul 2017 01:40:36 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.40,380,1496127600";  d="asc'?scan'208";a="216613761"
Received: from hioexcmbx07-prd.hq.netapp.com ([10.122.105.40]) by mx141-out.netapp.com with ESMTP; 19 Jul 2017 01:16:20 -0700
Received: from VMWEXCCAS11-PRD.hq.netapp.com (10.122.105.29) by hioexcmbx07-prd.hq.netapp.com (10.122.105.40) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Wed, 19 Jul 2017 01:35:34 -0700
Received: from NAM02-SN1-obe.outbound.protection.outlook.com (10.120.60.153) by VMWEXCCAS11-PRD.hq.netapp.com (10.122.105.29) with Microsoft SMTP Server (TLS) id 15.0.1210.3 via Frontend Transport; Wed, 19 Jul 2017 01:35:34 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector1-netapp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=AfJr+EWj14aCgr9GKJpjA1sUJxyMKaUR9Qx4+JQJ/v0=; b=kfW/pbFM8naBvhM3XGT5ES1QehYNzuwKQy2CfnTFdogO6Ktf8Ee/2pnpxB58AppnUwhavNQPTGJmUnptwmvEwiE6zsNuoSqai7FepklqAR3NPKvo+27s2dqDwDsn8yAaPmYD9yxAdvUSPO5WSsQEL6k8dubWmcZz9p3tY8KQhvE=
Received: from BLUPR06MB1764.namprd06.prod.outlook.com (10.162.224.150) by BLUPR06MB1762.namprd06.prod.outlook.com (10.162.224.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Wed, 19 Jul 2017 08:35:34 +0000
Received: from BLUPR06MB1764.namprd06.prod.outlook.com ([10.162.224.150]) by BLUPR06MB1764.namprd06.prod.outlook.com ([10.162.224.150]) with mapi id 15.01.1282.011; Wed, 19 Jul 2017 08:35:34 +0000
From: "Eggert, Lars" <lars@netapp.com>
To: IETF QUIC WG <quic@ietf.org>
Subject: Slides needed!
Thread-Topic: Slides needed!
Thread-Index: AQHTAGn9oETQuEhbckW3kWkWi3vBNA==
Date: Wed, 19 Jul 2017 08:35:34 +0000
Message-ID: <86843AB4-06CD-435A-9D03-744355939DE9@netapp.com>
Reply-To: "Eggert, Lars" <lars@netapp.com>, Mark Nottingham <mnot@mnot.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.3273)
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=netapp.com;
x-originating-ip: [2001:67c:370:128:1155:16a4:3b94:22c6]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BLUPR06MB1762; 7:/KbLlfPQ3rPVitedJ1yc5YBFSKsJMg6304NRshmHg/Do1rPJ8/fDCIpEtjYyddGaK/SvXAObF0eufI4Su7Q8vvtS+phoWoqifmVs0ZrYH8ODE4jVZbnegPp0H61y9c5goYds0vX0sErKPganiKdiCbhBKYDhESqtwt+crfS3a54fJl5F0ckhHeJ9Dmhgz8DZN6GF9eyGXr+jHy32TqGpO9zoWzrip3CrLt3CkOQdzc8rhgCfGddqmWXUvDLJPuVsOkj35w6chsrPGC9gKOS5oJ8S+FTTEEDpBrtWgJMG74HR81J7QNzEoXOw5x6DhQHc8J1Wjp0bRJ0BJm1vpn4fbR/HOUEfCTrt8/uv/6bUC924Pppi6IhFZ+4jWsEtO/nmr7drYM8nJkpLExn9+TFcpPI9T0O4tJpunL/EZHV3IllmoM1441YvLT6i0Lbr3CQgn0ClCeFNq3upNEFrOE+W/Iymu1sfvcLTwV00EuyUVeHJN5pd6NT4fxnU/PXPoU6w1jjU+7OIuI+3Hwltiz0Z1oqmf9bo0Th8IPq5lGCnNrlSLETe5bbkUCwISntzgE7n6Uhjm+XlsWtyGocatxo7afrKF5ONZoW9WYJlF3QcNFe6NEwAwGMDvzU5SPZMY+yjutHbDtOt4Id14DM7yMNBlEIEaO8eTBflpgLcPP8i26O+RZSJl6ji2dEEoOyaSsq6DO31Nq77sb6I0twZO2sG0/E7SoEEaeigBQr3p1KjhsOuhUl+5fxsNOxPVdXaB9uU7Dn4nO8iguVGUL9HnYHWzUIlF0uWYptFWkTPTdx0K7I=
x-ms-office365-filtering-correlation-id: a9876482-8499-424c-2a00-08d4ce811fde
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(49563074)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BLUPR06MB1762; 
x-ms-traffictypediagnostic: BLUPR06MB1762:
x-exchange-antispam-report-test: UriScan:(236129657087228)(48057245064654)(247924648384137); 
x-microsoft-antispam-prvs: <BLUPR06MB17622B5E5520E324A15D6AADA7A60@BLUPR06MB1762.namprd06.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR06MB1762; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR06MB1762; 
x-forefront-prvs: 0373D94D15
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39840400002)(39450400003)(39410400002)(39400400002)(39850400002)(36756003)(478600001)(57306001)(305945005)(3480700004)(558084003)(189998001)(50226002)(6916009)(14454004)(53936002)(7736002)(50986999)(43066003)(3280700002)(99936001)(226693001)(25786009)(3660700001)(2900100001)(86362001)(6486002)(83716003)(82746002)(77096006)(6436002)(99286003)(6116002)(33656002)(102836003)(38730400002)(8676002)(5660300001)(6512007)(81166006)(6506006)(110136004)(2906002)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR06MB1762; H:BLUPR06MB1764.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/signed; boundary="Apple-Mail=_798367FC-177A-4D51-83E6-D13FD42C1382"; protocol="application/pgp-signature"; micalg=pgp-sha512
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2017 08:35:34.5745 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR06MB1762
X-OriginatorOrg: netapp.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/kbv5fA16W6MjUxbwWu9qViA9t-M>
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: Wed, 19 Jul 2017 08:40:38 -0000

--Apple-Mail=_798367FC-177A-4D51-83E6-D13FD42C1382
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi,

if you are on the agenda for one of our sessions, incl. the joint one =
with HTTPbis, please send your final slides now. PDF is best.

Lars

--Apple-Mail=_798367FC-177A-4D51-83E6-D13FD42C1382
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmpq0ZpSoejRmyhheVLXDCb9wwVcFAllvGdYACgkQVLXDCb9w
wVfFTg//Rmx1F/4UHPr+g9FZmnEBKULxeABf4frTcEeFayJgHSj+CkfZBRDQxlbz
G3SO3UgJDOmc/oeP0ujNb1f7CBCpM3hiQKzTpk6E/lb/rwrZ5KkIIrh0ckOUEaOA
EboxDamOkXUCvqB2Hq24SWSt5dCvF5BSnvfygU1ws71U9sWTXJ/GgdXHVEJu98El
yd0nNejpYhYcgQxR2hK63vN6vvZ9UXqnA8g4Gp/wUX2haMSa8iheG2/NEYKx8yXH
iTH7LgMZW/rBAOCiIzOex+zhhLZOcnP5aF13sl+Bpgmdvz+7joFBq9XvaXdQxfP9
IPOxBds1sfu8U91eEsvatwGkuAQutdvC4yLqwVlfkKdtotuMfouYPD2XE3A91gV5
bGgFS18d7C3rr0PQ5YQ7S0BtLS6wPcn+kCzYcpOcKtyK7bTZZtxdii76xbSw/tjx
potDYX0o4xmJEU0jP231lzio48O3HOTTiFow7W/mGFlkEnrq7Mz8Ep3vcQaugyrw
pdgNlZ8jlFuxQ8b8u0wZmuPanlFKiG1KjxZMZk9aZQ1Cz4ArAFI+Pwsw6EEg1TJA
CcBqY0V6us75QW11eRpTpgZGWhOLDgMDtP8l44WWOISfaaEzy61mVno2XTlnoCW0
RfOkhB+g9SE7ivHT/tVsqvAbA5U8D2Q8dHjuFAC1PtUftPd5mLE=
=Fc0H
-----END PGP SIGNATURE-----

--Apple-Mail=_798367FC-177A-4D51-83E6-D13FD42C1382--


From nobody Thu Jul 20 00:50:17 2017
Return-Path: <lars@netapp.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 9D130126B72 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 00:50:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.902
X-Spam-Level: 
X-Spam-Status: No, score=-6.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=netapp.onmicrosoft.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 xKevdN_rE5Sx for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 00:50:14 -0700 (PDT)
Received: from mx143.netapp.com (mx143.netapp.com [216.240.21.24]) (using TLSv1.2 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8CFFC126557 for <quic@ietf.org>; Thu, 20 Jul 2017 00:50:14 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.40,382,1496127600";  d="asc'?scan'208";a="206928482"
Received: from hioexcmbx08-prd.hq.netapp.com ([10.122.105.41]) by mx143-out.netapp.com with ESMTP; 20 Jul 2017 00:23:57 -0700
Received: from VMWEXCCAS12-PRD.hq.netapp.com (10.122.105.30) by hioexcmbx08-prd.hq.netapp.com (10.122.105.41) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 20 Jul 2017 00:45:12 -0700
Received: from NAM01-BY2-obe.outbound.protection.outlook.com (10.120.60.153) by VMWEXCCAS12-PRD.hq.netapp.com (10.122.105.30) with Microsoft SMTP Server (TLS) id 15.0.1210.3 via Frontend Transport; Thu, 20 Jul 2017 00:45:12 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector1-netapp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=qKtInefO18lA5WvtvWyn0s7vlXHamCPoPEcAWJU07kE=; b=qomVtDdASVTmpvBg7QNTqtLNvp7kcj4QsU5jevLuW0No3dz29AbrqWo4R9VgEHBu17TBJ9k72FFj/QeGRqtLUp4UOR/TrD/m+g3J1XBjUiwsL89PkaPNcpC9R7hEzaV5NHA/Zx8lnKZs0V7SJT8DV5LviGbvxWz/Zmuj4VDrP+M=
Received: from BLUPR06MB1764.namprd06.prod.outlook.com (10.162.224.150) by BLUPR06MB1763.namprd06.prod.outlook.com (10.162.224.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Thu, 20 Jul 2017 07:45:13 +0000
Received: from BLUPR06MB1764.namprd06.prod.outlook.com ([10.162.224.150]) by BLUPR06MB1764.namprd06.prod.outlook.com ([10.162.224.150]) with mapi id 15.01.1282.011; Thu, 20 Jul 2017 07:45:13 +0000
From: "Eggert, Lars" <lars@netapp.com>
To: IETF QUIC WG <quic@ietf.org>
Subject: Re: Update: October interim
Thread-Topic: Update: October interim
Thread-Index: AQHS4Q7f7Ux8d10Gnkud9ELD8hTzg6JbDqwAgAGHbQA=
Date: Thu, 20 Jul 2017 07:45:12 +0000
Message-ID: <CAAF8438-6E2B-47FC-A11D-A64D2CB3F49E@netapp.com>
References: <AB9D382D-74C2-4FD1-B1AD-60D4C0744C1F@netapp.com> <9475E8A5-017D-4061-ACB1-3AF6E988DF72@netapp.com>
In-Reply-To: <9475E8A5-017D-4061-ACB1-3AF6E988DF72@netapp.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.3273)
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=netapp.com;
x-originating-ip: [2001:67c:370:128:5c29:d3e6:7a29:f7d8]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BLUPR06MB1763; 7:kOKlEA6PUVXDgQz59VHJYgZBpXr6rOb0U3mjupJD/mowAwkKPZKfbzzPQMHTWaURB57eSw/muTrMlRp/sdneicItC2eqNE8uN81Z3bJcbAsE7nCaH8jAks3t7nZ9u0pgRCJfrGFUNMx7hAPPIt3qr6RbGqV5+T2jB3NOWMTYxQNd5r+w/m+Qz24APp2PSUoLYdPkqZKu78t7dAzO3gyg8bXsqZDlWhXyuOmtzvnjYeSKyuEFYEIJAAjV9nrbSghKvMmFoXnq8Lr6AyVfm+HsHqagG+VXiYiTm2DkByCunNijQM/VJjLFbnnwcsqd+U951n7v3NEDX6AeBDwGRU5rMMFjpm9KustqkCAt9wuTRM0LEIzY7zOItbtK0rcvudi4GO1CpjTrpPku3KMz9jjXASndSeYnvyvWNevNq58OKZurgcwtgyqzxfi1QmTOs8BXpdeVwGvuG+WsIpgLW+6FY3g1zQgmi042h3lUT5tsLawyagIOHoI0Hzuksb0VbTaaS3Ev23xS+FknFlXgBmPEpN9aTWUgGs+Fqhzkj3T5doPaQZKJ9AbAg/6s8J7G5Zk5Y5tlVk7hYJN65NMmxdx7874rE2BqmAgpzKGhlIr7r+PkISdXyDGgz3ZHR/A8Ls929bC7gtV1v0fkF0grVHQKGoNKBd6s+bv3syH9S5sHaDDRh8RMAVJJZ8dkcyMGecUjy34P/ZJq3TEolwfUtuu7T7IyGUhnX5JWd4m2Cexuw4t3Fs1t9CdbwNDQfZxdTLfL2CjuGyS5gnwnmO8bNvoQcsD0G0rfCf7uIHhfDbWOP3I=
x-ms-office365-filtering-correlation-id: d8c6e106-af37-46dd-d823-08d4cf43413e
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(49563074)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BLUPR06MB1763; 
x-ms-traffictypediagnostic: BLUPR06MB1763:
x-exchange-antispam-report-test: UriScan:(236129657087228)(48057245064654)(148574349560750)(167848164394848); 
x-microsoft-antispam-prvs: <BLUPR06MB17634F516C881501B2138F4BA7A70@BLUPR06MB1763.namprd06.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(5005006)(2017060910075)(8121501046)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(20161123555025)(20161123558100)(20161123560025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR06MB1763; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR06MB1763; 
x-forefront-prvs: 0374433C81
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39840400002)(39450400003)(39410400002)(39850400002)(39400400002)(377424004)(24454002)(33656002)(57306001)(102836003)(38730400002)(50986999)(76176999)(229853002)(6486002)(6116002)(110136004)(86362001)(77096006)(478600001)(99286003)(81166006)(3280700002)(2906002)(8936002)(6506006)(6436002)(8676002)(99936001)(36756003)(50226002)(53936002)(6246003)(6512007)(6916009)(25786009)(2950100002)(5660300001)(305945005)(7736002)(14454004)(2900100001)(83716003)(3660700001)(4001150100001)(189998001)(82746002)(53546010); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR06MB1763; H:BLUPR06MB1764.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/signed; boundary="Apple-Mail=_AAB64480-412F-425A-A29E-075A30C6D627"; protocol="application/pgp-signature"; micalg=pgp-sha512
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jul 2017 07:45:12.9384 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR06MB1763
X-OriginatorOrg: netapp.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/yA9LwpyMfJdABJHgVOgKMoPv_gY>
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: Thu, 20 Jul 2017 07:50:16 -0000

--Apple-Mail=_AAB64480-412F-425A-A29E-075A30C6D627
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi,

On 2017-7-19, at 10:24, Eggert, Lars <lars@netapp.com> wrote:
> based on feedback, we are adjusting the scheduling as follows:
>=20
> * no meetings on Mon, Oct 2
> * interop on Tue, Oct 3
> * WG interim Wed+Thu, Oct 4+5

in order to make this change in the datatracker, the secretariat needs =
to cancel the current interim and create a new one. This will make a =
bunch of emails appear on this list.

Please do not cancel your flights when you see the cancellation email =
:-)

Lars

--Apple-Mail=_AAB64480-412F-425A-A29E-075A30C6D627
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="signature.asc"
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmpq0ZpSoejRmyhheVLXDCb9wwVcFAllwX4QACgkQVLXDCb9w
wVd0hQ//eVjasJvds/5PN7IoGRCS+Jf2Zm2R4wL8411tHNcM76z+X2Nr0eMQp6lo
OSw2BpiaqJBGKl/KBW/UB6F7XF1z6QF6/mUDg97WwcQ0HJwa4Eptexj9pS4q9+Cw
3jMo2WePHYTzEwy6ihBOhCz4iaA3xOQEDGB4tKhcaQ8o9n6rj7HFmjlBuFCLDZsm
EBJK20Bh/ne6rATDU54WtBppufeTqYaRz4/4hpYtgy7jnao6ttI+HOy+D8EdKdWV
acok/ujjnRnc0fQsWejvpQ2y+cWCAD0XjhXTsNExjQk/nGFOaUamC/XO3OmkFxm+
Am4eJSLmgJOmFgziV/fH0rWOwTAzFP60t3fsKko2iTyjpsl+WdVdGnwJou7CkqRL
DNT4FhcuX3A5KW1VO6k3DwMzC4+SWZ3pjv+nwYvUfcHLCiZ7QG4mQEyMu0hD8mej
TQ+6LDfmSuHTSX36grinZeimbUXsqClho6lgQsom+FZoFc3BEnUJNTtO75kx9qp2
wJLDBng2dOYmq28hXUvQGTQoTMF70ViHrY+0nrotUuyiehe8PI3rgnHqkE9CbXzr
VV1vwrrT+T0O6gbJsAGPq3g0Em+F8JtxERajekMHGZ6mXVw88Q9Tjd/1LK2ZAaax
gI9dDhR3Ga6uPSRrB7/hAuxg2DxEP6VEi/Q9PCJ4+BDPTQl5IxE=
=qAYP
-----END PGP SIGNATURE-----

--Apple-Mail=_AAB64480-412F-425A-A29E-075A30C6D627--


From nobody Thu Jul 20 01:25:21 2017
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: quic@ietf.org
Delivered-To: quic@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 48D4A127337; Thu, 20 Jul 2017 01:25:13 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: quic@ietf.org, quic-chairs@ietf.org
Subject: QUIC (quic) WG Interim Meeting Cancelled (was 2017-10-03)
X-Test-IDTracker: no
X-IETF-IDTracker: 6.57.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <150053911319.24155.4021021381525821646.idtracker@ietfa.amsl.com>
Date: Thu, 20 Jul 2017 01:25:13 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/m1Oreuj8V9S3Go_enF5u3F95Q6s>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 20 Jul 2017 08:25:13 -0000

The QUIC (quic) 
interim meeting for 2017-10-03 from 09:30 to 17:30 US/Pacific
has been cancelled.





From nobody Thu Jul 20 01:26:39 2017
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: quic@ietf.org
Delivered-To: quic@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id B8FD3131897; Thu, 20 Jul 2017 01:26:37 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: quic@ietf.org
Subject: QUIC (quic) WG Interim Meeting: 2017-10-04
X-Test-IDTracker: no
X-IETF-IDTracker: 6.57.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <150053919767.24172.13815591993424618052@ietfa.amsl.com>
Date: Thu, 20 Jul 2017 01:26:37 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/2Sh80NyJHL3z5l56O56-SnqkLxE>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 20 Jul 2017 08:26:38 -0000

The QUIC (quic) Working Group will hold
a multi-day interim meeting.

Session 1:
2017-10-04     09:30 to 17:30  US/Pacific
Session 2:
2017-10-05     09:30 to 17:30  US/Pacific

Meeting Location:
Seattle, US

Agenda:
(No agenda submitted)

Information about remote participation:
TBD


From nobody Thu Jul 20 03:00:02 2017
Return-Path: <magnus.westerlund@ericsson.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 26BC313157A for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 03:00:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level: 
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 ccwtlrYjMUy3 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 02:59:58 -0700 (PDT)
Received: from sesbmg22.ericsson.net (sesbmg22.ericsson.net [193.180.251.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 45C0A131BFC for <quic@ietf.org>; Thu, 20 Jul 2017 02:59:58 -0700 (PDT)
X-AuditID: c1b4fb30-71bff70000001664-ef-59707f1cd952
Received: from ESESSHC023.ericsson.se (Unknown_Domain [153.88.183.87]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 12.20.05732.C1F70795; Thu, 20 Jul 2017 11:59:56 +0200 (CEST)
Received: from [100.94.37.66] (153.88.183.153) by smtps.internal.ericsson.com (153.88.183.87) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 20 Jul 2017 11:59:55 +0200
To: IETF QUIC WG <quic@ietf.org>
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
Subject: Idea for packet numbers
Message-ID: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
Date: Thu, 20 Jul 2017 11:59:54 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms050607090406040501030803"
X-Originating-IP: [153.88.183.153]
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJLMWRmVeSWpSXmKPExsUyM2J7uK5MfUGkwc3nkhY9C7gdGD2WLPnJ FMAYxWWTkpqTWZZapG+XwJXR0z2TveCeQ8XdTd9YGxh7bboYOTkkBEwk7i7YydTFyMUhJHCE UWLhjtesEM5GRomdCz6xdTFycIgIKEisaeAEaWATsJC4+aORDcQWBgp/W76EHcTmFbCXmPxk CROIzSKgKrHiwFqwGlGBGIlrM++wQtQISpyc+YQFxGYW6GaUOHddG8QWEtCWaGjqYIU4SEni +rzrLBMYeWchaZmFpAXCtpW4M3c3M4StLbFs4WsoW1yi6ctKVgjbWmLGr4NsELaixJTuh+wQ tqnE66MfGSFsI4l3exrZFzByrmIULU4tTspNNzLSSy3KTC4uzs/Ty0st2cQIDOSDW34b7GB8 +dzxEKMAB6MSD29zbUGkEGtiWXFl7iFGFaA5jzasvsAoxZKXn5eqJMLbAZLmTUmsrEotyo8v Ks1JLT7EKM3BoiTO67jvQoSQQHpiSWp2ampBahFMlomDU6qBccn/w0Wcv0u3PTNr8NS/80hQ jz9KLfn9lrUHV3cu6Czl5L9YfUBb2XAn2za/ieu4nHimzbL4e+DDL8eda8ptfzu8vWe1RLTD UiyH44U504+YroPTq1IL82Ic1/SxS7EvDD/nq31f1+hsoIMIW860K/IHbk58eqCoJfFEbqxI m1SVz281gzv/lViKMxINtZiLihMB+5qKjWwCAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/tCcEECogBErU1_SWGZ9odtYAGEc>
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: Thu, 20 Jul 2017 10:00:00 -0000

--------------ms050607090406040501030803
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

Hi,

There has been some discussion around packet numbers. For passive=20
detection of packet loss in measurements and network management, it=20
would be really good if the packet numbers where continuous and not only =

monotonically increasing. As this enables one to determine losses=20
upstream of the measurement point. At the same time I understand there=20
are benefits with being able to introduce gaps into the packet number to =

test the receiver's behaviour.

To enable both of these capabilities I would propose that the N least=20
significant bits of the packet number are strictly increased by one.=20
Then one can introduce gaps in the bits above the N ones. Yes, that will =

burn through the packet number space faster as the gaps may become=20
larger than was the case without this. However, I don't see that this=20
will have significant effect unless the sender introduce gaps very=20
frequently so that the length of the packet number field needs to be=20
much larger due to the outstanding sequence number space is much larger.

The value of N can clearly be discussed but it should be selected so=20
that reordering and common burst durations are shorter than the time to=20
wrap the strictly increase amount of bits. If the higher bits are=20
available to measurement node, some possibility to infer gaps will also=20
be possible. It might be that N needs to be scaled with throughput with=20
a minimal value. N=3D8 would mean 256 packets between wraps. I think that=
=20
is a reasonable minimal value. However, that will wrap in 28 ms at 100=20
mbps of payload (assuming 1400 bytes of payload per packet).

So what people think about this idea?


Cheers

Magnus Westerlund

----------------------------------------------------------------------
Media Technologies, Ericsson Research
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Torshamnsgatan 23           | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------



--------------ms050607090406040501030803
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME-kryptografisk signatur

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC
DLkwggX7MIID46ADAgECAhEA75oIXW3eBHJH2u7brn5gnDANBgkqhkiG9w0BAQUFADA6MREw
DwYDVQQKDAhFcmljc3NvbjElMCMGA1UEAwwcRXJpY3Nzb24gTkwgSW5kaXZpZHVhbCBDQSB2
MjAeFw0xNTAxMjMwODUwNTdaFw0xODAxMjMwODUwNTdaMHAxETAPBgNVBAoMCEVyaWNzc29u
MRowGAYDVQQDDBFNYWdudXMgV2VzdGVybHVuZDEtMCsGCSqGSIb3DQEJARYebWFnbnVzLndl
c3Rlcmx1bmRAZXJpY3Nzb24uY29tMRAwDgYDVQQFEwdlcmFtc3dkMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAkULrp/ViIWFfDbY2Ycew0bXJc2In2WNQbPORLyFXNpRhjhmg
ot5P/0w90T4HY0H6QayjIPK6qIGt1DBXwkq/QHoRsFZiDK9JDnk2WUDcqbJaHqMXvkhj4Jl4
KvonZ31T3NF/8OlcEjumVc8AUA6iccOeUva3TvL/EOqY3f4bsem4ER3KAcY/lTPWivSY+/Aw
vS64JjaANOHVhZ0LUj10JTe9CpdXB+1nMpqLFYkjse/2ahQuKyaBKhKJs35pSYijh3Ln+vMv
YUNEna2LjHvkCPVo5Oihylxjmd1OSDXND7125tgo/kB08RtaJ9u6PNw0CoUgA+d23UzVzlYg
aSJbhwIDAQABo4IBxDCCAcAwSAYDVR0fBEEwPzA9oDugOYY3aHR0cDovL2NybC50cnVzdC50
ZWxpYS5jb20vZXJpY3Nzb25ubGluZGl2aWR1YWxjYXYyLmNybDCBggYIKwYBBQUHAQEEdjB0
MCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcDIudHJ1c3QudGVsaWEuY29tMEgGCCsGAQUFBzAC
hjxodHRwOi8vY2EudHJ1c3QudGVsaWFzb25lcmEuY29tL2VyaWNzc29ubmxpbmRpdmlkdWFs
Y2F2Mi5jZXIwKQYDVR0RBCIwIIEebWFnbnVzLndlc3Rlcmx1bmRAZXJpY3Nzb24uY29tMFUG
A1UdIAROMEwwSgYMKwYBBAGCDwIDAQESMDowOAYIKwYBBQUHAgEWLGh0dHBzOi8vcmVwb3Np
dG9yeS50cnVzdC50ZWxpYXNvbmVyYS5jb20vQ1BTMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggr
BgEFBQcDAjAdBgNVHQ4EFgQUwff+Y5pMEPJX7xortCv8deSKeQEwHwYDVR0jBBgwFoAUsQ3K
1Ea3r4YCwy9vBsoOdnF/SzcwDgYDVR0PAQH/BAQDAgWgMA0GCSqGSIb3DQEBBQUAA4ICAQBy
rk0JhGgu9Fd/0Fg1cMhSa882HMQZWQLT1V4PFQpU6t2an8xaqT5JsxOpuxb+WxwpKG+UDbzQ
cWgcb/DPW3Mc0AvhTFII1qAYf6Smkq6SOD/8TACjH+dy7JrbcNYJcTlVNBlC/V/C+waICkER
wuMC/8QjXs0ExJekAD3i/3GUok9WnvEHsohIL04qk1lbvJN4WGHCHFercX11Ch+UjStHwtyw
zyFWi64CqD48kKqPwEne3Lj7ozxzuwCCaJI9fmCQgLfSL+UcDgEb7cQucMAnB/Zxlz6U6ohd
PRlQHaLevAYD2UK+BlhZKLAv/DNUz0nk6fx4CiJF5DIRteUdzGoeGcnWMWO9hv5PkEJC1WkZ
gYXZ/91HMUjsYUuy5/EsmkqvkCalRudoqe6Pex3A34iFGNvDhI3fCrbvmRS4FARPse5D8BLu
e/PIvAPNUC7xl8UcfnTNVgy5ITzWNiY9hIrbAzfPbTXyZSIdMD+HTNg33ziMbu2Iry/2eS1X
/whXkApnQNpHplvzf1xMEeNPlDKtL8OOg+9y4ESdn27EKxeeaaFXsrhb3z1woIjQxXINft5W
EPXWnks/YBCvrLTH8kRCLZgH17zDxb+MLqKj1XUQtBKgDhb+VswJM6GF+dDeBJoEYjvLR1Sx
l5yfaRj0F7HYkjRUwyehwSHgTVqtgnT9QjCCBrYwggSeoAMCAQICEQCgDMvMm5mY7OI6cPR8
wcBZMA0GCSqGSIb3DQEBBQUAMDcxFDASBgNVBAoMC1RlbGlhU29uZXJhMR8wHQYDVQQDDBZU
ZWxpYVNvbmVyYSBSb290IENBIHYxMB4XDTE0MDUyNzA3NDYyMVoXDTI0MDUyNzA3NDYyMVow
OjERMA8GA1UECgwIRXJpY3Nzb24xJTAjBgNVBAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwg
Q0EgdjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDaulPrX0iWU5+JOOqjddx4
Gnl17DJhklkoXOgOSBMhW6FzGVt5RR7KPv+rjt2YpbwdoqWSYa4VPkS/72vuQoWsvz2avWWX
hPTdNzrB3zs5cJO7sKIyd+LRy4l/8kKK4iPm+Q18XyGF0xTuc5WS3WiMScJSxEKdIOP8xehB
raHZabrGh9OxQHC4iBHkzD0YF3J/vBqBTr7blRzYf1h3j5a7qVIHCPfz+eCE175mResXDQRI
7LvMiZtVaqitBl0oAJiJyeBmvEujBNsIEgUQ6JcQFG5ny0EazLywv7clwb7izvLgoXc6SFrd
0D7TGJtkdldVJtMwDYXpyFMGAijT6uf8h2kuPIwrDgQFNEyIQZ4q52ZpRGwugC6sMxgHEDGj
A/CxX9aC5Vi1EMRJiOGF6gV3T+V5yHDHSBBeQbVAXm8wSTDBfXQwdro/AXqET0mG6Rpe4q2F
GBaauE8qHEO6qR3WAEgvjVfFU2k6xZx1qmvwhkXadxh6ZIMXzgb6WpjivLnR0GEKNrgN2DXd
vo+6eAt45Bhvmeka2TrJDxMLWiBy8QYgNeNXYQsuREnDsjWo6wF0LqbA5769om9nn/uJzmzx
b3nT1iHue5co9J93ta06kxiASHvcIzZwAOjKnmk0vR3IT7Qbzq2of3E1s18xo8DM9D91Cak0
Nq+RALtdv1uZKQIDAQABo4IBuDCCAbQwgYoGCCsGAQUFBwEBBH4wfDAtBggrBgEFBQcwAYYh
aHR0cDovL29jc3AudHJ1c3QudGVsaWFzb25lcmEuY29tMEsGCCsGAQUFBzAChj9odHRwOi8v
cmVwb3NpdG9yeS50cnVzdC50ZWxpYXNvbmVyYS5jb20vdGVsaWFzb25lcmFyb290Y2F2MS5j
ZXIwEgYDVR0TAQH/BAgwBgEB/wIBADBVBgNVHSAETjBMMEoGDCsGAQQBgg8CAwEBAjA6MDgG
CCsGAQUFBwIBFixodHRwczovL3JlcG9zaXRvcnkudHJ1c3QudGVsaWFzb25lcmEuY29tL0NQ
UzBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsLTMudHJ1c3QudGVsaWFzb25lcmEuY29t
L3RlbGlhc29uZXJhcm9vdGNhdjEuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
BDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLENytRGt6+GAsMvbwbKDnZxf0s3MB8GA1Ud
IwQYMBaAFPCPWTgAs/WPmpYM1ev6e6oX6BMSMA0GCSqGSIb3DQEBBQUAA4ICAQBuByBsr6x3
PZBCsmGbcSZ/XL+0tnVMblInoJgL1Bh3PiRicgdo8l+6cvWp/ArBwMYNwSNyrvY9IewyaV8n
65c5oN+l2JDUuzrdANVKnYxha7ZyCEiPmY98sB2bnZgxfJLXQYoRwI7pOOwfyoP2fCYVCd+x
hsfysYiIl4ORzE3TpeppQ2yWkyBBmoHUXJh97ue6+bJ2fqnVUoOVMVnYYEtvsz67v7w2z3fv
dcy04/RnoylxSenxADi1tY9iIydHMgyOu3dfzsxU8AivMGG4aKStsCfUEyg0LlkbhqMrdnes
s3e1qAEueSRNASLfpFwyRmzmiuNh9onzuhER2yYhK/6IeCs4HQHrPhkY8JUmhtmdL2uErOZW
Os38FQhGWHWXI0g6SgdDObU0GEHju0MkDziOhm+BVwPZKN7B7wD7OPj6vlLVo6d8vLGK9byw
hEfXjxLIC3Qhtu5lJPTgIo5Bup+aBBjiJ/u9BfqryqZpudnWfG+wxC327rpNAq2OKdFsR92w
behSZD3mSSAemDVwGB2Yu0XHQYyyYfpWsGyGEyRSHKFhRwJdINPzWLI89wy4Wc+PgqyekkEm
Jqe6g4XSQFj4mqtwvqhP4dg2QCcKM/bh62RwfM7GeSS/LFGe84KmJjTDfvT8c2rK8nEyZ/em
OtwCGXQ6tZCByMNLxeDwU1TGbTGCAxcwggMTAgEBME8wOjERMA8GA1UECgwIRXJpY3Nzb24x
JTAjBgNVBAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwgQ0EgdjICEQDvmghdbd4Eckfa7tuu
fmCcMA0GCWCGSAFlAwQCAQUAoIIBmTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG
SIb3DQEJBTEPFw0xNzA3MjAwOTU5NTRaMC8GCSqGSIb3DQEJBDEiBCCdpp6hlGpeMT79sYls
CH8WiDmcwLqregWbBTznAa2yGzBeBgkrBgEEAYI3EAQxUTBPMDoxETAPBgNVBAoMCEVyaWNz
c29uMSUwIwYDVQQDDBxFcmljc3NvbiBOTCBJbmRpdmlkdWFsIENBIHYyAhEA75oIXW3eBHJH
2u7brn5gnDBgBgsqhkiG9w0BCRACCzFRoE8wOjERMA8GA1UECgwIRXJpY3Nzb24xJTAjBgNV
BAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwgQ0EgdjICEQDvmghdbd4Eckfa7tuufmCcMGwG
CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO
BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw
DQYJKoZIhvcNAQEBBQAEggEAJJwBLv+8g1G8rHC4t1gKEaPTXf7015X1ND1r5ryxJsCWyCFC
Ao1r0lXssfdVxpJbpDTw9RTwd0WyjVPB8vhJHT4S9MmJvNMagbmV48QEYwe9hlmYkvH4AnNK
hnyW4O0c7Nc9hBkVLjTt2WZO/9PEBljTkHCpg1fgV8kbEgHBMfY6VAmeyKk9mWScd8rIDNyv
GthQi8yrvb6EiZLdY/a3ya16n/q9zAcd+nJljkjj+tZdLy5utCrJOlZFynGg+c7sDygbhLkD
l+9mueTVVEE3O4/FtpDR4viFT+upNk54TWx5LRw189dL09SNui9U4F0sLyIHTNUwz7/2bqE2
dJivygAAAAAAAA==
--------------ms050607090406040501030803--


From nobody Thu Jul 20 03:38:08 2017
Return-Path: <martin.thomson@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 8FD6612EAF7 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 03:38:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 a6M_z9WjGD3T for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 03:38:06 -0700 (PDT)
Received: from mail-it0-x235.google.com (mail-it0-x235.google.com [IPv6:2607:f8b0:4001:c0b::235]) (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 19F64129AD1 for <quic@ietf.org>; Thu, 20 Jul 2017 03:38:06 -0700 (PDT)
Received: by mail-it0-x235.google.com with SMTP id h199so13768973ith.1 for <quic@ietf.org>; Thu, 20 Jul 2017 03:38:06 -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=n6K3Y5aslq013asSjeNao4OhwvFBwy55ISHT5gF/JdI=; b=PtDfmTc4auemYFE7KWx6FzoNvY/FlqTKhCd4bRZpBF5V5GPEplM79lp3Qbym6kbS2w SXcmkIa0w9EljeX8gE2I5c8VxpLk5oLoc7VjOMTTtvVd66CiKEiraW/NDk1/J38/DitN y/MjGSb6LuXb/ZWqpGjqTgoqgH5dIOZLCNNwkmVuA6eHp3TXTGBny0HTkWbtkBCdFA/f hV/qiNAxFOjCcutWqiY5SEKowbG4wNeHSZHMly+qWkZ+E+g9kJ4mUXLHLLGa6v7YTJlr MCiWRqKTc0j89nYNu/a7aBU70EHLCZyAojDbkArOUBpqgsC9aoZo/FsCQHGhEBZGiL/f spTA==
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=n6K3Y5aslq013asSjeNao4OhwvFBwy55ISHT5gF/JdI=; b=hqnsIxABs4/0fPWHozNpJ/mAFs3cd7ZhBMP+v/G/C9E9LvcJD6RFQJHJfuHvwl6yIP MRonf39r1g7xqBCbl8b1RVSHcDaahpUhC2gMgE5dn/9kD/WBz8Y9MHVPfT9iEGS74oxj g6+BtSt2va1N9b0xK2yaBmm1FYnxPGya35rJ5q5tIwN24el4jAT7CR1SlRxuvJC6E+Lc R5AuOyWdIw/1uEfMGQsGcBA2GQ5oaGXBcOwJLAW1pQRg2cs8cZR3afNvgWt5fBklKwKY 4XhKHssFm8vYRiIMaRCu3XO+8ptNglmx46CJet6RtDy8neyFw2GLe1lHvCIQ3Q7r8+3L PtRA==
X-Gm-Message-State: AIVw110ghemScFKPgKBfIDiqZ8JECj/aeOz+WqlbJh4JqDp9FOGaJqCs w2wDpb/542cNvFGvFVjpxhYtQ/yPcA==
X-Received: by 10.36.83.1 with SMTP id n1mr2889633itb.140.1500547085459; Thu, 20 Jul 2017 03:38:05 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Thu, 20 Jul 2017 03:38:04 -0700 (PDT)
In-Reply-To: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Thu, 20 Jul 2017 12:38:04 +0200
Message-ID: <CABkgnnWY7EVNeZUPqkRUmO6=5=3MdWqdHaCLbW8G_iBHUQmDew@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/KWUNrsIQtRtGxf_XApHg_2av26o>
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: Thu, 20 Jul 2017 10:38:08 -0000

Are you talking about the use of the NEW_CONNECTION_ID message,
because what you propose would be possible, but it would cause an
improvement to linkability.

On 20 July 2017 at 11:59, Magnus Westerlund
<magnus.westerlund@ericsson.com> wrote:
> Hi,
>
> There has been some discussion around packet numbers. For passive detection
> of packet loss in measurements and network management, it would be really
> good if the packet numbers where continuous and not only monotonically
> increasing. As this enables one to determine losses upstream of the
> measurement point. At the same time I understand there are benefits with
> being able to introduce gaps into the packet number to test the receiver's
> behaviour.
>
> To enable both of these capabilities I would propose that the N least
> significant bits of the packet number are strictly increased by one. Then
> one can introduce gaps in the bits above the N ones. Yes, that will burn
> through the packet number space faster as the gaps may become larger than
> was the case without this. However, I don't see that this will have
> significant effect unless the sender introduce gaps very frequently so that
> the length of the packet number field needs to be much larger due to the
> outstanding sequence number space is much larger.
>
> The value of N can clearly be discussed but it should be selected so that
> reordering and common burst durations are shorter than the time to wrap the
> strictly increase amount of bits. If the higher bits are available to
> measurement node, some possibility to infer gaps will also be possible. It
> might be that N needs to be scaled with throughput with a minimal value. N=8
> would mean 256 packets between wraps. I think that is a reasonable minimal
> value. However, that will wrap in 28 ms at 100 mbps of payload (assuming
> 1400 bytes of payload per packet).
>
> So what people think about this idea?
>
>
> Cheers
>
> Magnus Westerlund
>
> ----------------------------------------------------------------------
> Media Technologies, Ericsson Research
> ----------------------------------------------------------------------
> Ericsson AB                 | Phone  +46 10 7148287
> Torshamnsgatan 23           | Mobile +46 73 0949079
> SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
> ----------------------------------------------------------------------
>
>


From nobody Thu Jul 20 04:10:17 2017
Return-Path: <mikkelfj@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 92DA0131B09 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:10:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 JllW_pR4UjjP for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:10:13 -0700 (PDT)
Received: from mail-ua0-x22e.google.com (mail-ua0-x22e.google.com [IPv6:2607:f8b0:400c:c08::22e]) (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 B39A112EAF0 for <quic@ietf.org>; Thu, 20 Jul 2017 04:10:13 -0700 (PDT)
Received: by mail-ua0-x22e.google.com with SMTP id f9so20319853uaf.4 for <quic@ietf.org>; Thu, 20 Jul 2017 04:10:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to;  bh=4FfFBb0cbWKCCcTiVIPR52/SdtN7snfRNJ7+PlQPzUs=; b=mBB+B4dY87m3owpHK/L2z8fV7cg0/9MNAQDYjmoWixQd3EZuDVoXHK+fu+blcHJHiZ XkxzOJcgkZZYabdfzfeRXciQtV7J7Puj8382S/HjV9UGhW7S38wmjLCBwyNYC5HyXtkB EJ+Ra2Z/iBd6LKtfW/sJvNuMWET8Tp6hgXENCLEEo+JEyo6mwQg33tLZb2akdVN73Tr+ A+BjEatVLJHIzag/4H5ACv61hvCz7X89L7p+tZ2qSouDDwi3SpsG3cop7LIy7hoyiq/H olIwWSXDYULCizmww5TvZOm98j+3jkWlc5iyRZcThbhM0B+7xpB3l/N32sL3Bi6BrU0W Gr5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=4FfFBb0cbWKCCcTiVIPR52/SdtN7snfRNJ7+PlQPzUs=; b=OCxdTlIueBWZDM4JyogvMn+V1qcIR60hwvXIn7Vgd6/PsD2QlWw5+592n2JVE3ephM 0JNhzTkm5RP9sOz2gFpABox9uh/M5zrv1Wm5LDiCHzhsJNoTqJrI8W61rRbZMqXLvYGm VUf8HER2shg4ktgvLxvOt53Q2O9VfdK34KZ7iEoTcmedqEzvYw+abZl8xrJ6gI+sL2S6 MDIHvSUAv7JVtQdZjB6QKxAh9QVdhGeoRTt+ZRWVjTD2BORCKaseufN3pVOKhccyBOaf XWvXYMAOPybE8PMF6np1IoYb5vM6/EXlMSS52NX0RiO/gLp+t2HaHAxZdFOvmf1aZzBy s+Qw==
X-Gm-Message-State: AIVw112R+F8IQ8Eximt396A+4FduKEMvUV4DiPgoCuSjecxLe7dFgcIl PlcwBH+8ez8zD+S3QK8qn3Lx+hp+fg==
X-Received: by 10.31.186.130 with SMTP id k124mr1435781vkf.124.1500549012802;  Thu, 20 Jul 2017 04:10:12 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 20 Jul 2017 07:10:12 -0400
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Thu, 20 Jul 2017 07:10:11 -0400
Message-ID: <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11441096e051a10554bdca99"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/OjKnMT83-7rqpcpBtbEAJktQEPg>
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: Thu, 20 Jul 2017 11:10:16 -0000

--001a11441096e051a10554bdca99
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

For other reasons I would like the packet numbers to be close, preferably
without gaps except during connection migration.

This relates to storing interval maps as groups of bitmaps instead of
binary trees to track already received packets. This both provides are more
efficient implementation, and it reduces some modes of DoS where an
attacker can create a lot of small intervals which cause the data structure
to inflate.

If packet numbers can only jump in higher bits and if we make a constraint
that such jumps must not be happen without filling at least one full packet
block, then it is possible to pack received packets efficiently into their
respective lower bit groups and the DoS concern would be mitigated, and it
would be easy to reject abuse. There is still the issue of blocks of lost
packets - so it is not that simple in praxis.


Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 20 July 2017 at 12.00.04, Magnus Westerlund (
magnus.westerlund@ericsson.com) wrote:

Hi,

There has been some discussion around packet numbers. For passive
detection of packet loss in measurements and network management, it
would be really good if the packet numbers where continuous and not only
monotonically increasing. As this enables one to determine losses
upstream of the measurement point. At the same time I understand there
are benefits with being able to introduce gaps into the packet number to
test the receiver's behaviour.

To enable both of these capabilities I would propose that the N least
significant bits of the packet number are strictly increased by one.
Then one can introduce gaps in the bits above the N ones. Yes, that will
burn through the packet number space faster as the gaps may become
larger than was the case without this. However, I don't see that this
will have significant effect unless the sender introduce gaps very
frequently so that the length of the packet number field needs to be
much larger due to the outstanding sequence number space is much larger.

The value of N can clearly be discussed but it should be selected so
that reordering and common burst durations are shorter than the time to
wrap the strictly increase amount of bits. If the higher bits are
available to measurement node, some possibility to infer gaps will also
be possible. It might be that N needs to be scaled with throughput with
a minimal value. N=3D8 would mean 256 packets between wraps. I think that
is a reasonable minimal value. However, that will wrap in 28 ms at 100
mbps of payload (assuming 1400 bytes of payload per packet).

So what people think about this idea?


Cheers

Magnus Westerlund

----------------------------------------------------------------------
Media Technologies, Ericsson Research
----------------------------------------------------------------------
Ericsson AB | Phone +46 10 7148287
Torshamnsgatan 23 | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------

--001a11441096e051a10554bdca99
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto">For other reasons I would like the packet numbers=
 to be close, preferably without gaps except during connection migration.</=
div><div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-=
size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div=
 id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size:13p=
x;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">This relates to storin=
g interval maps as groups of bitmaps instead of binary trees to track alrea=
dy received packets. This both provides are more efficient implementation, =
and it reduces some modes of DoS where an attacker can create a lot of smal=
l intervals which cause the data structure to inflate.</div><div id=3D"bloo=
p_customfont" style=3D"font-family:Helvetica,Arial;font-size:13px;color:rgb=
a(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div id=3D"bloop_custom=
font" style=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,=
1.0);margin:0px;line-height:auto">If packet numbers can only jump in higher=
 bits and if we make a constraint that such jumps must not be happen withou=
t filling at least one full packet block, then it is possible to pack recei=
ved packets efficiently into their respective lower bit groups and the DoS =
concern would be mitigated, and it would be easy to reject abuse. There is =
still the issue of blocks of lost packets - so it is not that simple in pra=
xis.</div><div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial=
;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></di=
v> <br> <div id=3D"bloop_sign_1500548490253769984" class=3D"bloop_sign"><di=
v style=3D"font-family:helvetica,arial;font-size:13px">Kind Regards,</div><=
div style=3D"font-family:helvetica,arial;font-size:13px">Mikkel Fahn=C3=B8e=
 J=C3=B8rgensen<br><br></div></div> <br><p class=3D"airmail_on">On 20 July =
2017 at 12.00.04, Magnus Westerlund (<a href=3D"mailto:magnus.westerlund@er=
icsson.com">magnus.westerlund@ericsson.com</a>) wrote:</p> <blockquote type=
=3D"cite" class=3D"clean_bq"><span><div><div></div><div>Hi,
<br>
<br>There has been some discussion around packet numbers. For passive =20
<br>detection of packet loss in measurements and network management, it =20
<br>would be really good if the packet numbers where continuous and not onl=
y =20
<br>monotonically increasing. As this enables one to determine losses =20
<br>upstream of the measurement point. At the same time I understand there =
=20
<br>are benefits with being able to introduce gaps into the packet number t=
o =20
<br>test the receiver&#39;s behaviour.
<br>
<br>To enable both of these capabilities I would propose that the N least =
=20
<br>significant bits of the packet number are strictly increased by one. =
=20
<br>Then one can introduce gaps in the bits above the N ones. Yes, that wil=
l =20
<br>burn through the packet number space faster as the gaps may become =20
<br>larger than was the case without this. However, I don&#39;t see that th=
is =20
<br>will have significant effect unless the sender introduce gaps very =20
<br>frequently so that the length of the packet number field needs to be =
=20
<br>much larger due to the outstanding sequence number space is much larger=
.
<br>
<br>The value of N can clearly be discussed but it should be selected so =
=20
<br>that reordering and common burst durations are shorter than the time to=
 =20
<br>wrap the strictly increase amount of bits. If the higher bits are =20
<br>available to measurement node, some possibility to infer gaps will also=
 =20
<br>be possible. It might be that N needs to be scaled with throughput with=
 =20
<br>a minimal value. N=3D8 would mean 256 packets between wraps. I think th=
at =20
<br>is a reasonable minimal value. However, that will wrap in 28 ms at 100 =
=20
<br>mbps of payload (assuming 1400 bytes of payload per packet).
<br>
<br>So what people think about this idea?
<br>
<br>
<br>Cheers
<br>
<br>Magnus Westerlund
<br>
<br>----------------------------------------------------------------------
<br>Media Technologies, Ericsson Research
<br>----------------------------------------------------------------------
<br>Ericsson AB                 | Phone  +46 10 7148287
<br>Torshamnsgatan 23           | Mobile +46 73 0949079
<br>SE-164 80 Stockholm, Sweden | mailto: <a href=3D"mailto:magnus.westerlu=
nd@ericsson.com">magnus.westerlund@ericsson.com</a>
<br>----------------------------------------------------------------------
<br>
<br>
<br></div></div></span></blockquote></body></html>

--001a11441096e051a10554bdca99--


From nobody Thu Jul 20 04:17:56 2017
Return-Path: <magnus.westerlund@ericsson.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 19E5C12EAF0 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:17:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level: 
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 hnw5nsK7qD9t for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:17:50 -0700 (PDT)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 03AB7131687 for <quic@ietf.org>; Thu, 20 Jul 2017 04:17:44 -0700 (PDT)
X-AuditID: c1b4fb2d-86fff70000005f66-85-59709157150e
Received: from ESESSHC001.ericsson.se (Unknown_Domain [153.88.183.21]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 81.4D.24422.75190795; Thu, 20 Jul 2017 13:17:43 +0200 (CEST)
Received: from [100.94.61.212] (153.88.183.153) by smtps.internal.ericsson.com (153.88.183.21) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 20 Jul 2017 13:17:42 +0200
Subject: Re: Idea for packet numbers
To: Martin Thomson <martin.thomson@gmail.com>
CC: IETF QUIC WG <quic@ietf.org>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CABkgnnWY7EVNeZUPqkRUmO6=5=3MdWqdHaCLbW8G_iBHUQmDew@mail.gmail.com>
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
Message-ID: <b579753b-53cf-2907-f21d-5e7e89a08f93@ericsson.com>
Date: Thu, 20 Jul 2017 13:17:41 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <CABkgnnWY7EVNeZUPqkRUmO6=5=3MdWqdHaCLbW8G_iBHUQmDew@mail.gmail.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms000204080808040605060906"
X-Originating-IP: [153.88.183.153]
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgkeLIzCtJLcpLzFFi42KZGbFdVDd8YkGkwenHwhbXzvxjtOhZwO3A 5LFz1l12jyVLfjIFMEVx2aSk5mSWpRbp2yVwZfR/3sJUsDqs4uzBf8wNjId8uxg5OSQETCT6 NkxjAbGFBI4wSrSdz+hi5AKyNzFKnHt/iR0kISygIjFl7hkmEFtEQFdi0dkHQHEODmYBBYm7 78QgetsYJaZvKwKx2QQsJG7+aGQDsXkF7CU+fbrJCmKzCKhKrF+xCGyXqECMxLWZd1ghagQl Ts58AhbnFAiUePh4GjvIDcwC3YwSyz5MYIdYoC3R0NTBCnG0ksT1eddZJjAKzELSPwtZD0iC WcBMYt7mh8wQtrbEsoWvoWxxiaYvK1khbGuJGb8OskHYihJTuh9C9ZpKvD76kRHCNpJ4t6eR fQEj5ypG0eLU4uLcdCNjvdSizOTi4vw8vbzUkk2MwDg5uOW37g7G1a8dDzEKcDAq8fCq9RdE CrEmlhVX5h5iVAGa82jD6guMUix5+XmpSiK8ln1Aad6UxMqq1KL8+KLSnNTiQ4zSHCxK4rwO +y5ECAmkJ5akZqemFqQWwWSZODilGhglovsrE7T7tmTqmsdcEzz4V8Ap64QZ59TuKJGP+VaK J7L+F25+/y3uK991W6NPOV/WXl+Yr/hW4OTCpCwBi9+q2kI3DrAXiJ64UzT7doU1x0b57eKJ gbd2HXuzOTZB4mZKSGxEqK/ghJvtFWXZke8n3PCc17vS+unaCK7opG8K8+fOmb/ieoISS3FG oqEWc1FxIgDP/gDamwIAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/556aPWajHiJ5L60hlkbxjbZPC9c>
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: Thu, 20 Jul 2017 11:17:55 -0000

--------------ms000204080808040605060906
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB

Hi Martin,

Den 2017-07-20 kl. 12:38, skrev Martin Thomson:
> Are you talking about the use of the NEW_CONNECTION_ID message,
> because what you propose would be possible, but it would cause an
> improvement to linkability.

This is in reference to any changes to the public header information.=20
The current draft version do have the packet number as part of the=20
public header. I understand we will continue the discussion on what is=20
public, and I think there has been suggestions all over the place. Thus, =

I want add this as a possibility assuming that the consensus is that we=20
will have any parts of the packet number in the non-encrypted part of=20
the packet.

I personally do think there are reasons for keeping at least the least=20
significant parts of the packet number being non-encrypted. I don't see=20
the linkability need to be significantly impacted. A single QUIC flow=20
will still have the 5-tuple of IPvX+UDP that enables to identify where=20
it comes from and where it goes. I still haven't seen any good=20
motivation why you would actually have multiple QUIC connections on the=20
same 5-tuple. Thus, the single path of the connection will leak very=20
little additional information other than how the flow is being treated=20
by the network.

For a 3rd party observing this from the outside, for flows with little=20
losses you still see most packets, in this case I don't see that=20
determining that losses are present upstream affects how you can=20
correlate this with other. In the case of continuing a flow on another=20
path, I would not really have problem with introducing a larger gap to=20
reduce the linkability between the different flows that are used by the=20
connection. Because, from my perspective, it would be preferable that=20
each flow over different path actually are treated as individual=20
sub-flow. Thus, they could have completely independent packet numbers.=20
Such a direction appear to reduce linkability, without preventing=20
exposing the basic flows transport progress.

Cheers

Magnus

> On 20 July 2017 at 11:59, Magnus Westerlund
> <magnus.westerlund@ericsson.com> wrote:
>> Hi,
>>
>> There has been some discussion around packet numbers. For passive dete=
ction
>> of packet loss in measurements and network management, it would be rea=
lly
>> good if the packet numbers where continuous and not only monotonically=

>> increasing. As this enables one to determine losses upstream of the
>> measurement point. At the same time I understand there are benefits wi=
th
>> being able to introduce gaps into the packet number to test the receiv=
er's
>> behaviour.
>>
>> To enable both of these capabilities I would propose that the N least
>> significant bits of the packet number are strictly increased by one. T=
hen
>> one can introduce gaps in the bits above the N ones. Yes, that will bu=
rn
>> through the packet number space faster as the gaps may become larger t=
han
>> was the case without this. However, I don't see that this will have
>> significant effect unless the sender introduce gaps very frequently so=
 that
>> the length of the packet number field needs to be much larger due to t=
he
>> outstanding sequence number space is much larger.
>>
>> The value of N can clearly be discussed but it should be selected so t=
hat
>> reordering and common burst durations are shorter than the time to wra=
p the
>> strictly increase amount of bits. If the higher bits are available to
>> measurement node, some possibility to infer gaps will also be possible=
=2E It
>> might be that N needs to be scaled with throughput with a minimal valu=
e. N=3D8
>> would mean 256 packets between wraps. I think that is a reasonable min=
imal
>> value. However, that will wrap in 28 ms at 100 mbps of payload (assumi=
ng
>> 1400 bytes of payload per packet).
>>
>> So what people think about this idea?
>>
>>
>> Cheers
>>
>> Magnus Westerlund
>>
>> ----------------------------------------------------------------------=

>> Media Technologies, Ericsson Research
>> ----------------------------------------------------------------------=

>> Ericsson AB                 | Phone  +46 10 7148287
>> Torshamnsgatan 23           | Mobile +46 73 0949079
>> SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
>> ----------------------------------------------------------------------=

>>
>>

--=20

Magnus Westerlund

----------------------------------------------------------------------
Media Technologies, Ericsson Research
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Torshamnsgatan 23           | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------



--------------ms000204080808040605060906
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME-kryptografisk signatur

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC
DLkwggX7MIID46ADAgECAhEA75oIXW3eBHJH2u7brn5gnDANBgkqhkiG9w0BAQUFADA6MREw
DwYDVQQKDAhFcmljc3NvbjElMCMGA1UEAwwcRXJpY3Nzb24gTkwgSW5kaXZpZHVhbCBDQSB2
MjAeFw0xNTAxMjMwODUwNTdaFw0xODAxMjMwODUwNTdaMHAxETAPBgNVBAoMCEVyaWNzc29u
MRowGAYDVQQDDBFNYWdudXMgV2VzdGVybHVuZDEtMCsGCSqGSIb3DQEJARYebWFnbnVzLndl
c3Rlcmx1bmRAZXJpY3Nzb24uY29tMRAwDgYDVQQFEwdlcmFtc3dkMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAkULrp/ViIWFfDbY2Ycew0bXJc2In2WNQbPORLyFXNpRhjhmg
ot5P/0w90T4HY0H6QayjIPK6qIGt1DBXwkq/QHoRsFZiDK9JDnk2WUDcqbJaHqMXvkhj4Jl4
KvonZ31T3NF/8OlcEjumVc8AUA6iccOeUva3TvL/EOqY3f4bsem4ER3KAcY/lTPWivSY+/Aw
vS64JjaANOHVhZ0LUj10JTe9CpdXB+1nMpqLFYkjse/2ahQuKyaBKhKJs35pSYijh3Ln+vMv
YUNEna2LjHvkCPVo5Oihylxjmd1OSDXND7125tgo/kB08RtaJ9u6PNw0CoUgA+d23UzVzlYg
aSJbhwIDAQABo4IBxDCCAcAwSAYDVR0fBEEwPzA9oDugOYY3aHR0cDovL2NybC50cnVzdC50
ZWxpYS5jb20vZXJpY3Nzb25ubGluZGl2aWR1YWxjYXYyLmNybDCBggYIKwYBBQUHAQEEdjB0
MCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcDIudHJ1c3QudGVsaWEuY29tMEgGCCsGAQUFBzAC
hjxodHRwOi8vY2EudHJ1c3QudGVsaWFzb25lcmEuY29tL2VyaWNzc29ubmxpbmRpdmlkdWFs
Y2F2Mi5jZXIwKQYDVR0RBCIwIIEebWFnbnVzLndlc3Rlcmx1bmRAZXJpY3Nzb24uY29tMFUG
A1UdIAROMEwwSgYMKwYBBAGCDwIDAQESMDowOAYIKwYBBQUHAgEWLGh0dHBzOi8vcmVwb3Np
dG9yeS50cnVzdC50ZWxpYXNvbmVyYS5jb20vQ1BTMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggr
BgEFBQcDAjAdBgNVHQ4EFgQUwff+Y5pMEPJX7xortCv8deSKeQEwHwYDVR0jBBgwFoAUsQ3K
1Ea3r4YCwy9vBsoOdnF/SzcwDgYDVR0PAQH/BAQDAgWgMA0GCSqGSIb3DQEBBQUAA4ICAQBy
rk0JhGgu9Fd/0Fg1cMhSa882HMQZWQLT1V4PFQpU6t2an8xaqT5JsxOpuxb+WxwpKG+UDbzQ
cWgcb/DPW3Mc0AvhTFII1qAYf6Smkq6SOD/8TACjH+dy7JrbcNYJcTlVNBlC/V/C+waICkER
wuMC/8QjXs0ExJekAD3i/3GUok9WnvEHsohIL04qk1lbvJN4WGHCHFercX11Ch+UjStHwtyw
zyFWi64CqD48kKqPwEne3Lj7ozxzuwCCaJI9fmCQgLfSL+UcDgEb7cQucMAnB/Zxlz6U6ohd
PRlQHaLevAYD2UK+BlhZKLAv/DNUz0nk6fx4CiJF5DIRteUdzGoeGcnWMWO9hv5PkEJC1WkZ
gYXZ/91HMUjsYUuy5/EsmkqvkCalRudoqe6Pex3A34iFGNvDhI3fCrbvmRS4FARPse5D8BLu
e/PIvAPNUC7xl8UcfnTNVgy5ITzWNiY9hIrbAzfPbTXyZSIdMD+HTNg33ziMbu2Iry/2eS1X
/whXkApnQNpHplvzf1xMEeNPlDKtL8OOg+9y4ESdn27EKxeeaaFXsrhb3z1woIjQxXINft5W
EPXWnks/YBCvrLTH8kRCLZgH17zDxb+MLqKj1XUQtBKgDhb+VswJM6GF+dDeBJoEYjvLR1Sx
l5yfaRj0F7HYkjRUwyehwSHgTVqtgnT9QjCCBrYwggSeoAMCAQICEQCgDMvMm5mY7OI6cPR8
wcBZMA0GCSqGSIb3DQEBBQUAMDcxFDASBgNVBAoMC1RlbGlhU29uZXJhMR8wHQYDVQQDDBZU
ZWxpYVNvbmVyYSBSb290IENBIHYxMB4XDTE0MDUyNzA3NDYyMVoXDTI0MDUyNzA3NDYyMVow
OjERMA8GA1UECgwIRXJpY3Nzb24xJTAjBgNVBAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwg
Q0EgdjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDaulPrX0iWU5+JOOqjddx4
Gnl17DJhklkoXOgOSBMhW6FzGVt5RR7KPv+rjt2YpbwdoqWSYa4VPkS/72vuQoWsvz2avWWX
hPTdNzrB3zs5cJO7sKIyd+LRy4l/8kKK4iPm+Q18XyGF0xTuc5WS3WiMScJSxEKdIOP8xehB
raHZabrGh9OxQHC4iBHkzD0YF3J/vBqBTr7blRzYf1h3j5a7qVIHCPfz+eCE175mResXDQRI
7LvMiZtVaqitBl0oAJiJyeBmvEujBNsIEgUQ6JcQFG5ny0EazLywv7clwb7izvLgoXc6SFrd
0D7TGJtkdldVJtMwDYXpyFMGAijT6uf8h2kuPIwrDgQFNEyIQZ4q52ZpRGwugC6sMxgHEDGj
A/CxX9aC5Vi1EMRJiOGF6gV3T+V5yHDHSBBeQbVAXm8wSTDBfXQwdro/AXqET0mG6Rpe4q2F
GBaauE8qHEO6qR3WAEgvjVfFU2k6xZx1qmvwhkXadxh6ZIMXzgb6WpjivLnR0GEKNrgN2DXd
vo+6eAt45Bhvmeka2TrJDxMLWiBy8QYgNeNXYQsuREnDsjWo6wF0LqbA5769om9nn/uJzmzx
b3nT1iHue5co9J93ta06kxiASHvcIzZwAOjKnmk0vR3IT7Qbzq2of3E1s18xo8DM9D91Cak0
Nq+RALtdv1uZKQIDAQABo4IBuDCCAbQwgYoGCCsGAQUFBwEBBH4wfDAtBggrBgEFBQcwAYYh
aHR0cDovL29jc3AudHJ1c3QudGVsaWFzb25lcmEuY29tMEsGCCsGAQUFBzAChj9odHRwOi8v
cmVwb3NpdG9yeS50cnVzdC50ZWxpYXNvbmVyYS5jb20vdGVsaWFzb25lcmFyb290Y2F2MS5j
ZXIwEgYDVR0TAQH/BAgwBgEB/wIBADBVBgNVHSAETjBMMEoGDCsGAQQBgg8CAwEBAjA6MDgG
CCsGAQUFBwIBFixodHRwczovL3JlcG9zaXRvcnkudHJ1c3QudGVsaWFzb25lcmEuY29tL0NQ
UzBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsLTMudHJ1c3QudGVsaWFzb25lcmEuY29t
L3RlbGlhc29uZXJhcm9vdGNhdjEuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
BDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLENytRGt6+GAsMvbwbKDnZxf0s3MB8GA1Ud
IwQYMBaAFPCPWTgAs/WPmpYM1ev6e6oX6BMSMA0GCSqGSIb3DQEBBQUAA4ICAQBuByBsr6x3
PZBCsmGbcSZ/XL+0tnVMblInoJgL1Bh3PiRicgdo8l+6cvWp/ArBwMYNwSNyrvY9IewyaV8n
65c5oN+l2JDUuzrdANVKnYxha7ZyCEiPmY98sB2bnZgxfJLXQYoRwI7pOOwfyoP2fCYVCd+x
hsfysYiIl4ORzE3TpeppQ2yWkyBBmoHUXJh97ue6+bJ2fqnVUoOVMVnYYEtvsz67v7w2z3fv
dcy04/RnoylxSenxADi1tY9iIydHMgyOu3dfzsxU8AivMGG4aKStsCfUEyg0LlkbhqMrdnes
s3e1qAEueSRNASLfpFwyRmzmiuNh9onzuhER2yYhK/6IeCs4HQHrPhkY8JUmhtmdL2uErOZW
Os38FQhGWHWXI0g6SgdDObU0GEHju0MkDziOhm+BVwPZKN7B7wD7OPj6vlLVo6d8vLGK9byw
hEfXjxLIC3Qhtu5lJPTgIo5Bup+aBBjiJ/u9BfqryqZpudnWfG+wxC327rpNAq2OKdFsR92w
behSZD3mSSAemDVwGB2Yu0XHQYyyYfpWsGyGEyRSHKFhRwJdINPzWLI89wy4Wc+PgqyekkEm
Jqe6g4XSQFj4mqtwvqhP4dg2QCcKM/bh62RwfM7GeSS/LFGe84KmJjTDfvT8c2rK8nEyZ/em
OtwCGXQ6tZCByMNLxeDwU1TGbTGCAxcwggMTAgEBME8wOjERMA8GA1UECgwIRXJpY3Nzb24x
JTAjBgNVBAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwgQ0EgdjICEQDvmghdbd4Eckfa7tuu
fmCcMA0GCWCGSAFlAwQCAQUAoIIBmTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG
SIb3DQEJBTEPFw0xNzA3MjAxMTE3NDFaMC8GCSqGSIb3DQEJBDEiBCDhH8HDRkW06dVhGhCe
THIyi+ZhrJB8FrqwjXenD9GUjjBeBgkrBgEEAYI3EAQxUTBPMDoxETAPBgNVBAoMCEVyaWNz
c29uMSUwIwYDVQQDDBxFcmljc3NvbiBOTCBJbmRpdmlkdWFsIENBIHYyAhEA75oIXW3eBHJH
2u7brn5gnDBgBgsqhkiG9w0BCRACCzFRoE8wOjERMA8GA1UECgwIRXJpY3Nzb24xJTAjBgNV
BAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwgQ0EgdjICEQDvmghdbd4Eckfa7tuufmCcMGwG
CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO
BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw
DQYJKoZIhvcNAQEBBQAEggEAMuJG375lcopSmcmJmsVcYVrdVp5Mj6Z2wdQhRwZDl5j6rrM2
jyNN80+3cCkmDgK6TxsN78tdnRA3OJwrip1Ar/iJjnzrf5XP+Yl2M8OkDsuVjdWsXSn84v/U
vnS6wxVA2do0URFIPkTh/YUpvf+eBs7aEPpePBZaipr4j2aECAVAKKSSaGU+Bn4nVg8ieSub
pCCFzJ5qWcmw1baQs2mXGWK4tB4ERT3eH055eTssbBDp+wQkPyjpYv4g0bZIZNEd6Os8UEm7
sT66ccJw7asV/gTRtOjLkZbPxBI8pSmsd7HLzbjBfeHGkw++VD9A5eamp/w5gjTAj9CHw+Ap
xHfIVAAAAAAAAA==
--------------ms000204080808040605060906--


From nobody Thu Jul 20 04:25:59 2017
Return-Path: <martin.thomson@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 17C90131C03 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:25:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 FOIWvWotL_an for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:25:56 -0700 (PDT)
Received: from mail-it0-x231.google.com (mail-it0-x231.google.com [IPv6:2607:f8b0:4001:c0b::231]) (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 5C479131C12 for <quic@ietf.org>; Thu, 20 Jul 2017 04:25:50 -0700 (PDT)
Received: by mail-it0-x231.google.com with SMTP id a62so14596657itd.1 for <quic@ietf.org>; Thu, 20 Jul 2017 04:25:50 -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=kOhRdCTe4ux4KohFPerhOFdvmE2ziR8Y6kO8xm6RId4=; b=OuHlHOUjPTCj8RPpxccFaspdiqFn1fRzlz92LG9bdJH2dvU+IiBXbFT+FQtAzSrOh5 hIf6Voz6Jfjorly71frRdxeZ+JNGywd97/K1VpchVHJ6f0FY9l2HudMleJA8nMD/YmwT 3Z1Sv8ZCDeOWhUk+aI2zIQmGj1Vn94PA9MEPJc+4QJazGPW6yV33u7qHJ+TC2jr2u7w7 A6ktrJFb51bcQN+mJJbWZkiJ6JK+rIPHE0KhGzdneyl9rCxnU2MV7AukZvI1Qg17KOeY 5S779dpviijmN5jRv+PDrK/+SDQ4UtehNjZj2mppwL0KQ/NnPhENKLECkar1VUYZrg4U /EoA==
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=kOhRdCTe4ux4KohFPerhOFdvmE2ziR8Y6kO8xm6RId4=; b=fWUxXlGrvJZ+4MmLvTKvblviyhDB0SE+vzS5cnxkxxhDMZEtqzrKTezmm1X4yur253 KfLxCxdUZ5wX3lk3F3t/fDpYdSuyiYzhsfle9xfC+xCCNJP5anDEXUn5o5ygIAY0R9it b72+/LciB2j87LUO0U2og7TJzbPVIakfGgDRXKLkms6CCoIwIRQknYCPYhIQxBl8FUb4 mygPU471JG1Y2ksDlPmOUBZcJvSMzG3d2xW3DzsSywWS3vAE3/lgKI38nhfYldNR3vlf DPC2Vw7zTcxUIHE5jm4XaXPjYQ8sy+L4XBhJ0XQhlNi/D1WlaQWRgcOBlYibnvwgWYSJ v+hw==
X-Gm-Message-State: AIVw110QUqzrhnZwOWf3hOaihRqCr2D2oeHnFb2XWsHTwcH91WIVnJAT LnlOFaKFPFWcWhPyaNxva254lZ1wag==
X-Received: by 10.36.158.11 with SMTP id p11mr3037330itd.154.1500549949639; Thu, 20 Jul 2017 04:25:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Thu, 20 Jul 2017 04:25:49 -0700 (PDT)
In-Reply-To: <b579753b-53cf-2907-f21d-5e7e89a08f93@ericsson.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CABkgnnWY7EVNeZUPqkRUmO6=5=3MdWqdHaCLbW8G_iBHUQmDew@mail.gmail.com> <b579753b-53cf-2907-f21d-5e7e89a08f93@ericsson.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Thu, 20 Jul 2017 13:25:49 +0200
Message-ID: <CABkgnnWcydCWkkPxCWmLATfAmtEwwoXqLv9ei6HW46CMuRXJnw@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/7aaPl8VqA41uX9-a5oEzcqAIaxc>
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: Thu, 20 Jul 2017 11:25:58 -0000

That wasn't the question: the question was "if I decide to break
linkability by using a new connection ID, would you also insist on
having the lower bits remain contiguous?"

On 20 July 2017 at 13:17, Magnus Westerlund
<magnus.westerlund@ericsson.com> wrote:
> Hi Martin,
>
> Den 2017-07-20 kl. 12:38, skrev Martin Thomson:
>>
>> Are you talking about the use of the NEW_CONNECTION_ID message,
>> because what you propose would be possible, but it would cause an
>> improvement to linkability.
>
>
> This is in reference to any changes to the public header information. The
> current draft version do have the packet number as part of the public
> header. I understand we will continue the discussion on what is public, and
> I think there has been suggestions all over the place. Thus, I want add this
> as a possibility assuming that the consensus is that we will have any parts
> of the packet number in the non-encrypted part of the packet.
>
> I personally do think there are reasons for keeping at least the least
> significant parts of the packet number being non-encrypted. I don't see the
> linkability need to be significantly impacted. A single QUIC flow will still
> have the 5-tuple of IPvX+UDP that enables to identify where it comes from
> and where it goes. I still haven't seen any good motivation why you would
> actually have multiple QUIC connections on the same 5-tuple. Thus, the
> single path of the connection will leak very little additional information
> other than how the flow is being treated by the network.
>
> For a 3rd party observing this from the outside, for flows with little
> losses you still see most packets, in this case I don't see that determining
> that losses are present upstream affects how you can correlate this with
> other. In the case of continuing a flow on another path, I would not really
> have problem with introducing a larger gap to reduce the linkability between
> the different flows that are used by the connection. Because, from my
> perspective, it would be preferable that each flow over different path
> actually are treated as individual sub-flow. Thus, they could have
> completely independent packet numbers. Such a direction appear to reduce
> linkability, without preventing exposing the basic flows transport progress.
>
> Cheers
>
> Magnus
>
>
>> On 20 July 2017 at 11:59, Magnus Westerlund
>> <magnus.westerlund@ericsson.com> wrote:
>>>
>>> Hi,
>>>
>>> There has been some discussion around packet numbers. For passive
>>> detection
>>> of packet loss in measurements and network management, it would be really
>>> good if the packet numbers where continuous and not only monotonically
>>> increasing. As this enables one to determine losses upstream of the
>>> measurement point. At the same time I understand there are benefits with
>>> being able to introduce gaps into the packet number to test the
>>> receiver's
>>> behaviour.
>>>
>>> To enable both of these capabilities I would propose that the N least
>>> significant bits of the packet number are strictly increased by one. Then
>>> one can introduce gaps in the bits above the N ones. Yes, that will burn
>>> through the packet number space faster as the gaps may become larger than
>>> was the case without this. However, I don't see that this will have
>>> significant effect unless the sender introduce gaps very frequently so
>>> that
>>> the length of the packet number field needs to be much larger due to the
>>> outstanding sequence number space is much larger.
>>>
>>> The value of N can clearly be discussed but it should be selected so that
>>> reordering and common burst durations are shorter than the time to wrap
>>> the
>>> strictly increase amount of bits. If the higher bits are available to
>>> measurement node, some possibility to infer gaps will also be possible.
>>> It
>>> might be that N needs to be scaled with throughput with a minimal value.
>>> N=8
>>> would mean 256 packets between wraps. I think that is a reasonable
>>> minimal
>>> value. However, that will wrap in 28 ms at 100 mbps of payload (assuming
>>> 1400 bytes of payload per packet).
>>>
>>> So what people think about this idea?
>>>
>>>
>>> Cheers
>>>
>>> Magnus Westerlund
>>>
>>> ----------------------------------------------------------------------
>>> Media Technologies, Ericsson Research
>>> ----------------------------------------------------------------------
>>> Ericsson AB                 | Phone  +46 10 7148287
>>> Torshamnsgatan 23           | Mobile +46 73 0949079
>>> SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
>>> ----------------------------------------------------------------------
>>>
>>>
>
> --
>
> Magnus Westerlund
>
> ----------------------------------------------------------------------
> Media Technologies, Ericsson Research
> ----------------------------------------------------------------------
> Ericsson AB                 | Phone  +46 10 7148287
> Torshamnsgatan 23           | Mobile +46 73 0949079
> SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
> ----------------------------------------------------------------------
>
>


From nobody Thu Jul 20 04:36:13 2017
Return-Path: <magnus.westerlund@ericsson.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 CA65E131C19 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:36:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level: 
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 A3LfMvYACop6 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:36:05 -0700 (PDT)
Received: from sesbmg23.ericsson.net (sesbmg23.ericsson.net [193.180.251.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 689A912EC30 for <quic@ietf.org>; Thu, 20 Jul 2017 04:36:01 -0700 (PDT)
X-AuditID: c1b4fb25-5efff70000001eeb-98-5970959f97e6
Received: from ESESSHC020.ericsson.se (Unknown_Domain [153.88.183.78]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id C8.80.07915.F9590795; Thu, 20 Jul 2017 13:35:59 +0200 (CEST)
Received: from [100.94.61.212] (153.88.183.153) by smtps.internal.ericsson.com (153.88.183.78) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 20 Jul 2017 13:35:58 +0200
Subject: Re: Idea for packet numbers
To: Martin Thomson <martin.thomson@gmail.com>
CC: IETF QUIC WG <quic@ietf.org>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CABkgnnWY7EVNeZUPqkRUmO6=5=3MdWqdHaCLbW8G_iBHUQmDew@mail.gmail.com> <b579753b-53cf-2907-f21d-5e7e89a08f93@ericsson.com> <CABkgnnWcydCWkkPxCWmLATfAmtEwwoXqLv9ei6HW46CMuRXJnw@mail.gmail.com>
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
Message-ID: <f17073da-268c-7c51-4738-faab63432441@ericsson.com>
Date: Thu, 20 Jul 2017 13:35:57 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <CABkgnnWcydCWkkPxCWmLATfAmtEwwoXqLv9ei6HW46CMuRXJnw@mail.gmail.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms000906050904030201060708"
X-Originating-IP: [153.88.183.153]
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgkeLIzCtJLcpLzFFi42KZGbHdT3f+1IJIg455ihbXzvxjtOhZwO3A 5LFz1l12jyVLfjIFMEVx2aSk5mSWpRbp2yVwZbw73Mhe8DK+Yt3udvYGxi8hXYycHBICJhIb H7WydDFycQgJHGGUuL39NBuEs4lR4uK7SawgVcICKhJT5p5hArFFBHQlFp19wN7FyMHBLKAg cfedGER9M5PEjYO32UBq2AQsJG7+aGQDqeEVsJf40ysIEmYRUJWYtXkW2BhRgRiJazPvgI3n FRCUODnzCQtIOadAoMS1TwIgI5kFuhkletsusYDUCAloSzQ0dbBCHK0kcX3edZYJjAKzkLTP QtYDkmAWMJOYt/khM4StLbFs4WsoW1yi6ctKVgjbWmLGr4NsELaixJTuh+wQtqnE66MfGSFs I4l3exrZFzByrmIULU4tTspNNzLWSy3KTC4uzs/Ty0st2cQIjJODW36r7mC8/MbxEKMAB6MS D69+f0GkEGtiWXFl7iFGFaA5jzasvsAoxZKXn5eqJML7ZhJQmjclsbIqtSg/vqg0J7X4EKM0 B4uSOK/jvgsRQgLpiSWp2ampBalFMFkmDk6pBkbXuNAliezKGkplH1sW/wvQ555vU1BYf3Ge 5TU/uQSfC9ty80uMJ06Ruzd5x46f8Xd1M/n6jG8qB/DOWPa0euqd4B/Jly5kPBDl8Mk0Ezjy 85/nUvv6p6x3z2qt/bgx+4iy4Ly3B1qTLF9aM5bYb86Ok+ROi7O+InC/54H4rFkCR7iOdebf NVViKc5INNRiLipOBADmJdSUmwIAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Aw2hlA2FdrlcO_JubPrSElKMDKI>
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: Thu, 20 Jul 2017 11:36:08 -0000

--------------ms000906050904030201060708
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Language: en-GB



Den 2017-07-20 kl. 13:25, skrev Martin Thomson:
> That wasn't the question: the question was "if I decide to break
> linkability by using a new connection ID, would you also insist on
> having the lower bits remain contiguous?"

No, that would be a new connection, and a new flow so no problem from my =

perspective to have new random start point for the packet numbers.

/Magnus

> On 20 July 2017 at 13:17, Magnus Westerlund
> <magnus.westerlund@ericsson.com> wrote:
>> Hi Martin,
>>
>> Den 2017-07-20 kl. 12:38, skrev Martin Thomson:
>>> Are you talking about the use of the NEW_CONNECTION_ID message,
>>> because what you propose would be possible, but it would cause an
>>> improvement to linkability.
>>
>> This is in reference to any changes to the public header information. =
The
>> current draft version do have the packet number as part of the public
>> header. I understand we will continue the discussion on what is public=
, and
>> I think there has been suggestions all over the place. Thus, I want ad=
d this
>> as a possibility assuming that the consensus is that we will have any =
parts
>> of the packet number in the non-encrypted part of the packet.
>>
>> I personally do think there are reasons for keeping at least the least=

>> significant parts of the packet number being non-encrypted. I don't se=
e the
>> linkability need to be significantly impacted. A single QUIC flow will=
 still
>> have the 5-tuple of IPvX+UDP that enables to identify where it comes f=
rom
>> and where it goes. I still haven't seen any good motivation why you wo=
uld
>> actually have multiple QUIC connections on the same 5-tuple. Thus, the=

>> single path of the connection will leak very little additional informa=
tion
>> other than how the flow is being treated by the network.
>>
>> For a 3rd party observing this from the outside, for flows with little=

>> losses you still see most packets, in this case I don't see that deter=
mining
>> that losses are present upstream affects how you can correlate this wi=
th
>> other. In the case of continuing a flow on another path, I would not r=
eally
>> have problem with introducing a larger gap to reduce the linkability b=
etween
>> the different flows that are used by the connection. Because, from my
>> perspective, it would be preferable that each flow over different path=

>> actually are treated as individual sub-flow. Thus, they could have
>> completely independent packet numbers. Such a direction appear to redu=
ce
>> linkability, without preventing exposing the basic flows transport pro=
gress.
>>
>> Cheers
>>
>> Magnus
>>
>>
>>> On 20 July 2017 at 11:59, Magnus Westerlund
>>> <magnus.westerlund@ericsson.com> wrote:
>>>> Hi,
>>>>
>>>> There has been some discussion around packet numbers. For passive
>>>> detection
>>>> of packet loss in measurements and network management, it would be r=
eally
>>>> good if the packet numbers where continuous and not only monotonical=
ly
>>>> increasing. As this enables one to determine losses upstream of the
>>>> measurement point. At the same time I understand there are benefits =
with
>>>> being able to introduce gaps into the packet number to test the
>>>> receiver's
>>>> behaviour.
>>>>
>>>> To enable both of these capabilities I would propose that the N leas=
t
>>>> significant bits of the packet number are strictly increased by one.=
 Then
>>>> one can introduce gaps in the bits above the N ones. Yes, that will =
burn
>>>> through the packet number space faster as the gaps may become larger=
 than
>>>> was the case without this. However, I don't see that this will have
>>>> significant effect unless the sender introduce gaps very frequently =
so
>>>> that
>>>> the length of the packet number field needs to be much larger due to=
 the
>>>> outstanding sequence number space is much larger.
>>>>
>>>> The value of N can clearly be discussed but it should be selected so=
 that
>>>> reordering and common burst durations are shorter than the time to w=
rap
>>>> the
>>>> strictly increase amount of bits. If the higher bits are available t=
o
>>>> measurement node, some possibility to infer gaps will also be possib=
le.
>>>> It
>>>> might be that N needs to be scaled with throughput with a minimal va=
lue.
>>>> N=3D8
>>>> would mean 256 packets between wraps. I think that is a reasonable
>>>> minimal
>>>> value. However, that will wrap in 28 ms at 100 mbps of payload (assu=
ming
>>>> 1400 bytes of payload per packet).
>>>>
>>>> So what people think about this idea?
>>>>
>>>>
>>>> Cheers
>>>>
>>>> Magnus Westerlund
>>>>
>>>> --------------------------------------------------------------------=
--
>>>> Media Technologies, Ericsson Research
>>>> --------------------------------------------------------------------=
--
>>>> Ericsson AB                 | Phone  +46 10 7148287
>>>> Torshamnsgatan 23           | Mobile +46 73 0949079
>>>> SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com=

>>>> --------------------------------------------------------------------=
--
>>>>
>>>>
>> --
>>
>> Magnus Westerlund
>>
>> ----------------------------------------------------------------------=

>> Media Technologies, Ericsson Research
>> ----------------------------------------------------------------------=

>> Ericsson AB                 | Phone  +46 10 7148287
>> Torshamnsgatan 23           | Mobile +46 73 0949079
>> SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
>> ----------------------------------------------------------------------=

>>
>>

--=20

Magnus Westerlund

----------------------------------------------------------------------
Media Technologies, Ericsson Research
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Torshamnsgatan 23           | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------



--------------ms000906050904030201060708
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME-kryptografisk signatur

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC
DLkwggX7MIID46ADAgECAhEA75oIXW3eBHJH2u7brn5gnDANBgkqhkiG9w0BAQUFADA6MREw
DwYDVQQKDAhFcmljc3NvbjElMCMGA1UEAwwcRXJpY3Nzb24gTkwgSW5kaXZpZHVhbCBDQSB2
MjAeFw0xNTAxMjMwODUwNTdaFw0xODAxMjMwODUwNTdaMHAxETAPBgNVBAoMCEVyaWNzc29u
MRowGAYDVQQDDBFNYWdudXMgV2VzdGVybHVuZDEtMCsGCSqGSIb3DQEJARYebWFnbnVzLndl
c3Rlcmx1bmRAZXJpY3Nzb24uY29tMRAwDgYDVQQFEwdlcmFtc3dkMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAkULrp/ViIWFfDbY2Ycew0bXJc2In2WNQbPORLyFXNpRhjhmg
ot5P/0w90T4HY0H6QayjIPK6qIGt1DBXwkq/QHoRsFZiDK9JDnk2WUDcqbJaHqMXvkhj4Jl4
KvonZ31T3NF/8OlcEjumVc8AUA6iccOeUva3TvL/EOqY3f4bsem4ER3KAcY/lTPWivSY+/Aw
vS64JjaANOHVhZ0LUj10JTe9CpdXB+1nMpqLFYkjse/2ahQuKyaBKhKJs35pSYijh3Ln+vMv
YUNEna2LjHvkCPVo5Oihylxjmd1OSDXND7125tgo/kB08RtaJ9u6PNw0CoUgA+d23UzVzlYg
aSJbhwIDAQABo4IBxDCCAcAwSAYDVR0fBEEwPzA9oDugOYY3aHR0cDovL2NybC50cnVzdC50
ZWxpYS5jb20vZXJpY3Nzb25ubGluZGl2aWR1YWxjYXYyLmNybDCBggYIKwYBBQUHAQEEdjB0
MCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcDIudHJ1c3QudGVsaWEuY29tMEgGCCsGAQUFBzAC
hjxodHRwOi8vY2EudHJ1c3QudGVsaWFzb25lcmEuY29tL2VyaWNzc29ubmxpbmRpdmlkdWFs
Y2F2Mi5jZXIwKQYDVR0RBCIwIIEebWFnbnVzLndlc3Rlcmx1bmRAZXJpY3Nzb24uY29tMFUG
A1UdIAROMEwwSgYMKwYBBAGCDwIDAQESMDowOAYIKwYBBQUHAgEWLGh0dHBzOi8vcmVwb3Np
dG9yeS50cnVzdC50ZWxpYXNvbmVyYS5jb20vQ1BTMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggr
BgEFBQcDAjAdBgNVHQ4EFgQUwff+Y5pMEPJX7xortCv8deSKeQEwHwYDVR0jBBgwFoAUsQ3K
1Ea3r4YCwy9vBsoOdnF/SzcwDgYDVR0PAQH/BAQDAgWgMA0GCSqGSIb3DQEBBQUAA4ICAQBy
rk0JhGgu9Fd/0Fg1cMhSa882HMQZWQLT1V4PFQpU6t2an8xaqT5JsxOpuxb+WxwpKG+UDbzQ
cWgcb/DPW3Mc0AvhTFII1qAYf6Smkq6SOD/8TACjH+dy7JrbcNYJcTlVNBlC/V/C+waICkER
wuMC/8QjXs0ExJekAD3i/3GUok9WnvEHsohIL04qk1lbvJN4WGHCHFercX11Ch+UjStHwtyw
zyFWi64CqD48kKqPwEne3Lj7ozxzuwCCaJI9fmCQgLfSL+UcDgEb7cQucMAnB/Zxlz6U6ohd
PRlQHaLevAYD2UK+BlhZKLAv/DNUz0nk6fx4CiJF5DIRteUdzGoeGcnWMWO9hv5PkEJC1WkZ
gYXZ/91HMUjsYUuy5/EsmkqvkCalRudoqe6Pex3A34iFGNvDhI3fCrbvmRS4FARPse5D8BLu
e/PIvAPNUC7xl8UcfnTNVgy5ITzWNiY9hIrbAzfPbTXyZSIdMD+HTNg33ziMbu2Iry/2eS1X
/whXkApnQNpHplvzf1xMEeNPlDKtL8OOg+9y4ESdn27EKxeeaaFXsrhb3z1woIjQxXINft5W
EPXWnks/YBCvrLTH8kRCLZgH17zDxb+MLqKj1XUQtBKgDhb+VswJM6GF+dDeBJoEYjvLR1Sx
l5yfaRj0F7HYkjRUwyehwSHgTVqtgnT9QjCCBrYwggSeoAMCAQICEQCgDMvMm5mY7OI6cPR8
wcBZMA0GCSqGSIb3DQEBBQUAMDcxFDASBgNVBAoMC1RlbGlhU29uZXJhMR8wHQYDVQQDDBZU
ZWxpYVNvbmVyYSBSb290IENBIHYxMB4XDTE0MDUyNzA3NDYyMVoXDTI0MDUyNzA3NDYyMVow
OjERMA8GA1UECgwIRXJpY3Nzb24xJTAjBgNVBAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwg
Q0EgdjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDaulPrX0iWU5+JOOqjddx4
Gnl17DJhklkoXOgOSBMhW6FzGVt5RR7KPv+rjt2YpbwdoqWSYa4VPkS/72vuQoWsvz2avWWX
hPTdNzrB3zs5cJO7sKIyd+LRy4l/8kKK4iPm+Q18XyGF0xTuc5WS3WiMScJSxEKdIOP8xehB
raHZabrGh9OxQHC4iBHkzD0YF3J/vBqBTr7blRzYf1h3j5a7qVIHCPfz+eCE175mResXDQRI
7LvMiZtVaqitBl0oAJiJyeBmvEujBNsIEgUQ6JcQFG5ny0EazLywv7clwb7izvLgoXc6SFrd
0D7TGJtkdldVJtMwDYXpyFMGAijT6uf8h2kuPIwrDgQFNEyIQZ4q52ZpRGwugC6sMxgHEDGj
A/CxX9aC5Vi1EMRJiOGF6gV3T+V5yHDHSBBeQbVAXm8wSTDBfXQwdro/AXqET0mG6Rpe4q2F
GBaauE8qHEO6qR3WAEgvjVfFU2k6xZx1qmvwhkXadxh6ZIMXzgb6WpjivLnR0GEKNrgN2DXd
vo+6eAt45Bhvmeka2TrJDxMLWiBy8QYgNeNXYQsuREnDsjWo6wF0LqbA5769om9nn/uJzmzx
b3nT1iHue5co9J93ta06kxiASHvcIzZwAOjKnmk0vR3IT7Qbzq2of3E1s18xo8DM9D91Cak0
Nq+RALtdv1uZKQIDAQABo4IBuDCCAbQwgYoGCCsGAQUFBwEBBH4wfDAtBggrBgEFBQcwAYYh
aHR0cDovL29jc3AudHJ1c3QudGVsaWFzb25lcmEuY29tMEsGCCsGAQUFBzAChj9odHRwOi8v
cmVwb3NpdG9yeS50cnVzdC50ZWxpYXNvbmVyYS5jb20vdGVsaWFzb25lcmFyb290Y2F2MS5j
ZXIwEgYDVR0TAQH/BAgwBgEB/wIBADBVBgNVHSAETjBMMEoGDCsGAQQBgg8CAwEBAjA6MDgG
CCsGAQUFBwIBFixodHRwczovL3JlcG9zaXRvcnkudHJ1c3QudGVsaWFzb25lcmEuY29tL0NQ
UzBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsLTMudHJ1c3QudGVsaWFzb25lcmEuY29t
L3RlbGlhc29uZXJhcm9vdGNhdjEuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
BDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLENytRGt6+GAsMvbwbKDnZxf0s3MB8GA1Ud
IwQYMBaAFPCPWTgAs/WPmpYM1ev6e6oX6BMSMA0GCSqGSIb3DQEBBQUAA4ICAQBuByBsr6x3
PZBCsmGbcSZ/XL+0tnVMblInoJgL1Bh3PiRicgdo8l+6cvWp/ArBwMYNwSNyrvY9IewyaV8n
65c5oN+l2JDUuzrdANVKnYxha7ZyCEiPmY98sB2bnZgxfJLXQYoRwI7pOOwfyoP2fCYVCd+x
hsfysYiIl4ORzE3TpeppQ2yWkyBBmoHUXJh97ue6+bJ2fqnVUoOVMVnYYEtvsz67v7w2z3fv
dcy04/RnoylxSenxADi1tY9iIydHMgyOu3dfzsxU8AivMGG4aKStsCfUEyg0LlkbhqMrdnes
s3e1qAEueSRNASLfpFwyRmzmiuNh9onzuhER2yYhK/6IeCs4HQHrPhkY8JUmhtmdL2uErOZW
Os38FQhGWHWXI0g6SgdDObU0GEHju0MkDziOhm+BVwPZKN7B7wD7OPj6vlLVo6d8vLGK9byw
hEfXjxLIC3Qhtu5lJPTgIo5Bup+aBBjiJ/u9BfqryqZpudnWfG+wxC327rpNAq2OKdFsR92w
behSZD3mSSAemDVwGB2Yu0XHQYyyYfpWsGyGEyRSHKFhRwJdINPzWLI89wy4Wc+PgqyekkEm
Jqe6g4XSQFj4mqtwvqhP4dg2QCcKM/bh62RwfM7GeSS/LFGe84KmJjTDfvT8c2rK8nEyZ/em
OtwCGXQ6tZCByMNLxeDwU1TGbTGCAxcwggMTAgEBME8wOjERMA8GA1UECgwIRXJpY3Nzb24x
JTAjBgNVBAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwgQ0EgdjICEQDvmghdbd4Eckfa7tuu
fmCcMA0GCWCGSAFlAwQCAQUAoIIBmTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG
SIb3DQEJBTEPFw0xNzA3MjAxMTM1NTdaMC8GCSqGSIb3DQEJBDEiBCDj1tfhO+7IfAPnnnvM
RwO7jrtpiQWaKDdLp96bFQNuDzBeBgkrBgEEAYI3EAQxUTBPMDoxETAPBgNVBAoMCEVyaWNz
c29uMSUwIwYDVQQDDBxFcmljc3NvbiBOTCBJbmRpdmlkdWFsIENBIHYyAhEA75oIXW3eBHJH
2u7brn5gnDBgBgsqhkiG9w0BCRACCzFRoE8wOjERMA8GA1UECgwIRXJpY3Nzb24xJTAjBgNV
BAMMHEVyaWNzc29uIE5MIEluZGl2aWR1YWwgQ0EgdjICEQDvmghdbd4Eckfa7tuufmCcMGwG
CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO
BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw
DQYJKoZIhvcNAQEBBQAEggEARhNNDSZLF4sV6qLbkOnsjdrC4fn+IQdKRXvkBgZOzRWf4w++
CMF2ol/cFxQCicCAj78Kg9JygS93RWVoQwr0JedAY4j1bcbxN8fFSXySCz3JNlHpoJ+5l7t5
0WMrpdbq3YoR2gEvzIUjiIfodfia7Cnm+HZ1soumTxO3CH44dPLXrI3gr0fdGVkmg+ek/Ggj
ms21LxJjF+P/Xgc91zxUJNn3K27JGVkS0xxaWbPL5zYispunBZZvD+zHBya7kLQ+XntkJdgE
QM05KcCo4nHzpnO0zrf4k2jgUReoLH5C6/p6o/BTE3eB7PaB9dwZRq1lLMpfpgF1Jsmlp3/9
lmjrxQAAAAAAAA==
--------------ms000906050904030201060708--


From nobody Thu Jul 20 04:52:17 2017
Return-Path: <martin.thomson@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 B5D6D131C01 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:52:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 MEkwo6PQZ7JP for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:51:59 -0700 (PDT)
Received: from mail-it0-x22b.google.com (mail-it0-x22b.google.com [IPv6:2607:f8b0:4001:c0b::22b]) (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 762C0131B05 for <quic@ietf.org>; Thu, 20 Jul 2017 04:51:59 -0700 (PDT)
Received: by mail-it0-x22b.google.com with SMTP id h199so14774500ith.0 for <quic@ietf.org>; Thu, 20 Jul 2017 04:51:59 -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=PYKfHDX3mz3KqtuMyKcrMJ2qXwoZlft33llEjxO5494=; b=FiQYYd2pxgNSSckIVJPc5vI+FqdewimzhpaqcxV41vbD/D9NAr0bqWUF9TTY0WvzFX erNsYJdJzbBgbj9hKrR/yedL+5BwgmECnoWYvjmOFQdXKXSvln10//w41Cx7UKCYfv6J lzQ9gKmqIVXrOUAsd5LSydQc4xMiHRVk4y8L/l7WKGIkRkY2dlaD1OJDwAxbINRD2gtu DLJ/Z3BDuuMhl5FKpEl+s/lHQiPRD3jRipA8sWgKp39yyLjBBpBgoqNNJ7ReUMHygMwn 7ynWg43eTgBMp0kDgVFqwfxiEjM4vyJV6YCViuxlHyZG68MLHVM8AHJt7PWyXLV8upUb eNkg==
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=PYKfHDX3mz3KqtuMyKcrMJ2qXwoZlft33llEjxO5494=; b=T7fDsd6RKImKArU9INtP3XuKe3RTRdw9rz3O9A5OG6tpMvzwVKpGkCGGjYwQ24z4lJ pZLCOQ0STOJfOztww2nc5fQdBSJT1Y9FxgSz4hZLwekML1mYfrs57XsR/6sspO3bMXL5 sQ0fnXkDfAukI44YCUu7mZwABHcgp1GA9hUq7TKlQDEyLVSQMzbRIavkN+RWeBQvf6jB y3QeR4ecC0dlLhBM+f3Yk63qoUphcl8GYocFUjpwsjlOETfXnuCbQ/ml1B/tos4holfG 7vrpAQ1sAcystNyc4s/bYTM9LvP/o2c64ob2UalwqSGBLqbaEzgUrykmo0igLTGwrzIe lZTQ==
X-Gm-Message-State: AIVw1137hRaJaN6lpa8sdq3tOD6uMdoFFqZXt9ry3uRK7jUea7EgtZqA mhZxOtCRrCbFqJy0nLM4V76P/g6LXw==
X-Received: by 10.36.5.68 with SMTP id 65mr3071631itl.140.1500551518699; Thu, 20 Jul 2017 04:51:58 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Thu, 20 Jul 2017 04:51:57 -0700 (PDT)
In-Reply-To: <f17073da-268c-7c51-4738-faab63432441@ericsson.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CABkgnnWY7EVNeZUPqkRUmO6=5=3MdWqdHaCLbW8G_iBHUQmDew@mail.gmail.com> <b579753b-53cf-2907-f21d-5e7e89a08f93@ericsson.com> <CABkgnnWcydCWkkPxCWmLATfAmtEwwoXqLv9ei6HW46CMuRXJnw@mail.gmail.com> <f17073da-268c-7c51-4738-faab63432441@ericsson.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Thu, 20 Jul 2017 13:51:57 +0200
Message-ID: <CABkgnnU0ZsNLGO+UujUBuhYQnhQnj2wEV5MmgUL8szRpOY=oNQ@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/bTtzpJKAfLD6tL6O2lzcqiaghD8>
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: Thu, 20 Jul 2017 11:52:10 -0000

On 20 July 2017 at 13:35, Magnus Westerlund
<magnus.westerlund@ericsson.com> wrote:
> Den 2017-07-20 kl. 13:25, skrev Martin Thomson:
>>
>> That wasn't the question: the question was "if I decide to break
>> linkability by using a new connection ID, would you also insist on
>> having the lower bits remain contiguous?"
>
>
> No, that would be a new connection, and a new flow so no problem from my
> perspective to have new random start point for the packet numbers.

OK, thanks.  In that case, I think that this is good input into the
packet number encryption discussion.


From nobody Thu Jul 20 08:49:55 2017
Return-Path: <andrewmcgr@google.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 1442912EC32 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 08:49:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level: 
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 XrpjPGTOQu15 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 08:49:51 -0700 (PDT)
Received: from mail-qk0-x234.google.com (mail-qk0-x234.google.com [IPv6:2607:f8b0:400d:c09::234]) (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 F0CCD1252BA for <quic@ietf.org>; Thu, 20 Jul 2017 08:49:50 -0700 (PDT)
Received: by mail-qk0-x234.google.com with SMTP id t2so12148593qkc.1 for <quic@ietf.org>; Thu, 20 Jul 2017 08:49:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=5/OGIYIQZF/rUjMrDBLs6eA9/2YBk4p27pIzod92Wrg=; b=S0LACPor3sjk8JCmed1vqWSpv7Ld4SxnZhH4zyb4OGmUXXxcRnoUBvNCjW8mnunwt/ pxNK4sfFkD8Gfll5X7XWlHF70x/BtiTn3S/7M4xZ0JmKUe+iItp2QsIq08aPfc/qHQtl w43zntXhopiXQCkh5drqwJjTUgAmDj6XFHj+xD//A6hjLDX2eURsQ7/sSG9Iz0tqOybz 4AdaNpFXDGmRbcMHv1RlMZQbv4BEpvuRqDDnV0PMr3+z/lwdvzqpnUyUSNtey3OiSzdI grTeq7daDxAaMh2hUZMSW53hneZKW0fOT3JlKw9b/yM8FVVBJVsFRz/WFn7zemTpE4TD vHag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=5/OGIYIQZF/rUjMrDBLs6eA9/2YBk4p27pIzod92Wrg=; b=lG3t+irixJcMw0mw/cvv7aBwtjzQzG0DaSePd49upJE0woxZm7a1/+Dflu/ZE8gsEV mASM3M9wYjqmXgIiuukxgPRA6CyepOOqSdDrcsAX9xUxs1OYClKoMxBKNxW43z7+aNQA ERC7/5RuxSICqfwkIOZMFGJ4vFG/4w4uJdoMDNde4t5LhpVD9daVuBuNTHdLvcrjCW0S 7Gk5Nie3xJtuwSxsGTmokBEcqGUeme40UtkulCrXykqxkPVZ81Iv24Yl6o0RCKRF9hOL rzUOwWK5QAhAC1vDzttQUCUOh/YKI0lavJUzP1hrfE8YnGkDKL2ydGwUUusOXzjlxWD0 SK3g==
X-Gm-Message-State: AIVw110mSa8wqBnsUb3zG4WnMeHTHOgQDJLRtkXd+4ejHt24V05fzaEM n48h+04MmKdJbNP8Xw4UbWfRrfKAW8ERfYlFFg==
X-Received: by 10.233.223.68 with SMTP id t65mr5770240qkf.122.1500565789664; Thu, 20 Jul 2017 08:49:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.146.75 with HTTP; Thu, 20 Jul 2017 08:49:49 -0700 (PDT)
From: Andrew Mcgregor <andrewmcgr@google.com>
Date: Thu, 20 Jul 2017 17:49:49 +0200
Message-ID: <CAPRuP3=giLNc_Oi5kFBvqAdSpg6hRH2R1E8t8tuhorUEMKOH=w@mail.gmail.com>
Subject: Paper on passive RTT estimation
To: quic@ietf.org
Content-Type: multipart/alternative; boundary="94eb2c043a6cdb9fe90554c1b2cc"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Nja_wp0oc4YUfLrH9gFx9zq1TZU>
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: Thu, 20 Jul 2017 15:49:53 -0000

--94eb2c043a6cdb9fe90554c1b2cc
Content-Type: text/plain; charset="UTF-8"

I mentioned a technique for measuring RTT passively at the mic today. This
paper is an example of a technique for doing so:
http://www-sop.inria.fr/members/Philippe.Nain/PAPERS/PASSIVE-ONLINE-ESTIMATION/Passive-online-RTT-estimation.pdf

There are undoubtedly others, although that is powerful enough to be
sufficient for most network management purposes.

-- 
Andrew McGregor | SRE | andrewmcgr@google.com | +61 4 1071 2221

--94eb2c043a6cdb9fe90554c1b2cc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I mentioned a technique for measuring RTT passively at the=
 mic today. This paper is an example of a technique for doing so:=C2=A0<a h=
ref=3D"http://www-sop.inria.fr/members/Philippe.Nain/PAPERS/PASSIVE-ONLINE-=
ESTIMATION/Passive-online-RTT-estimation.pdf">http://www-sop.inria.fr/membe=
rs/Philippe.Nain/PAPERS/PASSIVE-ONLINE-ESTIMATION/Passive-online-RTT-estima=
tion.pdf</a><div><br></div><div>There are undoubtedly others, although that=
 is powerful enough to be sufficient for most network management purposes.<=
br clear=3D"all"><div><br></div>-- <br><div class=3D"gmail_signature"><div =
dir=3D"ltr"><span style=3D"color:rgb(85,85,85);font-family:sans-serif;font-=
size:small;line-height:1.5em;border-width:2px 0px 0px;border-style:solid;bo=
rder-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Andrew McGregor=
=C2=A0|</span><span style=3D"color:rgb(85,85,85);font-family:sans-serif;fon=
t-size:small;line-height:1.5em;border-width:2px 0px 0px;border-style:solid;=
border-color:rgb(51,105,232);padding-top:2px;margin-top:2px">=C2=A0SRE=C2=
=A0|</span><span style=3D"color:rgb(85,85,85);font-family:sans-serif;font-s=
ize:small;line-height:1.5em;border-width:2px 0px 0px;border-style:solid;bor=
der-color:rgb(0,153,57);padding-top:2px;margin-top:2px">=C2=A0<a href=3D"ma=
ilto:andrewmcgr@google.com" target=3D"_blank">andrewmcgr@google.com</a>=C2=
=A0|</span><span style=3D"color:rgb(85,85,85);font-family:sans-serif;font-s=
ize:small;line-height:1.5em;border-width:2px 0px 0px;border-style:solid;bor=
der-color:rgb(238,178,17);padding-top:2px;margin-top:2px">=C2=A0+61 4 1071 =
2221</span><br></div></div>
</div></div>

--94eb2c043a6cdb9fe90554c1b2cc--


From nobody Thu Jul 20 08:54:42 2017
Return-Path: <ekr@rtfm.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 949A0131CB4 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 08:54:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 kvzu0aq5ltxa for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 08:54:32 -0700 (PDT)
Received: from mail-yb0-x234.google.com (mail-yb0-x234.google.com [IPv6:2607:f8b0:4002:c09::234]) (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 2B191131947 for <quic@ietf.org>; Thu, 20 Jul 2017 08:54:17 -0700 (PDT)
Received: by mail-yb0-x234.google.com with SMTP id z37so7471059ybh.1 for <quic@ietf.org>; Thu, 20 Jul 2017 08:54:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=iqJPGdbZ8ogBnHR2w1Zpowv+EkcJZ0Lw/8isVJKwbcw=; b=J7J+MlHhm+UtHcUzCO4ek8zRDtdsGKt8MK0Z/FDB9Nw+cOzdPjAeUiipv7xMzTaBug /klQLcl8fblaUgw+PO6UtWIQVT/YwmSkRKPMfrHswVQaKOFir5+8+N9cDYtmFzY6LKyn JmKKkXkf2Pv8cN/oIHg/OlWGKoBdNVJpw0h0ZALUdSnPkjBdr4UcFfph/RBB9K/JgQHc zEaGLtejqekz2rFlcihfLccsWfmLqzb52R+McEEp9nKf75dnVsyD3Qv4NY8Uif+gnqgV 5EEkm40N9644BAxjZ6LPXj+6QJUdkhdkDMrvZyubQcaQ0KdfldaDw9o8rP3d0bhoWe8p glQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=iqJPGdbZ8ogBnHR2w1Zpowv+EkcJZ0Lw/8isVJKwbcw=; b=B5P3hp77u2z06zgRxIoFAYemCytHGu97nudeH/Y7Er2gEyCimmw3o6f1HfBYmNp8ME R7/kEtqsU/tMdyVjJyT/MADCyOFQoBwW00J7JmVjnsL3jemNixugqj492YQqXhQC5pFq u+1k8kVink1Eki5NjeZj9GolqFk8XXKvwos36eAp7zRzfuawDU18/jQDQUHXDd/XPW18 JHohFfWIN3Q5PV/3ncAT5aJiFjwgyU70x6RjIK3nfQN6spvNvo0lXsgFZRwviZWOmavd ZxEcCF/4HvZYLHn7CVyq/yd5eo/f6OKj8lshsI1au2zGlcXSPHULYzmeAcXXQtrl4aXa nOlw==
X-Gm-Message-State: AIVw111v5CMwfJuqWNlCvxtdfL9oDn2X9gaNCy090Rvk0kMoDUALGPI8 XTpY5lPgVd7qT1/bm0HU2dIVj0eROLjxAfwC1Q==
X-Received: by 10.37.160.41 with SMTP id x38mr3495659ybh.339.1500566056141; Thu, 20 Jul 2017 08:54:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Thu, 20 Jul 2017 08:53:35 -0700 (PDT)
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 20 Jul 2017 08:53:35 -0700
Message-ID: <CABcZeBNMRyq6P8AjfafVpkRuZ0qk1Z6qbFcE1OJ0OjrisO-Wog@mail.gmail.com>
Subject: What I was talking about today
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c1a0650bd212b0554c1c21b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/hHp_0u9ev1BdsJ-rVK-FUVjts78>
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: Thu, 20 Jul 2017 15:54:40 -0000

--94eb2c1a0650bd212b0554c1c21b
Content-Type: text/plain; charset="UTF-8"

Here's the half-baked attack I was suggesting today.

Suppose we have a manipulation of packets that induces an immediate
response from the server, like if a recipient responds to an
out-of-order packet with an immediate ACK. The bit flipping thus
potentially allows an attacker to differentiate a *response* packet
from a packet which was organically generated by the other side
(by looking for the bit flip).

Now, suppose you *also* have a non constant time cryptographic
implementation. The manipulation above would allow an attacker to
partly measure the processing time for a given packet, which might
eventually let them learn information about the traffic keys.

I'll be the first to admit that this is a stretch:

- You need a broken implementation
- Even without this bit, you can take the same measurement
  because the next packet is most likely the response anyway,
  not organic.

However, you can imagine situations in which it just barely might
be a problem, such as when the receiver is generating synthetic
traffic for anti-traffic analysis (thus hiding responses in
organic traffic).

Like I said, this is pretty half-baked, but that's what you get
when I try to design attacks at the mic.

-Ekr

--94eb2c1a0650bd212b0554c1c21b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Here&#39;s the half-baked attack I was suggesting tod=
ay.</div><div><br></div><div>Suppose we have a manipulation of packets that=
 induces an immediate</div><div>response from the server, like if a recipie=
nt responds to an</div><div>out-of-order packet with an immediate ACK. The =
bit flipping thus</div><div>potentially allows an attacker to differentiate=
 a *response* packet</div><div>from a packet which was organically generate=
d by the other side</div><div>(by looking for the bit flip).</div><div><br>=
</div><div>Now, suppose you *also* have a non constant time cryptographic</=
div><div>implementation. The manipulation above would allow an attacker to<=
/div><div>partly measure the processing time for a given packet, which migh=
t</div><div>eventually let them learn information about the traffic keys.</=
div><div><br></div><div>I&#39;ll be the first to admit that this is a stret=
ch:</div><div><br></div><div>- You need a broken implementation</div><div>-=
 Even without this bit, you can take the same measurement</div><div>=C2=A0 =
because the next packet is most likely the response anyway,</div><div>=C2=
=A0 not organic.</div><div><br></div><div>However, you can imagine situatio=
ns in which it just barely might</div><div>be a problem, such as when the r=
eceiver is generating synthetic</div><div>traffic for anti-traffic analysis=
 (thus hiding responses in</div><div>organic traffic).</div><div><br></div>=
<div>Like I said, this is pretty half-baked, but that&#39;s what you get</d=
iv><div>when I try to design attacks at the mic.</div><div><br></div><div>-=
Ekr</div><div><br></div><div><br></div><div><br></div></div>

--94eb2c1a0650bd212b0554c1c21b--


From nobody Thu Jul 20 10:53:30 2017
Return-Path: <martin.h.duke@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 48D8E128C81 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 10:53:29 -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 9pMXZrqVL5VL for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 10:53:27 -0700 (PDT)
Received: from mail-wm0-x22a.google.com (mail-wm0-x22a.google.com [IPv6:2a00:1450:400c:c09::22a]) (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 7AF331270AC for <quic@ietf.org>; Thu, 20 Jul 2017 10:53:27 -0700 (PDT)
Received: by mail-wm0-x22a.google.com with SMTP id v76so2872801wmv.1 for <quic@ietf.org>; Thu, 20 Jul 2017 10:53:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:from:date:message-id:subject:to; bh=8nH5Tv/hp2dwOoTZJh8bAfdgWhGyZTmlR/kZRR6LBkI=; b=SGmxkiVJ+ZygOy5NzHoELvMcMCQDmPHHHIAYaZzyHTJEpK77cjOj/G0jtDvb5LRbk6 hFp2wZxeeHGj+4YVmiDYlrq1HQcMigjqgoP4XEVNYTyReuv6/DnbgHXm7KPqeykVobFO SakffSKpVv8eTmfDc1nGSIUJx3ha4+wU1/t6ZpUPph4YWCwqBTnw99er90Uxx/mDP3kB Sp1VXnq44thE18LmXSW8bgMyVL/9ANylyCMvCaAzkX+DU3AsF1yXEBTIlKEjx6ZGAA7E xHhrXwlL7vW+G3MpVTG6VeLpVMb74u131tsZr4uG8vyZFavTI5B9SlFQxGR8MtFwSYKT MR8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=8nH5Tv/hp2dwOoTZJh8bAfdgWhGyZTmlR/kZRR6LBkI=; b=mdktz6iqmmgZUz7msRyo6Y7xT0IfvgLgOQw/wy6hopzcaxgZ7jwVb0LRxt36Dma6pS I7LEisRbYTokPVG6pOLIX3U0seaxq0EyJqqgHY38uUn4RPLGMg+AGHVUkxguuCmlYbsA xgzHZ+3R8flp4MEZtJY1zrDCAwQJ3uafjPYaPcxqtTGfnNRuG68K2PZZmTxlBhe8dXMJ 9sqN+djl5rZ3fjYi04tQJ6z45d03fxsYo2fSJLYlfoIY5ASdg+vGRu1AohYBS1wPBp8y vUOtfrVSrBjudjQ9czDX+viTOATsjaZxfMe+PcQe28l1F1UyMsC4xeR0i59ZBRyP8ssQ Xvgw==
X-Gm-Message-State: AIVw113WhkNIZhig8Wknbr/HYjhagBOQ4KzHH+OjmgmMbyS2gf3n5eze 2gUjU/rGoohNzCC9vskoRM70jHJXlJQ1
X-Received: by 10.28.11.212 with SMTP id 203mr3201609wml.105.1500573205668; Thu, 20 Jul 2017 10:53:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Thu, 20 Jul 2017 10:53:25 -0700 (PDT)
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 20 Jul 2017 10:53:25 -0700
Message-ID: <CAM4esxTKZw4MrLyArCAzdSPgECcY-h87PdjhvcSPVg3GxGxChw@mail.gmail.com>
Subject: -05 Drafts?
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114450cee22b750554c36cae"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/onPGsjf8bTlBkNKhJ2XNV8d44Jw>
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: Thu, 20 Jul 2017 17:53:29 -0000

--001a114450cee22b750554c36cae
Content-Type: text/plain; charset="UTF-8"

There has been frequent reference to the "-05 drafts", but I don't see them
on ietf.org. Is there somewhere else I should be looking?

--001a114450cee22b750554c36cae
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">There has been frequent reference to the &quot;-05 drafts&quot;, but I don&#39;t see them on <a href="http://ietf.org">ietf.org</a>. Is there somewhere else I should be looking?</div>

--001a114450cee22b750554c36cae--


From nobody Thu Jul 20 11:07:25 2017
Return-Path: <martin.h.duke@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 5892A129B5E for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 11:07:24 -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 e3-ruTsLahya for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 11:07:23 -0700 (PDT)
Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (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 A0F0C131472 for <quic@ietf.org>; Thu, 20 Jul 2017 11:07:22 -0700 (PDT)
Received: by mail-wm0-x236.google.com with SMTP id w191so33919121wmw.1 for <quic@ietf.org>; Thu, 20 Jul 2017 11:07:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:from:date:message-id:subject:to; bh=Rbx+YdWRZd8U5bVKEcVipAHjUF/thHnr7qonMgw9iOQ=; b=ZskAkThPyoM7MPt7gaYIOi1/BuXChX1oBdvfXOb8FgRSvBMeTuQxpaX4+7WBNmGUs/ rVnIeEevkXXjKu8eQwGzOjx+VREOpeO4EnkgK2wg3pQzkEFyEjfZrdVqnfPVClZ6tSbx obvsySc8IZIaq0SWxFD25QW+fFGy00LM8dCI+Wezo3ws9hNjTTDT08QxkL92Vl7BQA0A hFRzWw30F40ApHEeswQpSsGpS2HVGhjzba49vw0/HcZUxwyXRZnOzPz9rtcosrcTPaNX HU3RP16WdeKXO7VN9cwyjoqlWR1W0TwdB+eO/v9iGamhe6XOG4NYqXaaBRKFM4L0N2mp xTXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Rbx+YdWRZd8U5bVKEcVipAHjUF/thHnr7qonMgw9iOQ=; b=HCLBWP2APGD3O+YQpNt/UnqcssoWK1g20UFWdOUm2tYGMKedBgP2Uk8EloQTXmzJPP mgNy5cBbRgsdSmZu2GWYbIYkOT6980k89VPrXNUfveFLWo4avyLaYElB8CmwgAlHcYob HKWTMWD8EVNsErXnNBUbr/WwHd6OjegyzfSj+avHg5KUd5/moRuxpicS2jO6zuE7PEzJ x+BEblT2KyPtZBokdhLBmjRwYQpGNFt3GxudIdRJi7wmXvQVmrdHX+y/vCjruP4PGglV ft/5VUw/AA8HacJPTv8dS04rUYR/w5UStoP7tJSGO7glB+m0EGBbTepeI13nGZFBkabV xSIQ==
X-Gm-Message-State: AIVw113fs5Ln/A13tHO8i4BSQbc1XSDwEewSIhOC6QKeHDueFCFX9veY eRUMirMNqrzBtgcrXMF2rJQV3RVtNGRV2oY=
X-Received: by 10.28.45.10 with SMTP id t10mr3234242wmt.105.1500574040974; Thu, 20 Jul 2017 11:07:20 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Thu, 20 Jul 2017 11:07:20 -0700 (PDT)
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 20 Jul 2017 11:07:20 -0700
Message-ID: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com>
Subject: New Second Implementation Draft
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114240d6abed8b0554c39ea4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/mlDa6_1BAAldf61ssRCcqqONhv4>
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: Thu, 20 Jul 2017 18:07:24 -0000

--001a114240d6abed8b0554c39ea4
Content-Type: text/plain; charset="UTF-8"

I believe I have distilled the feedback from today's meeting into an
all-new second implementation draft:

https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft

Lars/Mark, do we want to discuss again Friday?

Assuming we do, the two pieces of immediate feedback I would like
(pre-meeting) are:
1) Are there any important protocol elements I have failed to mention at
all?
2) Does anyone violently disagree with the category in which I have placed
any of the listed components?

Final point: there is one place where I extrapolated a bit from the
comments in the room: flow/congestion control. I believe what I wrote there
avoids truly ridiculous bursts of data and exercises the flow control
mechanism without trapping us in tricky tuning exercises.

Martin D

--001a114240d6abed8b0554c39ea4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I believe I have distilled the feedback from today&#39;s m=
eeting into an all-new second implementation draft:<div><br></div><div><a h=
ref=3D"https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Dra=
ft">https://github.com/quicwg/base-drafts/wiki/Second-Implementation-Draft<=
/a><br></div><div><br></div><div>Lars/Mark, do we want to discuss again Fri=
day?</div><div><br></div><div>Assuming we do, the two pieces of immediate f=
eedback I would like (pre-meeting) are:</div><div>1) Are there any importan=
t protocol elements I have failed to mention at all?</div><div>2) Does anyo=
ne violently disagree with the category in which I have placed any of the l=
isted components?</div><div><br></div><div>Final point: there is one place =
where I extrapolated a bit from the comments in the room: flow/congestion c=
ontrol. I believe what I wrote there avoids truly ridiculous bursts of data=
 and exercises the flow control mechanism without trapping us in tricky tun=
ing exercises.</div><div><br></div><div>Martin D</div></div>

--001a114240d6abed8b0554c39ea4--


From nobody Thu Jul 20 11:21:20 2017
Return-Path: <ekr@rtfm.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 CFB8F131919 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 11:21:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 00aWtbWWZuzP for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 11:21:16 -0700 (PDT)
Received: from mail-yb0-x22c.google.com (mail-yb0-x22c.google.com [IPv6:2607:f8b0:4002:c09::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 83207131474 for <quic@ietf.org>; Thu, 20 Jul 2017 11:21:16 -0700 (PDT)
Received: by mail-yb0-x22c.google.com with SMTP id c127so7420694ybf.4 for <quic@ietf.org>; Thu, 20 Jul 2017 11:21:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=hhVAOFxsABM/78qlzvrqCm5HXej/LKJ4Lp8t5E6Qr74=; b=ILT2OOTUysXdjIJrPO0vVxsNCiL31NAm7hz1tm505QUdPQQT/IqPec359MI3NxzVyG dRpSaBzGjsMnJQHJfVMRZLaCYV6ya7hoAFyhF8T/TZ6qvgmTMowp5TBhEwnwXxMkgON6 d+z654wrImEWlAEi2eZkOP0TpgIKjwGLKUmX8h3XBzx3z9dXsvBg/R+lMKYN07ls6OeK u+6DJY3tz29SDXZr2R9tI+MhlhwShsqp2YWbA/1z3Bt/T+rcLmuaBsTivRLbZSVNPNr1 g8vMACINXQiA8LxMCbAoG6PvI9XlS7NnnSFuv/4FBA9E1uMNM8A1TmqGnUNw5Dj3D120 Fb+w==
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=hhVAOFxsABM/78qlzvrqCm5HXej/LKJ4Lp8t5E6Qr74=; b=PqUjh1Q9PWGS2YWx02WXj/9ptxntvoFog4jU/mCQiAA9aSaJYXKjnwRbfus2eQQYra 6ozpVk1ZuinEDUSZcLCHkuMTU3teM3OtESiA/GmYcjwbzH2piakd0yYrc7Z/oFUFSwBQ yj47E9puXQ6x4ptnRbw6IuOKr/stzsVypzoYJflaFfKawMRMiY7iPHvZIvjVu2Qai8r6 3JC/kYfr6usYFkCJ46Cj9Uq7ll+mBCa3itMGv51e3t9ERg4HEsw41GpNP+NuEB2ESmH8 vekDrxdkcD5O+irrKTgbwKDS0DHMSWsLwIK8BSv9U0F4M8EU4srpu1N1z2SocEqqcKB9 1LaQ==
X-Gm-Message-State: AIVw112/7cy4TJcl0C+612CNxr2j4Hk0TErt//k0P86zruGZSPtg4U4r NkSz1igNyGQIFelQHDDmnd48pw+chqPqxiM=
X-Received: by 10.37.56.12 with SMTP id f12mr4263933yba.289.1500574875811; Thu, 20 Jul 2017 11:21:15 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Thu, 20 Jul 2017 11:20:35 -0700 (PDT)
In-Reply-To: <CAM4esxTKZw4MrLyArCAzdSPgECcY-h87PdjhvcSPVg3GxGxChw@mail.gmail.com>
References: <CAM4esxTKZw4MrLyArCAzdSPgECcY-h87PdjhvcSPVg3GxGxChw@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 20 Jul 2017 11:20:35 -0700
Message-ID: <CABcZeBN8wxd6dVyDTqJj7qVN4X8TWCv2yGPkqBMeecBvmUVCqA@mail.gmail.com>
Subject: Re: -05 Drafts?
To: Martin Duke <martin.h.duke@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c03e4c26e98fc0554c3d06a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/4S4uqYtbYIUKRmSY4GuRWUCgSTk>
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: Thu, 20 Jul 2017 18:21:18 -0000

--94eb2c03e4c26e98fc0554c3d06a
Content-Type: text/plain; charset="UTF-8"

We're just calling the editor's copy -05. Really it's -05pre


On Thu, Jul 20, 2017 at 10:53 AM, Martin Duke <martin.h.duke@gmail.com>
wrote:

> There has been frequent reference to the "-05 drafts", but I don't see
> them on ietf.org. Is there somewhere else I should be looking?
>

--94eb2c03e4c26e98fc0554c3d06a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">We&#39;re just calling the editor&#39;s copy -05. Really i=
t&#39;s -05pre<div><br></div></div><div class=3D"gmail_extra"><br><div clas=
s=3D"gmail_quote">On Thu, Jul 20, 2017 at 10:53 AM, Martin Duke <span dir=
=3D"ltr">&lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">m=
artin.h.duke@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex"><div dir=3D"ltr">There has been frequent reference to the &quot;-05 dra=
fts&quot;, but I don&#39;t see them on <a href=3D"http://ietf.org" target=
=3D"_blank">ietf.org</a>. Is there somewhere else I should be looking?</div=
>
</blockquote></div><br></div>

--94eb2c03e4c26e98fc0554c3d06a--


From nobody Thu Jul 20 17:40:35 2017
Return-Path: <Lucas.Pardue@bbc.co.uk>
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 02A4C131B63 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 17:40:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 kNZ_yfLMPJcR for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 17:40:32 -0700 (PDT)
Received: from mailout1.cwwtf.bbc.co.uk (mailout1.cwwtf.bbc.co.uk [132.185.160.180]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DA8F8131B61 for <quic@ietf.org>; Thu, 20 Jul 2017 17:40:31 -0700 (PDT)
Received: from BGB01XI1008.national.core.bbc.co.uk (bgb01xi1008.national.core.bbc.co.uk [10.161.14.22]) by mailout1.cwwtf.bbc.co.uk (8.15.2/8.15.2) with ESMTP id v6L0eT8W002484; Fri, 21 Jul 2017 01:40:29 +0100 (BST)
Received: from BGB01XUD1012.national.core.bbc.co.uk ([10.161.14.10]) by BGB01XI1008.national.core.bbc.co.uk ([10.161.14.22]) with mapi id 14.03.0319.002; Fri, 21 Jul 2017 01:40:29 +0100
From: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
To: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: New Second Implementation Draft
Thread-Topic: New Second Implementation Draft
Thread-Index: AQHTAYMOurDGTrPvv0SJwz4fZD9F+aJdbJ/A
Date: Fri, 21 Jul 2017 00:40:28 +0000
Message-ID: <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com>
In-Reply-To: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.19.161.211]
x-exclaimer-md-config: c91d45b2-6e10-4209-9543-d9970fac71b7
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-23208.003
x-tm-as-result: No--22.271700-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_7CF7F94CB496BF4FAB1676F375F9666A37748A01bgb01xud1012_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/oEQEC-TNzXZVAu2uykT5nfdAJWI>
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: Fri, 21 Jul 2017 00:40:34 -0000

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748A01bgb01xud1012_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

TWFydGluLA0KDQpUaGFua3MgZm9yIHRha2luZyB0aGUgdGltZSB0byByZWZpbmUgdGhpcywgb3Zl
cmFsbCBJIHRoaW5rIHlvdeKAmXZlIGNhcHR1cmVkIHRoZSBtb29kIHdlbGwuIFRoZSBvbmUgYml0
IEkgdGhpbmsgY291bGQgYmUgaW1wcm92ZWQgb24gaXM6DQoNCj4gQSBzaW1wbGUgbXVsdGktc3Ry
ZWFtZWQgYXBwbGljYXRpb24uIFRoaXMgYXBwbGljYXRpb24gd291bGQgaWRlYWxseSBsZXZlcmFn
ZSBhIHZlcnkgc2ltcGxlIHNvY2tldCBBUEkgYW5kIGZvbGxvdyBzaW1wbGUgbG9naWMgZWFzaWx5
IGltcGxlbWVudGFibGUgb24gYm90aCBjbGllbnQgYW5kIHNlcnZlci4gRm9yIGluc3RhbmNlLCB0
aGUgY2xpZW50IGNvdWxkIHNlbmQgZGF0YSBvbiBvbmUgc3RyZWFtIGFuZCB0aGUgc2VydmVyIGNv
dWxkIGVjaG8gY29waWVzIG9mIHRoYXQgb24gbXVsdGlwbGUgc3RyZWFtcy4gQnJpYW4gcHJvcG9z
ZWQgImVjaG8gYW5kIGFtcGxpZnkiIGFuZCB2b2x1bnRlZXJlZCB0byB3cml0ZSBpdCB1cC4NCg0K
SSBhcHByZWNpYXRlIHRoZSBmbGV4aWJpbGl0eSBidXQgaGF2ZSBkaWZmaWN1bHR5IGluIHNlZWlu
ZyBob3cgdGhpcyB3b3VsZCBmbG93IHRocm91Z2ggdG8gaW50ZXJvcCB0ZXN0aW5nLCBob3cgZG8g
d2UgbWVhc3VyZSBzdWNjZXNzPyBPbmUgcG9zc2libGUgb3V0Y29tZSBpcyBpbnRlcm9wIGxpbWl0
ZWQgdG8gc2VsZi10ZXN0IG9mIOKAnGJlc3Bva2Utc2ltcGxlLWFwcOKAnSBvdmVyIFFVSUMsIGlz
IHRoYXQgZ29vZCBlbm91Z2g/IE15IHByZWZlcmVuY2UgaXMgdG8gcGljayBhIG1pbmltYWwgYmFz
ZWxpbmUgKOKAnGVjaG8gYW5kIGFtcGxpZnnigJ0gb3Igd2hhdGV2ZXIgZWxzZSkgYW5kIHRoZW4g
YWRkaXRpb25hbHMgYXJlIGEgYm9udXMgdGhhdCBpcyB1cCB0byBleHRlcm5hbCBjb29yZGluYXRp
b24uIEkgdGhpbmsgdGhpcyBjb21tb24gYmFzZWxpbmUgY291bGQgYWxzbyBoZWxwIHRvd2FyZHMg
b25nb2luZyBjb25zaWRlcmF0aW9uIGZvciBwZXJmb3JtYW5jZSBvciBiZW5jaG1hcmtpbmcsIG92
ZXIgZGlzcGFyYXRlIGltcGxlbWVudGF0aW9ucywgYXMgYXNwZWN0cyBvZiB0aGUgcHJvdG9jb2wg
ZXZvbHZlIG9yIGNoYW5nZS4NCg0KTHVjYXMNCg0KRnJvbTogUVVJQyBbbWFpbHRvOnF1aWMtYm91
bmNlc0BpZXRmLm9yZ10gT24gQmVoYWxmIE9mIE1hcnRpbiBEdWtlDQpTZW50OiAyMCBKdWx5IDIw
MTcgMTk6MDcNClRvOiBJRVRGIFFVSUMgV0cgPHF1aWNAaWV0Zi5vcmc+DQpTdWJqZWN0OiBOZXcg
U2Vjb25kIEltcGxlbWVudGF0aW9uIERyYWZ0DQoNCkkgYmVsaWV2ZSBJIGhhdmUgZGlzdGlsbGVk
IHRoZSBmZWVkYmFjayBmcm9tIHRvZGF5J3MgbWVldGluZyBpbnRvIGFuIGFsbC1uZXcgc2Vjb25k
IGltcGxlbWVudGF0aW9uIGRyYWZ0Og0KDQpodHRwczovL2dpdGh1Yi5jb20vcXVpY3dnL2Jhc2Ut
ZHJhZnRzL3dpa2kvU2Vjb25kLUltcGxlbWVudGF0aW9uLURyYWZ0DQoNCkxhcnMvTWFyaywgZG8g
d2Ugd2FudCB0byBkaXNjdXNzIGFnYWluIEZyaWRheT8NCg0KQXNzdW1pbmcgd2UgZG8sIHRoZSB0
d28gcGllY2VzIG9mIGltbWVkaWF0ZSBmZWVkYmFjayBJIHdvdWxkIGxpa2UgKHByZS1tZWV0aW5n
KSBhcmU6DQoxKSBBcmUgdGhlcmUgYW55IGltcG9ydGFudCBwcm90b2NvbCBlbGVtZW50cyBJIGhh
dmUgZmFpbGVkIHRvIG1lbnRpb24gYXQgYWxsPw0KMikgRG9lcyBhbnlvbmUgdmlvbGVudGx5IGRp
c2FncmVlIHdpdGggdGhlIGNhdGVnb3J5IGluIHdoaWNoIEkgaGF2ZSBwbGFjZWQgYW55IG9mIHRo
ZSBsaXN0ZWQgY29tcG9uZW50cz8NCg0KRmluYWwgcG9pbnQ6IHRoZXJlIGlzIG9uZSBwbGFjZSB3
aGVyZSBJIGV4dHJhcG9sYXRlZCBhIGJpdCBmcm9tIHRoZSBjb21tZW50cyBpbiB0aGUgcm9vbTog
Zmxvdy9jb25nZXN0aW9uIGNvbnRyb2wuIEkgYmVsaWV2ZSB3aGF0IEkgd3JvdGUgdGhlcmUgYXZv
aWRzIHRydWx5IHJpZGljdWxvdXMgYnVyc3RzIG9mIGRhdGEgYW5kIGV4ZXJjaXNlcyB0aGUgZmxv
dyBjb250cm9sIG1lY2hhbmlzbSB3aXRob3V0IHRyYXBwaW5nIHVzIGluIHRyaWNreSB0dW5pbmcg
ZXhlcmNpc2VzLg0KDQpNYXJ0aW4gRA0K

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748A01bgb01xud1012_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToiU2Vnb2UgVUkiOw0KCXBhbm9zZS0xOjIg
MTEgNSAyIDQgMiA0IDIgMiAzO30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1h
bCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowY207DQoJbWFyZ2luLWJv
dHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5l
dyBSb21hbiIsc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUt
cHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30N
CmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5N
c29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBkaXYuTXNvTGlzdFBhcmFncmFw
aA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbWFyZ2luLXRvcDowY207DQoJbWFyZ2luLXJp
Z2h0OjBjbTsNCgltYXJnaW4tYm90dG9tOjBjbTsNCgltYXJnaW4tbGVmdDozNi4wcHQ7DQoJbWFy
Z2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRp
bWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0KcC5tc29ub3JtYWwwLCBsaS5tc29ub3JtYWwwLCBkaXYu
bXNvbm9ybWFsMA0KCXttc28tc3R5bGUtbmFtZTptc29ub3JtYWw7DQoJbXNvLW1hcmdpbi10b3At
YWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
bzsNCgltYXJnaW4tbGVmdDowY207DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToi
VGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUt
dHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsN
Cgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4
cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCW1zby1mYXJl
YXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQg
NzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30NCmRpdi5Xb3Jk
U2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBt
c28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYi
IC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl
bGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0K
PC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0i
RU4tR0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rp
b24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+TWFydGluLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UaGFua3MgZm9yIHRha2luZyB0aGUg
dGltZSB0byByZWZpbmUgdGhpcywgb3ZlcmFsbCBJIHRoaW5rIHlvdeKAmXZlIGNhcHR1cmVkIHRo
ZSBtb29kIHdlbGwuIFRoZSBvbmUgYml0IEkgdGhpbmsgY291bGQgYmUgaW1wcm92ZWQgb24gaXM6
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7
U2Vnb2UgVUkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMjQyOTJFO2JhY2tncm91bmQ6d2hpdGUi
PiZndDsgQSBzaW1wbGUgbXVsdGktc3RyZWFtZWQgYXBwbGljYXRpb24uIFRoaXMgYXBwbGljYXRp
b24gd291bGQgaWRlYWxseSBsZXZlcmFnZSBhIHZlcnkgc2ltcGxlIHNvY2tldCBBUEkgYW5kIGZv
bGxvdyBzaW1wbGUgbG9naWMgZWFzaWx5IGltcGxlbWVudGFibGUgb24gYm90aA0KIGNsaWVudCBh
bmQgc2VydmVyLiBGb3IgaW5zdGFuY2UsIHRoZSBjbGllbnQgY291bGQgc2VuZCBkYXRhIG9uIG9u
ZSBzdHJlYW0gYW5kIHRoZSBzZXJ2ZXIgY291bGQgZWNobyBjb3BpZXMgb2YgdGhhdCBvbiBtdWx0
aXBsZSBzdHJlYW1zLiBCcmlhbiBwcm9wb3NlZCAmcXVvdDtlY2hvIGFuZCBhbXBsaWZ5JnF1b3Q7
IGFuZCB2b2x1bnRlZXJlZCB0byB3cml0ZSBpdCB1cC48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JIGFwcHJlY2lhdGUgdGhl
IGZsZXhpYmlsaXR5IGJ1dCBoYXZlIGRpZmZpY3VsdHkgaW4gc2VlaW5nIGhvdyB0aGlzIHdvdWxk
IGZsb3cgdGhyb3VnaCB0byBpbnRlcm9wIHRlc3RpbmcsIGhvdyBkbyB3ZSBtZWFzdXJlIHN1Y2Nl
c3M/IE9uZSBwb3NzaWJsZQ0KIG91dGNvbWUgaXMgaW50ZXJvcCBsaW1pdGVkIHRvIHNlbGYtdGVz
dCBvZiDigJxiZXNwb2tlLXNpbXBsZS1hcHDigJ0gb3ZlciBRVUlDLCBpcyB0aGF0IGdvb2QgZW5v
dWdoPyBNeSBwcmVmZXJlbmNlIGlzIHRvIHBpY2sgYSBtaW5pbWFsIGJhc2VsaW5lICjigJxlY2hv
IGFuZCBhbXBsaWZ54oCdIG9yIHdoYXRldmVyIGVsc2UpIGFuZCB0aGVuIGFkZGl0aW9uYWxzIGFy
ZSBhIGJvbnVzIHRoYXQgaXMgdXAgdG8gZXh0ZXJuYWwgY29vcmRpbmF0aW9uLiBJIHRoaW5rDQog
dGhpcyBjb21tb24gYmFzZWxpbmUgY291bGQgYWxzbyBoZWxwIHRvd2FyZHMgb25nb2luZyBjb25z
aWRlcmF0aW9uIGZvciBwZXJmb3JtYW5jZSBvciBiZW5jaG1hcmtpbmcsIG92ZXIgZGlzcGFyYXRl
IGltcGxlbWVudGF0aW9ucywgYXMgYXNwZWN0cyBvZiB0aGUgcHJvdG9jb2wgZXZvbHZlIG9yIGNo
YW5nZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFz
dC1sYW5ndWFnZTpFTi1VUyI+THVjYXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2
Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0
O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNw
YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVO
LVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWYiPiBRVUlDIFttYWlsdG86cXVpYy1ib3VuY2VzQGlldGYub3JnXQ0KPGI+
T24gQmVoYWxmIE9mIDwvYj5NYXJ0aW4gRHVrZTxicj4NCjxiPlNlbnQ6PC9iPiAyMCBKdWx5IDIw
MTcgMTk6MDc8YnI+DQo8Yj5Ubzo8L2I+IElFVEYgUVVJQyBXRyAmbHQ7cXVpY0BpZXRmLm9yZyZn
dDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gTmV3IFNlY29uZCBJbXBsZW1lbnRhdGlvbiBEcmFmdDxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIGJl
bGlldmUgSSBoYXZlIGRpc3RpbGxlZCB0aGUgZmVlZGJhY2sgZnJvbSB0b2RheSdzIG1lZXRpbmcg
aW50byBhbiBhbGwtbmV3IHNlY29uZCBpbXBsZW1lbnRhdGlvbiBkcmFmdDo8bzpwPjwvbzpwPjwv
cD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHVi
LmNvbS9xdWljd2cvYmFzZS1kcmFmdHMvd2lraS9TZWNvbmQtSW1wbGVtZW50YXRpb24tRHJhZnQi
Pmh0dHBzOi8vZ2l0aHViLmNvbS9xdWljd2cvYmFzZS1kcmFmdHMvd2lraS9TZWNvbmQtSW1wbGVt
ZW50YXRpb24tRHJhZnQ8L2E+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkxhcnMvTWFyaywgZG8gd2Ugd2FudCB0byBkaXNjdXNzIGFnYWluIEZy
aWRheT88bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+QXNzdW1pbmcgd2UgZG8sIHRoZSB0d28gcGllY2VzIG9mIGltbWVkaWF0ZSBmZWVkYmFjayBJ
IHdvdWxkIGxpa2UgKHByZS1tZWV0aW5nKSBhcmU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4xKSBBcmUgdGhlcmUgYW55IGltcG9ydGFudCBwcm90
b2NvbCBlbGVtZW50cyBJIGhhdmUgZmFpbGVkIHRvIG1lbnRpb24gYXQgYWxsPzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MikgRG9lcyBhbnlvbmUg
dmlvbGVudGx5IGRpc2FncmVlIHdpdGggdGhlIGNhdGVnb3J5IGluIHdoaWNoIEkgaGF2ZSBwbGFj
ZWQgYW55IG9mIHRoZSBsaXN0ZWQgY29tcG9uZW50cz88bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RmluYWwgcG9pbnQ6IHRoZXJlIGlzIG9uZSBw
bGFjZSB3aGVyZSBJIGV4dHJhcG9sYXRlZCBhIGJpdCBmcm9tIHRoZSBjb21tZW50cyBpbiB0aGUg
cm9vbTogZmxvdy9jb25nZXN0aW9uIGNvbnRyb2wuIEkgYmVsaWV2ZSB3aGF0IEkgd3JvdGUgdGhl
cmUgYXZvaWRzIHRydWx5IHJpZGljdWxvdXMgYnVyc3RzIG9mIGRhdGEgYW5kIGV4ZXJjaXNlcyB0
aGUgZmxvdyBjb250cm9sIG1lY2hhbmlzbSB3aXRob3V0IHRyYXBwaW5nDQogdXMgaW4gdHJpY2t5
IHR1bmluZyBleGVyY2lzZXMuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPk1hcnRpbiBEPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748A01bgb01xud1012_--


From nobody Thu Jul 20 22:58:23 2017
Return-Path: <huitema@huitema.net>
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 8A8B4126D46 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 22:58:21 -0700 (PDT)
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=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 3GAshV-kzL1h for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 22:58:19 -0700 (PDT)
Received: from mx36-42.antispamcloud.com (mx36-42.antispamcloud.com [209.126.121.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6C6FF126BF6 for <quic@ietf.org>; Thu, 20 Jul 2017 22:58:19 -0700 (PDT)
Received: from xsmtp12.mail2web.com ([168.144.250.177]) by mx36.antispamcloud.com with esmtps (TLSv1.2:AES128-SHA:128) (Exim 4.89) (envelope-from <huitema@huitema.net>) id 1dYQx6-0002rq-Ha for quic@ietf.org; Fri, 21 Jul 2017 07:58:18 +0200
Received: from [10.5.2.16] (helo=xmail06.myhosting.com) by xsmtp12.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <huitema@huitema.net>) id 1dYQx2-0000OH-8O for quic@ietf.org; Fri, 21 Jul 2017 01:58:16 -0400
Received: (qmail 29520 invoked from network); 21 Jul 2017 05:58:10 -0000
Received: from unknown (HELO [31.133.152.239]) (Authenticated-user:_huitema@huitema.net@[31.133.152.239]) (envelope-sender <huitema@huitema.net>) by xmail06.myhosting.com (qmail-ldap-1.03) with ESMTPA for <quic@ietf.org>; 21 Jul 2017 05:58:10 -0000
To: quic@ietf.org
References: <CAPRuP3=giLNc_Oi5kFBvqAdSpg6hRH2R1E8t8tuhorUEMKOH=w@mail.gmail.com>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <93446739-9632-f715-6538-9642f62ad405@huitema.net>
Date: Thu, 20 Jul 2017 22:58:09 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CAPRuP3=giLNc_Oi5kFBvqAdSpg6hRH2R1E8t8tuhorUEMKOH=w@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------F6E456B3AB876B2F61A5C76C"
Subject: Re: Paper on passive RTT estimation
X-Originating-IP: 168.144.250.177
X-SpamExperts-Domain: xsmtpout.mail2web.com
X-SpamExperts-Username: 168.144.250.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=168.144.250.0/24@xsmtpout.mail2web.com
X-SpamExperts-Outgoing-Class: ham
X-SpamExperts-Outgoing-Evidence: Combined (0.06)
X-Recommended-Action: accept
X-Filter-ID: PqwsvolAWURa0gwxuN3S5YEa3T7JuZT23fGO2rGt3ZgTCGhDnudOJ80D1c8rffxrus7BTv7Ss8cH d2IQQuvdbtM+m4WpRRDP6YzwkAPgQJbMzHFUa97P3bfY1LzB69ykND46yZLY9QyX+cRXmooQ3hum JwiT+2brWmQlzkLIcXivpIH4ag6BM/+u9ym+BA23jIYoG77CeMSIvQdeL0BRE8zf/vJ82torMMp+ aY1XKWh0E/28KCLt4TL9333M6EROYOEkjsX7F8KmpUaZQHV+SaoNpL7PRmmTib7l1mO88Em2G5Pj 7iQJEmtNUzH3idZ6uMF2OhyCCCV83x+RZrKIj0QqMGQOSwmEPwP4wBzM77N8GvkYGGDFjg9NrmGY yNnXsSjdYwfRhjHqxQXDsBKLpCbsjdvAic40+cHi4LtB9yD6lO4FGen962xgCFRckncKfg1XSK9P 1z/R6plfrFWGyRm8n8BZ5WwQU9SOC+wZNcLeNHk15VolAGHS5rCXQKDym+Gab6cuAPzLi/SdAxlO dgkraHgbbAuZgv0Q6mJ3vUcipz1IT62ZEk6+MmovaufbiR3bHfnMCIEU+nrglojKwMr3vOY18GvB wSXAfWcj236N2IVdgBdepwvDBBcDOz9LNdSMuNhZC3X/nGdDKYyg+xII1yJ8udUSd8siDlV+9cBL pGLKbiMLMKI7KIsgfDrl6J1fhOzjF0b4LXcjJZ5lorSoCYRNcdNYFM9Dkt7piwO7IVXITpPh1qZI 46Rz116sDA4BITbSysEhHPIZDzoWS19e6qt4y0llDRDaFA2tZcPw1eMmeklA3MQEw0NwP6IDPa8Q GWJY81iEsidlXaP4/sbpzuwjGHyC+YDvAYilEDMDfIyv/8g9jBVB+FIvPIqaxFsYxzp73yKmZ7FG FxtqMg==
X-Report-Abuse-To: spam@quarantine5.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/yUrnStQUUp9DmcaRgxBh6uVxDCI>
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: Fri, 21 Jul 2017 05:58:21 -0000

This is a multi-part message in MIME format.
--------------F6E456B3AB876B2F61A5C76C
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Very nice paper. In short, they observe that the "one update per RTT"
nature of TCP congestion control causes the traffic to exhibit
noticeable periodocity. They then use a filtering technique to estimate
the corresponding period, which is the RTT. This is done by observing
just one direction of traffic.

It would be good to get someone to independently reproduce the
experiment and validate the method, and verify in particular that it
applies to different congestion algorithms (BBR) and that it can detect
short term variations in the RTT, such as transient congestion.

-- Christian Huitema


On 7/20/2017 8:49 AM, Andrew Mcgregor wrote:
> I mentioned a technique for measuring RTT passively at the mic today.
> This paper is an example of a technique for doing
> so: http://www-sop.inria.fr/members/Philippe.Nain/PAPERS/PASSIVE-ONLINE=
-ESTIMATION/Passive-online-RTT-estimation.pdf
>
>
> There are undoubtedly others, although that is powerful enough to be
> sufficient for most network management purposes.
>
> --=20
> Andrew McGregor | SRE | andrewmcgr@google.com
> <mailto:andrewmcgr@google.com> | +61 4 1071 2221


--------------F6E456B3AB876B2F61A5C76C
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Very nice paper. In short, they observe that the "one update per
      RTT" nature of TCP congestion control causes the traffic to
      exhibit noticeable periodocity. They then use a filtering
      technique to estimate the corresponding period, which is the RTT.
      This is done by observing just one direction of traffic.<br>
    </p>
    <p> It would be good to get someone to independently reproduce the
      experiment and validate the method, and verify in particular that
      it applies to different congestion algorithms (BBR) and that it
      can detect short term variations in the RTT, such as transient
      congestion. <br>
    </p>
    <p>-- Christian Huitema<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 7/20/2017 8:49 AM, Andrew Mcgregor
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAPRuP3=giLNc_Oi5kFBvqAdSpg6hRH2R1E8t8tuhorUEMKOH=w@mail.gmail.com"
      type="cite">
      <div dir="ltr">I mentioned a technique for measuring RTT passively
        at the mic today. This paper is an example of a technique for
        doing so:Â <a moz-do-not-send="true"
href="http://www-sop.inria.fr/members/Philippe.Nain/PAPERS/PASSIVE-ONLINE-ESTIMATION/Passive-online-RTT-estimation.pdf">http://www-sop.inria.fr/members/Philippe.Nain/PAPERS/PASSIVE-ONLINE-ESTIMATION/Passive-online-RTT-estimation.pdf</a>
        <div><br>
        </div>
        <div>There are undoubtedly others, although that is powerful
          enough to be sufficient for most network management purposes.<br
            clear="all">
          <div><br>
          </div>
          -- <br>
          <div class="gmail_signature">
            <div dir="ltr"><span
style="color:rgb(85,85,85);font-family:sans-serif;font-size:small;line-height:1.5em;border-width:2px
                0px
0px;border-style:solid;border-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Andrew
                McGregorÂ |</span><span
style="color:rgb(85,85,85);font-family:sans-serif;font-size:small;line-height:1.5em;border-width:2px
                0px
0px;border-style:solid;border-color:rgb(51,105,232);padding-top:2px;margin-top:2px">Â SREÂ |</span><span
style="color:rgb(85,85,85);font-family:sans-serif;font-size:small;line-height:1.5em;border-width:2px
                0px
0px;border-style:solid;border-color:rgb(0,153,57);padding-top:2px;margin-top:2px">Â <a
                  moz-do-not-send="true"
                  href="mailto:andrewmcgr@google.com" target="_blank">andrewmcgr@google.com</a>Â |</span><span
style="color:rgb(85,85,85);font-family:sans-serif;font-size:small;line-height:1.5em;border-width:2px
                0px
0px;border-style:solid;border-color:rgb(238,178,17);padding-top:2px;margin-top:2px">Â +61
                4 1071 2221</span><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------F6E456B3AB876B2F61A5C76C--


From nobody Fri Jul 21 00:53:41 2017
Return-Path: <spencerdawkins.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 1BA81131DFC for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 00:53:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 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, URIBL_BLOCKED=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 fxg4ZdVId57y for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 00:53:20 -0700 (PDT)
Received: from mail-yw0-x22c.google.com (mail-yw0-x22c.google.com [IPv6:2607:f8b0:4002:c05::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 1330D131DFE for <quic@ietf.org>; Fri, 21 Jul 2017 00:53:15 -0700 (PDT)
Received: by mail-yw0-x22c.google.com with SMTP id a12so21577234ywh.3 for <quic@ietf.org>; Fri, 21 Jul 2017 00:53:15 -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=ab2IfCukPJtNLpoxyB7ipmxuxCCagLdAqhwOhLweNDE=; b=jsIQhK73NuVZrf3XdzOiTy59wDkP8sBc5X4jlOeqX4I96u2R0+axDyVtBTQuamJRHH Lb+4XFmMG92QgWtghhtdaaXqOciDItROH5VfSL7xyXtNCgV8A8HepGO91f4ZOihg6SFX mVq0lMI3rbaSPhcX5zyw0KhbFWCdBHvewT9mmWZM0mWduSBfVSFiep15Dvp/Jw7yFC47 C7nj0pXssyWeH2cnevOVjFgaKKGtFxl0QEgn90Fl4HJH5MJlY+ZK6/SNNQTQTbmEGz6f leQ21YTzl0RSro7rO6Jz1BoOzsP+exXSHGqUU1pviNb+9gjJdZNtRQc8maKqr4qsqKqB tgBA==
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=ab2IfCukPJtNLpoxyB7ipmxuxCCagLdAqhwOhLweNDE=; b=iIv+oxl/lpmxYkYvwqadQIBvhoPjxU8R1+piPbXCvPRPxnA2q1GiCVa9KmEk7hpWC5 4uPjpvoBaXhwyhTMBocFbrMFQLsGdcTZMjxSQqSUViL+wK7UvoSqL8QDMxOpzZmlb3XN SRCUe4rQ+hNi+UeWpuqDv2Q2sFPutXckTLZS7Y4GPLGsza0X8M+7ShLg+8tW+VvTDOpa /w9sO0wNUiyHI/HP0jMTrA1cg/xAz1dL+UjFlkFVUOAK9rMygAUx8ELDgGBpq9FfNO5s vcs+pvhsEx2RrDSOaCy9DbYoAonwNfpdsCnMMpgKj2EBZidEOONHd3ON93byoNWdwSfC cNsg==
X-Gm-Message-State: AIVw1102JiKDGQaEPW7vMvXs/j6nme3yykecsarAB5rZu6dZRl1iFE0a M9FI5z8ReOZqcyqX6g9/9TVUfOZdbg==
X-Received: by 10.13.213.148 with SMTP id x142mr5833721ywd.311.1500623594270;  Fri, 21 Jul 2017 00:53:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.45.101 with HTTP; Fri, 21 Jul 2017 00:53:13 -0700 (PDT)
In-Reply-To: <CABkgnnU0ZsNLGO+UujUBuhYQnhQnj2wEV5MmgUL8szRpOY=oNQ@mail.gmail.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CABkgnnWY7EVNeZUPqkRUmO6=5=3MdWqdHaCLbW8G_iBHUQmDew@mail.gmail.com> <b579753b-53cf-2907-f21d-5e7e89a08f93@ericsson.com> <CABkgnnWcydCWkkPxCWmLATfAmtEwwoXqLv9ei6HW46CMuRXJnw@mail.gmail.com> <f17073da-268c-7c51-4738-faab63432441@ericsson.com> <CABkgnnU0ZsNLGO+UujUBuhYQnhQnj2wEV5MmgUL8szRpOY=oNQ@mail.gmail.com>
From: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Date: Fri, 21 Jul 2017 09:53:13 +0200
Message-ID: <CAKKJt-e84RGGV=RU-Ge9=rC6+oJsBqyK=kr=4mE5NmYrF3YyNQ@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: Martin Thomson <martin.thomson@gmail.com>
Cc: Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114fa2664737f90554cf280d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/_JYll6Lrm-Awp3WKDhQeBLVr0Z0>
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: Fri, 21 Jul 2017 07:53:34 -0000

--001a114fa2664737f90554cf280d
Content-Type: text/plain; charset="UTF-8"

(Speaking as an individual),

On Thu, Jul 20, 2017 at 1:51 PM, Martin Thomson <martin.thomson@gmail.com>
wrote:

> On 20 July 2017 at 13:35, Magnus Westerlund
> <magnus.westerlund@ericsson.com> wrote:
> > Den 2017-07-20 kl. 13:25, skrev Martin Thomson:
> >>
> >> That wasn't the question: the question was "if I decide to break
> >> linkability by using a new connection ID, would you also insist on
> >> having the lower bits remain contiguous?"
> >
> >
> > No, that would be a new connection, and a new flow so no problem from my
> > perspective to have new random start point for the packet numbers.
>
> OK, thanks.  In that case, I think that this is good input into the
> packet number encryption discussion.
>

ISTM that we need to decide how big a deal breaks in the sequence numbers
are supposed to be. In TCP, that's usually a big deal (retransmission and
backoff). QUIC is not TCP.

If it turns out that operators can understand what a normal level of
sequence number breaks looks like, perhaps they can assume that's
background noise, and concentrate on the times where the rate of sequence
number breaks is significantly larger than normal.

<Spencer puts on AD hat, and voice changes here>

But, regardless of whether this is a good idea or not, I appreciate the
effort people are making to work across the tussle on this topic. That's
going to matter, no matter what the working group consensus on any
particular topic turns out to be.

So, thanks much.

Spencer, swapping hats ...

--001a114fa2664737f90554cf280d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">(Speaking as an individual),<div class=3D"gmail_extra"><br=
><div class=3D"gmail_quote">On Thu, Jul 20, 2017 at 1:51 PM, Martin Thomson=
 <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.thomson@gmail.com" target=
=3D"_blank">martin.thomson@gmail.com</a>&gt;</span> wrote:<br><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex">On 20 July 2017 at 13:35, Magnus Westerlund<br>
<span class=3D"">&lt;<a href=3D"mailto:magnus.westerlund@ericsson.com">magn=
us.westerlund@ericsson.<wbr>com</a>&gt; wrote:<br>
&gt; Den 2017-07-20 kl. 13:25, skrev Martin Thomson:<br>
&gt;&gt;<br>
&gt;&gt; That wasn&#39;t the question: the question was &quot;if I decide t=
o break<br>
&gt;&gt; linkability by using a new connection ID, would you also insist on=
<br>
&gt;&gt; having the lower bits remain contiguous?&quot;<br>
&gt;<br>
&gt;<br>
&gt; No, that would be a new connection, and a new flow so no problem from =
my<br>
&gt; perspective to have new random start point for the packet numbers.<br>
<br>
</span>OK, thanks.=C2=A0 In that case, I think that this is good input into=
 the<br>
packet number encryption discussion.<br></blockquote><div><br></div><div>IS=
TM that we need to decide how big a deal breaks in the sequence numbers are=
 supposed to be. In TCP, that&#39;s usually a big deal (retransmission and =
backoff). QUIC is not TCP.</div><div><br></div><div>If it turns out that op=
erators can understand what a normal level of sequence number breaks looks =
like, perhaps they can assume that&#39;s background noise, and concentrate =
on the times where the rate of sequence number breaks is significantly larg=
er than normal.</div><div><br></div><div>&lt;Spencer puts on AD hat, and vo=
ice changes here&gt;</div><div><br></div><div>But, regardless of whether th=
is is a good idea or not, I appreciate the effort people are making to work=
 across the tussle on this topic. That&#39;s going to matter, no matter wha=
t the working group consensus on any particular topic turns out to be.</div=
><div><br></div><div>So, thanks much.</div><div><br></div><div>Spencer, swa=
pping hats ...</div><div><br></div><div>=C2=A0</div></div><br></div></div>

--001a114fa2664737f90554cf280d--


From nobody Fri Jul 21 01:01:01 2017
Return-Path: <Lucas.Pardue@bbc.co.uk>
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 CE4EF131CFE for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 01:00:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level: 
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 qij8PmyS6BKM for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 01:00:58 -0700 (PDT)
Received: from mailout1.cwwtf.bbc.co.uk (mailout1.cwwtf.bbc.co.uk [132.185.160.180]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B6241131BC3 for <quic@ietf.org>; Fri, 21 Jul 2017 01:00:52 -0700 (PDT)
Received: from BGB01XI1007.national.core.bbc.co.uk (bgb01xi1007.national.core.bbc.co.uk [10.161.14.21]) by mailout1.cwwtf.bbc.co.uk (8.15.2/8.15.2) with ESMTP id v6L80oIF020442; Fri, 21 Jul 2017 09:00:50 +0100 (BST)
Received: from BGB01XUD1012.national.core.bbc.co.uk ([10.161.14.10]) by BGB01XI1007.national.core.bbc.co.uk ([10.161.14.21]) with mapi id 14.03.0319.002; Fri, 21 Jul 2017 09:00:50 +0100
From: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
To: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: New Second Implementation Draft
Thread-Topic: New Second Implementation Draft
Thread-Index: AQHTAYMOurDGTrPvv0SJwz4fZD9F+aJdbJ/AgAB+iYA=
Date: Fri, 21 Jul 2017 08:00:50 +0000
Message-ID: <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012>
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.19.161.213]
x-exclaimer-md-config: c91d45b2-6e10-4209-9543-d9970fac71b7
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-23208.005
x-tm-as-result: No--15.885300-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_7CF7F94CB496BF4FAB1676F375F9666A37748A51bgb01xud1012_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/1GDbPq39R1jYFy_kvXZ-dxyC99E>
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: Fri, 21 Jul 2017 08:01:00 -0000

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748A51bgb01xud1012_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SSBhcHByZWNpYXRlIHRoZSBmbGV4aWJpbGl0eSBidXQgaGF2ZSBkaWZmaWN1bHR5IGluIHNlZWlu
ZyBob3cgdGhpcyB3b3VsZCBmbG93IHRocm91Z2ggdG8gaW50ZXJvcCB0ZXN0aW5nLCBob3cgZG8g
d2UgbWVhc3VyZSBzdWNjZXNzPyBPbmUgcG9zc2libGUgb3V0Y29tZSBpcyBpbnRlcm9wIGxpbWl0
ZWQgdG8gc2VsZi10ZXN0IG9mIOKAnGJlc3Bva2Utc2ltcGxlLWFwcOKAnSBvdmVyIFFVSUMsIGlz
IHRoYXQgZ29vZCBlbm91Z2g/IE15IHByZWZlcmVuY2UgaXMgdG8gcGljayBhIG1pbmltYWwgYmFz
ZWxpbmUgKOKAnGVjaG8gYW5kIGFtcGxpZnnigJ0gb3Igd2hhdGV2ZXIgZWxzZSkgYW5kIHRoZW4g
YWRkaXRpb25hbHMgYXJlIGEgYm9udXMgdGhhdCBpcyB1cCB0byBleHRlcm5hbCBjb29yZGluYXRp
b24uIEkgdGhpbmsgdGhpcyBjb21tb24gYmFzZWxpbmUgY291bGQgYWxzbyBoZWxwIHRvd2FyZHMg
b25nb2luZyBjb25zaWRlcmF0aW9uIGZvciBwZXJmb3JtYW5jZSBvciBiZW5jaG1hcmtpbmcsIG92
ZXIgZGlzcGFyYXRlIGltcGxlbWVudGF0aW9ucywgYXMgYXNwZWN0cyBvZiB0aGUgcHJvdG9jb2wg
ZXZvbHZlIG9yIGNoYW5nZS4NCg0KVGhlIHByb3Bvc2FsIHRvIGRvIEhUVFAgMC45IEdFVCwgZGlz
Y3Vzc2VkIGluIFByYWd1ZSwgYWRkcmVzc2VzIG15IGNvbmNlcm5zLg0KDQpMdWNhcw0KDQo=

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748A51bgb01xud1012_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9
DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCglj
b2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu
Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpw
dXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgs
IGxpLk1zb0xpc3RQYXJhZ3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1w
cmlvcml0eTozNDsNCgltYXJnaW4tdG9wOjBjbTsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1hcmdp
bi1ib3R0b206MGNtOw0KCW1hcmdpbi1sZWZ0OjM2LjBwdDsNCgltYXJnaW4tYm90dG9tOi4wMDAx
cHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixz
ZXJpZjt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21z
by1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJn
aW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0
OjBjbTsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4i
LHNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE5DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0K
CWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0K
c3Bhbi5FbWFpbFN0eWxlMjENCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9u
dC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQouTXNv
Q2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAu
MHB0O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJn
aW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFn
ZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxv
OnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtl
bmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJl
ZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0
PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tR0IiIGxpbms9ImJs
dWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+
SSBhcHByZWNpYXRlIHRoZSBmbGV4aWJpbGl0eSBidXQgaGF2ZSBkaWZmaWN1bHR5IGluIHNlZWlu
ZyBob3cgdGhpcyB3b3VsZCBmbG93IHRocm91Z2ggdG8gaW50ZXJvcCB0ZXN0aW5nLCBob3cgZG8g
d2UgbWVhc3VyZSBzdWNjZXNzPyBPbmUgcG9zc2libGUNCiBvdXRjb21lIGlzIGludGVyb3AgbGlt
aXRlZCB0byBzZWxmLXRlc3Qgb2Yg4oCcYmVzcG9rZS1zaW1wbGUtYXBw4oCdIG92ZXIgUVVJQywg
aXMgdGhhdCBnb29kIGVub3VnaD8gTXkgcHJlZmVyZW5jZSBpcyB0byBwaWNrIGEgbWluaW1hbCBi
YXNlbGluZSAo4oCcZWNobyBhbmQgYW1wbGlmeeKAnSBvciB3aGF0ZXZlciBlbHNlKSBhbmQgdGhl
biBhZGRpdGlvbmFscyBhcmUgYSBib251cyB0aGF0IGlzIHVwIHRvIGV4dGVybmFsIGNvb3JkaW5h
dGlvbi4gSSB0aGluaw0KIHRoaXMgY29tbW9uIGJhc2VsaW5lIGNvdWxkIGFsc28gaGVscCB0b3dh
cmRzIG9uZ29pbmcgY29uc2lkZXJhdGlvbiBmb3IgcGVyZm9ybWFuY2Ugb3IgYmVuY2htYXJraW5n
LCBvdmVyIGRpc3BhcmF0ZSBpbXBsZW1lbnRhdGlvbnMsIGFzIGFzcGVjdHMgb2YgdGhlIHByb3Rv
Y29sIGV2b2x2ZSBvciBjaGFuZ2UuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRoZSBwcm9wb3NhbCB0byBkbyBIVFRQ
IDAuOSBHRVQsIGRpc2N1c3NlZCBpbiBQcmFndWUsIGFkZHJlc3NlcyBteSBjb25jZXJucy48bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+THVjYXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748A51bgb01xud1012_--


From nobody Fri Jul 21 02:27:32 2017
Return-Path: <martin.thomson@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 1B479131E05 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 02:27:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 3-yzgrW5bXoU for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 02:27:28 -0700 (PDT)
Received: from mail-it0-x230.google.com (mail-it0-x230.google.com [IPv6:2607:f8b0:4001:c0b::230]) (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 BC8D1131DFF for <quic@ietf.org>; Fri, 21 Jul 2017 02:27:22 -0700 (PDT)
Received: by mail-it0-x230.google.com with SMTP id h199so4875999ith.0 for <quic@ietf.org>; Fri, 21 Jul 2017 02:27:22 -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:content-transfer-encoding; bh=EC7+n1kATlXEnU878CWoFNAdGkFl6ZrrVl3T3Icy5oA=; b=Kfw6xfxtX99bi3G9QoOOuHIYUdRaiJVJBCgV9n408vNgJvodYobOz68ixRLQ8hN4TI usx8eGO/fWbWcnvocyT2mBXMX3gO4FluUyTrnUthfei1UT9/8fr+Y7rTqVP4rIAu0kLs kww+UTLd38q+hWhtA5VS+kKdY9V11lcf+jilnlBkvp4El7vz3avA/+qCO4vdk2HVLdao 0aMX5GJDstuDf8+6jMRRTmCi7MSIx7Qzi+6XgauL0E4Iuena/eFgPfqra/FpfE54R13y zk58AcDg69ihZLjfdL9PifdEUVUvhqcXutN25qBZ8a+tUYZigTYRrWyEeuBeGN5iX5ZG c8jg==
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:content-transfer-encoding; bh=EC7+n1kATlXEnU878CWoFNAdGkFl6ZrrVl3T3Icy5oA=; b=XRghDI+1TkyI+53E5jGl0Fsa3YBP5XVJwldg59fO3SVpQYxVGaXqrBPz689CdLdXai U4Plu6sYDa5ulYNdMXAPdoe09y+XdxWLlhL2hVgHE2mm2yjCFSm36RQWUZZS1a8DvN1I 03rt8i1by3mllizGV0DJ3OpnFwcLeiBzFuWGqAejTyinEscPbsRc7SHJeuInkcbHDgsf nAYzicc/3TCnIp8jd2TqM6/+x4D6iuCN1ewn611sruYjYZ7v3B5wO9ohlHwQvhYDA6nC JW2qBXfWHjC6U1dzO7jZedwgJyvLF16pCben7jWc02z6OzhS1UYFfc9eGygevz1Lg0rZ YI0w==
X-Gm-Message-State: AIVw110XSaZ3vWaDigitkDUnewoo9gyjUtx/PA9Iblir2XiNGVk2wNY5 IBaw5IVGG8A/5DLLnLmh7DS2nsuYpQ==
X-Received: by 10.36.83.1 with SMTP id n1mr6515183itb.140.1500629242141; Fri, 21 Jul 2017 02:27:22 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Fri, 21 Jul 2017 02:27:21 -0700 (PDT)
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012> <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 21 Jul 2017 11:27:21 +0200
Message-ID: <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com>
Subject: Re: New Second Implementation Draft
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
Cc: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/-PXo5vZyJ_4bYfFD5UB5q1xb02A>
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: Fri, 21 Jul 2017 09:27:31 -0000

Do we need a permanent ALPN token for this?  It seems like a useful
facility to build into stacks that are transport-only.  Maybe "h09q".

On 21 July 2017 at 10:00, Lucas Pardue <Lucas.Pardue@bbc.co.uk> wrote:
> I appreciate the flexibility but have difficulty in seeing how this would
> flow through to interop testing, how do we measure success? One possible
> outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=E2=
=80=9D over QUIC,
> is that good enough? My preference is to pick a minimal baseline (=E2=80=
=9Cecho and
> amplify=E2=80=9D or whatever else) and then additionals are a bonus that =
is up to
> external coordination. I think this common baseline could also help towar=
ds
> ongoing consideration for performance or benchmarking, over disparate
> implementations, as aspects of the protocol evolve or change.
>
>
>
> The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my concer=
ns.
>
>
>
> Lucas
>
>


From nobody Fri Jul 21 02:37:46 2017
Return-Path: <dtikhonov@litespeedtech.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 F1E5B1317A1 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 02:37:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, 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=litespeedtech-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 fEdLrOEj0kua for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 02:37:43 -0700 (PDT)
Received: from mail-qk0-x22f.google.com (mail-qk0-x22f.google.com [IPv6:2607:f8b0:400d:c09::22f]) (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 8717D127869 for <quic@ietf.org>; Fri, 21 Jul 2017 02:37:43 -0700 (PDT)
Received: by mail-qk0-x22f.google.com with SMTP id d136so23024163qkg.3 for <quic@ietf.org>; Fri, 21 Jul 2017 02:37:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=pungo+WZN4EW8O1fgjl4L260pYp92Uq9djnKWs9Gj3c=; b=jhrPsr8IABbkpWA+Fgepq0nD6KDozyaJxA+oGtq/NSi43N2gpKaa9xdxNLeGRQq+PS WvBHEepW2WCbwfAfMckYPbNqDf30tcaK06KwBkjhT5V0Yx4hoWyvO7vU3FUghC8aFWWm yj4ZVzs6ym+GKHdBHCLu9JzEFYlOW1Am7dWsFiXjIvtM3YEM1tYUHDKWcOFWJUNDsUcv OsCVeIdMYHL512JdKPzBOkLRAeHmXObLssmxoJEhYIKYF2SfDmGqCJTc/gNmtYJdUxpO AFsIks46LsSAplQSfXn/PvK60YTSB52NEKBH/E2xUZwzafy6+IhEvrDTk6dH9R7SSl9v VZNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=pungo+WZN4EW8O1fgjl4L260pYp92Uq9djnKWs9Gj3c=; b=RjXp9aT3GgiX72/bpibrZ6gQrAQk1b8Zl1YgxXx81XT/8sPeKL5WcooLJ7SJZiNVwY ln+8fd9k1dhitJgJcbEJ4Y+pKhx+kA5yULGcl0ZPYVIzGL7wlQPOzPV574xm8YPQ/ZuL Uk2l7IUuYXIu6tKRt2Xa1lyAb6u9jU0AE7EtqQC7okOSajM8GlCi0A0tCjy7YRxM7bq0 mQsIA/B7QRyN9kuNJyVc89TrBw0GRRzq99Vym3YRJ036klm23BWVhNe9v2SaR/8dsIUR l8t9C9WUf0dj62ggsh1y8RbGHxVewM+cE+nuXEaVcy20N/wkMWrmbjqSPvNz5z8n2LU4 xGzg==
X-Gm-Message-State: AIVw111fBa9u+DVtJJljVF/XVg4NhrlV/x0wpJqKnyVZCRI68XkzIR6c 1esb0f2AqMh+Q8Wu
X-Received: by 10.55.192.90 with SMTP id o87mr8916594qki.124.1500629862638; Fri, 21 Jul 2017 02:37:42 -0700 (PDT)
Received: from ubuntu-dmitri (ool-45715890.dyn.optonline.net. [69.113.88.144]) by smtp.gmail.com with ESMTPSA id e15sm3310236qte.3.2017.07.21.02.37.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Jul 2017 02:37:41 -0700 (PDT)
Date: Fri, 21 Jul 2017 05:37:32 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: Mikkel =?iso-8859-1?Q?Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>
Cc: Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: Re: Idea for packet numbers
Message-ID: <20170721093732.GA31705@ubuntu-dmitri>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Mbh69jG5_lnN3w1K_qjLvYlInvY>
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: Fri, 21 Jul 2017 09:37:45 -0000

On Thu, Jul 20, 2017 at 07:10:11AM -0400, Mikkel Fahnøe Jørgensen wrote:
> For other reasons I would like the packet numbers to be close,
> preferably without gaps except during connection migration.
>
> This relates to storing interval maps as groups of bitmaps
> instead of binary trees to track already received packets. This
> both provides are more efficient implementation, and it reduces
> some modes of DoS where an attacker can create a lot of small
> intervals which cause the data structure to inflate.

The receive history gets truncated automatically, and so the receiver
does not have to worry about a lot of data to keep track of.  From
[draft-ietf-quic-transport] 8.13:

 " To limit ACK blocks to those that have not yet been received
 " by the sender, the receiver SHOULD track which ACK frames
 " have been acknowledged by its peer.  Once an ACK frame has
 " been acknowledged, the packets it acknowledges SHOULD not be
 " acknowledged again.

Send history is another matter.  Ibid., 8.13:

 " The sender SHOULD close the connection if an unsent packet
 " number is acknowledged.

(Previous versions of the draft had a MUST instead of a SHOULD.)

Thus it is in the interest of the sender either to create few gaps
or to create them in a manner that does not blow up its own send
history data structures if it wants to check whether an unsent packet
is ACKed.

  - Dmitri.


From nobody Fri Jul 21 03:30:03 2017
Return-Path: <gorry@erg.abdn.ac.uk>
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 9E70E129B7F for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:30:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.752
X-Spam-Level: 
X-Spam-Status: No, score=-2.752 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_BRBL_LASTEXT=1.449, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
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 IBim6j3sZ1vc for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:29:59 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [139.133.204.173]) by ietfa.amsl.com (Postfix) with ESMTP id 364CD12ECB4 for <quic@ietf.org>; Fri, 21 Jul 2017 03:29:46 -0700 (PDT)
Received: from Gs-MacBook-Pro.local (unknown [88.208.89.131]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPA id 0B91B1B001FE for <quic@ietf.org>; Fri, 21 Jul 2017 13:23:20 +0100 (BST)
Message-ID: <5971D782.80909@erg.abdn.ac.uk>
Date: Fri, 21 Jul 2017 12:29:22 +0200
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Reply-To: gorry@erg.abdn.ac.uk
Organization: University of Aberdeen
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: quic@ietf.org
Subject: ECN comment at end of meeting
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/NxaJcoBk6cT7fiCkklZRy8FCPWQ>
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: Fri, 21 Jul 2017 10:30:02 -0000

Here is what I was going to say in the QUIC meeting - before I read the 
clock as "end of session":

I would like to encourage work on definitions of how ECN is introduced 
into the QUIC framework and estimates of the expected costs of alternate 
approaches in utlising ECN info. I see the key priority as enabling the 
framework and implications on overall design.

I note there is work in various transport working groups that defines 
feedback and reactions to ECN, and fallback methods - this to me is 
something that can come later to QUIC. I do not perceive that this part 
impacts the current implementation work.

Gorry


From nobody Fri Jul 21 03:40:17 2017
Return-Path: <huitema@huitema.net>
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 2948C129B7F for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:40:15 -0700 (PDT)
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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 2Eht6tJBHmCR for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:40:13 -0700 (PDT)
Received: from mx43-out1.antispamcloud.com (mx43-out1.antispamcloud.com [138.201.61.189]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 89744127337 for <quic@ietf.org>; Fri, 21 Jul 2017 03:40:13 -0700 (PDT)
Received: from xsmtp01.mail2web.com ([168.144.250.230]) by mx43.antispamcloud.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.89) (envelope-from <huitema@huitema.net>) id 1dYVLv-0008C8-14 for quic@ietf.org; Fri, 21 Jul 2017 12:40:11 +0200
Received: from [10.5.2.13] (helo=xmail03.myhosting.com) by xsmtp01.mail2web.com with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from <huitema@huitema.net>) id 1dYVLp-0003kN-8Q for quic@ietf.org; Fri, 21 Jul 2017 06:40:09 -0400
Received: (qmail 27903 invoked from network); 21 Jul 2017 10:40:04 -0000
Received: from unknown (HELO [31.133.128.166]) (Authenticated-user:_huitema@huitema.net@[31.133.128.166]) (envelope-sender <huitema@huitema.net>) by xmail03.myhosting.com (qmail-ldap-1.03) with ESMTPA for <stephen.farrell@cs.tcd.ie>; 21 Jul 2017 10:40:04 -0000
To: IETF QUIC WG <quic@ietf.org>, Stephen Farrell <stephen.farrell@cs.tcd.ie>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
Date: Fri, 21 Jul 2017 03:40:04 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Subject: Randomizer state attacks
X-Originating-IP: 168.144.250.230
X-SpamExperts-Domain: xsmtpout.mail2web.com
X-SpamExperts-Username: 168.144.250.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=168.144.250.0/24@xsmtpout.mail2web.com
X-SpamExperts-Outgoing-Class: unsure
X-SpamExperts-Outgoing-Evidence: Combined (0.34)
X-Recommended-Action: accept
X-Filter-ID: PqwsvolAWURa0gwxuN3S5YEa3T7JuZT23fGO2rGt3ZgTCGhDnudOJ80D1c8rffxrus7BTv7Ss8cH d2IQQuvdbtM+m4WpRRDP6YzwkAPgQJZYP2pkjqshrWYL747BjInHND46yZLY9QyX+cRXmooQ3hum JwiT+2brWmQlzkLIcXivpIH4ag6BM/+u9ym+BA23OFrtMFYyR6HKBXkZynzg+TIEE28KmQ2SOlbQ r7Nx6xrZvFglYR8dym5gAzRc7VmFYOEkjsX7F8KmpUaZQHV+SejOO+5k046wqf0SEutzqoO2G5Pj 7iQJEmtNUzH3idZ6uMF2OhyCCCV83x+RZrKIj0QqMGQOSwmEPwP4wBzM77N8GvkYGGDFjg9NrmGY yNnXsSjdYwfRhjHqxQXDsBKLpOWca0Z0beD6jMx95O4U5K/6lO4FGen962xgCFRckncKfg1XSK9P 1z/R6plfrFWGyVnedjZnWMXuwq81nD3sP+PeNHk15VolAGHS5rCXQKDym+Gab6cuAPzLi/SdAxlO dgkraHgbbAuZgv0Q6mJ3vUcipz1IT62ZEk6+MmovaufbiR3bHfnMCIEU+nrglojKwMr3vOY18GvB wSXAfWcj234Kahp30YSTh5OL3yMqjF0jNdSMuNhZC3X/nGdDKYyg+1Fotn1TGspRGWfHjmaruO0b XpkevaElTi+sCWwmqxHi+BUHXGjp0J8FpT+J6AFTxiSsoNTiR/GmpPv4QzJ0uLs078I0y+3uS4dN KiUgYTBUm21p+kKeCfghZJ4e5Mk6JYAbiteDwjw8P7mx/NBHSRWxZaHLvUGmD7PXY2RS8idsz7fr MHsNPRylYAkPvY1HttQOF909qtkcRbvucYBIc/RufmJqHIgpwQblHGid2pC00i13zjCiwPgdt77s k1WBMw==
X-Report-Abuse-To: spam@quarantine5.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/O0Spbb1dQdunkO0x93b7mudWP9o>
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: Fri, 21 Jul 2017 10:40:15 -0000

I was just discussing with Stephen past attacks against random number
generation in crypto stacks. In these attacks, the adversaries "induce"
the implementation to generate random numbers for clear text parameters
prior to generating the random numbers used for key generation. The
adversaries can then use the clear text values to predict the state of
the PRNG in the crypto stack, and thus guess the keys.

This was done for example in an attack against the IPSEC/IKE stack used
by Juniper -- look at the IPSEC nonce to retrieve the state of the Dual
EC based PNRG, and guess the private DH values used to negotiate the
IPSEC keys -- check
https://www.ietf.org/proceedings/99/slides/slides-99-irtfopen-anrp-stephe=
n-checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incident-00.pdf.=


It is worth thinking about this attack when any random string is visible
in the network. For QUIC, that would be for example the Connection ID
and the initial sequence number. It is probably worth thinking about that=
=2E

-- Christian Huitema



From nobody Fri Jul 21 03:48:14 2017
Return-Path: <ekr@rtfm.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 57AF8127735 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:48:13 -0700 (PDT)
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=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, 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=rtfm-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 Xur4LLJqxN3z for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:48:11 -0700 (PDT)
Received: from mail-yw0-x230.google.com (mail-yw0-x230.google.com [IPv6:2607:f8b0:4002:c05::230]) (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 A7A53127337 for <quic@ietf.org>; Fri, 21 Jul 2017 03:48:11 -0700 (PDT)
Received: by mail-yw0-x230.google.com with SMTP id v193so22997927ywg.2 for <quic@ietf.org>; Fri, 21 Jul 2017 03:48:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=AXogljOXTVH/+VB2XPpN/nWsNlwLCDYaPZZT5jJ3A/w=; b=z9QWNKmO4wqt7VGkmiMKznv0rIiAO05aDttnwBZdEYoVgXJ2N+QathCBDMwc3qisHs iH6kTiGoUSwUaHBRQD/4KhlY+MNraD0gwV7y+Zw7aklX/B9HMTq70M6s0mSObS1dTeBd BndSZTZnPkZ1tYEbD0uM991+RNuSLHt8/1x6I7G6DE+/u75zf/myrEC0dUr2zNF9vjSP tEUTQzjPPz783GuOt96YFx5O94ZVYIpDh42BKK/mCCB+9IhnG7ALs+MQNNgVtT+ffGrC qD5nSngx4POUKzZ01veGjtvmqnRNS1EZ31HsgcC6QJYhErIZ/MK9l1/VvGsmV4do4+6E nhUw==
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=AXogljOXTVH/+VB2XPpN/nWsNlwLCDYaPZZT5jJ3A/w=; b=IXazQGQU/IrFoXvd7OvzMiYk5byMxp+Y0G7QdmwfMs5fEUImMEYwVVsgW49oMR6tLR fSuGT+/D41Ct7avhDZi7F5xqz/4rMV9C+nSZQlnlQo2gSayG1hxogsOKxJKdZDm4yOIv LZYiReroZuv2lEHWkeokRI+Mui1EFn48SFGCQQdwhi04EZoDOt1ubFAqJhvgaq64muS9 L0hyTtuHhFgaaTaZDdQmnWBD3MUhXKYUcKYuXN2CnrzseigzhDZD33WgS1/0IgEQNqgK HyPsGMxz1T7FtF89luO5qFv843ZYXSN+ENC8UqLi4pHBTGVtcnsMqmLkHElxnVRHxsnq tCLw==
X-Gm-Message-State: AIVw111bDM1XEgar/hfET9tsiWfHIvimFsqsrs6/QBEAURjo34yKPnhk DT7dLZetyuWvN9vtlz6OqCGl7ydCi/PI
X-Received: by 10.129.165.71 with SMTP id c68mr5771083ywh.19.1500634090944; Fri, 21 Jul 2017 03:48:10 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Fri, 21 Jul 2017 03:47:30 -0700 (PDT)
In-Reply-To: <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012> <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012> <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Fri, 21 Jul 2017 03:47:30 -0700
Message-ID: <CABcZeBNc3vWnY7Bn=KeERMHOptX16=aievVmvj61MxqwOOf61w@mail.gmail.com>
Subject: Re: New Second Implementation Draft
To: Martin Thomson <martin.thomson@gmail.com>
Cc: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>,  Martin Duke <martin.h.duke@gmail.com>
Content-Type: multipart/alternative; boundary="94eb2c113362edfbb80554d19996"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/trVns4LnP6k4NnYxB3dtoegijZA>
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: Fri, 21 Jul 2017 10:48:13 -0000

--94eb2c113362edfbb80554d19996
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

h09q-05? :)

On Fri, Jul 21, 2017 at 2:27 AM, Martin Thomson <martin.thomson@gmail.com>
wrote:

> Do we need a permanent ALPN token for this?  It seems like a useful
> facility to build into stacks that are transport-only.  Maybe "h09q".
>
> On 21 July 2017 at 10:00, Lucas Pardue <Lucas.Pardue@bbc.co.uk> wrote:
> > I appreciate the flexibility but have difficulty in seeing how this wou=
ld
> > flow through to interop testing, how do we measure success? One possibl=
e
> > outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over
> QUIC,
> > is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho
> and
> > amplify=E2=80=9D or whatever else) and then additionals are a bonus tha=
t is up to
> > external coordination. I think this common baseline could also help
> towards
> > ongoing consideration for performance or benchmarking, over disparate
> > implementations, as aspects of the protocol evolve or change.
> >
> >
> >
> > The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my
> concerns.
> >
> >
> >
> > Lucas
> >
> >
>
>

--94eb2c113362edfbb80554d19996
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">h09q-05? :)</div><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On Fri, Jul 21, 2017 at 2:27 AM, Martin Thomson <span dir=
=3D"ltr">&lt;<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">=
martin.thomson@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex">Do we need a permanent ALPN token for this?=C2=A0 It seems like a use=
ful<br>
facility to build into stacks that are transport-only.=C2=A0 Maybe &quot;h0=
9q&quot;.<br>
<div class=3D"HOEnZb"><div class=3D"h5"><br>
On 21 July 2017 at 10:00, Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@b=
bc.co.uk">Lucas.Pardue@bbc.co.uk</a>&gt; wrote:<br>
&gt; I appreciate the flexibility but have difficulty in seeing how this wo=
uld<br>
&gt; flow through to interop testing, how do we measure success? One possib=
le<br>
&gt; outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over QUIC,<br>
&gt; is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho and<br>
&gt; amplify=E2=80=9D or whatever else) and then additionals are a bonus th=
at is up to<br>
&gt; external coordination. I think this common baseline could also help to=
wards<br>
&gt; ongoing consideration for performance or benchmarking, over disparate<=
br>
&gt; implementations, as aspects of the protocol evolve or change.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my con=
cerns.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Lucas<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>

--94eb2c113362edfbb80554d19996--


From nobody Fri Jul 21 03:53:05 2017
Return-Path: <pmcmanus@mozilla.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 BC27F129432 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:53:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.734
X-Spam-Level: 
X-Spam-Status: No, score=-0.734 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_HELO_PASS=-0.001, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
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 lVZ9z_scG_-X for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 03:53:01 -0700 (PDT)
Received: from linode64.ducksong.com (www.ducksong.com [192.155.95.102]) by ietfa.amsl.com (Postfix) with ESMTP id 663DA129B3A for <quic@ietf.org>; Fri, 21 Jul 2017 03:53:01 -0700 (PDT)
Received: from mail-qt0-f182.google.com (mail-qt0-f182.google.com [209.85.216.182]) by linode64.ducksong.com (Postfix) with ESMTPSA id 8B8C93A021 for <quic@ietf.org>; Fri, 21 Jul 2017 06:53:00 -0400 (EDT)
Received: by mail-qt0-f182.google.com with SMTP id 32so38383866qtv.1 for <quic@ietf.org>; Fri, 21 Jul 2017 03:53:00 -0700 (PDT)
X-Gm-Message-State: AIVw110HrmkEJlqF6sGRNXhYZl6kcY7sOr49pgyfs93UL38X2fT46PYF mX28lFwPsT8pkHydMkKrbNsoAG/Pzg==
X-Received: by 10.237.36.155 with SMTP id t27mr8440578qtc.314.1500634380362; Fri, 21 Jul 2017 03:53:00 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.182.17 with HTTP; Fri, 21 Jul 2017 03:52:59 -0700 (PDT)
In-Reply-To: <CABcZeBNc3vWnY7Bn=KeERMHOptX16=aievVmvj61MxqwOOf61w@mail.gmail.com>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012> <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012> <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com> <CABcZeBNc3vWnY7Bn=KeERMHOptX16=aievVmvj61MxqwOOf61w@mail.gmail.com>
From: Patrick McManus <pmcmanus@mozilla.com>
Date: Fri, 21 Jul 2017 12:52:59 +0200
X-Gmail-Original-Message-ID: <CAOdDvNph_dd1MGSAJFoA+T8KTj6=ms2T78PXjqUz_9htymqEtg@mail.gmail.com>
Message-ID: <CAOdDvNph_dd1MGSAJFoA+T8KTj6=ms2T78PXjqUz_9htymqEtg@mail.gmail.com>
Subject: Re: New Second Implementation Draft
To: Eric Rescorla <ekr@rtfm.com>
Cc: Martin Thomson <martin.thomson@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>
Content-Type: multipart/alternative; boundary="001a113f43902dec400554d1ab22"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/NlpfA99Qq3dii7tGC9MZPEB6Q-A>
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: Fri, 21 Jul 2017 10:53:04 -0000

--001a113f43902dec400554d1ab22
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

its a good idea that needs a bikeshed. hq-nop would be my preference (stay
in the hq namespace)..

On Fri, Jul 21, 2017 at 12:47 PM, Eric Rescorla <ekr@rtfm.com> wrote:

> h09q-05? :)
>
> On Fri, Jul 21, 2017 at 2:27 AM, Martin Thomson <martin.thomson@gmail.com=
>
> wrote:
>
>> Do we need a permanent ALPN token for this?  It seems like a useful
>> facility to build into stacks that are transport-only.  Maybe "h09q".
>>
>> On 21 July 2017 at 10:00, Lucas Pardue <Lucas.Pardue@bbc.co.uk> wrote:
>> > I appreciate the flexibility but have difficulty in seeing how this
>> would
>> > flow through to interop testing, how do we measure success? One possib=
le
>> > outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over
>> QUIC,
>> > is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho
>> and
>> > amplify=E2=80=9D or whatever else) and then additionals are a bonus th=
at is up
>> to
>> > external coordination. I think this common baseline could also help
>> towards
>> > ongoing consideration for performance or benchmarking, over disparate
>> > implementations, as aspects of the protocol evolve or change.
>> >
>> >
>> >
>> > The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my
>> concerns.
>> >
>> >
>> >
>> > Lucas
>> >
>> >
>>
>>
>

--001a113f43902dec400554d1ab22
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">its a good idea that needs a bikeshed. hq-nop would be my =
preference (stay in the hq namespace).. <br></div><div class=3D"gmail_extra=
"><br><div class=3D"gmail_quote">On Fri, Jul 21, 2017 at 12:47 PM, Eric Res=
corla <span dir=3D"ltr">&lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_blan=
k">ekr@rtfm.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v dir=3D"ltr">h09q-05? :)</div><div class=3D"HOEnZb"><div class=3D"h5"><div=
 class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Fri, Jul 21, 2017 =
at 2:27 AM, Martin Thomson <span dir=3D"ltr">&lt;<a href=3D"mailto:martin.t=
homson@gmail.com" target=3D"_blank">martin.thomson@gmail.com</a>&gt;</span>=
 wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex">Do we need a permanent ALPN token=
 for this?=C2=A0 It seems like a useful<br>
facility to build into stacks that are transport-only.=C2=A0 Maybe &quot;h0=
9q&quot;.<br>
<div class=3D"m_3380218332499830047HOEnZb"><div class=3D"m_3380218332499830=
047h5"><br>
On 21 July 2017 at 10:00, Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@b=
bc.co.uk" target=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt; wrote:<br>
&gt; I appreciate the flexibility but have difficulty in seeing how this wo=
uld<br>
&gt; flow through to interop testing, how do we measure success? One possib=
le<br>
&gt; outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over QUIC,<br>
&gt; is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho and<br>
&gt; amplify=E2=80=9D or whatever else) and then additionals are a bonus th=
at is up to<br>
&gt; external coordination. I think this common baseline could also help to=
wards<br>
&gt; ongoing consideration for performance or benchmarking, over disparate<=
br>
&gt; implementations, as aspects of the protocol evolve or change.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my con=
cerns.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Lucas<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a113f43902dec400554d1ab22--


From nobody Fri Jul 21 04:14:44 2017
Return-Path: <mikkelfj@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 0A01F12ECF0 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 04:14:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 ooMa7bUl3YF0 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 04:14:40 -0700 (PDT)
Received: from mail-ua0-x230.google.com (mail-ua0-x230.google.com [IPv6:2607:f8b0:400c:c08::230]) (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 20546129B7F for <quic@ietf.org>; Fri, 21 Jul 2017 04:14:40 -0700 (PDT)
Received: by mail-ua0-x230.google.com with SMTP id 80so43027455uas.0 for <quic@ietf.org>; Fri, 21 Jul 2017 04:14:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to;  bh=TD9PIq67qjDM8H8m54TrKVGsT3Kee14SOgPlXIH1xn0=; b=dRvVgl3+qaXdVVm4Tv/JvPRP6/87jPS+JGHLCexjL2LERH7vwC2N8/fGPyEAiPGJKG njfkHEXQPJbh6+LQa5yv/AeZWEJvMMxmyFbdzq8VwleLwpn9ru1xVVrEZ+zZ0Y8NCUDi ofQ9TeZ2v/1McM32f14tsKBSmAUdbk9cU+jvXEANmZZ0+N5SriN2VZc8/w5BauKFKin3 8ZS/OnLAZM5fjawu+mGpyMteIjxWfDO9ft7iKf37FX8eeKT9X02LbzuYLFX4RPQ+pKuQ kyrmNVmg9Jc6+8faN/9DXLDoVWHOTNtiUe3ejJh0MxZgmbxWo/rKqkY8mdIaBcAA4/vE NKUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=TD9PIq67qjDM8H8m54TrKVGsT3Kee14SOgPlXIH1xn0=; b=mK9CMEp+3dR/pa9zO546xpCk8fjCbvJ3oLkDdaBqA3MAwCqXZ4Jail/xn2yloDUG25 8DOt8Ao4Y2gp1/OlrmoFEtylVjjR6GBeD8J9VARTPYt9lZab71JALd0tzG7/BGonAUaU aRhh+xTrA3L9xRuX/Jg5LBX7G8xnOXp3Tz1y5/mymLd1fMPYJzeD5/TtKNGF5Dp0iUP8 g46lPfUHv9aarkTG1ePwIcnL8lb3UaaiXCWcV5TSOUbZc+g5SKBuSfbTYggTiulY4Rxk eeaiWR8JJd1g3lZu7xBBXWwCfG9/aMcaruMVmQDGtBXRMfRt5J36HJMIDYyGK4foltSz nXLQ==
X-Gm-Message-State: AIVw110Fljvli+3a5iHK4W1l/4pVRiECLiNXKFF2xlH6E0U2cqD0A3Ki M232pBfOYb7GF4L1QydJHKl5ZXqdjji8
X-Received: by 10.31.53.3 with SMTP id c3mr3305274vka.78.1500635679209; Fri, 21 Jul 2017 04:14:39 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 21 Jul 2017 07:14:38 -0400
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Fri, 21 Jul 2017 07:14:38 -0400
Message-ID: <CAN1APdeOXmOZCtKJFXKKxX0R9DQs8ENPCR2GF3tpBsw+psoRCA@mail.gmail.com>
Subject: Re: Randomizer state attacks
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>, Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11447e9a98c0e10554d1f8d2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/foaMUGrsYLTQBoYTcMOJj9Tov6c>
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: Fri, 21 Jul 2017 11:14:42 -0000

--001a11447e9a98c0e10554d1f8d2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Wasn=E2=80=99t the Dual EC the PRNG everyone suspected was backdoor'ed by N=
SA until
Snowden practically confirmed it?

More generally, I believe it is reasonable for QUIC to assume that PRNG=E2=
=80=99s
are safe (where else do you stop?), and for implementers to assume that OS
provided PRNG=E2=80=99s are not.

Windows had a major bug, and Linux, at least a while ago, used a weaker
than necessary PRNG for perceived performance gains, and I'm sure there are
massive data centers allocated to just that cracking that.

https://www.schneier.com/blog/archives/2014/03/the_security_of_7.html


Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 21 July 2017 at 12.40.18, Christian Huitema (huitema@huitema.net) wrote:

I was just discussing with Stephen past attacks against random number
generation in crypto stacks. In these attacks, the adversaries "induce"
the implementation to generate random numbers for clear text parameters
prior to generating the random numbers used for key generation. The
adversaries can then use the clear text values to predict the state of
the PRNG in the crypto stack, and thus guess the keys.

This was done for example in an attack against the IPSEC/IKE stack used
by Juniper -- look at the IPSEC nonce to retrieve the state of the Dual
EC based PNRG, and guess the private DH values used to negotiate the
IPSEC keys -- check
https://www.ietf.org/proceedings/99/slides/slides-99-irtfopen-anrp-stephen-=
checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incident-00.pdf.


It is worth thinking about this attack when any random string is visible
in the network. For QUIC, that would be for example the Connection ID
and the initial sequence number. It is probably worth thinking about that.

-- Christian Huitema

--001a11447e9a98c0e10554d1f8d2
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto">Wasn=E2=80=99t the Dual EC the PRNG everyone susp=
ected was backdoor&#39;ed by NSA until Snowden practically confirmed it?</d=
iv><div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-s=
ize:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div =
id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size:13px=
;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">More generally, I belie=
ve it is reasonable for QUIC to assume that PRNG=E2=80=99s are safe (where =
else do you stop?), and for implementers to assume that OS provided PRNG=E2=
=80=99s are not.</div><div id=3D"bloop_customfont" style=3D"font-family:Hel=
vetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:au=
to"><br></div><div id=3D"bloop_customfont" style=3D"font-family:Helvetica,A=
rial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">Wind=
ows had a major bug, and Linux, at least a while ago, used a weaker than ne=
cessary PRNG for perceived performance gains, and I&#39;m sure there are ma=
ssive data centers allocated to just that cracking that.</div><div id=3D"bl=
oop_customfont" style=3D"font-family:Helvetica,Arial;font-size:13px;color:r=
gba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div id=3D"bloop_cust=
omfont" style=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,=
0,1.0);margin:0px;line-height:auto"><a href=3D"https://www.schneier.com/blo=
g/archives/2014/03/the_security_of_7.html">https://www.schneier.com/blog/ar=
chives/2014/03/the_security_of_7.html</a></div><div id=3D"bloop_customfont"=
 style=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);=
margin:0px;line-height:auto"><br></div> <br> <div id=3D"bloop_sign_15006351=
33030912768" class=3D"bloop_sign"><div style=3D"font-family:helvetica,arial=
;font-size:13px">Kind Regards,</div><div style=3D"font-family:helvetica,ari=
al;font-size:13px">Mikkel Fahn=C3=B8e J=C3=B8rgensen<br><br></div></div> <b=
r><p class=3D"airmail_on">On 21 July 2017 at 12.40.18, Christian Huitema (<=
a href=3D"mailto:huitema@huitema.net">huitema@huitema.net</a>) wrote:</p> <=
blockquote type=3D"cite" class=3D"clean_bq"><span><div><div></div><div>I wa=
s just discussing with Stephen past attacks against random number
<br>generation in crypto stacks. In these attacks, the adversaries &quot;in=
duce&quot;
<br>the implementation to generate random numbers for clear text parameters
<br>prior to generating the random numbers used for key generation. The
<br>adversaries can then use the clear text values to predict the state of
<br>the PRNG in the crypto stack, and thus guess the keys.
<br>
<br>This was done for example in an attack against the IPSEC/IKE stack used
<br>by Juniper -- look at the IPSEC nonce to retrieve the state of the Dual
<br>EC based PNRG, and guess the private DH values used to negotiate the
<br>IPSEC keys -- check
<br><a href=3D"https://www.ietf.org/proceedings/99/slides/slides-99-irtfope=
n-anrp-stephen-checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incid=
ent-00.pdf">https://www.ietf.org/proceedings/99/slides/slides-99-irtfopen-a=
nrp-stephen-checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incident=
-00.pdf</a>.
<br>
<br>It is worth thinking about this attack when any random string is visibl=
e
<br>in the network. For QUIC, that would be for example the Connection ID
<br>and the initial sequence number. It is probably worth thinking about th=
at.
<br>
<br>-- Christian Huitema
<br>
<br>
<br></div></div></span></blockquote></body></html>

--001a11447e9a98c0e10554d1f8d2--


From nobody Fri Jul 21 04:26:16 2017
Return-Path: <mikkelfj@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 6EF88131950 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 04:26:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 LZTR4leRzyRF for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 04:26:11 -0700 (PDT)
Received: from mail-ua0-x233.google.com (mail-ua0-x233.google.com [IPv6:2607:f8b0:400c:c08::233]) (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 B242913170E for <quic@ietf.org>; Fri, 21 Jul 2017 04:26:10 -0700 (PDT)
Received: by mail-ua0-x233.google.com with SMTP id f9so43277157uaf.4 for <quic@ietf.org>; Fri, 21 Jul 2017 04:26:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to;  bh=dkS9FropXr6uR2jCKLfeDQC4qhb6sOnTBKA0cmamdfY=; b=dSgEEjJuOPxSXnIHppWKCp7NRtsjM2cuDdyWKObdD0RYAEpgZ2pWJK//3ugBRlel59 +dJW3zxkVPrj0lIkitFtomMNYbBNSr22Hy4VXZkdj3yIgFSrA9os4PybEpkX2i+RHYHy Lpzisum+hrdio1iywOtNQYYLhV1pnLApke/fwD9HSN0ln/kHNgNrP0yQ9YuPw3f7PjOm PBUtzo3PpJscMVzVAbd1W6qIi5P+zv1O+ITdizyR7bX5HJ6rvXiZ0Z3BhK6vbnhMwPdz KBMwU8+dCgVGfKpj0FU9UpMK3d1/auulaGDGKWA8y79GnUacmrcNsdB9+DojlnFKLtUp 3Swg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=dkS9FropXr6uR2jCKLfeDQC4qhb6sOnTBKA0cmamdfY=; b=J4FasSyiZMpG3nhgd1Tm4N6er2yCcDTWdFgwdrQkPsNwOI1M13SI7rGV8ft+OHwBmj 6dGDu8whuRb0YJY/OcRuTRvVf+vVo3Sa1AHO2fok67OkfoMJRCQYoufE6gV0/MBKvIC9 HYZTVkWw2KEcPCRrpstUlc9qA4Mdg2yld6KG5oOfH5qwTSJ/bDhM4HRz+d+hifOGiwVN 3WdSi0tnUWjiJkpsY/ffKHxjdMaRHy/fmMEG3fvRB0JE8Q1kWA2hoqK+GV9pjraAPRBu /dQ2XPGaxkfGfYfpk0VAEgXd74WqLIxmnH0qLsNZKI6ps15NWtIZnG2VO5RzEhnWrHX3 a+Ag==
X-Gm-Message-State: AIVw111FYDXNMpHBEItplNC2+85Tj2LKj46PrPy1EJcemx3auJgrbe95 qDvTlkigQV2ZahLaoGppY/dOLF5UrMuv
X-Received: by 10.31.186.130 with SMTP id k124mr3093861vkf.124.1500636369845;  Fri, 21 Jul 2017 04:26:09 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 21 Jul 2017 07:26:09 -0400
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <CAN1APdeOXmOZCtKJFXKKxX0R9DQs8ENPCR2GF3tpBsw+psoRCA@mail.gmail.com>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAN1APdeOXmOZCtKJFXKKxX0R9DQs8ENPCR2GF3tpBsw+psoRCA@mail.gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Fri, 21 Jul 2017 07:26:09 -0400
Message-ID: <CAN1APdesN8n3iMsJzOy56nhye3bu677CKkfzZb6zM0gtb86qKA@mail.gmail.com>
Subject: Re: Randomizer state attacks
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>, Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11441096c30afb0554d2217b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/MCa3w7W61v90gibIa3pz8XlPzHw>
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: Fri, 21 Jul 2017 11:26:14 -0000

--001a11441096c30afb0554d2217b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Postgresql implemented a fortuna like PRNG that looks reasonable to me

https://github.com/DataSystemsLab/recdb-postgresql/blob/master/PostgreSQL/c=
ontrib/pgcrypto/fortuna.c

I hashes entropy from pools and feeds it into an AES counter mode stream.
One could rekey crypto between clear text random and crypto streams.

Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 21 July 2017 at 13.14.38, Mikkel Fahn=C3=B8e J=C3=B8rgensen (mikkelfj@gm=
ail.com)
wrote:

Wasn=E2=80=99t the Dual EC the PRNG everyone suspected was backdoor'ed by N=
SA until
Snowden practically confirmed it?

More generally, I believe it is reasonable for QUIC to assume that PRNG=E2=
=80=99s
are safe (where else do you stop?), and for implementers to assume that OS
provided PRNG=E2=80=99s are not.

Windows had a major bug, and Linux, at least a while ago, used a weaker
than necessary PRNG for perceived performance gains, and I'm sure there are
massive data centers allocated to just that cracking that.

https://www.schneier.com/blog/archives/2014/03/the_security_of_7.html


Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 21 July 2017 at 12.40.18, Christian Huitema (huitema@huitema.net) wrote:

I was just discussing with Stephen past attacks against random number
generation in crypto stacks. In these attacks, the adversaries "induce"
the implementation to generate random numbers for clear text parameters
prior to generating the random numbers used for key generation. The
adversaries can then use the clear text values to predict the state of
the PRNG in the crypto stack, and thus guess the keys.

This was done for example in an attack against the IPSEC/IKE stack used
by Juniper -- look at the IPSEC nonce to retrieve the state of the Dual
EC based PNRG, and guess the private DH values used to negotiate the
IPSEC keys -- check
https://www.ietf.org/proceedings/99/slides/slides-99-irtfopen-anrp-stephen-=
checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incident-00.pdf
.

It is worth thinking about this attack when any random string is visible
in the network. For QUIC, that would be for example the Connection ID
and the initial sequence number. It is probably worth thinking about that.

-- Christian Huitema

--001a11441096c30afb0554d2217b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto">Postgresql implemented a fortuna like PRNG that l=
ooks reasonable to me</div><div id=3D"bloop_customfont" style=3D"font-famil=
y:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-heig=
ht:auto"><br></div><div id=3D"bloop_customfont" style=3D"font-family:Helvet=
ica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"=
><a href=3D"https://github.com/DataSystemsLab/recdb-postgresql/blob/master/=
PostgreSQL/contrib/pgcrypto/fortuna.c">https://github.com/DataSystemsLab/re=
cdb-postgresql/blob/master/PostgreSQL/contrib/pgcrypto/fortuna.c</a></div><=
div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size:=
13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div id=
=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size:13px;c=
olor:rgba(0,0,0,1.0);margin:0px;line-height:auto">I hashes entropy from poo=
ls and feeds it into an AES counter mode stream.</div><div id=3D"bloop_cust=
omfont" style=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,=
0,1.0);margin:0px;line-height:auto">One could rekey crypto between clear te=
xt random and crypto streams.</div> <br> <div id=3D"bloop_sign_150063626155=
6809984" class=3D"bloop_sign"><div style=3D"font-family:helvetica,arial;fon=
t-size:13px">Kind Regards,</div><div style=3D"font-family:helvetica,arial;f=
ont-size:13px">Mikkel Fahn=C3=B8e J=C3=B8rgensen<br><br></div></div> <br><p=
 class=3D"airmail_on">On 21 July 2017 at 13.14.38, Mikkel Fahn=C3=B8e J=C3=
=B8rgensen (<a href=3D"mailto:mikkelfj@gmail.com">mikkelfj@gmail.com</a>) w=
rote:</p> <blockquote type=3D"cite" class=3D"clean_bq"><span><div style=3D"=
word-wrap:break-word"><div></div><div>




<title></title>



<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
Wasn=E2=80=99t the Dual EC the PRNG everyone suspected was backdoor&#39;ed =
by
NSA until Snowden practically confirmed it?</div>
<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
More generally, I believe it is reasonable for QUIC to assume that
PRNG=E2=80=99s are safe (where else do you stop?), and for implementers to
assume that OS provided PRNG=E2=80=99s are not.</div>
<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
Windows had a major bug, and Linux, at least a while ago, used a
weaker than necessary PRNG for perceived performance gains, and I&#39;m
sure there are massive data centers allocated to just that cracking
that.</div>
<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<a href=3D"https://www.schneier.com/blog/archives/2014/03/the_security_of_7=
.html">
https://www.schneier.com/blog/archives/2014/03/the_security_of_7.html</a></=
div>
<div id=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size=
:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<br>
<div id=3D"bloop_sign_1500635133030912768" class=3D"bloop_sign">
<div style=3D"font-family:helvetica,arial;font-size:13px">Kind
Regards,</div>
<div style=3D"font-family:helvetica,arial;font-size:13px">Mikkel
Fahn=C3=B8e J=C3=B8rgensen<br>
<br></div>
</div>
<br>
<p class=3D"airmail_on">On 21 July 2017 at 12.40.18, Christian
Huitema (<a href=3D"mailto:huitema@huitema.net">huitema@huitema.net</a>) wr=
ote:</p>
<blockquote type=3D"cite" class=3D"clean_bq">
<div>
<div><span>I was just discussing with Stephen past attacks against
random number<br>
generation in crypto stacks. In these attacks, the adversaries
&quot;induce&quot;<br>
the implementation to generate random numbers for clear text
parameters<br>
prior to generating the random numbers used for key generation.
The<br>
adversaries can then use the clear text values to predict the state
of<br>
the PRNG in the crypto stack, and thus guess the keys.<br>
<br>
This was done for example in an attack against the IPSEC/IKE stack
used<br>
by Juniper -- look at the IPSEC nonce to retrieve the state of the
Dual<br>
EC based PNRG, and guess the private DH values used to negotiate
the<br>
IPSEC keys -- check<br>
<a href=3D"https://www.ietf.org/proceedings/99/slides/slides-99-irtfopen-an=
rp-stephen-checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incident-=
00.pdf">https://www.ietf.org/proceedings/99/slides/slides-99-irtfopen-anrp-=
stephen-checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incident-00.=
pdf</a>.<br>

<br>
It is worth thinking about this attack when any random string is
visible<br>
in the network. For QUIC, that would be for example the Connection
ID<br>
and the initial sequence number. It is probably worth thinking
about that.<br>
<br>
-- Christian Huitema<br>
<br>
<br></span></div>
</div>
</blockquote>


</div></div></span></blockquote></body></html>

--001a11441096c30afb0554d2217b--


From nobody Fri Jul 21 04:47:03 2017
Return-Path: <ianswett@google.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 A05E7131A54 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 04:47:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 9K9MtW3e-oFu for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 04:47:00 -0700 (PDT)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002:c05::235]) (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 C0F2F1317B1 for <quic@ietf.org>; Fri, 21 Jul 2017 04:47:00 -0700 (PDT)
Received: by mail-yw0-x235.google.com with SMTP id x6so16515362ywd.1 for <quic@ietf.org>; Fri, 21 Jul 2017 04:47:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=pekhdpEvwkbzaST2cKzCjsACM6qy0C96FmCwelS+EYk=; b=NW8hB3H1SOf21sSoijAxiI+prO/4YGa9m6KX2XJdb13trwhiugj2e5wY1skpdMpN3c N2IUMe96Ofx4gSLra8rZb2LyfxAkJewpEvsE5LciRU8SQbbCAgyilOuAXUnD4EeeEy0J 28KdEA5tNU2/l4IR+v7Uy+yzu7CUeABJvo/nFTc+stVwMWtRXtqOlrSOeEVj/UF9m2+g HhWUka0EmCbDOGTaipwMIPLnoPCrO7qdF8jJlHM0p0IDj8FJ7CwcUEGKP8RSNlfed0xT Z2bajtBEuXdyV01zgUbkQwlBuZGJ5m4BULlulZT3knfGn3oRsbyffNSiZIID1bf+aGGT ByFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=pekhdpEvwkbzaST2cKzCjsACM6qy0C96FmCwelS+EYk=; b=Jamz/1ydJQ2E+lniOPOv40y84HHUHXqIccgWYHefPZajm598WNrgOuYZdfcEDL7YLT BCB6oksuFvdMQbxcx/4TZou1no7RhxL1DFtQBrH9pxJ5KaIGCOZlotQHsbEsWkUb1vwL HRstDWt+InUAs0FDLSBd2GyV9ivbdz11RkJsJ/Qqdoc5RVSNB0evT/V2K7KGWbxRnN9I K/tZTANoot9uvjWj08Oq+jHijO8Ldsway+ScO4RZuT62zUy7oPw4iSsrhjBidkvY6DO2 AWiR5qPBCAv7P+qnxPKKuP1WYLmYomKX+ZiF70yJ3/JCckuvHW+RmkwtX54dD752RHgl Z9Kw==
X-Gm-Message-State: AIVw113qfpet12DpiFnLT5AaF1DM/wMPO1pINLpDp/icVWlNjksWcuWm +ixArQRnyvMgL1OlLpfVPJ7yUxZ0ZQVmSPs=
X-Received: by 10.13.221.19 with SMTP id g19mr6469053ywe.407.1500637619806; Fri, 21 Jul 2017 04:46:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.163.130 with HTTP; Fri, 21 Jul 2017 04:46:39 -0700 (PDT)
From: Ian Swett <ianswett@google.com>
Date: Fri, 21 Jul 2017 07:46:39 -0400
Message-ID: <CAKcm_gNmpROQt5N9ujoST_tGVTqY+_JbY7nqTrAzeCCvqTfc3A@mail.gmail.com>
Subject: One to many streams - Use cases
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c064ed24477bb0554d26c59"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/2qUsc0iOSLbDIqvD8XIbikjasoo>
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: Fri, 21 Jul 2017 11:47:03 -0000

--94eb2c064ed24477bb0554d26c59
Content-Type: text/plain; charset="UTF-8"

One portion of PR#672 <https://github.com/quicwg/base-drafts/pull/672> is
that it introduces one to many streams.

This was asked at the WG, but are there any use cases?  And in particular,
any where the application wouldn't be better off building on top of
unidirectional streams?

One to many streams add a substantial amount of complexity and I'm not sure
anyone has a good API for them.  And if there's no good API, then I doubt
it's a useful abstraction at the transport layer.

Ian

--94eb2c064ed24477bb0554d26c59
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">One portion of <a href=3D"https://github.com/quicwg/base-d=
rafts/pull/672">PR#672</a> is that it introduces one to many streams.=C2=A0=
=C2=A0<div><br></div><div>This was asked at the WG, but are there any use c=
ases?=C2=A0 And in particular, any where the application wouldn&#39;t be be=
tter off building on top of unidirectional streams?</div><div><br></div><di=
v>One to many streams add a substantial amount of complexity and I&#39;m no=
t sure anyone has a good API for them.=C2=A0 And if there&#39;s no good API=
, then I doubt it&#39;s a useful abstraction at the transport layer.</div><=
div><br></div><div>Ian</div></div>

--94eb2c064ed24477bb0554d26c59--


From nobody Fri Jul 21 05:01:35 2017
Return-Path: <martin.thomson@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 02841131A87 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 05:01:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 lvidqqzsbZ5U for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 05:01:27 -0700 (PDT)
Received: from mail-io0-x229.google.com (mail-io0-x229.google.com [IPv6:2607:f8b0:4001:c06::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 05F3B131B6A for <quic@ietf.org>; Fri, 21 Jul 2017 05:01:26 -0700 (PDT)
Received: by mail-io0-x229.google.com with SMTP id m88so13034197iod.2 for <quic@ietf.org>; Fri, 21 Jul 2017 05:01:25 -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=8h2sLuH6I8MDypdVoeAh2pyqbBCluKUr/pSaau1huTY=; b=NudEMROf8knmtK6uKjSpZF69XUtScA83O/FTW9XBRmdCu4jbS0gcWlNs0gXp/v2WKD Z2HBNrqThq/6GdXZzoEtM58/QFSe6dTk7vtj5JheDY1GYgwResTO6SV7u7y95lE5fZGD nVsTy7DZP4a6haFKLYHWaaxlG+E39lyd1j7NVEi6YAW5QA9kQNPFJDAnd0dWWonmNeIF 3YKsbw1KwZeHpALmIu19QdeF5+RKHrZdg6nu3OBjGaE+Vx7KLG/Wo+TXnvTpcxOuYF5C xZm8sdbCZFyWb7Bo3wNWXA/EHpKzGdb4dg+Df8yWB2RxbgRWwu+gxPNAmDSaLJhVDT2k EYEA==
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=8h2sLuH6I8MDypdVoeAh2pyqbBCluKUr/pSaau1huTY=; b=am65ovBUr+LYInscRSu1UreTMFohFWOybE6Dcce5/qTUHpuZVVF+KMLATLLI29ifci hyP78Op0KEKFBKm10KcE20mlYXQqU783bZy09b+uDgIBnZkff872MAxMXyv1Tz7/2UWp csg11ghCqIRicjsK6k7e+ebC6VbN6kL2uLk3BnAKYDHe6qaBk4i3b0VlJxIsr0zuqTBt vffpNXkDLPTCEESlrfmfrr040WzZm2tcl3SW17q6ZyIPszRHX4eG16NP/u9UjZpY0pEw NFXCeiu58uazu1W9Hpc+x+f0tfxsHEOBUliIPVBrsPNr1H/3ofV/2RHZykpzZVzHG2D9 R3Bg==
X-Gm-Message-State: AIVw110Xgj5jBi/eSUq3DTvw0rJaU2T6W0w8VnsORLYcb2aVGQMFiBn3 3tyiJd8IWftI9a2XDtP6x7Bwhx6leg==
X-Received: by 10.107.179.135 with SMTP id c129mr7611068iof.74.1500638484993;  Fri, 21 Jul 2017 05:01:24 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Fri, 21 Jul 2017 05:01:24 -0700 (PDT)
In-Reply-To: <CAKcm_gNmpROQt5N9ujoST_tGVTqY+_JbY7nqTrAzeCCvqTfc3A@mail.gmail.com>
References: <CAKcm_gNmpROQt5N9ujoST_tGVTqY+_JbY7nqTrAzeCCvqTfc3A@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 21 Jul 2017 14:01:24 +0200
Message-ID: <CABkgnnWMmg0gLfYXPf9x8-sdUe7iNg27cZhofa9K_w-ZtsjWjg@mail.gmail.com>
Subject: Re: One to many streams - Use cases
To: Ian Swett <ianswett@google.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5W7_6Vq2fQg5teP4uTlVPjdfJAY>
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: Fri, 21 Jul 2017 12:01:28 -0000

You might read this as an argument against that design, but here goes anyway...

672 is too complex. The design that I'm looking for here is much
simpler.  A stream can be in reaction to any other stream.  A value of
zero in that field indicates that it is unidirectional, other values
indicate that it is a reaction to another stream.

The consequence of this design is that in order to fulfill your
request, the transport treats receipt of two streams that point to the
same root as an error.  My suggestion is that this be left to
application protocols - that allows them the choice about whether to
make the error a stream error or a connection error.

It's relatively easy to make this a connection error, but that takes
some choice away from applications.  In HTTP, this would obviously be
a connection error either way - there is no reason to do this.


On 21 July 2017 at 13:46, Ian Swett <ianswett@google.com> wrote:
> One portion of PR#672 is that it introduces one to many streams.
>
> This was asked at the WG, but are there any use cases?  And in particular,
> any where the application wouldn't be better off building on top of
> unidirectional streams?
>
> One to many streams add a substantial amount of complexity and I'm not sure
> anyone has a good API for them.  And if there's no good API, then I doubt
> it's a useful abstraction at the transport layer.
>
> Ian


From nobody Fri Jul 21 05:09:04 2017
Return-Path: <mnot@mnot.net>
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 5804B129AD1 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 05:09:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level: 
X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=j2+hhX7O; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=gfrTOHgc
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 hNaD4gUzvOKZ for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 05:09:00 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0AE3D127735 for <quic@ietf.org>; Fri, 21 Jul 2017 05:09:00 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 71A9B207EC; Fri, 21 Jul 2017 08:08:59 -0400 (EDT)
Received: from frontend2 ([10.202.2.161]) by compute3.internal (MEProxy); Fri, 21 Jul 2017 08:08:59 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=2T4rIpCtckojrsGizbJWP9CJGOSBnrXNFsTURiDXW D8=; b=j2+hhX7OZh8NxBWcNBRU5wHaxCXbE27OlIbiA0DbbnWTsHN8O4cM/vJvC 9bW7APpbbJdigf6R5pAunuWkm6u5vqC/DkenUoSIfXAJZkgXX05rHhg3p8yvfleW H9g8uUupK3jPK8Kr/ss4+ItbLbA1jmF10KspW2nqhmx3m3NNQLqwDVtAVb5+66x8 e74eQSN4KFM1flFHz+uRNGRN38QESzsokoV0r8QH4VkhAwn9BPmeJm7G9q5Mc4GH tZXDM+EALti23pHYSu2tNIdG6dUg0Ge429IrgviJEVJNeOJuczTX3tHSeGAafwai xNILTOE8I0X8VyrOF2t5Ib5SQlYSA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=2T4rIpCtckojrsGizb JWP9CJGOSBnrXNFsTURiDXWD8=; b=gfrTOHgc+tkxm4DQkPQsW3DAZiA/KN5Tkr RNfApHQw1SH36/K/GZuY9LB7wxcgq8mtj5ZIRqNO8sePMGDc+nFRV7AYRi1QauXC i720VSQ4tmloERFuxxfv4Lb8ZtXgy6i/htzgv6ORfdtd7Kh5HAAm9W2Ne0LhQyhk aT6D6smWsSzmT22/00gXUZ1VmP3AXoOyIj0pspg3/oEyWMlDvHR5j0sJE5jRwyHT k9foVp5sFp8wNc/IQCVnAtuRZMHbMxtxBBXkCNFOH4EOrbzXKpL+G8dCy7FkKkiO kJSxhjIl+RdfI4NnkMkvEyk6NGTDlhqWbG6+9hi3BdiAy1Z87org==
X-ME-Sender: <xms:2-5xWbd3yX2vTV-Mceq_Ci2qG3liQa5dgZSKJn8aEYPWuUNPGmPDCA>
X-Sasl-enc: 8o+gHezDv2qzujJzncnQBzs+mAgDW2dWtZutrxlTpOqk 1500638939
Received: from dhcp-813f.meeting.ietf.org (dhcp-813f.meeting.ietf.org [31.133.129.63]) by mail.messagingengine.com (Postfix) with ESMTPA id EBD3224250; Fri, 21 Jul 2017 08:08:58 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Reminder: QUIC Working Group Interim Meeting - registration required
Message-Id: <62A7DB83-3F6A-4770-B824-668EE04D3335@mnot.net>
Date: Fri, 21 Jul 2017 14:08:58 +0200
Cc: Lars Eggert <lars@netapp.com>
To: IETF QUIC WG <quic@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/EAEILlcDRcl5zGBkEHxomTUdvZU>
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: Fri, 21 Jul 2017 12:09:02 -0000

To register, see the arrangements page:
  =
https://github.com/quicwg/wg-materials/blob/master/interim-17-10/arrangeme=
nts.md

Registration closes 3 September.

--
Mark Nottingham   https://www.mnot.net/



From nobody Fri Jul 21 06:05:59 2017
Return-Path: <mnot@mnot.net>
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 D12FE131E08 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 06:05:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level: 
X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=VfsPq/Dg; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=ARLYmgY0
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 hipj0yTzyoMx for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 06:05:54 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3C7A1131BFA for <quic@ietf.org>; Fri, 21 Jul 2017 06:05:51 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id A018620954; Fri, 21 Jul 2017 09:05:50 -0400 (EDT)
Received: from frontend2 ([10.202.2.161]) by compute3.internal (MEProxy); Fri, 21 Jul 2017 09:05:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=VE5ikCzhlRG7ZsyNkAure2xTqmlravHX6bQ8XjI22 Vg=; b=VfsPq/Dgms6IYCCRqe2XUHIkJNqz4T+UOajWRkohsLd635CgdBOy2Xd5z vzArNnv4vCm9kjUH7r7K3gobzGo+0Xm9uE/nv31S3h84z8DNO/R+mL6O0B4gwpZ3 zz44WoPFg7vEGYN+kx5kEG1039ao1ScwUYiMg1SCqAr06qm8RX+j5Xao6nwpU3ZS iOKkZpMNHcrfS+v+KlLGktdOjw04VbqPzmImKCi2PsqxsL6zPKdRpZbhOVnrKBMm IHnvTF5RGzgtwQHxsHjFtmrLy2IPJQiFdScSkYE8nqxo5hMk7N+OVC62kNRiMjCb eyz6gny9HrjgamPWz+GEdzXASTnmA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=VE5ikCzhlRG7ZsyNkA ure2xTqmlravHX6bQ8XjI22Vg=; b=ARLYmgY0UBbSoEy0Jbpm0CEqxVtEBZTdnr kr6oGPdhoqeJNnK7INxoXMic2NxmBRfw4tIruzDBvnkzcqwIrcDjJv4iaY7aHQgQ b6JW4gMv3i26ku8XnTUzs/Q1Zmw31LWTmJ1I/+yCAMbl0LY4WNLxY0yMWzbjxWB+ FwASzVE1bA2/bKxuKimF/Jr+lwK/u4lWmcZCz2TI09ZlYa6HzoEfToiZd3iewdTZ YmdlHhHF26bYZub7vzlmmAgEB71gQE9BJCH8s4MH+elzRqvGtasIOqgmFeiy6N9l UuyDa2UlXy9huUeYijubvNp6bs2azrD95Ad3j+VlYDjCTLJdGhNQ==
X-ME-Sender: <xms:LvxxWXRaObJTWATJ7KWvS6l-Rnjb2tvVxFUWt5Epi10OpbZb6aSXLg>
X-Sasl-enc: zkyGo8lf5S0AGSRugs9Tz0RZ3clEt9EKJFQJ9CCguCIL 1500642350
Received: from dhcp-813f.meeting.ietf.org (dhcp-813f.meeting.ietf.org [31.133.129.63]) by mail.messagingengine.com (Postfix) with ESMTPA id 27807248AF; Fri, 21 Jul 2017 09:05:50 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: DRAFT minutes rom IETF99 (Prague)
Message-Id: <067CF332-5289-40CD-9901-698446A6C212@mnot.net>
Date: Fri, 21 Jul 2017 15:05:49 +0200
Cc: Lars Eggert <lars@netapp.com>
To: IETF QUIC WG <quic@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/mkWFNh9x7Ab44orVI5yAovPI84c>
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: Fri, 21 Jul 2017 13:05:56 -0000

... are at:
  https://github.com/quicwg/wg-materials/blob/master/ietf99/minutes.md

Corrections welcome as pull requests and in e-mail.

Cheers,


--
Mark Nottingham   https://www.mnot.net/



From nobody Fri Jul 21 08:20:21 2017
Return-Path: <Lucas.Pardue@bbc.co.uk>
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 8EC70131761 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 08:20:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 YAK0GWmpLCm9 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 08:20:19 -0700 (PDT)
Received: from mailout1.telhc.bbc.co.uk (mailout1.telhc.bbc.co.uk [132.185.161.180]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D8252129B10 for <quic@ietf.org>; Fri, 21 Jul 2017 08:20:18 -0700 (PDT)
Received: from BGB01XI1012.national.core.bbc.co.uk (bgb01xi1012.national.core.bbc.co.uk [10.161.14.16]) by mailout1.telhc.bbc.co.uk (8.15.2/8.15.2) with ESMTP id v6LFKHnD027376 for <quic@ietf.org>; Fri, 21 Jul 2017 16:20:17 +0100 (BST)
Received: from BGB01XUD1012.national.core.bbc.co.uk ([10.161.14.10]) by BGB01XI1012.national.core.bbc.co.uk ([10.161.14.16]) with mapi id 14.03.0319.002; Fri, 21 Jul 2017 16:20:16 +0100
From: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
To: IETF QUIC WG <quic@ietf.org>
Subject: HTTP requests on one stream #692
Thread-Topic: HTTP requests on one stream #692
Thread-Index: AdMCNJiq1/jFQyapRDqdWSVpnV2Uvg==
Date: Fri, 21 Jul 2017 15:20:16 +0000
Message-ID: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.19.161.211]
x-exclaimer-md-config: c91d45b2-6e10-4209-9543-d9970fac71b7
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-23208.007
x-tm-as-result: No--16.623900-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_7CF7F94CB496BF4FAB1676F375F9666A37748B7Abgb01xud1012_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/CBN4clACkjsI56EQ42MQOo9gUIc>
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: Fri, 21 Jul 2017 15:20:20 -0000

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748B7Abgb01xud1012_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

Apologies if this was discussed already in Prague but I'd like some clarifi=
cation on the intended lifetime scope of the changes in PR#692<https://gith=
ub.com/quicwg/base-drafts/pull/692/files>.


  1.  Is the intention that this change unblocks specification / developmen=
t so that the WG can continue?
  2.  Will these changes be unwound once progress has been made?
     *   The DATA frame has been resurrected (I presume to demark frames in=
 the same stream). Will it be struck with a wooden stake in the future, or =
continue to hang around?

Thanks
Lucas

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748B7Abgb01xud1012_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1665667965;
	mso-list-type:hybrid;
	mso-list-template-ids:-1030855426 134807567 134807577 134807579 134807567 =
134807577 134807579 134807567 134807577 134807579;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-GB" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Apologies if this was discussed already in Prague bu=
t I&#8217;d like some clarification on the intended lifetime scope of the c=
hanges in
<a href=3D"https://github.com/quicwg/base-drafts/pull/692/files">PR#692</a>=
. <o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"1">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l0 level1 =
lfo1">Is the intention that this change unblocks specification / developmen=
t so that the WG can continue?
<o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso=
-list:l0 level1 lfo1">Will these changes be unwound once progress has been =
made?<o:p></o:p>
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"a">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l0 level2 =
lfo1">The DATA frame has been resurrected (I presume to demark frames in th=
e same stream). Will it be struck with a wooden stake in the future, or con=
tinue to hang around?<o:p></o:p></li></ol>
</li></ol>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks<o:p></o:p></p>
<p class=3D"MsoNormal">Lucas<o:p></o:p></p>
</div>
</body>
</html>

--_000_7CF7F94CB496BF4FAB1676F375F9666A37748B7Abgb01xud1012_--


From nobody Fri Jul 21 11:01:43 2017
Return-Path: <rch@google.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 A9F221276AF for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 11:01:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 rBxvmWVihc9w for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 11:01:41 -0700 (PDT)
Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (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 AB328127077 for <quic@ietf.org>; Fri, 21 Jul 2017 11:01:40 -0700 (PDT)
Received: by mail-wm0-x236.google.com with SMTP id w191so20234545wmw.1 for <quic@ietf.org>; Fri, 21 Jul 2017 11:01:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=INYcV8ID/czwhGq/6OVfqYbBfARzZdY300NbZNHsz2A=; b=OVebLE9t78u4wfRGjkhXzew9WciLhWxSLc5A+2AVV20FcsZksyQPkx/pjn5up/vElr wSAtCfNyr+SnyAYsU3TP69eYoyOeeUGI4NB8+WhpdBckjtCdkNe1nFdZ9sxQckokeBjn TWWORvKOVRKsWog8+r4az5ZvTsO5eZJ+FPmMnEnmnpnjaywzQjMRbB/VC2gKMsrKrLjg s0r3xksQkGLI8JS0a1YNAp7YmrKJkUMGvj1aNCOfU/POUtfxP8SRoTZUwJzcMEk8AiOp JbheWgI5UNngRXYnPhJMlDavfhXai0DAgvSYg+SacEmwPeZDf3iOsO5fRMg9PNggknZk ejEA==
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=INYcV8ID/czwhGq/6OVfqYbBfARzZdY300NbZNHsz2A=; b=gxdKc16jjXVgYVh39pbJX9GsYsV4Du8GG4aQutLuYvdQVfduG8GWJoP8NhLRVh0MkM j314ntTM4TJvrkqfKbyX/gqvcpU9cL/8qGqonrtvvQO1tFwGDtJm3FQWrR5vnDX6K6iJ 46dX5764Mw6WqpJbsPgEM2bcG6GcQdY/VeMw2OnEHz9I/vtHpihVxhSXXCSRszdh3yU4 SnIy2o1PUGABEjQy3dyiuU++7ar+EbvB2aIjjVNyFeWJcoX4HSbPeIfCaaM9X2ol+TzT pF/1amtfD3EGXDHUYbXs+DLxr1o0o+dCGfWvc35+p6QGgQBJL2m9e1PDgLrQpN9Z+uzV 80jQ==
X-Gm-Message-State: AIVw110RQAnw8fFsEAwo8Ia8wHD6tx2tgJqcGyB2IGDDsx7ItzxOFYjX HJLV3ovlLUwiI6/9tBG3Kzbo0v4SFbythwU=
X-Received: by 10.28.230.199 with SMTP id e68mr5990074wmi.138.1500660099013; Fri, 21 Jul 2017 11:01:39 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.28.24.198 with HTTP; Fri, 21 Jul 2017 11:01:38 -0700 (PDT)
In-Reply-To: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
From: Ryan Hamilton <rch@google.com>
Date: Fri, 21 Jul 2017 11:01:38 -0700
Message-ID: <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
Subject: Re: Randomizer state attacks
To: Christian Huitema <huitema@huitema.net>
Cc: IETF QUIC WG <quic@ietf.org>, Stephen Farrell <stephen.farrell@cs.tcd.ie>
Content-Type: multipart/alternative; boundary="001a11476f9c21eadd0554d7a833"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/HBuigrnrDYdKvAsnLMWOnPl0P5k>
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: Fri, 21 Jul 2017 18:01:42 -0000

--001a11476f9c21eadd0554d7a833
Content-Type: text/plain; charset="UTF-8"

Interesting! Do these attacks depend on a vulnerable PRNG or is this still
a problem for "good" PRNGs? If it's a problem for "good" PRNGs, what's the
high level advice for dealing with such attacks?

On Fri, Jul 21, 2017 at 3:40 AM, Christian Huitema <huitema@huitema.net>
wrote:

> I was just discussing with Stephen past attacks against random number
> generation in crypto stacks. In these attacks, the adversaries "induce"
> the implementation to generate random numbers for clear text parameters
> prior to generating the random numbers used for key generation. The
> adversaries can then use the clear text values to predict the state of
> the PRNG in the crypto stack, and thus guess the keys.
>
> This was done for example in an attack against the IPSEC/IKE stack used
> by Juniper -- look at the IPSEC nonce to retrieve the state of the Dual
> EC based PNRG, and guess the private DH values used to negotiate the
> IPSEC keys -- check
> https://www.ietf.org/proceedings/99/slides/slides-
> 99-irtfopen-anrp-stephen-checkoway-a-systematic-
> analysis-of-the-juniper-dual-ec-incident-00.pdf.
>
> It is worth thinking about this attack when any random string is visible
> in the network. For QUIC, that would be for example the Connection ID
> and the initial sequence number. It is probably worth thinking about that.
>
> -- Christian Huitema
>
>
>

--001a11476f9c21eadd0554d7a833
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:trebuche=
t ms,sans-serif">Interesting! Do these attacks depend on a vulnerable PRNG =
or is this still a problem for &quot;good&quot; PRNGs? If it&#39;s a proble=
m for &quot;good&quot; PRNGs, what&#39;s the high level advice for dealing =
with such attacks?=C2=A0</div></div><div class=3D"gmail_extra"><br><div cla=
ss=3D"gmail_quote">On Fri, Jul 21, 2017 at 3:40 AM, Christian Huitema <span=
 dir=3D"ltr">&lt;<a href=3D"mailto:huitema@huitema.net" target=3D"_blank">h=
uitema@huitema.net</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
I was just discussing with Stephen past attacks against random number<br>
generation in crypto stacks. In these attacks, the adversaries &quot;induce=
&quot;<br>
the implementation to generate random numbers for clear text parameters<br>
prior to generating the random numbers used for key generation. The<br>
adversaries can then use the clear text values to predict the state of<br>
the PRNG in the crypto stack, and thus guess the keys.<br>
<br>
This was done for example in an attack against the IPSEC/IKE stack used<br>
by Juniper -- look at the IPSEC nonce to retrieve the state of the Dual<br>
EC based PNRG, and guess the private DH values used to negotiate the<br>
IPSEC keys -- check<br>
<a href=3D"https://www.ietf.org/proceedings/99/slides/slides-99-irtfopen-an=
rp-stephen-checkoway-a-systematic-analysis-of-the-juniper-dual-ec-incident-=
00.pdf" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.org/<wbr>proc=
eedings/99/slides/slides-<wbr>99-irtfopen-anrp-stephen-<wbr>checkoway-a-sys=
tematic-<wbr>analysis-of-the-juniper-dual-<wbr>ec-incident-00.pdf</a>.<br>
<br>
It is worth thinking about this attack when any random string is visible<br=
>
in the network. For QUIC, that would be for example the Connection ID<br>
and the initial sequence number. It is probably worth thinking about that.<=
br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
-- Christian Huitema<br>
<br>
<br>
</font></span></blockquote></div><br></div>

--001a11476f9c21eadd0554d7a833--


From nobody Fri Jul 21 12:50:47 2017
Return-Path: <stephen.farrell@cs.tcd.ie>
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 3C00D131822 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 12:50:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level: 
X-Spam-Status: No, score=-4.301 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
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 W9n2pLKkLJjP for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 12:50:42 -0700 (PDT)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9AE6E1296C9 for <quic@ietf.org>; Fri, 21 Jul 2017 12:50:42 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id BCF2EBE55; Fri, 21 Jul 2017 20:50:40 +0100 (IST)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V1jJE317LrkU; Fri, 21 Jul 2017 20:50:39 +0100 (IST)
Received: from [10.244.2.100] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id C8DE7BE49; Fri, 21 Jul 2017 20:50:38 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1500666638; bh=tsJ0htYTFVYjAo8k6pJcFQZNik4m+AaDqTwSX5oI+PU=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=wdXNIpKUTy5QBETi+93869oK57IBfRxdIXsYp+2VUuLz0JRYDutiyacDaMArGwrep g9OyqmuzmfeYXB/9VV2uGT7JyG6Y4frNzZbnIWaxykwyBW/mi6TaHoZSLTSkA+f9Fl mAMWn6oKXqQOgW3Ihsgm2ivAgMBcyiiFzV0d4UOQ=
Subject: Re: Randomizer state attacks
To: Ryan Hamilton <rch@google.com>, Christian Huitema <huitema@huitema.net>
Cc: IETF QUIC WG <quic@ietf.org>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Openpgp: id=D66EA7906F0B897FB2E97D582F3C8736805F8DA2; url=
Message-ID: <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
Date: Fri, 21 Jul 2017 20:50:37 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="H7o6ovkGJMJDqvJ8WfPIvQQ5bGTLhnJKO"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/vF-0zA4kSaCbJgN_KBjSN9Wpyhw>
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: Fri, 21 Jul 2017 19:50:45 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--H7o6ovkGJMJDqvJ8WfPIvQQ5bGTLhnJKO
Content-Type: multipart/mixed; boundary="ooQ5pAoLAl4mvwadI8GfOJEDTxN9uwE63";
 protected-headers="v1"
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
To: Ryan Hamilton <rch@google.com>, Christian Huitema <huitema@huitema.net>
Cc: IETF QUIC WG <quic@ietf.org>
Message-ID: <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
Subject: Re: Randomizer state attacks
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
 <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
In-Reply-To: <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>

--ooQ5pAoLAl4mvwadI8GfOJEDTxN9uwE63
Content-Type: text/plain; charset=utf-8
Content-Language: en-GB
Content-Transfer-Encoding: quoted-printable


Hiya,

On 21/07/17 19:01, Ryan Hamilton wrote:
> Interesting! Do these attacks depend on a vulnerable PRNG or is this st=
ill
> a problem for "good" PRNGs?=20

In the juniper attack someone took a good prng and turned it into
a bad prng, via those dodgy-looking changes to code. That isn't
visible to the application calling the prng. So, the answer to
your question is "yes, you need a vulnerable prng," but also "no,
a good prng when you're writing your code isn't enough."

So the issue here is: to the extent one can, ensuring a protocol
is designed to be good even if some implementation at some time
uses a borked prng.

> If it's a problem for "good" PRNGs, what's the
> high level advice for dealing with such attacks?

First is as Christian says is just to consider the attack and
see how'd it affect QUIC. E.g., count up the bits that are
visible and supposed to be random and see how many there are.

If you end up with say 32 bytes total, that may be a lot worse
than ending up with 20, if faced with an attack like this. In
Checkoway's work part of the attack extended a nonce from 20
to 32 bytes, which moved the dual-ec attack work factor from
2^96 down to 2^16, (see slide 39 of the presentation Christian
referred to below - which was a great talk btw, I'd highly
recommend it).

Depending on what that shows one might want to reduce the number
of random bits that are visible in clear. One way to do that
might be to make some of them depend on others, e.g. if there
are two fields where we want random looking values then instead
of getting both from the prng one could make the second a hash
of the first and tell receivers to check that. Whether or not
anything like that would be a good or bad idea will depend on
the details of QUIC. (Details of which I'm ignorant myself, sorry;-)

Regardless of whether or not there's anything that needs changing
you'd probably want to consider adding some security considerations
or implementation guidance text, maybe including a pointer to [1]
(Checkoway's paper that won the anrp). While you could probably
assume that e.g. the TLS library internal code has considered this,
the QUIC code might not, so such text may be useful.

But the reason I raised this with Christian is that at this stage
in the development of QUIC, there's a design principle that the WG
might want to consider as well, which is to minimise the number of
prng-output cleartext bits visible to a network attacker. (I'm
assuming that the kind of change is feasible at this point still.)

Cheers,
S.

[1] https://web.eecs.utk.edu/~mschucha/netsec/readings/p468-checkoway.pdf=


>=20
> On Fri, Jul 21, 2017 at 3:40 AM, Christian Huitema <huitema@huitema.net=
>
> wrote:
>=20
>> I was just discussing with Stephen past attacks against random number
>> generation in crypto stacks. In these attacks, the adversaries "induce=
"
>> the implementation to generate random numbers for clear text parameter=
s
>> prior to generating the random numbers used for key generation. The
>> adversaries can then use the clear text values to predict the state of=

>> the PRNG in the crypto stack, and thus guess the keys.
>>
>> This was done for example in an attack against the IPSEC/IKE stack use=
d
>> by Juniper -- look at the IPSEC nonce to retrieve the state of the Dua=
l
>> EC based PNRG, and guess the private DH values used to negotiate the
>> IPSEC keys -- check
>> https://www.ietf.org/proceedings/99/slides/slides-
>> 99-irtfopen-anrp-stephen-checkoway-a-systematic-
>> analysis-of-the-juniper-dual-ec-incident-00.pdf.
>>
>> It is worth thinking about this attack when any random string is visib=
le
>> in the network. For QUIC, that would be for example the Connection ID
>> and the initial sequence number. It is probably worth thinking about t=
hat.
>>
>> -- Christian Huitema
>>
>>
>>
>=20


--ooQ5pAoLAl4mvwadI8GfOJEDTxN9uwE63--

--H7o6ovkGJMJDqvJ8WfPIvQQ5bGTLhnJKO
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJZclsOAAoJEC88hzaAX42iPBMH/2GQKF5dn8W3f8avdYGNvI+X
clELrD2ptbpxAsXyuM/pY9VKMbhIqQDAPJ2Dvi3WPa9+0Y534v9MghSsvKY9XF73
4zAJM0sva5xONyXO7E4qxSQLiw+4kUI0kZfk0kYWDtvzAwxm2orS5chbFgF05tQ4
NSR2GJ4UO9IggAu6lQqroBbOnZcMmR4AKfErbIpi1oMl3llvWUuw16txPUpSCzTZ
oJQP2kyfQAYRXshwjYsJVBn2EsG8O/VOd49nDxUdMhLVa9QpPTaaHegLRbitHs3b
ak5dLBg1JrZjXD3Z4Hv96Ceh1BcTaPByYdsPmpFto1xd36wFjAH7boeBfGonAb8=
=FrGv
-----END PGP SIGNATURE-----

--H7o6ovkGJMJDqvJ8WfPIvQQ5bGTLhnJKO--


From nobody Fri Jul 21 13:43:35 2017
Return-Path: <rch@google.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 E7EFE12EC0F for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 13:43:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 v7lR-VStofnV for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 13:43:32 -0700 (PDT)
Received: from mail-wm0-x234.google.com (mail-wm0-x234.google.com [IPv6:2a00:1450:400c:c09::234]) (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 E74EE129B61 for <quic@ietf.org>; Fri, 21 Jul 2017 13:43:31 -0700 (PDT)
Received: by mail-wm0-x234.google.com with SMTP id e131so23037472wme.0 for <quic@ietf.org>; Fri, 21 Jul 2017 13:43:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=i+5uk7l9VV3di5/C822DClH4ZkAzbNHXSVxAkIx5wo4=; b=YV5i4+aI4kjPqwbUMAdZNeLarQTiIdtcQOm/OgKhQY95NF6b9Abtlo8clKGBwQA4h8 FQoYUZoPjzIWvbk0LQJ3tJlg27k+6hPqnmJS4mmvfq/hhcvkkwp8kLvqm9e4MEmTjAzx s38+vnlQERG2tG764KL1o8r3/jJ+ESDDYV+auTb/7h9U4hUfYXhLJk1uDNZlK4mRCwfr BKnIA/oq3tH8EEOXEEr6p/yq94RPGaSy8jWrCOpo1vUobG1Uetng1cKT6h0uyJ0I5gDf FWLQ94uXQXJ8d01P0jYAVVhlSicJqxsHOK8B90Mla2ME8fQLgSEpD/EWk1FGSYEkm3Xn iUFw==
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=i+5uk7l9VV3di5/C822DClH4ZkAzbNHXSVxAkIx5wo4=; b=YJoxn66HUFEFGQYOQHr8hAKCme3K+5+0BAwlbM89zO7ToUpk6I1q8KxweGYDehnBSL jPdkP2RBG/PTlDUKuX7d/8qU3ky9nM1gMQuS6fAroBzGAJoVW7NTStkqa/ATuHmXIjY5 K62YmQ6UDUAOAHnwxrJHSf24Q4X3YAl0D+i3/1/eOr3C0EoDxYVnNJnV2UzDRsBpFPCM /0kXLZMzY22SQoIyhWVbp1IV789gpf8oHtI0mySHQN1QfQBXm9UC7FYasdh7qSGUy+EB IWCNxYHK1QTISt6zlkhD/57ZPESqV3NCv+AHjgkIjfkyEb266x+XC2+vk9VEpGjA24Ih jPWA==
X-Gm-Message-State: AIVw110K0+TRlYfc/VZhoItflcQfEJIsD1vFoEJFHUcps3aSNm5Ka9VL fa4CmNPpx1CsOG4lEiifEOsq3Chf/brHwgk=
X-Received: by 10.28.23.1 with SMTP id 1mr216344wmx.106.1500669810255; Fri, 21 Jul 2017 13:43:30 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.28.24.198 with HTTP; Fri, 21 Jul 2017 13:43:29 -0700 (PDT)
In-Reply-To: <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
From: Ryan Hamilton <rch@google.com>
Date: Fri, 21 Jul 2017 13:43:29 -0700
Message-ID: <CAJ_4DfQ0LujX6GWqDxYAdnq7A7vyKsbxKKDyP44uXO2+-XcKVA@mail.gmail.com>
Subject: Re: Randomizer state attacks
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Cc: Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a1146855cf7d97b0554d9ea10"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/eVrCAE0cVnHCP9hJanTX2orwjX4>
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: Fri, 21 Jul 2017 20:43:34 -0000

--001a1146855cf7d97b0554d9ea10
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Jul 21, 2017 at 12:50 PM, Stephen Farrell <stephen.farrell@cs.tcd.i=
e
> wrote:

>
> Hiya,
>
> On 21/07/17 19:01, Ryan Hamilton wrote:
> > Interesting! Do these attacks depend on a vulnerable PRNG or is this
> still
> > a problem for "good" PRNGs?
>
> In the juniper attack someone took a good prng and turned it into
> a bad prng, via those dodgy-looking changes to code. That isn't
> visible to the application calling the prng. So, the answer to
> your question is "yes, you need a vulnerable prng," but also "no,
> a good prng when you're writing your code isn't enough."
>
> So the issue here is: to the extent one can, ensuring a protocol
> is designed to be good even if some implementation at some time
> uses a borked prng.
>

=E2=80=8BAh! Ok, thanks. I missed a bit of subtlety there. Thanks.
=E2=80=8B

> > If it's a problem for "good" PRNGs, what's the
> > high level advice for dealing with such attacks?
>
> First is as Christian says is just to consider the attack and
> see how'd it affect QUIC. E.g., count up the bits that are
> visible and supposed to be random and see how many there are.
>
> If you end up with say 32 bytes total, that may be a lot worse
> than ending up with 20, if faced with an attack like this. In
> Checkoway's work part of the attack extended a nonce from 20
> to 32 bytes, which moved the dual-ec attack work factor from
> 2^96 down to 2^16, (see slide 39 of the presentation Christian
> referred to below - which was a great talk btw, I'd highly
> recommend it).
>
> Depending on what that shows one might want to reduce the number
> of random bits that are visible in clear. One way to do that
> might be to make some of them depend on others, e.g. if there
> are two fields where we want random looking values then instead
> of getting both from the prng one could make the second a hash
> of the first and tell receivers to check that. Whether or not
> anything like that would be a good or bad idea will depend on
> the details of QUIC. (Details of which I'm ignorant myself, sorry;-)
>
> Regardless of whether or not there's anything that needs changing
> you'd probably want to consider adding some security considerations
> or implementation guidance text, maybe including a pointer to [1]
> (Checkoway's paper that won the anrp). While you could probably
> assume that e.g. the TLS library internal code has considered this,
> the QUIC code might not, so such text may be useful.
>
> But the reason I raised this with Christian is that at this stage
> in the development of QUIC, there's a design principle that the WG
> might want to consider as well, which is to minimise the number of
> prng-output cleartext bits visible to a network attacker. (I'm
> assuming that the kind of change is feasible at this point still.)
>

=E2=80=8BYup, makes sense. Thanks!

--001a1146855cf7d97b0554d9ea10
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:trebuche=
t ms,sans-serif"><span style=3D"font-family:arial,sans-serif">On Fri, Jul 2=
1, 2017 at 12:50 PM, Stephen Farrell </span><span dir=3D"ltr" style=3D"font=
-family:arial,sans-serif">&lt;<a href=3D"mailto:stephen.farrell@cs.tcd.ie" =
target=3D"_blank" class=3D"cremed">stephen.farrell@cs.tcd.ie</a>&gt;</span>=
<span style=3D"font-family:arial,sans-serif"> wrote:</span><br></div><div c=
lass=3D"gmail_extra"><div class=3D"gmail_quote"><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex"><br>
Hiya,<br>
<span class=3D""><br>
On 21/07/17 19:01, Ryan Hamilton wrote:<br>
&gt; Interesting! Do these attacks depend on a vulnerable PRNG or is this s=
till<br>
&gt; a problem for &quot;good&quot; PRNGs?<br>
<br>
</span>In the juniper attack someone took a good prng and turned it into<br=
>
a bad prng, via those dodgy-looking changes to code. That isn&#39;t<br>
visible to the application calling the prng. So, the answer to<br>
your question is &quot;yes, you need a vulnerable prng,&quot; but also &quo=
t;no,<br>
a good prng when you&#39;re writing your code isn&#39;t enough.&quot;<br>
<br>
So the issue here is: to the extent one can, ensuring a protocol<br>
is designed to be good even if some implementation at some time<br>
uses a borked prng.<br></blockquote><div><br></div><div class=3D"gmail_defa=
ult" style=3D"font-family:&quot;trebuchet ms&quot;,sans-serif">=E2=80=8BAh!=
 Ok, thanks. I missed a bit of subtlety there. Thanks.</div><div class=3D"g=
mail_default" style=3D"font-family:&quot;trebuchet ms&quot;,sans-serif">=E2=
=80=8B</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><span class=3D"">&gt; If it&#39;=
s a problem for &quot;good&quot; PRNGs, what&#39;s the<br>
&gt; high level advice for dealing with such attacks?<br>
<br>
</span>First is as Christian says is just to consider the attack and<br>
see how&#39;d it affect QUIC. E.g., count up the bits that are<br>
visible and supposed to be random and see how many there are.<br>
<br>
If you end up with say 32 bytes total, that may be a lot worse<br>
than ending up with 20, if faced with an attack like this. In<br>
Checkoway&#39;s work part of the attack extended a nonce from 20<br>
to 32 bytes, which moved the dual-ec attack work factor from<br>
2^96 down to 2^16, (see slide 39 of the presentation Christian<br>
referred to below - which was a great talk btw, I&#39;d highly<br>
recommend it).<br>
<br>
Depending on what that shows one might want to reduce the number<br>
of random bits that are visible in clear. One way to do that<br>
might be to make some of them depend on others, e.g. if there<br>
are two fields where we want random looking values then instead<br>
of getting both from the prng one could make the second a hash<br>
of the first and tell receivers to check that. Whether or not<br>
anything like that would be a good or bad idea will depend on<br>
the details of QUIC. (Details of which I&#39;m ignorant myself, sorry;-)<br=
>
<br>
Regardless of whether or not there&#39;s anything that needs changing<br>
you&#39;d probably want to consider adding some security considerations<br>
or implementation guidance text, maybe including a pointer to [1]<br>
(Checkoway&#39;s paper that won the anrp). While you could probably<br>
assume that e.g. the TLS library internal code has considered this,<br>
the QUIC code might not, so such text may be useful.<br>
<br>
But the reason I raised this with Christian is that at this stage<br>
in the development of QUIC, there&#39;s a design principle that the WG<br>
might want to consider as well, which is to minimise the number of<br>
prng-output cleartext bits visible to a network attacker. (I&#39;m<br>
assuming that the kind of change is feasible at this point still.)<br></blo=
ckquote><div><br></div><div class=3D"gmail_default" style=3D"font-family:&q=
uot;trebuchet ms&quot;,sans-serif">=E2=80=8BYup, makes sense. Thanks!</div>=
</div></div></div>

--001a1146855cf7d97b0554d9ea10--


From nobody Fri Jul 21 18:04:08 2017
Return-Path: <Michael.Bishop@microsoft.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 6754E124D37 for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 18:04:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.801
X-Spam-Level: 
X-Spam-Status: No, score=-4.801 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 C29S8Igt9-3i for <quic@ietfa.amsl.com>; Fri, 21 Jul 2017 18:04:05 -0700 (PDT)
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0105.outbound.protection.outlook.com [104.47.37.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 22A4B1242F7 for <quic@ietf.org>; Fri, 21 Jul 2017 18:04:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=yBRRBRy8BcdsWVxfS7XPs9hPeKbPUkG98iRhyJI2AVo=; b=WKlcd0qHDJx2eOxJl987Z1kBTEVmEPhZIVhvsYEz2hjK/Jd06cJIbsuyIq7g5iLnrS5lQ7INC3i5Z7ptCfvuYhkXVj3saPnsdxT4HJRZhrTGTZZWljTHL1zBAMcnKU4IXxDDL7fqYKncWx4iaoH2d7L8EN1nERZueLILbMLOzt4=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0701.namprd21.prod.outlook.com (10.175.142.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.1; Sat, 22 Jul 2017 01:04:03 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1282.008; Sat, 22 Jul 2017 01:04:03 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>
Subject: RE: HTTP requests on one stream #692
Thread-Topic: HTTP requests on one stream #692
Thread-Index: AdMCNJiq1/jFQyapRDqdWSVpnV2UvgAUdAmM
Date: Sat, 22 Jul 2017 01:04:03 +0000
Message-ID: <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012>
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
x-originating-ip: [2601:600:8080:5a28:20ae:33d8:26ec:d98a]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0701; 7:D8C1ysrTOBK4kuir2L/1YHwH6z88coTvBY4pp6/8vKqVZW3qkjWq9UuWfsYmoOiUFLsOTbey/rZl2KUiL+HzZ+GacoDUxvIHH2r0MT6tXlQswaxH5LtTmaSr62IX0aoCUHWvYwaYVWBaFwBXJLZbGu7bsYqDJwZA6vgcM4PTWC6dZbdXZvdhbCXaxl6HgnxmjHANKroq0b005kELlU9DhhOmhTj1pBDfTrler/IMUhzogOHH0MSKhxQ8/bX5rQQChEBLcB6KmDknLJVy0JXje29WgLw45bPFec4lq27Uv4THh8PsZ3i1BKl5S/zm81rnsCGqE4kZqrGbNTS7dcTXanx7HpBgvW8mEEZl0PmrblnxA+ajcayVrSuO0KiamqB8xhSwWOvul/P5MG05t1d946vdcE8SOq8/wtLkcL+DlEiAmECLNGysMDpaaIGEJgkPyiXsUnNjX8R+h8iF/pFnM+MarhEpJ9PvWtbBds5ByJGDNvZ2k1UO84SwgYI/4dw3oCe2Luqr9Zr/LmTq6fOKFn1FijvXL/N8eowZUMjcap7qg000ugozi/8HN8S2moYJdbjafa3cML5yIIAhNygENK4/ItjYUi04ROxnisz/B00zju9x1bueMYEZDQhC/LFydlxzEpzPejb556YtKJvCmKKkdUWH4EW1RT9NQ0EgtBOY3O7+FmYT1EAd5HSiZUzw
x-ms-office365-filtering-correlation-id: d0f9ab64-f2d8-4e75-0ff1-08d4d09d8b97
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095); SRVR:MWHPR21MB0701; 
x-ms-traffictypediagnostic: MWHPR21MB0701:
x-exchange-antispam-report-test: UriScan:(189930954265078)(100405760836317)(219752817060721)(127952516941037)(21748063052155);
x-microsoft-antispam-prvs: <MWHPR21MB070130E2BB7C84CB9DD560F187A50@MWHPR21MB0701.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6055026)(61426038)(61427038)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095); SRVR:MWHPR21MB0701; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095); SRVR:MWHPR21MB0701; 
x-forefront-prvs: 0376ECF4DD
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39400400002)(39410400002)(39840400002)(39860400002)(39850400002)(39450400003)(47760400005)(199003)(377454003)(189002)(81156014)(106356001)(5660300001)(74316002)(99286003)(6116002)(10090500001)(101416001)(102836003)(25786009)(86362001)(2900100001)(229853002)(8676002)(6246003)(86612001)(77096006)(3660700001)(76176999)(50986999)(54356999)(2906002)(5005710100001)(236005)(38730400002)(53936002)(606006)(81166006)(3280700002)(6436002)(790700001)(8990500004)(6506006)(55016002)(7736002)(10290500003)(8936002)(72206003)(97736004)(14454004)(478600001)(105586002)(189998001)(33656002)(9686003)(7696004)(54896002)(6306002)(53546010)(2950100002)(68736007); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0701; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB0141497D0A30342613752E0787A50MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2017 01:04:03.4270 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0701
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Gt6ZjkXsThfErxbZGB6YEFwio0U>
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: Sat, 22 Jul 2017 01:04:07 -0000

--_000_MWHPR21MB0141497D0A30342613752E0787A50MWHPR21MB0141namp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

No, the consensus both in Paris and Prague was a single stream, which means=
 the DATA frame is back to stay.  The HPACK-without-dynamic-table piece is =
temporary, until we pick a direction for header compression.

Sent from my Windows 10 phone

From: Lucas Pardue<mailto:Lucas.Pardue@bbc.co.uk>
Sent: Friday, July 21, 2017 8:20 AM
To: IETF QUIC WG<mailto:quic@ietf.org>
Subject: HTTP requests on one stream #692

Hi,

Apologies if this was discussed already in Prague but I=92d like some clari=
fication on the intended lifetime scope of the changes in PR#692<https://na=
01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fquicw=
g%2Fbase-drafts%2Fpull%2F692%2Ffiles&data=3D02%7C01%7Cmichael.bishop%40micr=
osoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141af91ab2d7cd011=
db47%7C1%7C0%7C636362472283415347&sdata=3DdZMXpiCYo5b7tVuKrbJCsnaPP42mqRVi%=
2B3x4garWrvI%3D&reserved=3D0>.


  1.  Is the intention that this change unblocks specification / developmen=
t so that the WG can continue?
  2.  Will these changes be unwound once progress has been made?
     *   The DATA frame has been resurrected (I presume to demark frames in=
 the same stream). Will it be struck with a wooden stake in the future, or =
continue to hang around?

Thanks
Lucas

--_000_MWHPR21MB0141497D0A30342613752E0787A50MWHPR21MB0141namp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1665667965;
	mso-list-type:hybrid;
	mso-list-template-ids:-1030855426 134807567 134807577 134807579 134807567 =
134807577 134807579 134807567 134807577 134807579;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-GB" link=3D"#0563C1" vlink=3D"#954F72">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1665667965;
	mso-list-type:hybrid;
	mso-list-template-ids:-1030855426 134807567 134807577 134807579 134807567 =
134807577 134807579 134807567 134807577 134807579;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style>
<div class=3D"WordSection1">
<p class=3D"MsoNormal">No, the consensus both in Paris and Prague was a sin=
gle stream, which means the DATA frame is back to stay.&nbsp; The HPACK-wit=
hout-dynamic-table piece is temporary, until we pick a direction for header=
 compression.</p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Sent from my Windows 10 phone</p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div style=3D"mso-element:para-border-div;border:none;border-top:solid #E1E=
1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class=3D"MsoNormal" style=3D"border:none;padding:0in"><b>From: </b><a hr=
ef=3D"mailto:Lucas.Pardue@bbc.co.uk">Lucas Pardue</a><br>
<b>Sent: </b>Friday, July 21, 2017 8:20 AM<br>
<b>To: </b><a href=3D"mailto:quic@ietf.org">IETF QUIC WG</a><br>
<b>Subject: </b>HTTP requests on one stream #692</p>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Apologies if this was discussed already in Prague bu=
t I=92d like some clarification on the intended lifetime scope of the chang=
es in
<a href=3D"https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F=
%2Fgithub.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&amp;data=3D02%7C0=
1%7Cmichael.bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f=
988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636362472283415347&amp;sdata=3DdZMX=
piCYo5b7tVuKrbJCsnaPP42mqRVi%2B3x4garWrvI%3D&amp;reserved=3D0">
PR#692</a>. <o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"1">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l0 level1 =
lfo1">Is the intention that this change unblocks specification / developmen=
t so that the WG can continue?
<o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso=
-list:l0 level1 lfo1">Will these changes be unwound once progress has been =
made?<o:p></o:p>
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"a">
<li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l0 level2 =
lfo1">The DATA frame has been resurrected (I presume to demark frames in th=
e same stream). Will it be struck with a wooden stake in the future, or con=
tinue to hang around?<o:p></o:p></li></ol>
</li></ol>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks<o:p></o:p></p>
<p class=3D"MsoNormal">Lucas<o:p></o:p></p>
</div>
</div>
</body>
</html>

--_000_MWHPR21MB0141497D0A30342613752E0787A50MWHPR21MB0141namp_--


From nobody Sat Jul 22 01:46:52 2017
Return-Path: <martin.thomson@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 5CBD0131C58 for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 01:46:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 nXjTInMSjH6O for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 01:46:50 -0700 (PDT)
Received: from mail-io0-x230.google.com (mail-io0-x230.google.com [IPv6:2607:f8b0:4001:c06::230]) (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 4BF59127201 for <quic@ietf.org>; Sat, 22 Jul 2017 01:46:50 -0700 (PDT)
Received: by mail-io0-x230.google.com with SMTP id g13so29361510ioj.5 for <quic@ietf.org>; Sat, 22 Jul 2017 01:46:50 -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=Xtv74Z9LmbF+3+zILl6SIGCYOFtzi4F/zGANwuBx1S4=; b=ZU8RUqRC0WghFitl6jgGroqs18DmwvVUPeXC9szMh+8RGOuViCQaQPuJLsDaP4d8Fj xVtkktthdNdKUqM5LDEXU0JcHd6DWjEw80+mvdiYfMhK9XxtrQXOg4efRfAL/xZZfvI4 V1UNzZQt1GM7oasE6/sSTnb24oozn96bOz1ARYbP5eJr21pr9I/dtj2X/AuayDEl2cUZ 4j2nKHVPpLinczTa8CUkIWI3OFR+Xwlak/6Bbe9mSzzPDUhj1RoqzhZWhI119RwTCTh+ nqVeqGnS0ou6PcpVwgVg927aDxPJ1pi0FGPc1H3DX52yTUZRLG4opigjMNhRS7hAPQmU qoHQ==
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=Xtv74Z9LmbF+3+zILl6SIGCYOFtzi4F/zGANwuBx1S4=; b=Q47BD+jO5U28reloiujvIbTlHqFI6ph9l3t9vxtkvJaAOPWddwVVFvWcqc1fnCvMW0 Hs18t55Sj9VyTTZimsE7rUtHIRijbWIMv7w3tVUuhFYVH82ODt921V34ebJRcBaMs8V5 SH2WdaT6u0V8aUSxM7ftxEAHKSsrVm3CSBogThB6sApKkEmr5Q4GxdrSJ3OfmmLijuzQ 9zWQuXwuRGVL6W0wqbK/lukm13kGjQyWPTTA+IMKcyVAU1JOMHZMVmvCOlkTTekI5QKQ 8GHm1Ai2LVVutksSY86rpS6tFI9Dt7VVBovpsSssKTQEUuyL2/XXLZeDNG6oQXtlYrVV a52g==
X-Gm-Message-State: AIVw110JaOHYB6PpDk8krZ6bBpYJaIQlfOLoK/YueqgEnhs8g2VySq0r MvB0CuD77X3KaQqxZLXHTjP2QXQbZg==
X-Received: by 10.107.16.196 with SMTP id 65mr10907641ioq.297.1500713209612; Sat, 22 Jul 2017 01:46:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Sat, 22 Jul 2017 01:46:48 -0700 (PDT)
In-Reply-To: <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Sat, 22 Jul 2017 10:46:48 +0200
Message-ID: <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>
Subject: Re: Randomizer state attacks
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Cc: Ryan Hamilton <rch@google.com>, Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/loEWZw683Y6pz1_JCYTr14_biHY>
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: Sat, 22 Jul 2017 08:46:51 -0000

On 21 July 2017 at 21:50, Stephen Farrell <stephen.farrell@cs.tcd.ie> wrote:
> [...] there's a design principle that the WG
> might want to consider as well, which is to minimise the number of
> prng-output cleartext bits visible to a network attacker.

This principle would have to apply to a peer as well.  That is, even
encrypted bits count.

I'm a little leery of this proposed requirement.  There are many
things that are improved by the injection of entropy.  Think traffic
analysis resistance for instance (disclaimer: I have no good strategy
there) or the ability to verify that a peer is truly on path for the
purposes of DoS protection.  Insisting that that entropy be minimal
might be handcuffing ourselves.


From nobody Sat Jul 22 05:05:09 2017
Return-Path: <stephen.farrell@cs.tcd.ie>
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 AE549129432 for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 05:05:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.302
X-Spam-Level: 
X-Spam-Status: No, score=-4.302 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
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 4kZgx_3QrDx9 for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 05:05:07 -0700 (PDT)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 07DCF127337 for <quic@ietf.org>; Sat, 22 Jul 2017 05:05:05 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id CCFF0BE2F; Sat, 22 Jul 2017 13:05:03 +0100 (IST)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AUpghbXWVoh4; Sat, 22 Jul 2017 13:05:02 +0100 (IST)
Received: from [10.244.2.100] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id 774A1BE2D; Sat, 22 Jul 2017 13:05:02 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1500725102; bh=ksdX/YZGg024MxuTma0XcHG2yRH3PXPMrt5VHjjp+wI=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=Nvk9mDHlYD6ZCJIJeGgGi2jrDIEvdkVYhF86txH5Nf3+i1AWprt6BCM+qtZ4tpvBK h4xaKd4HfQTXiu7/Gq1DRw5vHu5PzluqXyIN8A9+uioWliilb75c9JXAS/V1Ih+kD1 kjAKXZqinPNUZPXmgD42XHAYevxrTROOI03BJKeM=
Subject: Re: Randomizer state attacks
To: Martin Thomson <martin.thomson@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>, Ryan Hamilton <rch@google.com>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie> <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Openpgp: id=D66EA7906F0B897FB2E97D582F3C8736805F8DA2; url=
Message-ID: <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
Date: Sat, 22 Jul 2017 13:05:01 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="nktFAHqiHlP9g6P9PRNLPlp37jJdu2wXE"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/TWfBKK9dGVTpG4mnBw2FeztIsKw>
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: Sat, 22 Jul 2017 12:05:08 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--nktFAHqiHlP9g6P9PRNLPlp37jJdu2wXE
Content-Type: multipart/mixed; boundary="CCISmJhMcXnCqtMIME96WWiktKxnSribi";
 protected-headers="v1"
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
To: Martin Thomson <martin.thomson@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>,
 Ryan Hamilton <rch@google.com>
Message-ID: <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
Subject: Re: Randomizer state attacks
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
 <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
 <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
 <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>
In-Reply-To: <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>

--CCISmJhMcXnCqtMIME96WWiktKxnSribi
Content-Type: text/plain; charset=utf-8
Content-Language: en-GB
Content-Transfer-Encoding: quoted-printable



On 22/07/17 09:46, Martin Thomson wrote:
> On 21 July 2017 at 21:50, Stephen Farrell <stephen.farrell@cs.tcd.ie> w=
rote:
>> [...] there's a design principle that the WG
>> might want to consider as well, which is to minimise the number of
>> prng-output cleartext bits visible to a network attacker.
>=20
> This principle would have to apply to a peer as well.  That is, even
> encrypted bits count.

I'm not sure I understand or agree there. How would encrypted bits
affect a dual-ec kind of attack? Or did you mean something else?

>=20
> I'm a little leery of this proposed requirement. =20

Leery is fair - thinking about the attack and deciding what, if
anything, to do, is right.

> There are many
> things that are improved by the injection of entropy.  Think traffic
> analysis resistance for instance (disclaimer: I have no good strategy
> there) or the ability to verify that a peer is truly on path for the
> purposes of DoS protection.  Insisting that that entropy be minimal
> might be handcuffing ourselves.

Minimising visibility of cleartext prng-output is not the same as
minimising entropy. For example, prior to considering this putative
new principle, it'd be natural to say that a connection ID be
random, and it'd be natural to implement by getting a value from a
prng and using that. But one could equally generate a connection ID
from something else (e.g. via a hash) that has sufficient randomness
(Christian suggested the first flight, though I may be getting the
term wrong there), and achieve the properties one needs, but without
exposing bits output from the prng in clear. If one did follow
Christian's idea there, then a peer could verify that too - the idea
being that'd overall make dual-ec like attacks harder.

Cheers,
S.


>=20
>=20


--CCISmJhMcXnCqtMIME96WWiktKxnSribi--

--nktFAHqiHlP9g6P9PRNLPlp37jJdu2wXE
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJZcz9tAAoJEC88hzaAX42i1mIIAJenAqEO+7daLn8tMk/nA/xR
ojJZk402WrG2S9+DsyAkuCMc3fLUoDWIYoHCsAHDPpu8aWNYP7X82OeKMIHYPK3X
XmYA7S/a/d+zFZ7bXMRcoeuxbtLN5uhMR7h9iPcG8rEt6m7VINZfrNDWGqjYaBVd
qJuAuvKv5o/a295ew5OCzcfjqgcPMc7xPVnBX21spqPeDKx+qS5Gar1xASwdeItn
3XruCPieUtQ4iyqaEKfMXAmbtbMJ+ASQEOGeN6CttiYrqQFWsS5iUZ7pEmCiiszO
b6boU4AZIkkwXvZ4AfDU7aKSCp9MUK28QGezle3GjE+ohMpSwgMrMNvHOLm4hBw=
=c0t+
-----END PGP SIGNATURE-----

--nktFAHqiHlP9g6P9PRNLPlp37jJdu2wXE--


From nobody Sat Jul 22 09:43:23 2017
Return-Path: <mikkelfj@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 805D312EB99 for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 09:43:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 3jCwcXID1FSj for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 09:43:20 -0700 (PDT)
Received: from mail-ua0-x22f.google.com (mail-ua0-x22f.google.com [IPv6:2607:f8b0:400c:c08::22f]) (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 7233612EB8C for <quic@ietf.org>; Sat, 22 Jul 2017 09:43:20 -0700 (PDT)
Received: by mail-ua0-x22f.google.com with SMTP id q25so40263289uah.1 for <quic@ietf.org>; Sat, 22 Jul 2017 09:43:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=tDUCRfZ2StTwWAGuBT+9XIP5XyzvNHXs2ZstYLzsXhw=; b=QjI9Tgr4nHEm59b/958k88xwpWoIpyzz5edwnqa+DoKLNDUGTW53fw36seDkfE5Fsa cY3Ft8BsLpcZ8xQrPyoZ4rPBaX5uuWQjDq2u3yuLkb17v+vr3HjhoDhcKQODhuAsF1jt 8fKtrUNl90lmaxX7zszsxWA3TLFhrZrSFoIyxZD3P2ry3r9Oys4w3WR8EZ6pYJP4YF9s RnRNIZ/xrcPI/xs+t7T0RGGEz5NA4jvn47RNwO+q5kB6GKOjQr4p1dKFjkr1n5IZ6I82 LP0yU1rCSeyDOSWdrgiN5jI7ekEvBLLQ1UrdGcoGATzH/YVKnJSE+jf0Rg4gEFh8jCWT JdFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=tDUCRfZ2StTwWAGuBT+9XIP5XyzvNHXs2ZstYLzsXhw=; b=TB4VxonmpgtCXHfySxcfUCm/8vxX3BzeI7B4I/BFL9fV8Qfcvt8jPC/TASsJolvlJg sa7Kblzw6I53LfukbJ2dVe5dDaQJYPyTceBr/NTGKb6f8j/z2y4hhHFQPOHXF58ssfOi K/haCGXw41dCi4OBEa/yfSTJ8u31RwylZo8v1xkJBZrIPOfcZQCeZE/PtL/vIEadBqPE V8n0aoa37R6i2rrKMod0Lz4FHrFH2anmqg/f1eodn1fO946zSt770VmuuDARjG3VRkpc E9Raz6Ta2IqxkO1JHN+ASJN/n5jRRB8rIDHC3Ghfp9u8rwkIzfzSTZMUeVKcsWdZ0TYr UcGg==
X-Gm-Message-State: AIVw110my+jNnJMQV2ugRnG7PPxYbeZGT4cgqQF7icYeE0HHc51R6YrR FvxOy46PQmi1gQdgXkux4gG/fucctw==
X-Received: by 10.176.16.17 with SMTP id f17mr6922663uab.167.1500741799453; Sat, 22 Jul 2017 09:43:19 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Sat, 22 Jul 2017 09:43:18 -0700
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie> <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com> <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Sat, 22 Jul 2017 09:43:18 -0700
Message-ID: <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com>
Subject: Re: Randomizer state attacks
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>, Martin Thomson <martin.thomson@gmail.com>
Cc: Ryan Hamilton <rch@google.com>, Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="f403045e32e8db2cba0554eaad0d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/RY24FArdlq_UVdW9dug0A2aqXW4>
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: Sat, 22 Jul 2017 16:43:22 -0000

--f403045e32e8db2cba0554eaad0d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> But one could equally generate a connection ID
from something else (e.g. via a hash) that has sufficient randomness
(Christian suggested the first flight, though I may be getting the
term wrong there), and achieve the properties one needs, but without
exposing bits output from the prng in clear.

The problem is similar deriving traffic keys from master session keys and
one could argue that ID generation should be seen as another derived crypto
key if the PRNG is not able to deliver an independent stream on its own.

But it cannot be done naively by just fishing from some entropy pool. There
isn=E2=80=99t unlimited entropy in the system, the PRNG=E2=80=99s job is to=
 harvest this
and produces an pseudo random stream of bytes that does not lead back to
the internal state. Doing this behind the back of the PRNG might allow an
attacker to go directly to the entropy source of the PRNG seed, which is
bad.

>From what I understand these are some the major pitfalls with PRNG=E2=80=99=
s:

1. inadequate original entropy: No matter how you hash, permutate and
encrypt, there are only so many options once you know the algorithm. Create
a huge database of likely streams and decrypt instantly. This can take down
the best PRNG (and this probably happens somewhere, right now).
2. trust a single entropy source (like possibly backdoor=E2=80=99ed on-chip=
 PRNG)
or a faulty OS implementation, or vice versa, avoiding them entirely and
miss quality entropy.
3. entropy pollution: allowing an attacker to feed bad entropy such that
the PRNG moves to a predictable state space. A good PRNG will only increase
entropy but apparently not all PRNGs have this property. Fortuna attempts
to address this by hashing various entropy sources.
4. failure to isolate quality entropy from output. Fortunate feeds entropy
state into AES counter mode.
5. premature draining of entropy source - keep reading from /dev/urandom
instead hashing enough state to produce an unguessable AES key, then feed
random data from that key. Draining /dev/urandom would just enter case 1.
fast unless the OS has equivalent protection, which is far from guaranteed.
6. failure to adhere to guidelines of PRNG assumptions. For example when
and what something should be independent by some measure.
7. Failure to ensure forward secrecy in case the PRNG state is breached.
Fortunate does some work to protect against this, but I think more could be
done (it=E2=80=99s been a while since I looked). Having this property makes=
 it hard
break into a session after the fact, especially when other crypto does have
forward secrecy.

I would assume 6. is not necessarily the most likely vulnerability, but it
is very difficult to understand, so a quality PRNG ought to make it
self reasonably idiot proof in this respect. Also, if an attacker is able
to random data directly from tap via some other channel where gigabytes of
state can be drawn trivially. No matter how good the PRNG, if this allows
the attacker to guess the original entropy seed, security is not a thing.

Standard crypto libraries are vulnerable to the platform the run on because
some I have looked at just looks for a system provided PRNG, and then it
can all go wrong in a simple build configuration, or by using the wrong OS.
A good library ought, IMHO, to provide a quality PRNG of its own and use
the OS as an entropy source, not as a the direct random source. They could
also improve by not having a single global PRNG context that requires
locking for every value needed.

So there plenty of pitfalls, but requiring that the QUIC implementation to
protect against bad PRNG rather than the crypto library seems wrong to me.
Granted, you don=E2=80=99t need to make the protocol more vulnerable than
necessary, and indeed, I have also thought about all these random values
being released into the wild is an easy way to make serious crypto mistakes=
.
.



Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 22 July 2017 at 14.05.13, Stephen Farrell (stephen.farrell@cs.tcd.ie)
wrote:

But one could equally generate a connection ID
from something else (e.g. via a hash) that has sufficient randomness
(Christian suggested the first flight, though I may be getting the
term wrong there), and achieve the properties one needs, but without
exposing bits output from the prng in clear. I

--f403045e32e8db2cba0554eaad0d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto"><span style=3D"font-family:&#39;helvetica Neue&#3=
9;,helvetica;font-size:14px">&gt; But one could equally generate a connecti=
on ID=C2=A0</span><br style=3D"font-family:&#39;helvetica Neue&#39;,helveti=
ca;font-size:14px"><span style=3D"font-family:&#39;helvetica Neue&#39;,helv=
etica;font-size:14px">from something else (e.g. via a hash) that has suffic=
ient randomness=C2=A0</span><br style=3D"font-family:&#39;helvetica Neue&#3=
9;,helvetica;font-size:14px"><span style=3D"font-family:&#39;helvetica Neue=
&#39;,helvetica;font-size:14px">(Christian suggested the first flight, thou=
gh I may be getting the=C2=A0</span><br style=3D"font-family:&#39;helvetica=
 Neue&#39;,helvetica;font-size:14px"><span style=3D"font-family:&#39;helvet=
ica Neue&#39;,helvetica;font-size:14px">term wrong there), and achieve the =
properties one needs, but without=C2=A0</span><br style=3D"font-family:&#39=
;helvetica Neue&#39;,helvetica;font-size:14px"><span style=3D"font-family:&=
#39;helvetica Neue&#39;,helvetica;font-size:14px">exposing bits output from=
 the prng in clear.</span></div><div id=3D"bloop_customfont" style=3D"font-=
family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line=
-height:auto"><span style=3D"font-family:&#39;helvetica Neue&#39;,helvetica=
;font-size:14px"><br></span></div><div id=3D"bloop_customfont" style=3D"fon=
t-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;li=
ne-height:auto"><span style=3D"font-family:&#39;helvetica Neue&#39;,helveti=
ca;font-size:14px">The problem is similar deriving traffic keys from master=
 session keys and one could argue that ID generation should be seen as anot=
her derived crypto key if the PRNG is not able to deliver an independent st=
ream on its own.</span></div><div id=3D"bloop_customfont" style=3D"font-fam=
ily:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-he=
ight:auto"><span style=3D"font-family:&#39;helvetica Neue&#39;,helvetica;fo=
nt-size:14px"><br></span></div><div id=3D"bloop_customfont" style=3D"font-f=
amily:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-=
height:auto"><div id=3D"bloop_customfont" style=3D"margin:0px"><font face=
=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px">But it cannot=
 be done naively by just fishing from some entropy pool. There isn=E2=80=99=
t unlimited entropy in the system, the PRNG=E2=80=99s job is to harvest thi=
s and produces an pseudo random stream of bytes that does not lead back=C2=
=A0to the internal state. Doing this behind the back of the PRNG might allo=
w an attacker to go directly to the entropy source of the PRNG seed, which =
is bad.</span></font></div></div><div id=3D"bloop_customfont" style=3D"marg=
in:0px"><font face=3D"helvetica Neue, helvetica"><span style=3D"font-size:1=
4px"><br></span></font></div><div id=3D"bloop_customfont" style=3D"margin:0=
px"><font face=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px"=
>From what I understand these are some the major pitfalls with PRNG=E2=80=
=99s:</span></font></div><div id=3D"bloop_customfont" style=3D"margin:0px">=
<font face=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px"><br=
></span></font></div><div id=3D"bloop_customfont" style=3D"margin:0px"><fon=
t face=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px">1. inad=
equate original entropy: No matter how=C2=A0you hash, permutate and encrypt=
, there are only so many options once=C2=A0you know the algorithm. Create a=
 huge database of likely streams and decrypt instantly. This can=C2=A0take =
down the best PRNG (and this=C2=A0probably happens somewhere, right now).</=
span></font></div><div id=3D"bloop_customfont" style=3D"margin:0px"><font f=
ace=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px">2. trust a=
 single entropy source (like possibly backdoor=E2=80=99ed on-chip PRNG) or =
a faulty OS implementation, or vice versa, avoiding them entirely and miss =
quality entropy.</span></font></div><div id=3D"bloop_customfont" style=3D"m=
argin:0px"><font face=3D"helvetica Neue, helvetica"><span style=3D"font-siz=
e:14px">3. entropy pollution: allowing an attacker to feed bad entropy such=
 that the PRNG moves to a predictable state space. A good PRNG will only=C2=
=A0increase entropy but apparently not all PRNGs have this property. Fortun=
a attempts to address this by hashing=C2=A0various entropy sources.</span><=
/font></div><div id=3D"bloop_customfont" style=3D"margin:0px"><font face=3D=
"helvetica Neue, helvetica"><span style=3D"font-size:14px">4. failure to=C2=
=A0isolate quality entropy from output. Fortunate feeds entropy state into =
AES counter mode.</span></font></div><div id=3D"bloop_customfont" style=3D"=
margin:0px"><font face=3D"helvetica Neue, helvetica"><span style=3D"font-si=
ze:14px">5. premature draining of entropy source - keep reading from /dev/u=
random instead hashing enough state to=C2=A0produce an unguessable AES key,=
 then feed random data from that key. Draining /dev/urandom would just ente=
r case 1. fast unless the OS has equivalent=C2=A0protection,=C2=A0which is =
far from guaranteed.</span></font></div><div id=3D"bloop_customfont" style=
=3D"margin:0px"><font face=3D"helvetica Neue, helvetica"><span style=3D"fon=
t-size:14px">6. failure to adhere to guidelines of PRNG assumptions. For ex=
ample when and what something should be independent by some=C2=A0measure.</=
span></font></div><div id=3D"bloop_customfont" style=3D"margin:0px"><font f=
ace=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px">7. Failure=
 to ensure forward secrecy in case the PRNG state is breached. Fortunate do=
es some work to protect against this, but I think more could be done (it=E2=
=80=99s been a while since I looked). Having this property makes it hard br=
eak into a=C2=A0session after the fact, especially when other crypto does h=
ave forward secrecy.</span></font></div><div id=3D"bloop_customfont" style=
=3D"margin:0px"><br></div><div id=3D"bloop_customfont" style=3D"margin:0px"=
><font face=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px">I =
would assume 6. is not necessarily the most likely vulnerability, but it is=
 very difficult to understand, so a quality PRNG ought to make it self=C2=
=A0reasonably idiot proof in this respect. Also, if an attacker is able to =
random data directly from tap via some other channel where=C2=A0gigabytes o=
f state can be drawn trivially. No matter how good the PRNG, if this allows=
 the attacker to guess the original entropy seed, security is not a thing.<=
/span></font></div><div id=3D"bloop_customfont" style=3D"margin:0px"><font =
face=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px"><br></spa=
n></font></div><div id=3D"bloop_customfont" style=3D"margin:0px"><font face=
=3D"helvetica Neue, helvetica"><span style=3D"font-size:14px">Standard cryp=
to libraries are vulnerable to the platform the run on=C2=A0because some I =
have looked at just looks for a system provided PRNG, and then it can all g=
o wrong in a=C2=A0simple build configuration, or by using the wrong OS. A g=
ood library ought, IMHO, to provide a=C2=A0quality PRNG of its own and use =
the OS as an entropy source, not as a the direct random source. They=C2=A0c=
ould also improve by not having a single global PRNG context that requires =
locking for every value needed.</span></font></div><div id=3D"bloop_customf=
ont" style=3D"margin:0px"><br></div><div id=3D"bloop_customfont" style=3D"m=
argin:0px">So there plenty of pitfalls, but requiring that the QUIC impleme=
ntation to protect against bad PRNG rather than the crypto library seems wr=
ong to me. Granted, you don=E2=80=99t need to make the protocol more vulner=
able than necessary, and indeed, I have also thought about all these random=
 values being released into the wild is an easy way to make serious crypto =
mistakes.<span style=3D"font-family:&#39;helvetica Neue&#39;,helvetica;font=
-size:14px">.</span></div><div id=3D"bloop_customfont" style=3D"margin:0px"=
><br></div><div id=3D"bloop_customfont" style=3D"margin:0px"><br></div> <br=
> <div id=3D"bloop_sign_1500738575102737920" class=3D"bloop_sign"><div styl=
e=3D"font-family:helvetica,arial;font-size:13px">Kind Regards,</div><div st=
yle=3D"font-family:helvetica,arial;font-size:13px">Mikkel Fahn=C3=B8e J=C3=
=B8rgensen<br><br></div></div> <br><p class=3D"airmail_on">On 22 July 2017 =
at 14.05.13, Stephen Farrell (<a href=3D"mailto:stephen.farrell@cs.tcd.ie">=
stephen.farrell@cs.tcd.ie</a>) wrote:</p> <blockquote type=3D"cite" class=
=3D"clean_bq"><span><div><span style=3D"color:rgb(0,0,0);font-family:&#39;h=
elvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-=
caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px;backgrou=
nd-color:rgb(255,255,255);display:inline!important;float:none">But one coul=
d equally generate a connection ID<span class=3D"Apple-converted-space">=C2=
=A0</span></span><br style=3D"color:rgb(0,0,0);font-family:&#39;helvetica N=
eue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:norma=
l;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px=
;text-transform:none;white-space:normal;word-spacing:0px"><span style=3D"co=
lor:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14p=
x;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spac=
ing:normal;text-align:start;text-indent:0px;text-transform:none;white-space=
:normal;word-spacing:0px;background-color:rgb(255,255,255);display:inline!i=
mportant;float:none">from something else (e.g. via a hash) that has suffici=
ent randomness<span class=3D"Apple-converted-space">=C2=A0</span></span><br=
 style=3D"color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;f=
ont-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal=
;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none=
;white-space:normal;word-spacing:0px"><span style=3D"color:rgb(0,0,0);font-=
family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;=
font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-alig=
n:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing=
:0px;background-color:rgb(255,255,255);display:inline!important;float:none"=
>(Christian suggested the first flight, though I may be getting the<span cl=
ass=3D"Apple-converted-space">=C2=A0</span></span><br style=3D"color:rgb(0,=
0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;font-sty=
le:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal=
;text-align:start;text-indent:0px;text-transform:none;white-space:normal;wo=
rd-spacing:0px"><span style=3D"color:rgb(0,0,0);font-family:&#39;helvetica =
Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:norm=
al;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0p=
x;text-transform:none;white-space:normal;word-spacing:0px;background-color:=
rgb(255,255,255);display:inline!important;float:none">term wrong there), an=
d achieve the properties one needs, but without<span class=3D"Apple-convert=
ed-space">=C2=A0</span></span><br style=3D"color:rgb(0,0,0);font-family:&#3=
9;helvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-varia=
nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;te=
xt-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><spa=
n style=3D"color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;=
font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:norma=
l;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:non=
e;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);dis=
play:inline!important;float:none">exposing bits output from the prng in cle=
ar. I</span></div></span></blockquote></body></html>

--f403045e32e8db2cba0554eaad0d--


From nobody Sat Jul 22 10:58:11 2017
Return-Path: <stephen.farrell@cs.tcd.ie>
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 4039C131838 for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 10:58:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.302
X-Spam-Level: 
X-Spam-Status: No, score=-4.302 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
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 aDbQNIjecVlL for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 10:58:08 -0700 (PDT)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 51D67124234 for <quic@ietf.org>; Sat, 22 Jul 2017 10:58:07 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id C45A0BE56; Sat, 22 Jul 2017 18:58:05 +0100 (IST)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sboWJVUWxxIM; Sat, 22 Jul 2017 18:58:04 +0100 (IST)
Received: from [10.244.2.100] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id 399A6BE2C; Sat, 22 Jul 2017 18:58:04 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1500746284; bh=7Kui01eYIP7JlPz8PrNko3eYhOmGFM5XD7pvAuFh8hc=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=nKb/SZpyV/ioYT514Kvv/k5Nkvzsrtn6q7vbfbEFgWD8nMENktj5/q26+lQXhrkvy /C0tMCFI2m6ZDd11i9x0uOfvENywpJQ+vTBijnWhVIQH2vhIOIWA658ReWIf470S0Z 4a28/TQwlVExYyhRZYvIn1EeNM4WCxtY6KdUbOTI=
Subject: Re: Randomizer state attacks
To: =?UTF-8?Q?Mikkel_Fahn=c3=b8e_J=c3=b8rgensen?= <mikkelfj@gmail.com>, Martin Thomson <martin.thomson@gmail.com>
Cc: Ryan Hamilton <rch@google.com>, Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie> <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com> <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie> <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Openpgp: id=D66EA7906F0B897FB2E97D582F3C8736805F8DA2; url=
Message-ID: <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie>
Date: Sat, 22 Jul 2017 18:58:03 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="jaj2x8BkpIXu3e1RoDkDHuKQrXep9stfV"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/s69h4T49wifnuc8LUY3WCvnS_1w>
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: Sat, 22 Jul 2017 17:58:10 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--jaj2x8BkpIXu3e1RoDkDHuKQrXep9stfV
Content-Type: multipart/mixed; boundary="We78dFovJL0FQXrv5I30MmTKmONbbPHic";
 protected-headers="v1"
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
To: =?UTF-8?Q?Mikkel_Fahn=c3=b8e_J=c3=b8rgensen?= <mikkelfj@gmail.com>,
 Martin Thomson <martin.thomson@gmail.com>
Cc: Ryan Hamilton <rch@google.com>, Christian Huitema <huitema@huitema.net>,
 IETF QUIC WG <quic@ietf.org>
Message-ID: <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie>
Subject: Re: Randomizer state attacks
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
 <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
 <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
 <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>
 <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
 <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com>
In-Reply-To: <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com>

--We78dFovJL0FQXrv5I30MmTKmONbbPHic
Content-Type: text/plain; charset=utf-8
Content-Language: en-GB
Content-Transfer-Encoding: quoted-printable



On 22/07/17 17:43, Mikkel Fahn=C3=B8e J=C3=B8rgensen wrote:
> So there plenty of pitfalls, but requiring that the QUIC implementation=
 to
> protect against bad PRNG rather than the crypto library seems wrong to =
me.
> Granted, you don=E2=80=99t need to make the protocol more vulnerable th=
an
> necessary, and indeed, I have also thought about all these random value=
s
> being released into the wild is an easy way to make serious crypto mist=
akes.

I'd assert that lack of entropy or a significantly imperfect prng
is a different issue, compared to the dual-ec attack.

Dual-ec is a deliberate attack such that the prng output looks nicely
random unless you're the attacker, in which case you can guess the
internal state of the prng without much effort if you can see enough
cleartext prng output bits.

And the question for protocol design is whether we can make such
attacks harder and then if doing so is worthwhile.

So I agree that we don't really need to consider issues related to
entropy here, (that mostly being a crypto-library responsibility)
unless the WG somehow go over the top and produce something with
too few states, though I'd say that's pretty unlikely:-)

But we should consider the dual-ec and similar attacks.

Cheers,
S.


--We78dFovJL0FQXrv5I30MmTKmONbbPHic--

--jaj2x8BkpIXu3e1RoDkDHuKQrXep9stfV
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJZc5IrAAoJEC88hzaAX42iXNIH/jJR3lUQcdYEvdQdFw8kB768
U6oIbtFtPbXi8CoIBuyJWeBL/nN72siedrPpK1uK3vgz5E93k4hIsY7XC2HUCbWi
+dW+er/gEEVuXN/qDr12GxOS4szUcTifCP9qwc5fb2MvlaHRJtfgPThaCK7ef5G3
zGV+37PHL53UMGwVzBytueTRsw5pfO3SrbisUJllXHwjWZWwUqz1RXp3QzPI5qg0
JWlvlidWaHfzgQAYPO7lIkMLJC0t3gFwPz1VpjNLuufFZtu+dV7j7CZFWGbAY+WK
mCnDWxxvpCJtLosF3m2cEGBqRf9MsYysjUJKYIKPlhJ8RXDfBWPR1tCF6Q5fQs8=
=XYwh
-----END PGP SIGNATURE-----

--jaj2x8BkpIXu3e1RoDkDHuKQrXep9stfV--


From nobody Sat Jul 22 17:34:18 2017
Return-Path: <huitema@huitema.net>
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 D9F5A1300CE for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 17:34:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 O8iqRNcnQsbF for <quic@ietfa.amsl.com>; Sat, 22 Jul 2017 17:34:15 -0700 (PDT)
Received: from mx43-out1.antispamcloud.com (mx43-out1.antispamcloud.com [138.201.61.189]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 498201201F2 for <quic@ietf.org>; Sat, 22 Jul 2017 17:34:15 -0700 (PDT)
Received: from xsmtp02.mail2web.com ([168.144.250.215]) by mx43.antispamcloud.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.89) (envelope-from <huitema@huitema.net>) id 1dZ4qb-0007qI-1B for quic@ietf.org; Sun, 23 Jul 2017 02:34:13 +0200
Received: from [10.5.2.13] (helo=xmail03.myhosting.com) by xsmtp02.mail2web.com with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from <huitema@huitema.net>) id 1dZ4qY-0002qD-As for quic@ietf.org; Sat, 22 Jul 2017 20:34:11 -0400
Received: (qmail 5765 invoked from network); 23 Jul 2017 00:34:09 -0000
Received: from unknown (HELO [192.168.1.103]) (Authenticated-user:_huitema@huitema.net@[172.56.42.66]) (envelope-sender <huitema@huitema.net>) by xmail03.myhosting.com (qmail-ldap-1.03) with ESMTPA for <rch@google.com>; 23 Jul 2017 00:34:09 -0000
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>, =?UTF-8?Q?Mikkel_Fahn=c3=b8e_J=c3=b8rgensen?= <mikkelfj@gmail.com>, Martin Thomson <martin.thomson@gmail.com>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie> <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com> <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie> <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com> <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie>
Cc: IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <6560224e-9453-5809-cfe7-932b41643c6a@huitema.net>
Date: Sat, 22 Jul 2017 17:33:46 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="tpWhk769NJDl8GnlfmoHBbEgBatEWqdK0"
Subject: Re: Randomizer state attacks
X-Originating-IP: 168.144.250.215
X-SpamExperts-Domain: xsmtpout.mail2web.com
X-SpamExperts-Username: 168.144.250.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=168.144.250.0/24@xsmtpout.mail2web.com
X-SpamExperts-Outgoing-Class: unsure
X-SpamExperts-Outgoing-Evidence: Combined (0.16)
X-Recommended-Action: accept
X-Filter-ID: PqwsvolAWURa0gwxuN3S5YEa3T7JuZT23fGO2rGt3ZgTCGhDnudOJ80D1c8rffxrus7BTv7Ss8cH d2IQQuvdbtM+m4WpRRDP6YzwkAPgQJYWwktM+UPDyXniaU9ttNgkND46yZLY9QyX+cRXmooQ3hum JwiT+2brWmQlzkLIcXivpIH4ag6BM/+u9ym+BA23hBax1n6NLtqh/8KjGfXbKpzZ8rfsXcrYidfw YfZGgWI1d14+JdXa2iIO/dRhEJ89YOEkjsX7F8KmpUaZQHV+SZbCEQkE+Ttak7yNVmHZUfi2G5Pj 7iQJEmtNUzH3idZ6uMF2OhyCCCV83x+RZrKIj0QqMGQOSwmEPwP4wBzM77N8GvkYGGDFjg9NrmGY yNnXsSjdYwfRhjHqxQXDsBKLpPLwHqwRykc1ByOUA6hOga/6lO4FGen962xgCFRckncKfg1XSK9P 1z/R6plfrFWGyRBldQvyEl8XcBznCF+cGBfeNHk15VolAGHS5rCXQKDym+Gab6cuAPzLi/SdAxlO dgkraHgbbAuZgv0Q6mJ3vUcipz1IT62ZEk6+MmovaufbiR3bHfnMCIEU+nrglojKwMr3vOY18GvB wSXAfWcj234Kahp30YSTh5OL3yMqjF0jNdSMuNhZC3X/nGdDKYyg+1Fotn1TGspRGWfHjmaruO0b XpkevaElTi+sCWwmqxHi+BUHXGjp0J8FpT+J6AFTxiSsoNTiR/GmpPv4QzJ0uLs078I0y+3uS4dN KiUgYTBUAfElHAyDftU0NVuUSp4n9oAbiteDwjw8P7mx/NBHSRWxZaHLvUGmD7PXY2RS8idsz7fr MHsNPRylYAkPvY1HttQOF909qtkcRbvucYBIc/RufmJqHIgpwQblHGid2pC00i13zjCiwPgdt77s k1WBMw==
X-Report-Abuse-To: spam@quarantine5.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/P0IPXD6w0zZVwDY_7MtNtUD2Ymg>
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, 23 Jul 2017 00:34:17 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--tpWhk769NJDl8GnlfmoHBbEgBatEWqdK0
Content-Type: multipart/mixed; boundary="fHPfPsGPN3LQppScbTs9Sb833mNDWeB4B";
 protected-headers="v1"
From: Christian Huitema <huitema@huitema.net>
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>,
 =?UTF-8?Q?Mikkel_Fahn=c3=b8e_J=c3=b8rgensen?= <mikkelfj@gmail.com>,
 Martin Thomson <martin.thomson@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Message-ID: <6560224e-9453-5809-cfe7-932b41643c6a@huitema.net>
Subject: Re: Randomizer state attacks
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
 <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
 <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
 <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>
 <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
 <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com>
 <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie>
In-Reply-To: <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie>

--fHPfPsGPN3LQppScbTs9Sb833mNDWeB4B
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On 7/22/2017 10:58 AM, Stephen Farrell wrote:
>
> On 22/07/17 17:43, Mikkel Fahn=C3=B8e J=C3=B8rgensen wrote:
>> So there plenty of pitfalls, but requiring that the QUIC implementatio=
n to
>> protect against bad PRNG rather than the crypto library seems wrong to=
 me.
>> Granted, you don=E2=80=99t need to make the protocol more vulnerable t=
han
>> necessary, and indeed, I have also thought about all these random valu=
es
>> being released into the wild is an easy way to make serious crypto mis=
takes.
> I'd assert that lack of entropy or a significantly imperfect prng
> is a different issue, compared to the dual-ec attack...
Stephen, from our previous discussions, I conclude that you are looking
at some kind of "defense in  depth". If the local PRNG is robust, there
is not much risk in disclosing random numbers in connection ID, initial
sequence numbers or nonce. But we don't always know that the PRNG is
robust. In the Dual-EC case, implementers believed it was, when in fact
it was not. The defense in depth argument is that we should somehow
control the random values published in clear text, so that even if the
PRNG happens to be weak, the weakness will be difficult to exploit.
Also, long random fields in protocol messages can be abused as side
channels.

On the other hand,  nonce and other random fields are useful to prevent
off path attacks.

Also, QUIC relies on TLS 1.3. The TLS 1.3 Client Hello and Server Hello
are sent in clear text. Both carry a 32 byte random field. Even if QUIC
did not use 12 bytes used in QUIC for Connection ID and Initial Sequence
Number, TLS would still use 32 bytes, which would be plenty for dual-EC
style attacks. So I am not sure that we should pile a lot of complexity
in QUIC to mitigate random number disclosure.

-- Christian Huitema
=20

=20

=20

--=20
Christian Huitema



--fHPfPsGPN3LQppScbTs9Sb833mNDWeB4B--

--tpWhk769NJDl8GnlfmoHBbEgBatEWqdK0
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJZc+76AAoJELba05IUOHVQ95IH/AvaN5m/DKNt83eI81c/PZip
qh1YUODxAFMUz9oDvyC9SVIwa2gZU/TMcuev5TgiA4nJMINhP4/c9loxnYr4COON
XwW8mBDzDMMg4JIKb3tNqALVTPlqnuI0MWzowTWoLMCw3bF34k9X5Ibxvrek95nE
/sGT+xu7w4LpdksQxeuX5DdQK9jh9wlJ107xiQhtj0lpmSJ/n89e83HeuPDBNix7
xZSRsemz1vu9WL2Nk8LOHnUZ09RW6tyVarqGWn6ZQGvnSMDGSUTcfBhykzHivBO3
18EO2keNIrxiSIgu1HknAx4BVNIuajLg+OJgy+H+17Tz4VtbDKzYJcw0Hw0MJPc=
=D6Qf
-----END PGP SIGNATURE-----

--tpWhk769NJDl8GnlfmoHBbEgBatEWqdK0--


From nobody Sun Jul 23 01:57:20 2017
Return-Path: <phils@in-panik.de>
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 1C05C1316C3 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 01:57:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 gZK93gjtCJY8 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 01:57:16 -0700 (PDT)
Received: from einhorn-mail.in-berlin.de (einhorn-mail.in-berlin.de [217.197.80.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 11955126B6E for <quic@ietf.org>; Sun, 23 Jul 2017 01:57:14 -0700 (PDT)
X-Envelope-From: phils@in-panik.de
Received: from x-berg.in-berlin.de (x-change.in-berlin.de [217.197.86.40]) by einhorn.in-berlin.de (8.14.4/8.14.4/Debian-8+deb8u2) with ESMTP id v6N8upup022081 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);  Sun, 23 Jul 2017 10:56:51 +0200
Received: from [2001:bf0:c801:101:98e9:dd70:c1de:f2a7] by x-berg.in-berlin.de with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <phils@in-panik.de>) id 1dZCgr-0003Tn-Gx; Sun, 23 Jul 2017 10:56:41 +0200
From: "Philipp S. Tiesel" <phils@in-panik.de>
Message-Id: <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de>
Content-Type: multipart/alternative; boundary="Apple-Mail=_1180B5A4-05DA-40B6-AEB2-8C2C02714F47"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: HTTP requests on one stream #692
Date: Sun, 23 Jul 2017 10:56:49 +0200
In-Reply-To: <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com>
Cc: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>
To: Mike Bishop <Michael.Bishop@microsoft.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/3nYu_yAROyhsadaeltA-je3KwCs>
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, 23 Jul 2017 08:57:18 -0000

--Apple-Mail=_1180B5A4-05DA-40B6-AEB2-8C2C02714F47
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi,

too bad that I missed that discussion.=20

Separating DATA and Request/Response to different streams would be =
beneficial if we add unreliable streams. I will try to write up =
something (at least considerations) before the interim.=20


> On 22. Jul 2017, at 03:04, Mike Bishop <Michael.Bishop@microsoft.com> =
wrote:
>=20
> No, the consensus both in Paris and Prague was a single stream, which =
means the DATA frame is back to stay.  The HPACK-without-dynamic-table =
piece is temporary, until we pick a direction for header compression.
> =20
> Sent from my Windows 10 phone
> =20
> From: Lucas Pardue <mailto:Lucas.Pardue@bbc.co.uk>
> Sent: Friday, July 21, 2017 8:20 AM
> To: IETF QUIC WG <mailto:quic@ietf.org>
> Subject: HTTP requests on one stream #692
> =20
> Hi,
> =20
> Apologies if this was discussed already in Prague but I=E2=80=99d like =
some clarification on the intended lifetime scope of the changes in =
PR#692 =
<https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub=
.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&data=3D02%7C01%7Cmichael.=
bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141=
af91ab2d7cd011db47%7C1%7C0%7C636362472283415347&sdata=3DdZMXpiCYo5b7tVuKrb=
JCsnaPP42mqRVi%2B3x4garWrvI%3D&reserved=3D0>.=20
> =20
> Is the intention that this change unblocks specification / development =
so that the WG can continue?
> Will these changes be unwound once progress has been made?
> The DATA frame has been resurrected (I presume to demark frames in the =
same stream). Will it be struck with a wooden stake in the future, or =
continue to hang around?
> =20
> Thanks
> Lucas

AVE!
  Philipp S. Tiesel / phils=E2=80=A6
--=20
   =
{phils}--->---(phils@in-panik.de)--->---(http://phils.in-panik.de)----,
      wenn w eine   aube ist dn      man au dran dre en                  =
 |
           o     Schr        an muss     hc         h   (Kurt =
Schwitters) |
:wq!  <----(phone: +49-179-6737439)---<---(jabber: =
phils@in-panik.de)----'


--Apple-Mail=_1180B5A4-05DA-40B6-AEB2-8C2C02714F47
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Hi,<div class=3D""><br class=3D""></div><div class=3D"">too =
bad that I missed that discussion.&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">Separating DATA and Request/Response to =
different streams would be beneficial if we add unreliable streams. I =
will try to write up something (at least considerations) before the =
interim.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On 22. Jul 2017, at 03:04, Mike Bishop &lt;<a =
href=3D"mailto:Michael.Bishop@microsoft.com" =
class=3D"">Michael.Bishop@microsoft.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">No, the consensus both in Paris and Prague was a single =
stream, which means the DATA frame is back to stay.&nbsp; The =
HPACK-without-dynamic-table piece is temporary, until we pick a =
direction for header compression.</div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Sent from my Windows 10 phone</div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"border-style: =
solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, =
225); padding: 3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; border: =
none; padding: 0in;" class=3D""><b class=3D"">From:<span =
class=3D"Apple-converted-space">&nbsp;</span></b><a =
href=3D"mailto:Lucas.Pardue@bbc.co.uk" style=3D"color: rgb(149, 79, =
114); text-decoration: underline;" class=3D"">Lucas Pardue</a><br =
class=3D""><b class=3D"">Sent:<span =
class=3D"Apple-converted-space">&nbsp;</span></b>Friday, July 21, 2017 =
8:20 AM<br class=3D""><b class=3D"">To:<span =
class=3D"Apple-converted-space">&nbsp;</span></b><a =
href=3D"mailto:quic@ietf.org" style=3D"color: rgb(149, 79, 114); =
text-decoration: underline;" class=3D"">IETF QUIC WG</a><br class=3D""><b =
class=3D"">Subject:<span =
class=3D"Apple-converted-space">&nbsp;</span></b>HTTP requests on one =
stream #692</div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1;"><div style=3D"margin:=
 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Hi,<o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Apologies if this was discussed already in Prague but I=E2=80=99=
d like some clarification on the intended lifetime scope of the changes =
in<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2=
Fgithub.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&amp;data=3D02%7C01=
%7Cmichael.bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f=
988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636362472283415347&amp;sdata=3DdZM=
XpiCYo5b7tVuKrbJCsnaPP42mqRVi%2B3x4garWrvI%3D&amp;reserved=3D0" =
style=3D"color: rgb(149, 79, 114); text-decoration: underline;" =
class=3D"">PR#692</a>.<span =
class=3D"Apple-converted-space">&nbsp;</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><ol start=3D"1" type=3D"1" =
style=3D"margin-bottom: 0in; margin-top: 0cm;" class=3D""><li =
class=3D"MsoListParagraph" style=3D"margin: 0cm 0cm 0.0001pt; font-size: =
11pt; font-family: Calibri, sans-serif;">Is the intention that this =
change unblocks specification / development so that the WG can =
continue?<o:p class=3D""></o:p></li><li class=3D"MsoListParagraph" =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;">Will these changes be unwound once progress has =
been made?<o:p class=3D""></o:p><ol start=3D"1" type=3D"a" =
style=3D"margin-bottom: 0in; margin-top: 0cm;" class=3D""><li =
class=3D"MsoListParagraph" style=3D"margin: 0cm 0cm 0.0001pt; font-size: =
11pt; font-family: Calibri, sans-serif;">The DATA frame has been =
resurrected (I presume to demark frames in the same stream). Will it be =
struck with a wooden stake in the future, or continue to hang =
around?<o:p class=3D""></o:p></li></ol></li></ol><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Thanks<o:p class=3D""></o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Lucas</div></div></div></div></blockquote></div><br =
class=3D""><div class=3D"">
<div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; orphans: =
auto; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">AVE!<br class=3D"">&nbsp; Philipp S. Tiesel / phils=E2=80=A6<br=
 class=3D"">--&nbsp;<br class=3D"">&nbsp; &nbsp;{phils}---&gt;---(<a =
href=3D"mailto:phils@in-panik.de" =
class=3D"">phils@in-panik.de</a>)---&gt;---(<a =
href=3D"http://phils.in-panik.de" =
class=3D"">http://phils.in-panik.de</a>)----,<br class=3D"">&nbsp; =
&nbsp; &nbsp; wenn w eine &nbsp; aube ist dn &nbsp; &nbsp; &nbsp;man au =
dran dre en &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; |<br class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;o &nbsp; =
&nbsp; Schr &nbsp; &nbsp; &nbsp; &nbsp;an muss &nbsp; &nbsp; hc &nbsp; =
&nbsp; &nbsp; &nbsp; h &nbsp; (Kurt Schwitters) |<br class=3D"">:wq! =
&nbsp;&lt;----(phone: +49-179-6737439)---&lt;---(jabber: <a =
href=3D"mailto:phils@in-panik.de" =
class=3D"">phils@in-panik.de</a>)----'</div></div>
</div>
<br class=3D""></div></body></html>=

--Apple-Mail=_1180B5A4-05DA-40B6-AEB2-8C2C02714F47--


From nobody Sun Jul 23 02:59:09 2017
Return-Path: <ianswett@google.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 7B4F9129AEB for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 02:58:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 nzlm8a7r_4FM for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 02:58:52 -0700 (PDT)
Received: from mail-yw0-x230.google.com (mail-yw0-x230.google.com [IPv6:2607:f8b0:4002:c05::230]) (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 738C5126B6E for <quic@ietf.org>; Sun, 23 Jul 2017 02:58:52 -0700 (PDT)
Received: by mail-yw0-x230.google.com with SMTP id a12so36400390ywh.3 for <quic@ietf.org>; Sun, 23 Jul 2017 02:58:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=4qM7Pq74aaSRltdFdXPk7N74s9CoqtiZpfz4mqdRAz4=; b=sYvQiYyKvfcatJVbsh0gg0I4L3n1T5jRgFqtWwAJSVbK2xP4YfXnQKPICbIdsyujz5 yPcScr6Hl3cWFJ+woM8WFlq/6BESqlPm7ZP67l6lJdWZPeCSEVYrJLUQWTjU7a34sEFE g1KwaZA9RudlWBJZgnBMXvU2wXHtstOGCKdJXOP6j/HBlLqx1e8gkWvIqTgqqtlXkm52 1LgMb9mIa9ppAxc284h5664lTO/LHcQlLsAokWVkq5kTvTsT+8uc2YMiB0tcS2wn4p2V 1JVkDtMTybgw8yD0aakE0C/rxwWnBJZPbf16kUR8947JlsmPgG/frcXhwwiTK1GyDbTF fxhQ==
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=4qM7Pq74aaSRltdFdXPk7N74s9CoqtiZpfz4mqdRAz4=; b=RkKXP9hijx3vV/lKUfneM85lbtQTe+v4wOqrhsw38ZMQTiUPdJnf04A80Lxm/vQGuQ /dmiUlxiab0bM4kS/inZEZ0TBU44HM7fhzycZc7vHcv9HMbZ681h+2tqhstr9ieEM9DB uS8GDek+uuPtkIT7s8RpXK2/Air/Zjd4+53OgskSltTfDO1LD7woBI+2OLxaM3FO5HlG rsRaY4Bpdr4w5O42fXNHXqM372SQrGFzzf1S7yvpuVl6dgRF7oFfgOwDUTU9vgp+ai9B y7h+7zQFACa5EZLQ+x+6Q0Ja9MttQqEZB5BTPFib6SwD/G13Q4ASd7kgw+qxGXJLamWp 7NjA==
X-Gm-Message-State: AIVw112A1y2IUjOAomcmt37nuTBQDDR+sHcBYE/4Zzgj/2/qoKKrUmGP cWgbirPHtpXDiUvCaD8ybmRo3neqZdCe
X-Received: by 10.129.104.130 with SMTP id d124mr11598642ywc.207.1500803931503;  Sun, 23 Jul 2017 02:58:51 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.163.130 with HTTP; Sun, 23 Jul 2017 02:58:30 -0700 (PDT)
In-Reply-To: <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de>
From: Ian Swett <ianswett@google.com>
Date: Sun, 23 Jul 2017 05:58:30 -0400
Message-ID: <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com>
Subject: Re: HTTP requests on one stream #692
To: "Philipp S. Tiesel" <phils@in-panik.de>
Cc: Mike Bishop <Michael.Bishop@microsoft.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11490b3e37a48f0554f9256a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/C7ezAWJ_X2HeYcitPBIhesD1lMU>
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, 23 Jul 2017 09:58:54 -0000

--001a11490b3e37a48f0554f9256a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

A few comments on unreliable streams in QUIC, and this may be a longer
discussion and I'd be curious to read the considerations you have in mind.

QUIC as specified today definitely enables unreliability.  For example, I
can send stream data once, and if some portion of it is lost, at that point
I can decide if I want to retransmit it or just cancel the stream.  I
generally consider unreliability to be a matter of sender side policy.

Making this work well may require a more robust interface between the
application and QUIC stream, or may just require some new features, we'll
see.  I can't think of anything about moving from 2 to 1 streams changes
this, especially given the new header compression schemes will allow
cancellation of the headers as well as the payload, unlike before.




On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel <phils@in-panik.de>
wrote:

> Hi,
>
> too bad that I missed that discussion.
>
> Separating DATA and Request/Response to different streams would be
> beneficial if we add unreliable streams. I will try to write up something
> (at least considerations) before the interim.
>
>
> On 22. Jul 2017, at 03:04, Mike Bishop <Michael.Bishop@microsoft.com>
> wrote:
>
> No, the consensus both in Paris and Prague was a single stream, which
> means the DATA frame is back to stay.  The HPACK-without-dynamic-table
> piece is temporary, until we pick a direction for header compression.
>
> Sent from my Windows 10 phone
>
> *From: *Lucas Pardue <Lucas.Pardue@bbc.co.uk>
> *Sent: *Friday, July 21, 2017 8:20 AM
> *To: *IETF QUIC WG <quic@ietf.org>
> *Subject: *HTTP requests on one stream #692
>
> Hi,
>
> Apologies if this was discussed already in Prague but I=E2=80=99d like so=
me
> clarification on the intended lifetime scope of the changes in PR#692
> <https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithu=
b.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&data=3D02%7C01%7Cmichael.=
bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141a=
f91ab2d7cd011db47%7C1%7C0%7C636362472283415347&sdata=3DdZMXpiCYo5b7tVuKrbJC=
snaPP42mqRVi%2B3x4garWrvI%3D&reserved=3D0>
> .
>
>
>    1. Is the intention that this change unblocks specification /
>    development so that the WG can continue?
>    2. Will these changes be unwound once progress has been made?
>       1. The DATA frame has been resurrected (I presume to demark frames
>       in the same stream). Will it be struck with a wooden stake in the f=
uture,
>       or continue to hang around?
>
>
> Thanks
> Lucas
>
>
> AVE!
>   Philipp S. Tiesel / phils=E2=80=A6
> --
>    {phils}--->---(phils@in-panik.de)--->---(http://phils.in-panik.de)----=
,
>       wenn w eine   aube ist dn      man au dran dre en                  =
 |
>            o     Schr        an muss     hc         h   (Kurt Schwitters)=
 |
> :wq!  <----(phone: +49-179-6737439 <+49%20179%206737439>)---<---(jabber:
> phils@in-panik.de)----'
>
>

--001a11490b3e37a48f0554f9256a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>A few comments on unreliable streams in QUIC, and thi=
s may be a longer discussion and I&#39;d be curious to read the considerati=
ons you have in mind.<br></div><div><br></div><div>QUIC as specified today =
definitely enables unreliability.=C2=A0 For example, I can send stream data=
 once, and if some portion of it is lost, at that point I can decide if I w=
ant to retransmit it or just cancel the stream.=C2=A0 I generally consider =
unreliability to be a matter of sender side policy.</div><div><br></div><di=
v>Making this work well may require a more robust interface between the app=
lication and QUIC stream, or may just require some new features, we&#39;ll =
see.=C2=A0 I can&#39;t think of anything about moving from 2 to 1 streams c=
hanges this, especially given the new header compression schemes will allow=
 cancellation of the headers as well as the payload, unlike before.</div><d=
iv><br></div><div><br></div><div><br></div></div><div class=3D"gmail_extra"=
><br><div class=3D"gmail_quote">On Sun, Jul 23, 2017 at 4:56 AM, Philipp S.=
 Tiesel <span dir=3D"ltr">&lt;<a href=3D"mailto:phils@in-panik.de" target=
=3D"_blank">phils@in-panik.de</a>&gt;</span> wrote:<br><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex"><div style=3D"word-wrap:break-word">Hi,<div><br></div><div>too b=
ad that I missed that discussion.=C2=A0</div><div><br></div><div>Separating=
 DATA and Request/Response to different streams would be beneficial if we a=
dd unreliable streams. I will try to write up something (at least considera=
tions) before the interim.=C2=A0</div><div><br></div><div><div><div class=
=3D"h5"><br><div><blockquote type=3D"cite"><div>On 22. Jul 2017, at 03:04, =
Mike Bishop &lt;<a href=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_=
blank">Michael.Bishop@microsoft.com</a>&gt; wrote:</div><br class=3D"m_-284=
9819982971028205Apple-interchange-newline"><div><div class=3D"m_-2849819982=
971028205WordSection1" style=3D"font-family:Helvetica;font-size:12px;font-s=
tyle:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:norm=
al;text-align:start;text-indent:0px;text-transform:none;white-space:normal;=
word-spacing:0px"><div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font=
-family:Calibri,sans-serif">No, the consensus both in Paris and Prague was =
a single stream, which means the DATA frame is back to stay.=C2=A0 The HPAC=
K-without-dynamic-table piece is temporary, until we pick a direction for h=
eader compression.</div><div style=3D"margin:0in 0in 0.0001pt;font-size:11p=
t;font-family:Calibri,sans-serif"><u></u>=C2=A0<u></u></div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Sent =
from my Windows 10 phone</div><div style=3D"margin:0in 0in 0.0001pt;font-si=
ze:11pt;font-family:Calibri,sans-serif"><u></u>=C2=A0<u></u></div><div styl=
e=3D"border-style:solid none none;border-top-width:1pt;border-top-color:rgb=
(225,225,225);padding:3pt 0in 0in"><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:11pt;font-family:Calibri,sans-serif;border:none;padding:0in"><b>Fro=
m:<span class=3D"m_-2849819982971028205Apple-converted-space">=C2=A0</span>=
</b><a href=3D"mailto:Lucas.Pardue@bbc.co.uk" style=3D"color:rgb(149,79,114=
);text-decoration:underline" target=3D"_blank">Lucas Pardue</a><br><b>Sent:=
<span class=3D"m_-2849819982971028205Apple-converted-space">=C2=A0</span></=
b>Friday, July 21, 2017 8:20 AM<br><b>To:<span class=3D"m_-2849819982971028=
205Apple-converted-space">=C2=A0</span></b><a href=3D"mailto:quic@ietf.org"=
 style=3D"color:rgb(149,79,114);text-decoration:underline" target=3D"_blank=
">IETF QUIC WG</a><br><b>Subject:<span class=3D"m_-2849819982971028205Apple=
-converted-space">=C2=A0</span></b>HTTP requests on one stream #692</div></=
div><div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibr=
i,sans-serif"><u></u>=C2=A0<u></u></div></div><div style=3D"font-family:Hel=
vetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weigh=
t:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transf=
orm:none;white-space:normal;word-spacing:0px"><div class=3D"m_-284981998297=
1028205WordSection1"><div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;f=
ont-family:Calibri,sans-serif">Hi,<u></u><u></u></div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><u></u>=C2=
=A0<u></u></div><div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-f=
amily:Calibri,sans-serif">Apologies if this was discussed already in Prague=
 but I=E2=80=99d like some clarification on the intended lifetime scope of =
the changes in<span class=3D"m_-2849819982971028205Apple-converted-space">=
=C2=A0</span><a href=3D"https://na01.safelinks.protection.outlook.com/?url=
=3Dhttps%3A%2F%2Fgithub.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&amp=
;data=3D02%7C01%7Cmichael.bishop%40microsoft.com%7C1a66873ec983497bf7de08d4=
d04c0326%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636362472283415347&am=
p;sdata=3DdZMXpiCYo5b7tVuKrbJCsnaPP42mqRVi%2B3x4garWrvI%3D&amp;reserved=3D0=
" style=3D"color:rgb(149,79,114);text-decoration:underline" target=3D"_blan=
k">PR#692</a>.<span class=3D"m_-2849819982971028205Apple-converted-space">=
=C2=A0</span><u></u><u></u></div><div style=3D"margin:0in 0in 0.0001pt;font=
-size:11pt;font-family:Calibri,sans-serif"><u></u>=C2=A0<u></u></div><ol st=
art=3D"1" type=3D"1" style=3D"margin-bottom:0in;margin-top:0cm"><li class=
=3D"m_-2849819982971028205MsoListParagraph" style=3D"margin:0cm 0cm 0.0001p=
t;font-size:11pt;font-family:Calibri,sans-serif">Is the intention that this=
 change unblocks specification / development so that the WG can continue?<u=
></u><u></u></li><li class=3D"m_-2849819982971028205MsoListParagraph" style=
=3D"margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">=
Will these changes be unwound once progress has been made?<u></u><u></u><ol=
 start=3D"1" type=3D"a" style=3D"margin-bottom:0in;margin-top:0cm"><li clas=
s=3D"m_-2849819982971028205MsoListParagraph" style=3D"margin:0cm 0cm 0.0001=
pt;font-size:11pt;font-family:Calibri,sans-serif">The DATA frame has been r=
esurrected (I presume to demark frames in the same stream). Will it be stru=
ck with a wooden stake in the future, or continue to hang around?<u></u><u>=
</u></li></ol></li></ol><div style=3D"margin:0in 0in 0.0001pt;font-size:11p=
t;font-family:Calibri,sans-serif"><u></u>=C2=A0<u></u></div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Thank=
s<u></u><u></u></div><div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;f=
ont-family:Calibri,sans-serif">Lucas</div></div></div></div></blockquote></=
div><br></div></div><div>
<div style=3D"color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wra=
p:break-word"><div style=3D"color:rgb(0,0,0);letter-spacing:normal;text-ali=
gn:start;text-indent:0px;text-transform:none;white-space:normal;word-spacin=
g:0px;word-wrap:break-word">AVE!<br>=C2=A0 Philipp S. Tiesel / phils=E2=80=
=A6<span class=3D"HOEnZb"><font color=3D"#888888"><br>--=C2=A0<br>=C2=A0 =
=C2=A0{phils}---&gt;---(<a href=3D"mailto:phils@in-panik.de" target=3D"_bla=
nk">phils@in-<wbr>panik.de</a>)---&gt;---(<a href=3D"http://phils.in-panik.=
de" target=3D"_blank">http://phils.<wbr>in-panik.de</a>)----,<br>=C2=A0 =C2=
=A0 =C2=A0 wenn w eine =C2=A0 aube ist dn =C2=A0 =C2=A0 =C2=A0man au dran d=
re en =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0o =C2=A0 =C2=A0 Schr =C2=A0 =C2=A0=
 =C2=A0 =C2=A0an muss =C2=A0 =C2=A0 hc =C2=A0 =C2=A0 =C2=A0 =C2=A0 h =C2=A0=
 (Kurt Schwitters) |<br>:wq! =C2=A0&lt;----(phone: <a href=3D"tel:+49%20179=
%206737439" value=3D"+491796737439" target=3D"_blank">+49-179-6737439</a>)-=
--&lt;---(<wbr>jabber: <a href=3D"mailto:phils@in-panik.de" target=3D"_blan=
k">phils@in-panik.de</a>)----&#39;</font></span></div></div>
</div>
<br></div></div></blockquote></div><br></div>

--001a11490b3e37a48f0554f9256a--


From nobody Sun Jul 23 04:58:01 2017
Return-Path: <thomas.swindells@nokia.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 DF754127869 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 04:57:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.7
X-Spam-Level: 
X-Spam-Status: No, score=-4.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 0m_koMNi4vEC for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 04:57:50 -0700 (PDT)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0092.outbound.protection.outlook.com [104.47.2.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BCF2A1276AF for <quic@ietf.org>; Sun, 23 Jul 2017 04:57:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=JLGnEk7fL2zM7KUxtvDlGAJBDmbnDeFZGE1YKJKA8ho=; b=Y13huUe3IIu7tQ5OALwvxy+Z50ydSsQiVBNU5zelOLlFB8M34BRVzBiDnYk484AelVdketFgpabp39S2UrrTAYd2TWVbJBrqDHFxwPf4/M5xGSyXBuKmER0MtVwUyAaWqHo73YR6HIOk1iBfIpI4sMdqD7nxIw5KOryFk+CFXq0=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB1173.eurprd07.prod.outlook.com (10.169.32.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.10; Sun, 23 Jul 2017 11:57:46 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.011; Sun, 23 Jul 2017 11:57:46 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: Ian Swett <ianswett@google.com>, "Philipp S. Tiesel" <phils@in-panik.de>
CC: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Mike Bishop <Michael.Bishop@microsoft.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: HTTP requests on one stream #692
Thread-Topic: HTTP requests on one stream #692
Thread-Index: AdMCNJiq1/jFQyapRDqdWSVpnV2UvgAUdAmMAELNc4AAAid+AAAA+mRQ
Date: Sun, 23 Jul 2017 11:57:46 +0000
Message-ID: <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com>
In-Reply-To: <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [82.69.101.84]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB1173; 7:4LlnoxdDX13HsjuFho8uSu/geTplPxOlcfprbKgOIgKSDNklaCq4gBBZdvwAjWQBKk+rd4MfNNiOw4lXUQ43Yvz9967zV35Rbxrphf/VR/ZS6K8UR+cKZUk9aZjYgBucgPAJU0R0JvGpJVFCNEYSjyXZgGbpj78em0PO3C2MISp+moaQIKMOFo0O1baq10dFI0f+DvYd48anSHaPHnwmBfox0g0A8E/eGCOp1JXBGccmslLe50id7EiSm/1Fl+3qlhMkqaP7DN9wACLKqtxRVYBdCmLsEQcSBgdWFztAJGPWwkYC1l+3aY96c1fIsXzzLtKH3fzpBOXev7ROMw6hW3wqw6fuIKZ9k2f9m4ymY0yRIXZOCBLvKtQdoBdt/kqf9TvN4/zattRjjOtDyjcW0FTKLIlBrOG5FhfosuBRmgLEtVofuY4i4b1oSIg7ML8nAwK8fWQrdXiccq/OVpLBCiibBwpJd/PD5wHAQ5VA4dpf9gRe4aYb6CI1I4UjU9i66aCDLXy1PT8BqCeeSvcPYvlNkogvTvX1iu9EVIJI5Ev9OxDhmGBYJ0eHuW6ogODgwaaDiyRUzR9zj8dpeDbBQBaYo1eHdg26wPOnkmPMPtW1dG/gk1BO4nFiA2B/ny+WzSwASum9RRip+XQI+aNVg+Nyr5Ek1zUQYYU1Q77h+nRcpL4GgREDxvjdtqh7lbJjWYKIpyA2j/e22t99bLNu3hI8k4pGxbQfQk/EXQoR5Xe6Hq/g5DfJDjyq0EKaOYFNAwtDWBon5S8R+sPOyyXpTyIzH2x2nX4Xrmc3K9uIbTI=
x-ms-office365-filtering-correlation-id: 24581d2a-6cba-4441-dcb3-08d4d1c208af
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB1173; 
x-ms-traffictypediagnostic: DB5PR07MB1173:
x-exchange-antispam-report-test: UriScan:(89211679590171)(189930954265078)(100405760836317)(219752817060721)(127952516941037)(21748063052155);
x-microsoft-antispam-prvs: <DB5PR07MB1173758130F1F4AB541767CC84BA0@DB5PR07MB1173.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123562025)(20161123560025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB1173; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB1173; 
x-forefront-prvs: 0377802854
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39450400003)(39400400002)(39410400002)(39850400002)(39840400002)(39860400002)(24454002)(377454003)(199003)(189002)(101416001)(6246003)(106356001)(8936002)(97736004)(229853002)(33656002)(50986999)(76176999)(54356999)(53386004)(189998001)(38730400002)(3660700001)(93886004)(6506006)(25786009)(2906002)(5250100002)(2950100002)(8676002)(81166006)(4326008)(2900100001)(81156014)(66066001)(14454004)(105586002)(606006)(53936002)(53546010)(54906002)(9686003)(236005)(54896002)(3280700002)(6306002)(55016002)(8666007)(99286003)(45080400002)(478600001)(7696004)(6436002)(102836003)(7736002)(74316002)(86362001)(68736007)(5660300001)(6116002)(3846002)(790700001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB1173; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_DB5PR07MB1237D364086129C462AAC19D84BA0DB5PR07MB1237eurp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jul 2017 11:57:46.3654 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1173
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/-ieE1lBSA0c5sWFanb4gl33fPdM>
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, 23 Jul 2017 11:57:53 -0000

--_000_DB5PR07MB1237D364086129C462AAC19D84BA0DB5PR07MB1237eurp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

QSBmZXcgY29tbWVudHMgbGlubGluZS4NCg0KVGhvbWFzDQoNCkZyb206IFFVSUMgW21haWx0bzpx
dWljLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBJYW4gU3dldHQNClNlbnQ6IDIzIEp1
bHkgMjAxNyAxMDo1OQ0KVG86IFBoaWxpcHAgUy4gVGllc2VsIDxwaGlsc0Bpbi1wYW5pay5kZT4N
CkNjOiBMdWNhcyBQYXJkdWUgPEx1Y2FzLlBhcmR1ZUBiYmMuY28udWs+OyBNaWtlIEJpc2hvcCA8
TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbT47IElFVEYgUVVJQyBXRyA8cXVpY0BpZXRmLm9y
Zz4NClN1YmplY3Q6IFJlOiBIVFRQIHJlcXVlc3RzIG9uIG9uZSBzdHJlYW0gIzY5Mg0KDQpBIGZl
dyBjb21tZW50cyBvbiB1bnJlbGlhYmxlIHN0cmVhbXMgaW4gUVVJQywgYW5kIHRoaXMgbWF5IGJl
IGEgbG9uZ2VyIGRpc2N1c3Npb24gYW5kIEknZCBiZSBjdXJpb3VzIHRvIHJlYWQgdGhlIGNvbnNp
ZGVyYXRpb25zIHlvdSBoYXZlIGluIG1pbmQuDQoNClFVSUMgYXMgc3BlY2lmaWVkIHRvZGF5IGRl
ZmluaXRlbHkgZW5hYmxlcyB1bnJlbGlhYmlsaXR5LiAgRm9yIGV4YW1wbGUsIEkgY2FuIHNlbmQg
c3RyZWFtIGRhdGEgb25jZSwgYW5kIGlmIHNvbWUgcG9ydGlvbiBvZiBpdCBpcyBsb3N0LCBhdCB0
aGF0IHBvaW50IEkgY2FuIGRlY2lkZSBpZiBJIHdhbnQgdG8gcmV0cmFuc21pdCBpdCBvciBqdXN0
IGNhbmNlbCB0aGUgc3RyZWFtLg0KW1Rob21hcyBTd2luZGVsbHNdIEFzIHN0cmVhbSBmcmFtZXMg
Y29udGFpbiB0aGUgb2Zmc2V0ICBjbGllbnQgcG90ZW50aWFsbHkgYWxzbyBoYXMgdGhlIG9wdGlv
biBvZiBqdXN0IGFja25vd2xlZGdpbmcgcmVjZXB0aW9uIGV2ZW4gaXQgZGlkbuKAmXQgYWN0dWFs
bHkgcmVjZWl2ZSB0aGVtIC0gdGhvdWdoIG9idmlvdXNseSB0aGlzIHdvdWxkIGFuZCBjYXVzZSBw
cm9ibGVtcyBpZiBub24tc3RyZWFtIGZyYW1lcyB3ZXJlIGFsc28gYmVpbmcgYWNrbm93bGVkZ2Vk
IHdoZW4gaW4gZmFjdCB0aGUgY2xpZW50IGhhZG7igJl0IGFja25vd2xlZGdlIHRoZW0uIC4NCkkg
Z2VuZXJhbGx5IGNvbnNpZGVyIHVucmVsaWFiaWxpdHkgdG8gYmUgYSBtYXR0ZXIgb2Ygc2VuZGVy
IHNpZGUgcG9saWN5Lg0KW1Rob21hcyBTd2luZGVsbHNdIEkgZG9u4oCZdCB0aGluayBJIGFncmVl
IHdpdGggdGhhdC4gT2Z0ZW4gaXQgaXMgdGhlIGNsaWVudCB3aGljaCBoYXMgdGhlIGtub3dsZWRn
ZSBhYm91dCB3aGV0aGVyIGRhdGEgaXMgb3IgaXMgbm90IGltcG9ydGFudC4gTGl2ZSB2aWRlbyBz
dHJlYW1pbmcgaXMgdGhlIGJlc3QgZXhhbXBsZSBmb3IgdGhpcywgaWYgdGhlIGNsaWVudCBoYXMg
ZW5vdWdoIGJ1ZmZlciBhbmQgaXMgcGxheWluZyB0aGUgb3V0cHV0IG91dCBsaXZlIHRoZW4gaXQg
d291bGQgcHJlZmVyIHRvIGdldCB0aGUgZGF0YSByZS10cmFuc21pdHRlZCwgaG93ZXZlciBkYXRh
IG92ZXIgYSBjZXJ0YWluIGFnZSBpc27igJl0IHVzZWZ1bCBhbmQgaXQgbWF5IHByZWZlciB0byBs
b3NlIHNvbWUgZnJhbWVzIGFuZCBqdW1wIGJhY2sgdXAgdG8gbGl2ZS4gSG93ZXZlciBpZiB0aGUg
Y2xpZW50IGlzIGFjdHVhbGx5IHJlY29yZGluZyB0aGUgb3V0cHV0IChvciBoYXMgYSBsb25nZXIg
YnVmZmVyKSBpdCBtYXkgcHJlZmVyIHRvIHN0YWxsIGFuZCBnZXQgYWxsIHRoZSBkYXRhLg0KDQpN
YWtpbmcgdGhpcyB3b3JrIHdlbGwgbWF5IHJlcXVpcmUgYSBtb3JlIHJvYnVzdCBpbnRlcmZhY2Ug
YmV0d2VlbiB0aGUgYXBwbGljYXRpb24gYW5kIFFVSUMgc3RyZWFtLCBvciBtYXkganVzdCByZXF1
aXJlIHNvbWUgbmV3IGZlYXR1cmVzLCB3ZSdsbCBzZWUuICBJIGNhbid0IHRoaW5rIG9mIGFueXRo
aW5nIGFib3V0IG1vdmluZyBmcm9tIDIgdG8gMSBzdHJlYW1zIGNoYW5nZXMgdGhpcywgZXNwZWNp
YWxseSBnaXZlbiB0aGUgbmV3IGhlYWRlciBjb21wcmVzc2lvbiBzY2hlbWVzIHdpbGwgYWxsb3cg
Y2FuY2VsbGF0aW9uIG9mIHRoZSBoZWFkZXJzIGFzIHdlbGwgYXMgdGhlIHBheWxvYWQsIHVubGlr
ZSBiZWZvcmUuDQoNCg0KDQoNCk9uIFN1biwgSnVsIDIzLCAyMDE3IGF0IDQ6NTYgQU0sIFBoaWxp
cHAgUy4gVGllc2VsIDxwaGlsc0Bpbi1wYW5pay5kZTxtYWlsdG86cGhpbHNAaW4tcGFuaWsuZGU+
PiB3cm90ZToNCkhpLA0KDQp0b28gYmFkIHRoYXQgSSBtaXNzZWQgdGhhdCBkaXNjdXNzaW9uLg0K
DQpTZXBhcmF0aW5nIERBVEEgYW5kIFJlcXVlc3QvUmVzcG9uc2UgdG8gZGlmZmVyZW50IHN0cmVh
bXMgd291bGQgYmUgYmVuZWZpY2lhbCBpZiB3ZSBhZGQgdW5yZWxpYWJsZSBzdHJlYW1zLiBJIHdp
bGwgdHJ5IHRvIHdyaXRlIHVwIHNvbWV0aGluZyAoYXQgbGVhc3QgY29uc2lkZXJhdGlvbnMpIGJl
Zm9yZSB0aGUgaW50ZXJpbS4NCg0KDQpPbiAyMi4gSnVsIDIwMTcsIGF0IDAzOjA0LCBNaWtlIEJp
c2hvcCA8TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbTxtYWlsdG86TWljaGFlbC5CaXNob3BA
bWljcm9zb2Z0LmNvbT4+IHdyb3RlOg0KDQpObywgdGhlIGNvbnNlbnN1cyBib3RoIGluIFBhcmlz
IGFuZCBQcmFndWUgd2FzIGEgc2luZ2xlIHN0cmVhbSwgd2hpY2ggbWVhbnMgdGhlIERBVEEgZnJh
bWUgaXMgYmFjayB0byBzdGF5LiAgVGhlIEhQQUNLLXdpdGhvdXQtZHluYW1pYy10YWJsZSBwaWVj
ZSBpcyB0ZW1wb3JhcnksIHVudGlsIHdlIHBpY2sgYSBkaXJlY3Rpb24gZm9yIGhlYWRlciBjb21w
cmVzc2lvbi4NCg0KU2VudCBmcm9tIG15IFdpbmRvd3MgMTAgcGhvbmUNCg0KRnJvbTogTHVjYXMg
UGFyZHVlPG1haWx0bzpMdWNhcy5QYXJkdWVAYmJjLmNvLnVrPg0KU2VudDogRnJpZGF5LCBKdWx5
IDIxLCAyMDE3IDg6MjAgQU0NClRvOiBJRVRGIFFVSUMgV0c8bWFpbHRvOnF1aWNAaWV0Zi5vcmc+
DQpTdWJqZWN0OiBIVFRQIHJlcXVlc3RzIG9uIG9uZSBzdHJlYW0gIzY5Mg0KDQpIaSwNCg0KQXBv
bG9naWVzIGlmIHRoaXMgd2FzIGRpc2N1c3NlZCBhbHJlYWR5IGluIFByYWd1ZSBidXQgSeKAmWQg
bGlrZSBzb21lIGNsYXJpZmljYXRpb24gb24gdGhlIGludGVuZGVkIGxpZmV0aW1lIHNjb3BlIG9m
IHRoZSBjaGFuZ2VzIGluIFBSIzY5MjxodHRwczovL25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24u
b3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZxdWljd2clMkZiYXNl
LWRyYWZ0cyUyRnB1bGwlMkY2OTIlMkZmaWxlcyZkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hv
cCU0MG1pY3Jvc29mdC5jb20lN0MxYTY2ODczZWM5ODM0OTdiZjdkZTA4ZDRkMDRjMDMyNiU3Qzcy
Zjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjI0NzIyODM0MTUz
NDcmc2RhdGE9ZFpNWHBpQ1lvNWI3dFZ1S3JiSkNzbmFQUDQybXFSVmklMkIzeDRnYXJXcnZJJTNE
JnJlc2VydmVkPTA+Lg0KDQoNCiAgMS4gIElzIHRoZSBpbnRlbnRpb24gdGhhdCB0aGlzIGNoYW5n
ZSB1bmJsb2NrcyBzcGVjaWZpY2F0aW9uIC8gZGV2ZWxvcG1lbnQgc28gdGhhdCB0aGUgV0cgY2Fu
IGNvbnRpbnVlPw0KICAyLiAgV2lsbCB0aGVzZSBjaGFuZ2VzIGJlIHVud291bmQgb25jZSBwcm9n
cmVzcyBoYXMgYmVlbiBtYWRlPw0KDQogICAgICogICBUaGUgREFUQSBmcmFtZSBoYXMgYmVlbiBy
ZXN1cnJlY3RlZCAoSSBwcmVzdW1lIHRvIGRlbWFyayBmcmFtZXMgaW4gdGhlIHNhbWUgc3RyZWFt
KS4gV2lsbCBpdCBiZSBzdHJ1Y2sgd2l0aCBhIHdvb2RlbiBzdGFrZSBpbiB0aGUgZnV0dXJlLCBv
ciBjb250aW51ZSB0byBoYW5nIGFyb3VuZD8NCg0KVGhhbmtzDQpMdWNhcw0KDQpBVkUhDQogIFBo
aWxpcHAgUy4gVGllc2VsIC8gcGhpbHPigKYNCi0tDQogICB7cGhpbHN9LS0tPi0tLShwaGlsc0Bp
bi1wYW5pay5kZTxtYWlsdG86cGhpbHNAaW4tcGFuaWsuZGU+KS0tLT4tLS0oaHR0cDovL3BoaWxz
LmluLXBhbmlrLmRlKS0tLS0sDQogICAgICB3ZW5uIHcgZWluZSAgIGF1YmUgaXN0IGRuICAgICAg
bWFuIGF1IGRyYW4gZHJlIGVuICAgICAgICAgICAgICAgICAgIHwNCiAgICAgICAgICAgbyAgICAg
U2NociAgICAgICAgYW4gbXVzcyAgICAgaGMgICAgICAgICBoICAgKEt1cnQgU2Nod2l0dGVycykg
fA0KOndxISAgPC0tLS0ocGhvbmU6ICs0OS0xNzktNjczNzQzOTx0ZWw6KzQ5JTIwMTc5JTIwNjcz
NzQzOT4pLS0tPC0tLShqYWJiZXI6IHBoaWxzQGluLXBhbmlrLmRlPG1haWx0bzpwaGlsc0Bpbi1w
YW5pay5kZT4pLS0tLScNCg0KDQo=

--_000_DB5PR07MB1237D364086129C462AAC19D84BA0DB5PR07MB1237eurp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
SGVsdmV0aWNhOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDIgMiAyIDIgMiA0O30NCkBmb250LWZhY2UN
Cgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAz
IDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAx
NSA1IDIgMiAyIDQgMyAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFs
LCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90
dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3
IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1w
cmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0K
YTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0
eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1z
b25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1l
Om1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGNt
Ow0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBjbTsNCglmb250
LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCnNw
YW4ubS0yODQ5ODE5OTgyOTcxMDI4MjA1YXBwbGUtY29udmVydGVkLXNwYWNlDQoJe21zby1zdHls
ZS1uYW1lOm1fLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2U7fQ0Kc3Bh
bi5ob2VuemINCgl7bXNvLXN0eWxlLW5hbWU6aG9lbnpiO30NCnNwYW4uRW1haWxTdHlsZTIwDQoJ
e21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0
eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseToi
Q2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQpAcGFn
ZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3
Mi4wcHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rp
b24xO30NCi8qIExpc3QgRGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJe21zby1saXN0LWlkOjIy
MjkxNDQ5NTsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6LTExMzE1MzQ1NjY7fQ0KQGxpc3QgbDEN
Cgl7bXNvLWxpc3QtaWQ6Njg2MDU5OTg3Ow0KCW1zby1saXN0LXRlbXBsYXRlLWlkczozMzQyODQy
NTA7fQ0KQGxpc3QgbDE6bGV2ZWwxDQoJe21zby1sZXZlbC1zdGFydC1hdDoyOw0KCW1zby1sZXZl
bC10YWItc3RvcDozNi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDE6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmFscGhhLWxvd2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3Qg
bDINCgl7bXNvLWxpc3QtaWQ6MTQxNzk0MTQ2OTsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6NTIy
ODQ4MzUwO30NCkBsaXN0IGwyOmxldmVsMQ0KCXttc28tbGV2ZWwtdGFiLXN0b3A6MzYuMHB0Ow0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30N
CkBsaXN0IGwyOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwyOmxldmVsMw0KCXttc28tbGV2
ZWwtdGFiLXN0b3A6MTA4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMjpsZXZlbDQNCgl7bXNvLWxldmVsLXRhYi1z
dG9wOjE0NC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k
ZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDI6bGV2ZWw1DQoJe21zby1sZXZlbC10YWItc3RvcDoxODAu
MHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTgu
MHB0O30NCkBsaXN0IGwyOmxldmVsNg0KCXttc28tbGV2ZWwtdGFiLXN0b3A6MjE2LjBwdDsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpA
bGlzdCBsMjpsZXZlbDcNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDI6
bGV2ZWw4DQoJe21zby1sZXZlbC10YWItc3RvcDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXIt
cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwyOmxldmVsOQ0K
CXttc28tbGV2ZWwtdGFiLXN0b3A6MzI0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpvbA0KCXttYXJnaW4tYm90dG9tOjBjbTt9
DQp1bA0KCXttYXJnaW4tYm90dG9tOjBjbTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5
XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4N
CjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlv
dXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286
c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1H
QiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEi
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5BIGZldyBjb21tZW50cyBsaW5saW5lLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UaG9tYXM8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFk
ZGluZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiBRVUlDIFttYWls
dG86cXVpYy1ib3VuY2VzQGlldGYub3JnXQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5JYW4gU3dldHQ8
YnI+DQo8Yj5TZW50OjwvYj4gMjMgSnVseSAyMDE3IDEwOjU5PGJyPg0KPGI+VG86PC9iPiBQaGls
aXBwIFMuIFRpZXNlbCAmbHQ7cGhpbHNAaW4tcGFuaWsuZGUmZ3Q7PGJyPg0KPGI+Q2M6PC9iPiBM
dWNhcyBQYXJkdWUgJmx0O0x1Y2FzLlBhcmR1ZUBiYmMuY28udWsmZ3Q7OyBNaWtlIEJpc2hvcCAm
bHQ7TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbSZndDs7IElFVEYgUVVJQyBXRyAmbHQ7cXVp
Y0BpZXRmLm9yZyZndDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IEhUVFAgcmVxdWVzdHMgb24g
b25lIHN0cmVhbSAjNjkyPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5BIGZldyBjb21tZW50cyBvbiB1bnJlbGlhYmxlIHN0cmVhbXMg
aW4gUVVJQywgYW5kIHRoaXMgbWF5IGJlIGEgbG9uZ2VyIGRpc2N1c3Npb24gYW5kIEknZCBiZSBj
dXJpb3VzIHRvIHJlYWQgdGhlIGNvbnNpZGVyYXRpb25zIHlvdSBoYXZlIGluIG1pbmQuPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlFVSUMgYXMg
c3BlY2lmaWVkIHRvZGF5IGRlZmluaXRlbHkgZW5hYmxlcyB1bnJlbGlhYmlsaXR5LiZuYnNwOyBG
b3IgZXhhbXBsZSwgSSBjYW4gc2VuZCBzdHJlYW0gZGF0YSBvbmNlLCBhbmQgaWYgc29tZSBwb3J0
aW9uIG9mIGl0IGlzIGxvc3QsIGF0IHRoYXQgcG9pbnQgSSBjYW4gZGVjaWRlIGlmIEkgd2FudCB0
byByZXRyYW5zbWl0IGl0IG9yIGp1c3QgY2FuY2VsIHRoZSBzdHJlYW0uJm5ic3A7DQo8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+W1Ro
b21hcyBTd2luZGVsbHNdIEFzIHN0cmVhbSBmcmFtZXMgY29udGFpbiB0aGUgb2Zmc2V0ICZuYnNw
O2NsaWVudCBwb3RlbnRpYWxseSBhbHNvIGhhcyB0aGUgb3B0aW9uIG9mIGp1c3QgYWNrbm93bGVk
Z2luZyByZWNlcHRpb24gZXZlbiBpdCBkaWRu4oCZdCBhY3R1YWxseSByZWNlaXZlIHRoZW0gLQ0K
IHRob3VnaCBvYnZpb3VzbHkgdGhpcyB3b3VsZCBhbmQgY2F1c2UgcHJvYmxlbXMgaWYgbm9uLXN0
cmVhbSBmcmFtZXMgd2VyZSBhbHNvIGJlaW5nIGFja25vd2xlZGdlZCB3aGVuIGluIGZhY3QgdGhl
IGNsaWVudCBoYWRu4oCZdCBhY2tub3dsZWRnZSB0aGVtLiAuPG86cD48L286cD48L3NwYW4+PC9p
PjwvYj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIGdlbmVyYWxseSBjb25zaWRlciB1bnJl
bGlhYmlsaXR5IHRvIGJlIGEgbWF0dGVyIG9mIHNlbmRlciBzaWRlIHBvbGljeS48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+W1Rob21h
cyBTd2luZGVsbHNdIEkgZG9u4oCZdCB0aGluayBJIGFncmVlIHdpdGggdGhhdC4gT2Z0ZW4gaXQg
aXMgdGhlIGNsaWVudCB3aGljaCBoYXMgdGhlIGtub3dsZWRnZSBhYm91dCB3aGV0aGVyIGRhdGEg
aXMgb3IgaXMgbm90IGltcG9ydGFudC4gTGl2ZSB2aWRlbyBzdHJlYW1pbmcgaXMNCiB0aGUgYmVz
dCBleGFtcGxlIGZvciB0aGlzLCBpZiB0aGUgY2xpZW50IGhhcyBlbm91Z2ggYnVmZmVyIGFuZCBp
cyBwbGF5aW5nIHRoZSBvdXRwdXQgb3V0IGxpdmUgdGhlbiBpdCB3b3VsZCBwcmVmZXIgdG8gZ2V0
IHRoZSBkYXRhIHJlLXRyYW5zbWl0dGVkLCBob3dldmVyIGRhdGEgb3ZlciBhIGNlcnRhaW4gYWdl
IGlzbuKAmXQgdXNlZnVsIGFuZCBpdCBtYXkgcHJlZmVyIHRvIGxvc2Ugc29tZSBmcmFtZXMgYW5k
IGp1bXAgYmFjayB1cCB0byBsaXZlLg0KIEhvd2V2ZXIgaWYgdGhlIGNsaWVudCBpcyBhY3R1YWxs
eSByZWNvcmRpbmcgdGhlIG91dHB1dCAob3IgaGFzIGEgbG9uZ2VyIGJ1ZmZlcikgaXQgbWF5IHBy
ZWZlciB0byBzdGFsbCBhbmQgZ2V0IGFsbCB0aGUgZGF0YS48L3NwYW4+PC9pPjwvYj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWYiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+TWFraW5nIHRoaXMgd29yayB3ZWxsIG1heSByZXF1aXJlIGEgbW9yZSBy
b2J1c3QgaW50ZXJmYWNlIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBRVUlDIHN0cmVhbSwg
b3IgbWF5IGp1c3QgcmVxdWlyZSBzb21lIG5ldyBmZWF0dXJlcywgd2UnbGwgc2VlLiZuYnNwOyBJ
IGNhbid0IHRoaW5rIG9mIGFueXRoaW5nIGFib3V0IG1vdmluZyBmcm9tIDIgdG8gMSBzdHJlYW1z
IGNoYW5nZXMgdGhpcywgZXNwZWNpYWxseSBnaXZlbg0KIHRoZSBuZXcgaGVhZGVyIGNvbXByZXNz
aW9uIHNjaGVtZXMgd2lsbCBhbGxvdyBjYW5jZWxsYXRpb24gb2YgdGhlIGhlYWRlcnMgYXMgd2Vs
bCBhcyB0aGUgcGF5bG9hZCwgdW5saWtlIGJlZm9yZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gU3VuLCBKdWwgMjMsIDIwMTcg
YXQgNDo1NiBBTSwgUGhpbGlwcCBTLiBUaWVzZWwgJmx0OzxhIGhyZWY9Im1haWx0bzpwaGlsc0Bp
bi1wYW5pay5kZSIgdGFyZ2V0PSJfYmxhbmsiPnBoaWxzQGluLXBhbmlrLmRlPC9hPiZndDsgd3Jv
dGU6PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy
LWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdp
bi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBjbTttYXJnaW4tYm90
dG9tOjUuMHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSw8bzpwPjwvbzpwPjwv
cD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnRvbyBiYWQgdGhhdCBJIG1pc3NlZCB0
aGF0IGRpc2N1c3Npb24uJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPlNlcGFyYXRpbmcgREFUQSBhbmQgUmVxdWVzdC9SZXNwb25zZSB0
byBkaWZmZXJlbnQgc3RyZWFtcyB3b3VsZCBiZSBiZW5lZmljaWFsIGlmIHdlIGFkZCB1bnJlbGlh
YmxlIHN0cmVhbXMuIEkgd2lsbCB0cnkgdG8gd3JpdGUgdXAgc29tZXRoaW5nIChhdCBsZWFzdCBj
b25zaWRlcmF0aW9ucykgYmVmb3JlIHRoZSBpbnRlcmltLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUu
MHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9u
IDIyLiBKdWwgMjAxNywgYXQgMDM6MDQsIE1pa2UgQmlzaG9wICZsdDs8YSBocmVmPSJtYWlsdG86
TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPk1pY2hhZWwuQmlz
aG9wQG1pY3Jvc29mdC5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPk5vLCB0aGUgY29u
c2Vuc3VzIGJvdGggaW4gUGFyaXMgYW5kIFByYWd1ZSB3YXMgYSBzaW5nbGUgc3RyZWFtLCB3aGlj
aCBtZWFucyB0aGUgREFUQSBmcmFtZSBpcyBiYWNrIHRvIHN0YXkuJm5ic3A7IFRoZSBIUEFDSy13
aXRob3V0LWR5bmFtaWMtdGFibGUgcGllY2UgaXMgdGVtcG9yYXJ5LCB1bnRpbCB3ZSBwaWNrDQog
YSBkaXJlY3Rpb24gZm9yIGhlYWRlciBjb21wcmVzc2lvbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZu
YnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZiI+U2VudCBmcm9tIG15IFdpbmRvd3MgMTAgcGhvbmU8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRp
diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRp
bmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZiI+RnJvbTo8c3BhbiBjbGFzcz0ibS0yODQ5ODE5OTgyOTcxMDI4MjA1YXBw
bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjwvYj48YSBocmVmPSJtYWls
dG86THVjYXMuUGFyZHVlQGJiYy5jby51ayIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojOTU0RjcyIj5MdWNhcw0KIFBhcmR1ZTwvc3Bhbj48L2E+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
Ij48YnI+DQo8Yj5TZW50OjxzcGFuIGNsYXNzPSJtLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+RnJpZGF5LCBKdWx5IDIxLCAyMDE3IDg6
MjAgQU08YnI+DQo8Yj5Ubzo8c3BhbiBjbGFzcz0ibS0yODQ5ODE5OTgyOTcxMDI4MjA1YXBwbGUt
Y29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9iPjwvc3Bhbj48YSBocmVmPSJtYWlsdG86
cXVpY0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojOTU0
RjcyIj5JRVRGIFFVSUMgV0c8L3NwYW4+PC9hPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PGJyPg0KPGI+U3Vi
amVjdDo8c3BhbiBjbGFzcz0ibS0yODQ5ODE5OTgyOTcxMDI4MjA1YXBwbGUtY29udmVydGVkLXNw
YWNlIj4mbmJzcDs8L3NwYW4+PC9iPkhUVFAgcmVxdWVzdHMgb24gb25lIHN0cmVhbSAjNjkyPG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWYiPkhpLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmIj5BcG9sb2dpZXMgaWYgdGhpcyB3YXMgZGlzY3Vzc2VkIGFscmVhZHkgaW4gUHJhZ3Vl
IGJ1dCBJ4oCZZCBsaWtlIHNvbWUgY2xhcmlmaWNhdGlvbiBvbiB0aGUgaW50ZW5kZWQgbGlmZXRp
bWUgc2NvcGUgb2YgdGhlIGNoYW5nZXMgaW48c3BhbiBjbGFzcz0ibS0yODQ5ODE5OTgyOTcxMDI4
MjA1YXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Imh0
dHBzOi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNB
JTJGJTJGZ2l0aHViLmNvbSUyRnF1aWN3ZyUyRmJhc2UtZHJhZnRzJTJGcHVsbCUyRjY5MiUyRmZp
bGVzJmFtcDtkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jvc29mdC5jb20lN0Mx
YTY2ODczZWM5ODM0OTdiZjdkZTA4ZDRkMDRjMDMyNiU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3
Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjI0NzIyODM0MTUzNDcmYW1wO3NkYXRhPWRaTVhwaUNZ
bzViN3RWdUtyYkpDc25hUFA0Mm1xUlZpJTJCM3g0Z2FyV3J2SSUzRCZhbXA7cmVzZXJ2ZWQ9MCIg
dGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojOTU0RjcyIj5QUiM2OTI8L3Nw
YW4+PC9hPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZiI+LjxzcGFuIGNsYXNzPSJtLTI4NDk4MTk5ODI5NzEwMjgy
MDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi
PiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPG9sIHN0eWxlPSJtYXJnaW4t
dG9wOjBjbSIgc3RhcnQ9IjEiIHR5cGU9IjEiPg0KPGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtYXJnaW4tbGVmdDowY207bXNvLWxpc3Q6bDIgbGV2ZWwxIGxmbzMiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
ZiI+SXMgdGhlIGludGVudGlvbiB0aGF0IHRoaXMgY2hhbmdlIHVuYmxvY2tzIHNwZWNpZmljYXRp
b24gLyBkZXZlbG9wbWVudCBzbyB0aGF0IHRoZSBXRyBjYW4gY29udGludWU/PG86cD48L286cD48
L3NwYW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjBjbTtt
c28tbGlzdDpsMiBsZXZlbDEgbGZvMyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5XaWxsIHRoZXNlIGNoYW5n
ZXMgYmUgdW53b3VuZCBvbmNlIHByb2dyZXNzIGhhcyBiZWVuIG1hZGU/PG86cD48L286cD48L3Nw
YW4+PC9saT48L29sPg0KPG9sIHN0eWxlPSJtYXJnaW4tdG9wOjBjbSIgc3RhcnQ9IjIiIHR5cGU9
IjEiPg0KPG9sIHN0eWxlPSJtYXJnaW4tdG9wOjBjbSIgc3RhcnQ9IjEiIHR5cGU9ImEiPg0KPGxp
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDowY207bXNvLWxpc3Q6bDIgbGV2
ZWwyIGxmbzMiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+VGhlIERBVEEgZnJhbWUgaGFzIGJlZW4gcmVzdXJy
ZWN0ZWQgKEkgcHJlc3VtZSB0byBkZW1hcmsgZnJhbWVzIGluIHRoZSBzYW1lIHN0cmVhbSkuIFdp
bGwgaXQgYmUgc3RydWNrIHdpdGggYSB3b29kZW4gc3Rha2UNCiBpbiB0aGUgZnV0dXJlLCBvciBj
b250aW51ZSB0byBoYW5nIGFyb3VuZD88bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjwvb2w+DQo8L29s
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5UaGFua3M8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkx1Y2FzPG86cD48L286
cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVv
dGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+QVZFITxicj4NCiZuYnNwOyBQaGlsaXBwIFMuIFRp
ZXNlbCAvIHBoaWxz4oCmPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojODg4ODg4Ij48YnI+DQo8
c3BhbiBjbGFzcz0iaG9lbnpiIj4tLSZuYnNwOzwvc3Bhbj48YnI+DQo8c3BhbiBjbGFzcz0iaG9l
bnpiIj4mbmJzcDsgJm5ic3A7e3BoaWxzfS0tLSZndDstLS0oPC9zcGFuPjwvc3Bhbj48YSBocmVm
PSJtYWlsdG86cGhpbHNAaW4tcGFuaWsuZGUiIHRhcmdldD0iX2JsYW5rIj5waGlsc0Bpbi1wYW5p
ay5kZTwvYT48c3BhbiBjbGFzcz0iaG9lbnpiIj48c3BhbiBzdHlsZT0iY29sb3I6Izg4ODg4OCI+
KS0tLSZndDstLS0oPC9zcGFuPjwvc3Bhbj48YSBocmVmPSJodHRwOi8vcGhpbHMuaW4tcGFuaWsu
ZGUiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vcGhpbHMuaW4tcGFuaWsuZGU8L2E+PHNwYW4gY2xh
c3M9ImhvZW56YiI+PHNwYW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPiktLS0tLDwvc3Bhbj48L3Nw
YW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPjxicj4NCjxzcGFuIGNsYXNzPSJob2VuemIi
PiZuYnNwOyAmbmJzcDsgJm5ic3A7IHdlbm4gdyBlaW5lICZuYnNwOyBhdWJlIGlzdCBkbiAmbmJz
cDsgJm5ic3A7ICZuYnNwO21hbiBhdSBkcmFuIGRyZSBlbiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB8PC9zcGFuPjxicj4NCjxz
cGFuIGNsYXNzPSJob2VuemIiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7byAmbmJzcDsgJm5ic3A7IFNjaHIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YW4gbXVz
cyAmbmJzcDsgJm5ic3A7IGhjICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBoICZuYnNwOyAo
S3VydCBTY2h3aXR0ZXJzKSB8PC9zcGFuPjxicj4NCjxzcGFuIGNsYXNzPSJob2VuemIiPjp3cSEg
Jm5ic3A7Jmx0Oy0tLS0ocGhvbmU6IDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0idGVsOiYjNDM7NDkl
MjAxNzklMjA2NzM3NDM5IiB0YXJnZXQ9Il9ibGFuayI+JiM0Mzs0OS0xNzktNjczNzQzOTwvYT48
c3BhbiBjbGFzcz0iaG9lbnpiIj48c3BhbiBzdHlsZT0iY29sb3I6Izg4ODg4OCI+KS0tLSZsdDst
LS0oamFiYmVyOg0KPC9zcGFuPjwvc3Bhbj48YSBocmVmPSJtYWlsdG86cGhpbHNAaW4tcGFuaWsu
ZGUiIHRhcmdldD0iX2JsYW5rIj5waGlsc0Bpbi1wYW5pay5kZTwvYT48c3BhbiBjbGFzcz0iaG9l
bnpiIj48c3BhbiBzdHlsZT0iY29sb3I6Izg4ODg4OCI+KS0tLS0nPC9zcGFuPjwvc3Bhbj48c3Bh
biBzdHlsZT0iY29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+
DQo8L2h0bWw+DQo=

--_000_DB5PR07MB1237D364086129C462AAC19D84BA0DB5PR07MB1237eurp_--


From nobody Sun Jul 23 06:03:22 2017
Return-Path: <ianswett@google.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 A5E1D1270B4 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 06:03:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 6tICmTW1XDbt for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 06:03:18 -0700 (PDT)
Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (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 00460129AA8 for <quic@ietf.org>; Sun, 23 Jul 2017 06:03:17 -0700 (PDT)
Received: by mail-yw0-x236.google.com with SMTP id i6so3516126ywb.1 for <quic@ietf.org>; Sun, 23 Jul 2017 06:03:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=7lFBCL+9el1p0YPssZQ3EfWNVVi8B/9uwxjxvvXxNSM=; b=sP1gc0kKCu41A6una1MRkBlXSH0LiJfvVU3aQi01LOxmiOgbucLhg5nBUzZCEXsjct P65js/y90xWkd/S4lEODlIa1szljU+bv0Q2zp86IWPCoIiU7z911qTg1oBhSi/lxdL4u j7t3fDd0kqD5xVgbiJyBVVUs0lwDES4ZmU3ju598vCnPhAalGW1D8hcs3jFFo9f8ZXCd ZA3wKM5d3xirzZTzWzYFCQnFBQBcmJjpbljoYk06kJPCszXNuCbXLTBuebrPpu7vFf9U XTvWp/ciW0JmmazBg5etK7Dk1ffqZlxg18AK1HSwCawFvBUwphpjpl3n+g4wivXVXrEO IVDA==
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=7lFBCL+9el1p0YPssZQ3EfWNVVi8B/9uwxjxvvXxNSM=; b=Q3qCL7yGjisV3LLvPkRctx5sdj++fnZCKfnLd8HN3IMnOBGivtPeMJc9/4J5p0pfH6 RfWMW26hQwVw3ary5X6YSyIoEHZCBFMcKRH+lK36LDfbuElqkRn0IHXvT6UJJ8lrkLcM 2Z4DZLSV6XtWOZ/8v7BNbnan8PwyritzZUlv7RKtiuGbIeH0ZlvVVWsi41YyPE2il/3Q 9YBuvzentzlqEyfUest3/1w4UkxHraN8DySdIMy/1kDY9gonq9P7E6201Jk2auXbeBPM V6t/dgs8O2YPHVftrqTDZiKqua1SfCG5mox2k0EYTGVRkQ0mioB3EWAkct7D28JXQv/t HKNA==
X-Gm-Message-State: AIVw112gHjKK4/1vCPA1hW3NGf2r8i3N7GIua7WXOI8pkUnOlgucoVqI MPP8nH49+MBovcMMYV44hTiz0BDDX2jh
X-Received: by 10.129.92.3 with SMTP id q3mr10845073ywb.298.1500814996955; Sun, 23 Jul 2017 06:03:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.163.130 with HTTP; Sun, 23 Jul 2017 06:02:56 -0700 (PDT)
In-Reply-To: <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
From: Ian Swett <ianswett@google.com>
Date: Sun, 23 Jul 2017 09:02:56 -0400
Message-ID: <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com>
Subject: Re: HTTP requests on one stream #692
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Cc: "Philipp S. Tiesel" <phils@in-panik.de>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  Mike Bishop <Michael.Bishop@microsoft.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114d6f02c508e20554fbb894"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Lm73S8ii5cYkvcEWHzQhFlDn9mY>
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, 23 Jul 2017 13:03:21 -0000

--001a114d6f02c508e20554fbb894
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (Nokia - GB/Cambridge,
UK) <thomas.swindells@nokia.com> wrote:

> A few comments linline.
>
>
>
> Thomas
>
>
>
> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Ian Swett
> *Sent:* 23 July 2017 10:59
> *To:* Philipp S. Tiesel <phils@in-panik.de>
> *Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; Mike Bishop <
> Michael.Bishop@microsoft.com>; IETF QUIC WG <quic@ietf.org>
> *Subject:* Re: HTTP requests on one stream #692
>
>
>
> A few comments on unreliable streams in QUIC, and this may be a longer
> discussion and I'd be curious to read the considerations you have in mind=
.
>
>
>
> QUIC as specified today definitely enables unreliability.  For example, I
> can send stream data once, and if some portion of it is lost, at that poi=
nt
> I can decide if I want to retransmit it or just cancel the stream.
>
> *[Thomas Swindells] As stream frames contain the offset  client
> potentially also has the option of just acknowledging reception even it
> didn=E2=80=99t actually receive them - though obviously this would and ca=
use
> problems if non-stream frames were also being acknowledged when in fact t=
he
> client hadn=E2=80=99t acknowledge them. .*
>

This is prohibited currently, and for good reason, since acking packets you
haven't received breaks congestion control and potentially flow control.
Also, you'd be assuming what was in the packets was what you expected, and
if you were wrong, it could go really poorly.  ie: imagine if you acked a
packet containing QPACK compression context, but didn't receive it.  The
connection would then be in a completely invalid state.


> I generally consider unreliability to be a matter of sender side policy.
>
> *[Thomas Swindells] I don=E2=80=99t think I agree with that. Often it is =
the
> client which has the knowledge about whether data is or is not important.
> Live video streaming is the best example for this, if the client has enou=
gh
> buffer and is playing the output out live then it would prefer to get the
> data re-transmitted, however data over a certain age isn=E2=80=99t useful=
 and it
> may prefer to lose some frames and jump back up to live. However if the
> client is actually recording the output (or has a longer buffer) it may
> prefer to stall and get all the data.*
>
>
>

This is definitely an interesting use case and one I think should be in
scope for HTTP over QUIC.  However, at the end of the day the server needs
to send what the client wants, so it's better to inform the server what to
send than trick it.  Given we're discussing HTTP, ideally the HTTP/2
priorities + cancellation would provide what you need, but I'll admit at
the moment it's not a natural mapping.


> Making this work well may require a more robust interface between the
> application and QUIC stream, or may just require some new features, we'll
> see.  I can't think of anything about moving from 2 to 1 streams changes
> this, especially given the new header compression schemes will allow
> cancellation of the headers as well as the payload, unlike before.
>
>
>
>
>
>
>
>
>
> On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel <phils@in-panik.de>
> wrote:
>
> Hi,
>
>
>
> too bad that I missed that discussion.
>
>
>
> Separating DATA and Request/Response to different streams would be
> beneficial if we add unreliable streams. I will try to write up something
> (at least considerations) before the interim.
>
>
>
>
>
> On 22. Jul 2017, at 03:04, Mike Bishop <Michael.Bishop@microsoft.com>
> wrote:
>
>
>
> No, the consensus both in Paris and Prague was a single stream, which
> means the DATA frame is back to stay.  The HPACK-without-dynamic-table
> piece is temporary, until we pick a direction for header compression.
>
>
>
> Sent from my Windows 10 phone
>
>
>
> *From: *Lucas Pardue <Lucas.Pardue@bbc.co.uk>
> *Sent: *Friday, July 21, 2017 8:20 AM
> *To: *IETF QUIC WG <quic@ietf.org>
> *Subject: *HTTP requests on one stream #692
>
>
>
> Hi,
>
>
>
> Apologies if this was discussed already in Prague but I=E2=80=99d like so=
me
> clarification on the intended lifetime scope of the changes in PR#692
> <https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithu=
b.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&data=3D02%7C01%7Cmichael.=
bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141a=
f91ab2d7cd011db47%7C1%7C0%7C636362472283415347&sdata=3DdZMXpiCYo5b7tVuKrbJC=
snaPP42mqRVi%2B3x4garWrvI%3D&reserved=3D0>
> .
>
>
>
>    1. Is the intention that this change unblocks specification /
>    development so that the WG can continue?
>    2. Will these changes be unwound once progress has been made?
>
>
>    1. The DATA frame has been resurrected (I presume to demark frames in
>       the same stream). Will it be struck with a wooden stake in the futu=
re, or
>       continue to hang around?
>
>
>
> Thanks
>
> Lucas
>
>
>
> AVE!
>   Philipp S. Tiesel / phils=E2=80=A6
> --
>    {phils}--->---(phils@in-panik.de)--->---(http://phils.in-panik.de)----=
,
>       wenn w eine   aube ist dn      man au dran dre en                  =
 |
>            o     Schr        an muss     hc         h   (Kurt Schwitters)=
 |
> :wq!  <----(phone: +49-179-6737439 <+49%20179%206737439>)---<---(jabber:
> phils@in-panik.de)----'
>
>
>
>
>

--001a114d6f02c508e20554fbb894
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">=
On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (Nokia - GB/Cambridge, U=
K) <span dir=3D"ltr">&lt;<a href=3D"mailto:thomas.swindells@nokia.com" targ=
et=3D"_blank">thomas.swindells@nokia.com</a>&gt;</span> wrote:<br><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex">





<div lang=3D"EN-GB" link=3D"blue" vlink=3D"purple">
<div class=3D"m_-2479149337035486093WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">A few comments linline.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thomas<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
QUIC [mailto:<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">qui=
c-bounces@ietf.org</a>]
<b>On Behalf Of </b>Ian Swett<br>
<b>Sent:</b> 23 July 2017 10:59<br>
<b>To:</b> Philipp S. Tiesel &lt;<a href=3D"mailto:phils@in-panik.de" targe=
t=3D"_blank">phils@in-panik.de</a>&gt;<br>
<b>Cc:</b> Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@bbc.co.uk" targe=
t=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt;; Mike Bishop &lt;<a href=3D"mai=
lto:Michael.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@microsof=
t.com</a>&gt;<wbr>; IETF QUIC WG &lt;<a href=3D"mailto:quic@ietf.org" targe=
t=3D"_blank">quic@ietf.org</a>&gt;<br>
<b>Subject:</b> Re: HTTP requests on one stream #692<u></u><u></u></span></=
p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div><span class=3D"">
<div>
<p class=3D"MsoNormal">A few comments on unreliable streams in QUIC, and th=
is may be a longer discussion and I&#39;d be curious to read the considerat=
ions you have in mind.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</span><div><span class=3D"">
<p class=3D"MsoNormal">QUIC as specified today definitely enables unreliabi=
lity.=C2=A0 For example, I can send stream data once, and if some portion o=
f it is lost, at that point I can decide if I want to retransmit it or just=
 cancel the stream.=C2=A0
<u></u><u></u></p>
</span><p class=3D"MsoNormal"><b><i><span style=3D"font-size:11.0pt;font-fa=
mily:&quot;Calibri&quot;,sans-serif">[Thomas Swindells] As stream frames co=
ntain the offset =C2=A0client potentially also has the option of just ackno=
wledging reception even it didn=E2=80=99t actually receive them -
 though obviously this would and cause problems if non-stream frames were a=
lso being acknowledged when in fact the client hadn=E2=80=99t acknowledge t=
hem. .</span></i></b></p></div></div></div></div></div></blockquote><div><b=
r></div><div>This is prohibited currently, and for good reason, since ackin=
g packets you haven&#39;t received breaks congestion control and potentiall=
y flow control.=C2=A0 Also, you&#39;d be assuming what was in the packets w=
as what you expected, and=C2=A0 if you were wrong, it could go really poorl=
y.=C2=A0 ie: imagine if you acked a packet containing QPACK compression con=
text, but didn&#39;t receive it.=C2=A0 The connection would then be in a co=
mpletely invalid state.</div><div>=C2=A0</div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
"><div lang=3D"EN-GB" link=3D"blue" vlink=3D"purple"><div class=3D"m_-24791=
49337035486093WordSection1"><div style=3D"border:none;border-left:solid blu=
e 1.5pt;padding:0cm 0cm 0cm 4.0pt"><div><div><p class=3D"MsoNormal"><b><i><=
span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">=
<u></u><u></u></span></i></b></p><span class=3D"">
<p class=3D"MsoNormal">I generally consider unreliability to be a matter of=
 sender side policy.<u></u><u></u></p>
</span><p class=3D"MsoNormal"><b><i><span style=3D"font-size:11.0pt;font-fa=
mily:&quot;Calibri&quot;,sans-serif">[Thomas Swindells] I don=E2=80=99t thi=
nk I agree with that. Often it is the client which has the knowledge about =
whether data is or is not important. Live video streaming is
 the best example for this, if the client has enough buffer and is playing =
the output out live then it would prefer to get the data re-transmitted, ho=
wever data over a certain age isn=E2=80=99t useful and it may prefer to los=
e some frames and jump back up to live.
 However if the client is actually recording the output (or has a longer bu=
ffer) it may prefer to stall and get all the data.</span></i></b><span styl=
e=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><u></u><u=
></u></span></p>
</div><div><div class=3D"h5">
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></div></div></div></div=
></div></blockquote><div><br></div><div>This is definitely an interesting u=
se case and one I think should be in scope for HTTP over QUIC.=C2=A0 Howeve=
r, at the end of the day the server needs to send what the client wants, so=
 it&#39;s better to inform the server what to send than trick it.=C2=A0 Giv=
en we&#39;re discussing HTTP, ideally the HTTP/2 priorities + cancellation =
would provide what you need, but I&#39;ll admit at the moment it&#39;s not =
a natural mapping.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v lang=3D"EN-GB" link=3D"blue" vlink=3D"purple"><div class=3D"m_-2479149337=
035486093WordSection1"><div style=3D"border:none;border-left:solid blue 1.5=
pt;padding:0cm 0cm 0cm 4.0pt"><div><div><div class=3D"h5"><div><p class=3D"=
MsoNormal"><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Making this work well may require a more robust inte=
rface between the application and QUIC stream, or may just require some new=
 features, we&#39;ll see.=C2=A0 I can&#39;t think of anything about moving =
from 2 to 1 streams changes this, especially given
 the new header compression schemes will allow cancellation of the headers =
as well as the payload, unlike before.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div><div><div class=3D"h5">
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel &=
lt;<a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@in-panik.de=
</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal">Hi,<u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">too bad that I missed that discussion.=C2=A0<u></u><=
u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Separating DATA and Request/Response to different st=
reams would be beneficial if we add unreliable streams. I will try to write=
 up something (at least considerations) before the interim.=C2=A0<u></u><u>=
</u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal">On 22. Jul 2017, at 03:04, Mike Bishop &lt;<a href=
=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@m=
icrosoft.com</a>&gt; wrote:<u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">No, the consensus both in Paris and Prague was a si=
ngle stream, which means the DATA frame is back to stay.=C2=A0 The HPACK-wi=
thout-dynamic-table piece is temporary, until we pick
 a direction for header compression.<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Sent from my Windows 10 phone<u></u><u></u></span><=
/p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:<span class=3D"m_-2479149337035486093m-2849=
819982971028205apple-converted-space">=C2=A0</span></span></b><a href=3D"ma=
ilto:Lucas.Pardue@bbc.co.uk" target=3D"_blank"><span style=3D"font-size:11.=
0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#954f72">Lucas
 Pardue</span></a><span style=3D"font-size:11.0pt;font-family:&quot;Calibri=
&quot;,sans-serif"><br>
<b>Sent:<span class=3D"m_-2479149337035486093m-2849819982971028205apple-con=
verted-space">=C2=A0</span></b>Friday, July 21, 2017 8:20 AM<br>
<b>To:<span class=3D"m_-2479149337035486093m-2849819982971028205apple-conve=
rted-space">=C2=A0</span></b></span><a href=3D"mailto:quic@ietf.org" target=
=3D"_blank"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;=
,sans-serif;color:#954f72">IETF QUIC WG</span></a><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><br>
<b>Subject:<span class=3D"m_-2479149337035486093m-2849819982971028205apple-=
converted-space">=C2=A0</span></b>HTTP requests on one stream #692<u></u><u=
></u></span></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Hi,<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Apologies if this was discussed already in Prague b=
ut I=E2=80=99d like some clarification on the intended lifetime scope of th=
e changes in<span class=3D"m_-2479149337035486093m-2849819982971028205apple=
-converted-space">=C2=A0</span></span><a href=3D"https://na01.safelinks.pro=
tection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fquicwg%2Fbase-drafts%=
2Fpull%2F692%2Ffiles&amp;data=3D02%7C01%7Cmichael.bishop%40microsoft.com%7C=
1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0=
%7C636362472283415347&amp;sdata=3DdZMXpiCYo5b7tVuKrbJCsnaPP42mqRVi%2B3x4gar=
WrvI%3D&amp;reserved=3D0" target=3D"_blank"><span style=3D"font-size:11.0pt=
;font-family:&quot;Calibri&quot;,sans-serif;color:#954f72">PR#692</span></a=
><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif=
">.<span class=3D"m_-2479149337035486093m-2849819982971028205apple-converte=
d-space">=C2=A0</span><u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"1">
<li class=3D"MsoNormal" style=3D"margin-left:0cm"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif">Is the intention that th=
is change unblocks specification / development so that the WG can continue?=
<u></u><u></u></span></li><li class=3D"MsoNormal" style=3D"margin-left:0cm"=
><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif=
">Will these changes be unwound once progress has been made?<u></u><u></u><=
/span></li></ol>
<ol style=3D"margin-top:0cm" start=3D"2" type=3D"1">
<ol style=3D"margin-top:0cm" start=3D"1" type=3D"a">
<li class=3D"MsoNormal" style=3D"margin-left:0cm"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif">The DATA frame has been =
resurrected (I presume to demark frames in the same stream). Will it be str=
uck with a wooden stake
 in the future, or continue to hang around?<u></u><u></u></span></li></ol>
</ol>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thanks<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Lucas<u></u><u></u></span></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:black">AVE!<br>
=C2=A0 Philipp S. Tiesel / phils=E2=80=A6</span><span style=3D"color:#88888=
8"><br>
<span class=3D"m_-2479149337035486093hoenzb">--=C2=A0</span><br>
<span class=3D"m_-2479149337035486093hoenzb">=C2=A0 =C2=A0{phils}---&gt;---=
(</span></span><a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils=
@in-<wbr>panik.de</a><span class=3D"m_-2479149337035486093hoenzb"><span sty=
le=3D"color:#888888">)---&gt;---(</span></span><a href=3D"http://phils.in-p=
anik.de" target=3D"_blank">http://phils.<wbr>in-panik.de</a><span class=3D"=
m_-2479149337035486093hoenzb"><span style=3D"color:#888888">)----,</span></=
span><span style=3D"color:#888888"><br>
<span class=3D"m_-2479149337035486093hoenzb">=C2=A0 =C2=A0 =C2=A0 wenn w ei=
ne =C2=A0 aube ist dn =C2=A0 =C2=A0 =C2=A0man au dran dre en =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |</span><br>
<span class=3D"m_-2479149337035486093hoenzb">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0o =C2=A0 =C2=A0 Schr =C2=A0 =C2=A0 =C2=A0 =C2=A0an muss =C2=A0=
 =C2=A0 hc =C2=A0 =C2=A0 =C2=A0 =C2=A0 h =C2=A0 (Kurt Schwitters) |</span><=
br>
<span class=3D"m_-2479149337035486093hoenzb">:wq! =C2=A0&lt;----(phone: </s=
pan></span><a href=3D"tel:+49%20179%206737439" target=3D"_blank">+49-179-67=
37439</a><span class=3D"m_-2479149337035486093hoenzb"><span style=3D"color:=
#888888">)---&lt;---(<wbr>jabber:
</span></span><a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@=
in-panik.de</a><span class=3D"m_-2479149337035486093hoenzb"><span style=3D"=
color:#888888">)----&#39;</span></span><span style=3D"color:black"><u></u><=
u></u></span></p>
</div>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div></div>

--001a114d6f02c508e20554fbb894--


From nobody Sun Jul 23 09:04:00 2017
Return-Path: <stephen.farrell@cs.tcd.ie>
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 85B2B12714F for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 09:03:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.302
X-Spam-Level: 
X-Spam-Status: No, score=-4.302 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
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 BBCMAO02GeYS for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 09:03:56 -0700 (PDT)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A457D12704A for <quic@ietf.org>; Sun, 23 Jul 2017 09:03:56 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id 9FBADBE2C; Sun, 23 Jul 2017 17:03:53 +0100 (IST)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j8TzBcWjqfu3; Sun, 23 Jul 2017 17:03:52 +0100 (IST)
Received: from [10.244.2.100] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id 40068BE24; Sun, 23 Jul 2017 17:03:52 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1500825832; bh=OlOF+m/umWMFsbpMKPzbYqvpXdnG5mf0gzvZuw3n/ZY=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=p5kN6771gWqjVcPtMVm+pjlH+EqR78Aull98pVL4FyYy43TWAZURXvqwjm+B2Rn0r qSDeiaw1z0ypVhVW+0SVmY+Cghc2B7B4MFrG+pfPF4Qo0kE+yR3mK4rhqor6+zgXLr i0JBO6iXzBxAnDJ8nw9c5aKZclC/dC7JOaoY0B+8=
Subject: Re: Randomizer state attacks
To: Christian Huitema <huitema@huitema.net>, =?UTF-8?Q?Mikkel_Fahn=c3=b8e_J=c3=b8rgensen?= <mikkelfj@gmail.com>, Martin Thomson <martin.thomson@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie> <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com> <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie> <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com> <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie> <6560224e-9453-5809-cfe7-932b41643c6a@huitema.net>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Openpgp: id=D66EA7906F0B897FB2E97D582F3C8736805F8DA2; url=
Message-ID: <96c6b185-f8dd-a3b8-68d7-2f83ac50ba38@cs.tcd.ie>
Date: Sun, 23 Jul 2017 17:03:51 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <6560224e-9453-5809-cfe7-932b41643c6a@huitema.net>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4gPSKxdIKIeK6vvaHc3BPtv02gTS9WGBt"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/r6HM0FXkND7_PjD5QQKEohqfELE>
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, 23 Jul 2017 16:03:58 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--4gPSKxdIKIeK6vvaHc3BPtv02gTS9WGBt
Content-Type: multipart/mixed; boundary="olewipthLqgGAhGAvqBam0un5Pmc19G2m";
 protected-headers="v1"
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
To: Christian Huitema <huitema@huitema.net>,
 =?UTF-8?Q?Mikkel_Fahn=c3=b8e_J=c3=b8rgensen?= <mikkelfj@gmail.com>,
 Martin Thomson <martin.thomson@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Message-ID: <96c6b185-f8dd-a3b8-68d7-2f83ac50ba38@cs.tcd.ie>
Subject: Re: Randomizer state attacks
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net>
 <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com>
 <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie>
 <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com>
 <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
 <CAN1APdcOswKq6Yb=mhod8LywtuoE9+a+MKk3Uz=djMDgax9NpA@mail.gmail.com>
 <37ea6f22-5a55-0248-fdbf-1db6d4ef14a7@cs.tcd.ie>
 <6560224e-9453-5809-cfe7-932b41643c6a@huitema.net>
In-Reply-To: <6560224e-9453-5809-cfe7-932b41643c6a@huitema.net>

--olewipthLqgGAhGAvqBam0un5Pmc19G2m
Content-Type: text/plain; charset=utf-8
Content-Language: en-GB
Content-Transfer-Encoding: quoted-printable



On 23/07/17 01:33, Christian Huitema wrote:
>=20
>=20
> On 7/22/2017 10:58 AM, Stephen Farrell wrote:
>>
>> On 22/07/17 17:43, Mikkel Fahn=C3=B8e J=C3=B8rgensen wrote:
>>> So there plenty of pitfalls, but requiring that the QUIC implementati=
on to
>>> protect against bad PRNG rather than the crypto library seems wrong t=
o me.
>>> Granted, you don=E2=80=99t need to make the protocol more vulnerable =
than
>>> necessary, and indeed, I have also thought about all these random val=
ues
>>> being released into the wild is an easy way to make serious crypto mi=
stakes.
>> I'd assert that lack of entropy or a significantly imperfect prng
>> is a different issue, compared to the dual-ec attack...
> Stephen, from our previous discussions, I conclude that you are looking=

> at some kind of "defense in  depth". If the local PRNG is robust, there=

> is not much risk in disclosing random numbers in connection ID, initial=

> sequence numbers or nonce. But we don't always know that the PRNG is
> robust. In the Dual-EC case, implementers believed it was, when in fact=

> it was not. The defense in depth argument is that we should somehow
> control the random values published in clear text, so that even if the
> PRNG happens to be weak, the weakness will be difficult to exploit.
> Also, long random fields in protocol messages can be abused as side
> channels.

Correct.

>=20
> On the other hand,  nonce and other random fields are useful to prevent=

> off path attacks.
>=20

Also correct.

> Also, QUIC relies on TLS 1.3. The TLS 1.3 Client Hello and Server Hello=

> are sent in clear text. Both carry a 32 byte random field.=20

Yeah, I'll take a peek back at the TLS list/git repo to see why what's
changed from 28->32. I forget tbh.

> Even if QUIC
> did not use 12 bytes used in QUIC for Connection ID and Initial Sequenc=
e
> Number, TLS would still use 32 bytes, which would be plenty for dual-EC=

> style attacks. So I am not sure that we should pile a lot of complexity=

> in QUIC to mitigate random number disclosure.

I agree that adding a "lot of complexity" would be wrong. OTOH,
the dual-ec attack is real and has been attempted multiple times
in multiple ways (bsafe & juniper), so the attacker in that case
appears not to have stopped attacking. So doing the analysis is
worthwhile.

Maybe the right thing for now is to open an issue to check the
protocol vs. dual-ec attacks?

S.

>=20
> -- Christian Huitema
> =20
>=20
> =20
>=20
> =20
>=20


--olewipthLqgGAhGAvqBam0un5Pmc19G2m--

--4gPSKxdIKIeK6vvaHc3BPtv02gTS9WGBt
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJZdMjnAAoJEC88hzaAX42ijGoH+wZQzLwUjZxJninTNB0eUgW+
gmBFGW44BqabVT37LIQol7odATWDseiPBDf/5SPPFElT8ZBsGlQZnGlOUSkwfNXq
PtdmRcf+GCwcMhVPHyUgqLiFxFc8v9jBLOAfrNVlyAnkKcS8NGWdsa46fw7ukmui
BehTXpN0X7PQCoqakbi6+u/T5TBqQMmAygjHTy5XJH8oKKeUKfXvrC1k07KIgQHt
FheexBi7bI8a0Xy2Vg598qA+W3fKVE5OS+rJdb/Gytn5V6zeUco9KuKrNbhNoGdu
NEbTs/18NaHMsTtAZ+m3WFymsbsT+IhUQwORh7lGSi90bba1dtcrl4JF2SaTpbg=
=8Ylb
-----END PGP SIGNATURE-----

--4gPSKxdIKIeK6vvaHc3BPtv02gTS9WGBt--


From nobody Sun Jul 23 11:29:14 2017
Return-Path: <thomas.swindells@nokia.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 C9D1C131600 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 11:29:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.92
X-Spam-Level: 
X-Spam-Status: No, score=-1.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 1m5fTm2lw7iC for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 11:29:10 -0700 (PDT)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0127.outbound.protection.outlook.com [104.47.2.127]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6FDDD131471 for <quic@ietf.org>; Sun, 23 Jul 2017 11:29:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=TmI6j1EXS0/HC55DelOw37fa3hP3g6n1WBSxuDv2VRY=; b=UL7RBjDx7rIX5VahgHu45o1xla4HQKU9UGnwMC6WHLxi2N/OLfpMgQ5kGsJck2+uevABRTRzrivQCSpRP07LCbUkJf2Hw7OUfBBWKYej/tIlZ8qLnkNDMaO1fgYqgk1Z1TX5tCJQ4dk9Mp1DOgwU0fF284dhW+APe9WG2S2I4d8=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB1607.eurprd07.prod.outlook.com (10.166.12.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.10; Sun, 23 Jul 2017 18:29:06 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.011; Sun, 23 Jul 2017 18:29:06 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: Ian Swett <ianswett@google.com>
CC: "Philipp S. Tiesel" <phils@in-panik.de>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Mike Bishop <Michael.Bishop@microsoft.com>, "IETF QUIC WG" <quic@ietf.org>
Subject: RE: HTTP requests on one stream #692
Thread-Topic: HTTP requests on one stream #692
Thread-Index: AdMCNJiq1/jFQyapRDqdWSVpnV2UvgAUdAmMAELNc4AAAid+AAAA+mRQAAV2kgAAANuvsA==
Date: Sun, 23 Jul 2017 18:29:06 +0000
Message-ID: <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com>
In-Reply-To: <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [82.69.101.84]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB1607; 7:VCh7SYSmiTJduWucl23uJ714Bbz2YZNqPefjxfu3lTwKbbpWW5ZIE1HYD2QylmR2L/irNc8cUwaGlAVwRmYnDv+AdLsjXzAnVCUID248SZ3Da4cHupG9y0HttzKioTHSFG8m98QUG6aHKcAqK0B3mFfSLHKHgTebR3JeFKzS9RF99+4N8IebOFVpRdvJlQ/xwLYIH0NXj1pZ4F2GYgOynC/LfsfEfHC7U+77NK0LtTd4HX2FWLPuYxAA9fpupveu81pxi9AHBFGegeqSDx6OAMoVgHBHMOEm8OppZ5v3aLlIQTIqlhYDpvwmYa2GdP9BecMuXlCkBROVBvp2bJVtSmjG1ZUGqxbNAIi1C4wQGIPf2xVjBkeXQmPrJ6WmSXJiJF9XvUNMc5l5LQEnnDY58zzaaJo8IqDdjCSSIzdxk97uYUOsKBBZi+1WVQvoUhwuRSdndvWJXIIx+IC4V0asW0r1x31lzizTHmlNKVPwvs36ilCAU+tGyuRQRI2VhJ86hANSM70ytefKUXyrXDzO8D27UhBTeviDfr79dULz+5/2fzcsjkEvntjqJYG0OuTEu70lCsw0nKqRbe/YcWsBgW/6xq4xcoQhWisZl6GuTQ7eUEQGJ+1QOtXSmca3WdmHm3lOpIgU5F2Tf2N67cBlB0VaA7p5N00iXMI70mLQsFc6oOoGZ594/7zue8msC+S7ad01yvpt8yCjPqIWZ6EDDcpwWbHJ48cK3UGMk6/xHbZ14oKX9DgbH6WImsbF6eGGiV/9eBMYtM2bSU24rtzsHMmuq2QbhF1fXL3MGfNcS8w=
x-ms-office365-filtering-correlation-id: 7c38e23e-1f40-4eb4-83d4-08d4d1f8b3ab
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB1607; 
x-ms-traffictypediagnostic: DB5PR07MB1607:
x-exchange-antispam-report-test: UriScan:(158342451672863)(89211679590171)(189930954265078)(82608151540597)(211936372134217)(100405760836317)(219752817060721)(127952516941037)(21748063052155);
x-microsoft-antispam-prvs: <DB5PR07MB1607826764309F8291F3542784BA0@DB5PR07MB1607.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(920507026)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB1607; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB1607; 
x-forefront-prvs: 0377802854
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39400400002)(39410400002)(39450400003)(39840400002)(39850400002)(39860400002)(377454003)(199003)(24454002)(189002)(2906002)(8666007)(9686003)(5660300001)(236005)(229853002)(3660700001)(55016002)(4326008)(54906002)(6306002)(54896002)(99286003)(6506006)(6436002)(3280700002)(53386004)(38730400002)(6116002)(3846002)(102836003)(790700001)(8676002)(2950100002)(6916009)(2900100001)(110136004)(189998001)(97736004)(6246003)(7736002)(7696004)(53936002)(68736007)(5250100002)(54356999)(14454004)(50986999)(106356001)(105586002)(25786009)(8936002)(81156014)(81166006)(101416001)(66066001)(93886004)(53546010)(76176999)(45080400002)(74316002)(86362001)(478600001)(33656002)(606006)(34040400001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB1607; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_DB5PR07MB1237A77FC6F791C1A95239F784BA0DB5PR07MB1237eurp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jul 2017 18:29:06.1132 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1607
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/7-ruzkfuSKUDiAxEaeUXm0rqidA>
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, 23 Jul 2017 18:29:13 -0000

--_000_DB5PR07MB1237A77FC6F791C1A95239F784BA0DB5PR07MB1237eurp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SSBhZ3JlZSB0aGF0IGJsaW5kbHkgYWNraW5nIHBhY2tldHMgd291bGQgY2F1c2UgYmlnIHByb2Js
ZW1zIHdpdGggdGhlIGN1cnJlbnQgb3BlcmF0aW9ucy4gQnV0IHBlcmhhcHMgaWYvd2hlbiB3ZSBn
ZXQgb250byB1bnJlbGlhYmxlIHN0cmVhbXMgYSB3YXkgdG8gZXhwbGljaXRseSBuYWNrIHBhY2tl
dHMgYnV0IHN0YXRlIGRvbuKAmXQgYm90aGVyIHJldHJhbnNtaXR0aW5nIHRoZSBvbmVzIGZvciBz
dHJlYW0geCB3b3VsZCBiZSBhIHBvdGVudGlhbCBtZWNoYW5pc20/DQoNClRob21hcw0KDQpGcm9t
OiBJYW4gU3dldHQgW21haWx0bzppYW5zd2V0dEBnb29nbGUuY29tXQ0KU2VudDogMjMgSnVseSAy
MDE3IDE0OjAzDQpUbzogU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lhIC0gR0IvQ2FtYnJpZGdlLCBV
SykgPHRob21hcy5zd2luZGVsbHNAbm9raWEuY29tPg0KQ2M6IFBoaWxpcHAgUy4gVGllc2VsIDxw
aGlsc0Bpbi1wYW5pay5kZT47IEx1Y2FzIFBhcmR1ZSA8THVjYXMuUGFyZHVlQGJiYy5jby51az47
IE1pa2UgQmlzaG9wIDxNaWNoYWVsLkJpc2hvcEBtaWNyb3NvZnQuY29tPjsgSUVURiBRVUlDIFdH
IDxxdWljQGlldGYub3JnPg0KU3ViamVjdDogUmU6IEhUVFAgcmVxdWVzdHMgb24gb25lIHN0cmVh
bSAjNjkyDQoNCg0KT24gU3VuLCBKdWwgMjMsIDIwMTcgYXQgNzo1NyBBTSwgU3dpbmRlbGxzLCBU
aG9tYXMgKE5va2lhIC0gR0IvQ2FtYnJpZGdlLCBVSykgPHRob21hcy5zd2luZGVsbHNAbm9raWEu
Y29tPG1haWx0bzp0aG9tYXMuc3dpbmRlbGxzQG5va2lhLmNvbT4+IHdyb3RlOg0KQSBmZXcgY29t
bWVudHMgbGlubGluZS4NCg0KVGhvbWFzDQoNCkZyb206IFFVSUMgW21haWx0bzpxdWljLWJvdW5j
ZXNAaWV0Zi5vcmc8bWFpbHRvOnF1aWMtYm91bmNlc0BpZXRmLm9yZz5dIE9uIEJlaGFsZiBPZiBJ
YW4gU3dldHQNClNlbnQ6IDIzIEp1bHkgMjAxNyAxMDo1OQ0KVG86IFBoaWxpcHAgUy4gVGllc2Vs
IDxwaGlsc0Bpbi1wYW5pay5kZTxtYWlsdG86cGhpbHNAaW4tcGFuaWsuZGU+Pg0KQ2M6IEx1Y2Fz
IFBhcmR1ZSA8THVjYXMuUGFyZHVlQGJiYy5jby51azxtYWlsdG86THVjYXMuUGFyZHVlQGJiYy5j
by51az4+OyBNaWtlIEJpc2hvcCA8TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbTxtYWlsdG86
TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbT4+OyBJRVRGIFFVSUMgV0cgPHF1aWNAaWV0Zi5v
cmc8bWFpbHRvOnF1aWNAaWV0Zi5vcmc+Pg0KU3ViamVjdDogUmU6IEhUVFAgcmVxdWVzdHMgb24g
b25lIHN0cmVhbSAjNjkyDQoNCkEgZmV3IGNvbW1lbnRzIG9uIHVucmVsaWFibGUgc3RyZWFtcyBp
biBRVUlDLCBhbmQgdGhpcyBtYXkgYmUgYSBsb25nZXIgZGlzY3Vzc2lvbiBhbmQgSSdkIGJlIGN1
cmlvdXMgdG8gcmVhZCB0aGUgY29uc2lkZXJhdGlvbnMgeW91IGhhdmUgaW4gbWluZC4NCg0KUVVJ
QyBhcyBzcGVjaWZpZWQgdG9kYXkgZGVmaW5pdGVseSBlbmFibGVzIHVucmVsaWFiaWxpdHkuICBG
b3IgZXhhbXBsZSwgSSBjYW4gc2VuZCBzdHJlYW0gZGF0YSBvbmNlLCBhbmQgaWYgc29tZSBwb3J0
aW9uIG9mIGl0IGlzIGxvc3QsIGF0IHRoYXQgcG9pbnQgSSBjYW4gZGVjaWRlIGlmIEkgd2FudCB0
byByZXRyYW5zbWl0IGl0IG9yIGp1c3QgY2FuY2VsIHRoZSBzdHJlYW0uDQpbVGhvbWFzIFN3aW5k
ZWxsc10gQXMgc3RyZWFtIGZyYW1lcyBjb250YWluIHRoZSBvZmZzZXQgIGNsaWVudCBwb3RlbnRp
YWxseSBhbHNvIGhhcyB0aGUgb3B0aW9uIG9mIGp1c3QgYWNrbm93bGVkZ2luZyByZWNlcHRpb24g
ZXZlbiBpdCBkaWRu4oCZdCBhY3R1YWxseSByZWNlaXZlIHRoZW0gLSB0aG91Z2ggb2J2aW91c2x5
IHRoaXMgd291bGQgYW5kIGNhdXNlIHByb2JsZW1zIGlmIG5vbi1zdHJlYW0gZnJhbWVzIHdlcmUg
YWxzbyBiZWluZyBhY2tub3dsZWRnZWQgd2hlbiBpbiBmYWN0IHRoZSBjbGllbnQgaGFkbuKAmXQg
YWNrbm93bGVkZ2UgdGhlbS4gLg0KDQpUaGlzIGlzIHByb2hpYml0ZWQgY3VycmVudGx5LCBhbmQg
Zm9yIGdvb2QgcmVhc29uLCBzaW5jZSBhY2tpbmcgcGFja2V0cyB5b3UgaGF2ZW4ndCByZWNlaXZl
ZCBicmVha3MgY29uZ2VzdGlvbiBjb250cm9sIGFuZCBwb3RlbnRpYWxseSBmbG93IGNvbnRyb2wu
ICBBbHNvLCB5b3UnZCBiZSBhc3N1bWluZyB3aGF0IHdhcyBpbiB0aGUgcGFja2V0cyB3YXMgd2hh
dCB5b3UgZXhwZWN0ZWQsIGFuZCAgaWYgeW91IHdlcmUgd3JvbmcsIGl0IGNvdWxkIGdvIHJlYWxs
eSBwb29ybHkuICBpZTogaW1hZ2luZSBpZiB5b3UgYWNrZWQgYSBwYWNrZXQgY29udGFpbmluZyBR
UEFDSyBjb21wcmVzc2lvbiBjb250ZXh0LCBidXQgZGlkbid0IHJlY2VpdmUgaXQuICBUaGUgY29u
bmVjdGlvbiB3b3VsZCB0aGVuIGJlIGluIGEgY29tcGxldGVseSBpbnZhbGlkIHN0YXRlLg0KDQpJ
IGdlbmVyYWxseSBjb25zaWRlciB1bnJlbGlhYmlsaXR5IHRvIGJlIGEgbWF0dGVyIG9mIHNlbmRl
ciBzaWRlIHBvbGljeS4NCltUaG9tYXMgU3dpbmRlbGxzXSBJIGRvbuKAmXQgdGhpbmsgSSBhZ3Jl
ZSB3aXRoIHRoYXQuIE9mdGVuIGl0IGlzIHRoZSBjbGllbnQgd2hpY2ggaGFzIHRoZSBrbm93bGVk
Z2UgYWJvdXQgd2hldGhlciBkYXRhIGlzIG9yIGlzIG5vdCBpbXBvcnRhbnQuIExpdmUgdmlkZW8g
c3RyZWFtaW5nIGlzIHRoZSBiZXN0IGV4YW1wbGUgZm9yIHRoaXMsIGlmIHRoZSBjbGllbnQgaGFz
IGVub3VnaCBidWZmZXIgYW5kIGlzIHBsYXlpbmcgdGhlIG91dHB1dCBvdXQgbGl2ZSB0aGVuIGl0
IHdvdWxkIHByZWZlciB0byBnZXQgdGhlIGRhdGEgcmUtdHJhbnNtaXR0ZWQsIGhvd2V2ZXIgZGF0
YSBvdmVyIGEgY2VydGFpbiBhZ2UgaXNu4oCZdCB1c2VmdWwgYW5kIGl0IG1heSBwcmVmZXIgdG8g
bG9zZSBzb21lIGZyYW1lcyBhbmQganVtcCBiYWNrIHVwIHRvIGxpdmUuIEhvd2V2ZXIgaWYgdGhl
IGNsaWVudCBpcyBhY3R1YWxseSByZWNvcmRpbmcgdGhlIG91dHB1dCAob3IgaGFzIGEgbG9uZ2Vy
IGJ1ZmZlcikgaXQgbWF5IHByZWZlciB0byBzdGFsbCBhbmQgZ2V0IGFsbCB0aGUgZGF0YS4NCg0K
DQpUaGlzIGlzIGRlZmluaXRlbHkgYW4gaW50ZXJlc3RpbmcgdXNlIGNhc2UgYW5kIG9uZSBJIHRo
aW5rIHNob3VsZCBiZSBpbiBzY29wZSBmb3IgSFRUUCBvdmVyIFFVSUMuICBIb3dldmVyLCBhdCB0
aGUgZW5kIG9mIHRoZSBkYXkgdGhlIHNlcnZlciBuZWVkcyB0byBzZW5kIHdoYXQgdGhlIGNsaWVu
dCB3YW50cywgc28gaXQncyBiZXR0ZXIgdG8gaW5mb3JtIHRoZSBzZXJ2ZXIgd2hhdCB0byBzZW5k
IHRoYW4gdHJpY2sgaXQuICBHaXZlbiB3ZSdyZSBkaXNjdXNzaW5nIEhUVFAsIGlkZWFsbHkgdGhl
IEhUVFAvMiBwcmlvcml0aWVzICsgY2FuY2VsbGF0aW9uIHdvdWxkIHByb3ZpZGUgd2hhdCB5b3Ug
bmVlZCwgYnV0IEknbGwgYWRtaXQgYXQgdGhlIG1vbWVudCBpdCdzIG5vdCBhIG5hdHVyYWwgbWFw
cGluZy4NCg0KTWFraW5nIHRoaXMgd29yayB3ZWxsIG1heSByZXF1aXJlIGEgbW9yZSByb2J1c3Qg
aW50ZXJmYWNlIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBRVUlDIHN0cmVhbSwgb3IgbWF5
IGp1c3QgcmVxdWlyZSBzb21lIG5ldyBmZWF0dXJlcywgd2UnbGwgc2VlLiAgSSBjYW4ndCB0aGlu
ayBvZiBhbnl0aGluZyBhYm91dCBtb3ZpbmcgZnJvbSAyIHRvIDEgc3RyZWFtcyBjaGFuZ2VzIHRo
aXMsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIG5ldyBoZWFkZXIgY29tcHJlc3Npb24gc2NoZW1lcyB3
aWxsIGFsbG93IGNhbmNlbGxhdGlvbiBvZiB0aGUgaGVhZGVycyBhcyB3ZWxsIGFzIHRoZSBwYXls
b2FkLCB1bmxpa2UgYmVmb3JlLg0KDQoNCg0KDQpPbiBTdW4sIEp1bCAyMywgMjAxNyBhdCA0OjU2
IEFNLCBQaGlsaXBwIFMuIFRpZXNlbCA8cGhpbHNAaW4tcGFuaWsuZGU8bWFpbHRvOnBoaWxzQGlu
LXBhbmlrLmRlPj4gd3JvdGU6DQpIaSwNCg0KdG9vIGJhZCB0aGF0IEkgbWlzc2VkIHRoYXQgZGlz
Y3Vzc2lvbi4NCg0KU2VwYXJhdGluZyBEQVRBIGFuZCBSZXF1ZXN0L1Jlc3BvbnNlIHRvIGRpZmZl
cmVudCBzdHJlYW1zIHdvdWxkIGJlIGJlbmVmaWNpYWwgaWYgd2UgYWRkIHVucmVsaWFibGUgc3Ry
ZWFtcy4gSSB3aWxsIHRyeSB0byB3cml0ZSB1cCBzb21ldGhpbmcgKGF0IGxlYXN0IGNvbnNpZGVy
YXRpb25zKSBiZWZvcmUgdGhlIGludGVyaW0uDQoNCg0KT24gMjIuIEp1bCAyMDE3LCBhdCAwMzow
NCwgTWlrZSBCaXNob3AgPE1pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5jb208bWFpbHRvOk1pY2hh
ZWwuQmlzaG9wQG1pY3Jvc29mdC5jb20+PiB3cm90ZToNCg0KTm8sIHRoZSBjb25zZW5zdXMgYm90
aCBpbiBQYXJpcyBhbmQgUHJhZ3VlIHdhcyBhIHNpbmdsZSBzdHJlYW0sIHdoaWNoIG1lYW5zIHRo
ZSBEQVRBIGZyYW1lIGlzIGJhY2sgdG8gc3RheS4gIFRoZSBIUEFDSy13aXRob3V0LWR5bmFtaWMt
dGFibGUgcGllY2UgaXMgdGVtcG9yYXJ5LCB1bnRpbCB3ZSBwaWNrIGEgZGlyZWN0aW9uIGZvciBo
ZWFkZXIgY29tcHJlc3Npb24uDQoNClNlbnQgZnJvbSBteSBXaW5kb3dzIDEwIHBob25lDQoNCkZy
b206IEx1Y2FzIFBhcmR1ZTxtYWlsdG86THVjYXMuUGFyZHVlQGJiYy5jby51az4NClNlbnQ6IEZy
aWRheSwgSnVseSAyMSwgMjAxNyA4OjIwIEFNDQpUbzogSUVURiBRVUlDIFdHPG1haWx0bzpxdWlj
QGlldGYub3JnPg0KU3ViamVjdDogSFRUUCByZXF1ZXN0cyBvbiBvbmUgc3RyZWFtICM2OTINCg0K
SGksDQoNCkFwb2xvZ2llcyBpZiB0aGlzIHdhcyBkaXNjdXNzZWQgYWxyZWFkeSBpbiBQcmFndWUg
YnV0IEnigJlkIGxpa2Ugc29tZSBjbGFyaWZpY2F0aW9uIG9uIHRoZSBpbnRlbmRlZCBsaWZldGlt
ZSBzY29wZSBvZiB0aGUgY2hhbmdlcyBpbiBQUiM2OTI8aHR0cHM6Ly9uYTAxLnNhZmVsaW5rcy5w
cm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGcXVp
Y3dnJTJGYmFzZS1kcmFmdHMlMkZwdWxsJTJGNjkyJTJGZmlsZXMmZGF0YT0wMiU3QzAxJTdDbWlj
aGFlbC5iaXNob3AlNDBtaWNyb3NvZnQuY29tJTdDMWE2Njg3M2VjOTgzNDk3YmY3ZGUwOGQ0ZDA0
YzAzMjYlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM2MzYy
NDcyMjgzNDE1MzQ3JnNkYXRhPWRaTVhwaUNZbzViN3RWdUtyYkpDc25hUFA0Mm1xUlZpJTJCM3g0
Z2FyV3J2SSUzRCZyZXNlcnZlZD0wPi4NCg0KDQogIDEuICBJcyB0aGUgaW50ZW50aW9uIHRoYXQg
dGhpcyBjaGFuZ2UgdW5ibG9ja3Mgc3BlY2lmaWNhdGlvbiAvIGRldmVsb3BtZW50IHNvIHRoYXQg
dGhlIFdHIGNhbiBjb250aW51ZT8NCiAgMi4gIFdpbGwgdGhlc2UgY2hhbmdlcyBiZSB1bndvdW5k
IG9uY2UgcHJvZ3Jlc3MgaGFzIGJlZW4gbWFkZT8NCg0KICAgICAqICAgVGhlIERBVEEgZnJhbWUg
aGFzIGJlZW4gcmVzdXJyZWN0ZWQgKEkgcHJlc3VtZSB0byBkZW1hcmsgZnJhbWVzIGluIHRoZSBz
YW1lIHN0cmVhbSkuIFdpbGwgaXQgYmUgc3RydWNrIHdpdGggYSB3b29kZW4gc3Rha2UgaW4gdGhl
IGZ1dHVyZSwgb3IgY29udGludWUgdG8gaGFuZyBhcm91bmQ/DQoNClRoYW5rcw0KTHVjYXMNCg0K
QVZFIQ0KICBQaGlsaXBwIFMuIFRpZXNlbCAvIHBoaWxz4oCmDQotLQ0KICAge3BoaWxzfS0tLT4t
LS0ocGhpbHNAaW4tcGFuaWsuZGU8bWFpbHRvOnBoaWxzQGluLXBhbmlrLmRlPiktLS0+LS0tKGh0
dHA6Ly9waGlscy5pbi1wYW5pay5kZSktLS0tLA0KICAgICAgd2VubiB3IGVpbmUgICBhdWJlIGlz
dCBkbiAgICAgIG1hbiBhdSBkcmFuIGRyZSBlbiAgICAgICAgICAgICAgICAgICB8DQogICAgICAg
ICAgIG8gICAgIFNjaHIgICAgICAgIGFuIG11c3MgICAgIGhjICAgICAgICAgaCAgIChLdXJ0IFNj
aHdpdHRlcnMpIHwNCjp3cSEgIDwtLS0tKHBob25lOiArNDktMTc5LTY3Mzc0Mzk8dGVsOis0OSUy
MDE3OSUyMDY3Mzc0Mzk+KS0tLTwtLS0oamFiYmVyOiBwaGlsc0Bpbi1wYW5pay5kZTxtYWlsdG86
cGhpbHNAaW4tcGFuaWsuZGU+KS0tLS0nDQoNCg0KDQo=

--_000_DB5PR07MB1237A77FC6F791C1A95239F784BA0DB5PR07MB1237eurp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9
DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCglj
b2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu
Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpw
dXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1z
b25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCglt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBjbTsNCglmb250LXNpemU6MTIuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCnNwYW4ubS0yNDc5MTQ5MzM3
MDM1NDg2MDkzbS0yODQ5ODE5OTgyOTcxMDI4MjA1YXBwbGUtY29udmVydGVkLXNwYWNlDQoJe21z
by1zdHlsZS1uYW1lOm1fLTI0NzkxNDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVh
cHBsZS1jb252ZXJ0ZWQtc3BhY2U7fQ0Kc3Bhbi5tLTI0NzkxNDkzMzcwMzU0ODYwOTNob2VuemIN
Cgl7bXNvLXN0eWxlLW5hbWU6bV8tMjQ3OTE0OTMzNzAzNTQ4NjA5M2hvZW56Yjt9DQpzcGFuLkVt
YWlsU3R5bGUyMA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWls
eToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZh
dWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7DQoJ
Zm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVM7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1h
cmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtw
YWdlOldvcmRTZWN0aW9uMTt9DQovKiBMaXN0IERlZmluaXRpb25zICovDQpAbGlzdCBsMA0KCXtt
c28tbGlzdC1pZDo0Mjg3NDUxMjA7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjEzOTUxNzI3MDQ7
fQ0KQGxpc3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC10YWItc3RvcDozNi4wcHQ7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3Qg
bDA6bGV2ZWwyDQoJe21zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJl
ci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDA6bGV2ZWwz
DQoJe21zby1sZXZlbC10YWItc3RvcDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp
b246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28t
bGV2ZWwtdGFiLXN0b3A6MTQ0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7
DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMDpsZXZlbDUNCgl7bXNvLWxldmVsLXRh
Yi1zdG9wOjE4MC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQt
aW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDA6bGV2ZWw2DQoJe21zby1sZXZlbC10YWItc3RvcDoy
MTYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot
MTguMHB0O30NCkBsaXN0IGwwOmxldmVsNw0KCXttc28tbGV2ZWwtdGFiLXN0b3A6MjUyLjBwdDsN
Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9
DQpAbGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjI4OC4wcHQ7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3Qg
bDA6bGV2ZWw5DQoJe21zby1sZXZlbC10YWItc3RvcDozMjQuMHB0Ow0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwxDQoJe21z
by1saXN0LWlkOjEwNjA1MTQ4OTU7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjc5Nzg3OTIzODt9
DQpAbGlzdCBsMg0KCXttc28tbGlzdC1pZDoxNjUwMzI4NzI3Ow0KCW1zby1saXN0LXRlbXBsYXRl
LWlkczotMTYzMjIxNzc4ODt9DQpAbGlzdCBsMjpsZXZlbDENCgl7bXNvLWxldmVsLXN0YXJ0LWF0
OjI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMjpsZXZlbDINCgl7bXNv
LWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjcy
LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4
LjBwdDt9DQpAbGlzdCBsMjpsZXZlbDMNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjEwOC4wcHQ7DQoJ
bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0K
QGxpc3QgbDI6bGV2ZWw0DQoJe21zby1sZXZlbC10YWItc3RvcDoxNDQuMHB0Ow0KCW1zby1sZXZl
bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwy
OmxldmVsNQ0KCXttc28tbGV2ZWwtdGFiLXN0b3A6MTgwLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVy
LXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMjpsZXZlbDYN
Cgl7bXNvLWxldmVsLXRhYi1zdG9wOjIxNi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv
bjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDI6bGV2ZWw3DQoJe21zby1s
ZXZlbC10YWItc3RvcDoyNTIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN
Cgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwyOmxldmVsOA0KCXttc28tbGV2ZWwtdGFi
LXN0b3A6Mjg4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1p
bmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMjpsZXZlbDkNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjMy
NC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0x
OC4wcHQ7fQ0KQGxpc3QgbDMNCgl7bXNvLWxpc3QtaWQ6MjE0MTcyNjA0OTsNCgltc28tbGlzdC10
ZW1wbGF0ZS1pZHM6MTI2NDc0MDIzMDt9DQpAbGlzdCBsMzpsZXZlbDENCgl7bXNvLWxldmVsLXN0
YXJ0LWF0OjI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVy
LXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMzpsZXZlbDIN
Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1z
dG9wOjcyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LTE4LjBwdDt9DQpvbA0KCXttYXJnaW4tYm90dG9tOjBjbTt9DQp1bA0KCXttYXJnaW4tYm90
dG9tOjBjbTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVk
ZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0t
PjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0K
PG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+
PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIgbGluaz0iYmx1ZSIgdmxp
bms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JIGFncmVl
IHRoYXQgYmxpbmRseSBhY2tpbmcgcGFja2V0cyB3b3VsZCBjYXVzZSBiaWcgcHJvYmxlbXMgd2l0
aCB0aGUgY3VycmVudCBvcGVyYXRpb25zLiBCdXQgcGVyaGFwcyBpZi93aGVuIHdlIGdldCBvbnRv
IHVucmVsaWFibGUgc3RyZWFtcyBhIHdheQ0KIHRvIGV4cGxpY2l0bHkgbmFjayBwYWNrZXRzIGJ1
dCBzdGF0ZSBkb27igJl0IGJvdGhlciByZXRyYW5zbWl0dGluZyB0aGUgb25lcyBmb3Igc3RyZWFt
IHggd291bGQgYmUgYSBwb3RlbnRpYWwgbWVjaGFuaXNtPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UaG9tYXM8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFk
ZGluZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiBJYW4gU3dldHQg
W21haWx0bzppYW5zd2V0dEBnb29nbGUuY29tXQ0KPGJyPg0KPGI+U2VudDo8L2I+IDIzIEp1bHkg
MjAxNyAxNDowMzxicj4NCjxiPlRvOjwvYj4gU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lhIC0gR0Iv
Q2FtYnJpZGdlLCBVSykgJmx0O3Rob21hcy5zd2luZGVsbHNAbm9raWEuY29tJmd0Ozxicj4NCjxi
PkNjOjwvYj4gUGhpbGlwcCBTLiBUaWVzZWwgJmx0O3BoaWxzQGluLXBhbmlrLmRlJmd0OzsgTHVj
YXMgUGFyZHVlICZsdDtMdWNhcy5QYXJkdWVAYmJjLmNvLnVrJmd0OzsgTWlrZSBCaXNob3AgJmx0
O01pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5jb20mZ3Q7OyBJRVRGIFFVSUMgV0cgJmx0O3F1aWNA
aWV0Zi5vcmcmZ3Q7PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBIVFRQIHJlcXVlc3RzIG9uIG9u
ZSBzdHJlYW0gIzY5MjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+T24gU3VuLCBKdWwgMjMsIDIwMTcgYXQgNzo1NyBBTSwgU3dpbmRlbGxzLCBU
aG9tYXMgKE5va2lhIC0gR0IvQ2FtYnJpZGdlLCBVSykgJmx0OzxhIGhyZWY9Im1haWx0bzp0aG9t
YXMuc3dpbmRlbGxzQG5va2lhLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnRob21hcy5zd2luZGVsbHNA
bm9raWEuY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHls
ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBj
bSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2lu
LXJpZ2h0OjBjbTttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkEgZmV3IGNvbW1lbnRzIGxpbmxpbmUuPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5UaG9tYXM8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtw
YWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9u
ZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBj
bSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPkZyb206PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4gUVVJQw0K
IFttYWlsdG86PC9zcGFuPjxhIGhyZWY9Im1haWx0bzpxdWljLWJvdW5jZXNAaWV0Zi5vcmciIHRh
cmdldD0iX2JsYW5rIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5xdWljLWJvdW5jZXNA
aWV0Zi5vcmc8L3NwYW4+PC9hPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPl0NCjxiPk9u
IEJlaGFsZiBPZiA8L2I+SWFuIFN3ZXR0PGJyPg0KPGI+U2VudDo8L2I+IDIzIEp1bHkgMjAxNyAx
MDo1OTxicj4NCjxiPlRvOjwvYj4gUGhpbGlwcCBTLiBUaWVzZWwgJmx0Ozwvc3Bhbj48YSBocmVm
PSJtYWlsdG86cGhpbHNAaW4tcGFuaWsuZGUiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBsYW5nPSJF
Ti1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5waGlsc0Bpbi1wYW5pay5kZTwvc3Bhbj48L2E+PHNwYW4gbGFuZz0i
RU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZiI+Jmd0Ozxicj4NCjxiPkNjOjwvYj4gTHVjYXMgUGFyZHVlICZsdDs8
L3NwYW4+PGEgaHJlZj0ibWFpbHRvOkx1Y2FzLlBhcmR1ZUBiYmMuY28udWsiIHRhcmdldD0iX2Js
YW5rIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5MdWNhcy5QYXJkdWVAYmJjLmNvLnVr
PC9zcGFuPjwvYT48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mZ3Q7Ow0KIE1pa2UgQmlz
aG9wICZsdDs8L3NwYW4+PGEgaHJlZj0ibWFpbHRvOk1pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5j
b20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5NaWNoYWVs
LkJpc2hvcEBtaWNyb3NvZnQuY29tPC9zcGFuPjwvYT48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmIj4mZ3Q7Ow0KIElFVEYgUVVJQyBXRyAmbHQ7PC9zcGFuPjxhIGhyZWY9Im1haWx0bzpxdWlj
QGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
cXVpY0BpZXRmLm9yZzwvc3Bhbj48L2E+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jmd0
Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogSFRUUCByZXF1ZXN0cyBvbiBvbmUgc3RyZWFtICM2
OTI8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj5BIGZldyBjb21tZW50cyBvbiB1bnJlbGlhYmxlIHN0cmVhbXMgaW4gUVVJQywg
YW5kIHRoaXMgbWF5IGJlIGEgbG9uZ2VyIGRpc2N1c3Npb24gYW5kIEknZCBiZSBjdXJpb3VzIHRv
IHJlYWQgdGhlIGNvbnNpZGVyYXRpb25zIHlvdSBoYXZlIGluIG1pbmQuPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5RVUlDIGFzIHNwZWNp
ZmllZCB0b2RheSBkZWZpbml0ZWx5IGVuYWJsZXMgdW5yZWxpYWJpbGl0eS4mbmJzcDsgRm9yIGV4
YW1wbGUsIEkgY2FuIHNlbmQgc3RyZWFtIGRhdGEgb25jZSwgYW5kIGlmIHNvbWUgcG9ydGlvbiBv
ZiBpdCBpcyBsb3N0LCBhdCB0aGF0IHBvaW50IEkgY2FuIGRlY2lkZSBpZiBJIHdhbnQgdG8gcmV0
cmFuc21pdA0KIGl0IG9yIGp1c3QgY2FuY2VsIHRoZSBzdHJlYW0uJm5ic3A7IDxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48aT48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPltUaG9t
YXMgU3dpbmRlbGxzXSBBcyBzdHJlYW0gZnJhbWVzIGNvbnRhaW4gdGhlIG9mZnNldCAmbmJzcDtj
bGllbnQgcG90ZW50aWFsbHkgYWxzbyBoYXMgdGhlIG9wdGlvbiBvZiBqdXN0IGFja25vd2xlZGdp
bmcNCiByZWNlcHRpb24gZXZlbiBpdCBkaWRu4oCZdCBhY3R1YWxseSByZWNlaXZlIHRoZW0gLSB0
aG91Z2ggb2J2aW91c2x5IHRoaXMgd291bGQgYW5kIGNhdXNlIHByb2JsZW1zIGlmIG5vbi1zdHJl
YW0gZnJhbWVzIHdlcmUgYWxzbyBiZWluZyBhY2tub3dsZWRnZWQgd2hlbiBpbiBmYWN0IHRoZSBj
bGllbnQgaGFkbuKAmXQgYWNrbm93bGVkZ2UgdGhlbS4gLjwvc3Bhbj48L2k+PC9iPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2tx
dW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoaXMgaXMgcHJvaGliaXRlZCBj
dXJyZW50bHksIGFuZCBmb3IgZ29vZCByZWFzb24sIHNpbmNlIGFja2luZyBwYWNrZXRzIHlvdSBo
YXZlbid0IHJlY2VpdmVkIGJyZWFrcyBjb25nZXN0aW9uIGNvbnRyb2wgYW5kIHBvdGVudGlhbGx5
IGZsb3cgY29udHJvbC4mbmJzcDsgQWxzbywgeW91J2QgYmUgYXNzdW1pbmcgd2hhdCB3YXMgaW4g
dGhlIHBhY2tldHMgd2FzIHdoYXQgeW91IGV4cGVjdGVkLCBhbmQmbmJzcDsgaWYgeW91IHdlcmUN
CiB3cm9uZywgaXQgY291bGQgZ28gcmVhbGx5IHBvb3JseS4mbmJzcDsgaWU6IGltYWdpbmUgaWYg
eW91IGFja2VkIGEgcGFja2V0IGNvbnRhaW5pbmcgUVBBQ0sgY29tcHJlc3Npb24gY29udGV4dCwg
YnV0IGRpZG4ndCByZWNlaXZlIGl0LiZuYnNwOyBUaGUgY29ubmVjdGlvbiB3b3VsZCB0aGVuIGJl
IGluIGEgY29tcGxldGVseSBpbnZhbGlkIHN0YXRlLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0ND
IDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2lu
LXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGNtO21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4N
CjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEu
NXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPkkgZ2VuZXJhbGx5IGNvbnNpZGVyIHVucmVsaWFiaWxpdHkgdG8gYmUgYSBt
YXR0ZXIgb2Ygc2VuZGVyIHNpZGUgcG9saWN5LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48Yj48aT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPltUaG9tYXMgU3dpbmRlbGxzXSBJIGRv
buKAmXQgdGhpbmsgSSBhZ3JlZSB3aXRoIHRoYXQuIE9mdGVuIGl0IGlzIHRoZSBjbGllbnQgd2hp
Y2ggaGFzIHRoZSBrbm93bGVkZ2UgYWJvdXQgd2hldGhlcg0KIGRhdGEgaXMgb3IgaXMgbm90IGlt
cG9ydGFudC4gTGl2ZSB2aWRlbyBzdHJlYW1pbmcgaXMgdGhlIGJlc3QgZXhhbXBsZSBmb3IgdGhp
cywgaWYgdGhlIGNsaWVudCBoYXMgZW5vdWdoIGJ1ZmZlciBhbmQgaXMgcGxheWluZyB0aGUgb3V0
cHV0IG91dCBsaXZlIHRoZW4gaXQgd291bGQgcHJlZmVyIHRvIGdldCB0aGUgZGF0YSByZS10cmFu
c21pdHRlZCwgaG93ZXZlciBkYXRhIG92ZXIgYSBjZXJ0YWluIGFnZSBpc27igJl0IHVzZWZ1bCBh
bmQgaXQgbWF5DQogcHJlZmVyIHRvIGxvc2Ugc29tZSBmcmFtZXMgYW5kIGp1bXAgYmFjayB1cCB0
byBsaXZlLiBIb3dldmVyIGlmIHRoZSBjbGllbnQgaXMgYWN0dWFsbHkgcmVjb3JkaW5nIHRoZSBv
dXRwdXQgKG9yIGhhcyBhIGxvbmdlciBidWZmZXIpIGl0IG1heSBwcmVmZXIgdG8gc3RhbGwgYW5k
IGdldCBhbGwgdGhlIGRhdGEuPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRo
aXMgaXMgZGVmaW5pdGVseSBhbiBpbnRlcmVzdGluZyB1c2UgY2FzZSBhbmQgb25lIEkgdGhpbmsg
c2hvdWxkIGJlIGluIHNjb3BlIGZvciBIVFRQIG92ZXIgUVVJQy4mbmJzcDsgSG93ZXZlciwgYXQg
dGhlIGVuZCBvZiB0aGUgZGF5IHRoZSBzZXJ2ZXIgbmVlZHMgdG8gc2VuZCB3aGF0IHRoZSBjbGll
bnQgd2FudHMsIHNvIGl0J3MgYmV0dGVyIHRvIGluZm9ybSB0aGUgc2VydmVyIHdoYXQgdG8gc2Vu
ZCB0aGFuIHRyaWNrDQogaXQuJm5ic3A7IEdpdmVuIHdlJ3JlIGRpc2N1c3NpbmcgSFRUUCwgaWRl
YWxseSB0aGUgSFRUUC8yIHByaW9yaXRpZXMgJiM0MzsgY2FuY2VsbGF0aW9uIHdvdWxkIHByb3Zp
ZGUgd2hhdCB5b3UgbmVlZCwgYnV0IEknbGwgYWRtaXQgYXQgdGhlIG1vbWVudCBpdCdzIG5vdCBh
IG5hdHVyYWwgbWFwcGluZy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBz
dHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5n
OjBjbSAwY20gMGNtIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFy
Z2luLXJpZ2h0OjBjbTttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdiBz
dHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBj
bSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPk1ha2luZyB0aGlzIHdvcmsgd2VsbCBtYXkgcmVxdWlyZSBhIG1vcmUgcm9i
dXN0IGludGVyZmFjZSBiZXR3ZWVuIHRoZSBhcHBsaWNhdGlvbiBhbmQgUVVJQyBzdHJlYW0sIG9y
IG1heSBqdXN0IHJlcXVpcmUgc29tZSBuZXcgZmVhdHVyZXMsIHdlJ2xsIHNlZS4mbmJzcDsgSSBj
YW4ndCB0aGluayBvZiBhbnl0aGluZyBhYm91dA0KIG1vdmluZyBmcm9tIDIgdG8gMSBzdHJlYW1z
IGNoYW5nZXMgdGhpcywgZXNwZWNpYWxseSBnaXZlbiB0aGUgbmV3IGhlYWRlciBjb21wcmVzc2lv
biBzY2hlbWVzIHdpbGwgYWxsb3cgY2FuY2VsbGF0aW9uIG9mIHRoZSBoZWFkZXJzIGFzIHdlbGwg
YXMgdGhlIHBheWxvYWQsIHVubGlrZSBiZWZvcmUuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj5PbiBTdW4sIEp1bCAyMywgMjAxNyBhdCA0OjU2IEFNLCBQaGlsaXBw
IFMuIFRpZXNlbCAmbHQ7PGEgaHJlZj0ibWFpbHRvOnBoaWxzQGluLXBhbmlrLmRlIiB0YXJnZXQ9
Il9ibGFuayI+cGhpbHNAaW4tcGFuaWsuZGU8L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4N
CjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0ND
IDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2lu
LXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGNtO21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+SGksPG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+dG9vIGJhZCB0aGF0IEkgbWlzc2VkIHRoYXQgZGlzY3Vzc2lv
bi4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPlNlcGFyYXRpbmcgREFUQSBhbmQgUmVxdWVzdC9SZXNwb25zZSB0byBkaWZmZXJl
bnQgc3RyZWFtcyB3b3VsZCBiZSBiZW5lZmljaWFsIGlmIHdlIGFkZCB1bnJlbGlhYmxlIHN0cmVh
bXMuIEkgd2lsbCB0cnkgdG8gd3JpdGUgdXAgc29tZXRoaW5nIChhdCBsZWFzdCBjb25zaWRlcmF0
aW9ucykgYmVmb3JlIHRoZQ0KIGludGVyaW0uJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0
O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+T24g
MjIuIEp1bCAyMDE3LCBhdCAwMzowNCwgTWlrZSBCaXNob3AgJmx0OzxhIGhyZWY9Im1haWx0bzpN
aWNoYWVsLkJpc2hvcEBtaWNyb3NvZnQuY29tIiB0YXJnZXQ9Il9ibGFuayI+TWljaGFlbC5CaXNo
b3BAbWljcm9zb2Z0LmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPk5vLCB0aGUg
Y29uc2Vuc3VzIGJvdGggaW4gUGFyaXMgYW5kIFByYWd1ZSB3YXMgYSBzaW5nbGUgc3RyZWFtLCB3
aGljaCBtZWFucyB0aGUgREFUQSBmcmFtZSBpcyBiYWNrIHRvIHN0YXkuJm5ic3A7IFRoZQ0KIEhQ
QUNLLXdpdGhvdXQtZHluYW1pYy10YWJsZSBwaWVjZSBpcyB0ZW1wb3JhcnksIHVudGlsIHdlIHBp
Y2sgYSBkaXJlY3Rpb24gZm9yIGhlYWRlciBjb21wcmVzc2lvbi48L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
ZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPlNlbnQgZnJvbSBteSBXaW5kb3dzIDEwIHBo
b25lPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEu
MHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjxzcGFuIGNsYXNzPSJtLTI0NzkxNDkzMzcw
MzU0ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNw
Ozwvc3Bhbj48L3NwYW4+PC9iPjxhIGhyZWY9Im1haWx0bzpMdWNhcy5QYXJkdWVAYmJjLmNvLnVr
IiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiM5NTRGNzIiPkx1Y2FzDQog
UGFyZHVlPC9zcGFuPjwvYT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxicj4NCjxiPlNlbnQ6PHNwYW4gY2xh
c3M9Im0tMjQ3OTE0OTMzNzAzNTQ4NjA5M20tMjg0OTgxOTk4Mjk3MTAyODIwNWFwcGxlLWNvbnZl
cnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvYj5GcmlkYXksIEp1bHkgMjEsIDIwMTcgODoyMCBB
TTxicj4NCjxiPlRvOjxzcGFuIGNsYXNzPSJtLTI0NzkxNDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5
ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+PC9zcGFu
PjxhIGhyZWY9Im1haWx0bzpxdWljQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiM5NTRGNzIiPklFVEYgUVVJQyBXRzwvc3Bhbj48L2E+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmIj48YnI+DQo8Yj5TdWJqZWN0OjxzcGFuIGNsYXNzPSJtLTI0NzkxNDkzMzcwMzU0ODYwOTNt
LTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48
L2I+SFRUUCByZXF1ZXN0cyBvbiBvbmUgc3RyZWFtICM2OTI8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi
PkhpLDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+QXBv
bG9naWVzIGlmIHRoaXMgd2FzIGRpc2N1c3NlZCBhbHJlYWR5IGluIFByYWd1ZSBidXQgSeKAmWQg
bGlrZSBzb21lIGNsYXJpZmljYXRpb24gb24gdGhlIGludGVuZGVkIGxpZmV0aW1lIHNjb3BlDQog
b2YgdGhlIGNoYW5nZXMgaW48c3BhbiBjbGFzcz0ibS0yNDc5MTQ5MzM3MDM1NDg2MDkzbS0yODQ5
ODE5OTgyOTcxMDI4MjA1YXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9zcGFu
PjxhIGhyZWY9Imh0dHBzOi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/
dXJsPWh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRnF1aWN3ZyUyRmJhc2UtZHJhZnRzJTJGcHVs
bCUyRjY5MiUyRmZpbGVzJmFtcDtkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jv
c29mdC5jb20lN0MxYTY2ODczZWM5ODM0OTdiZjdkZTA4ZDRkMDRjMDMyNiU3QzcyZjk4OGJmODZm
MTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjI0NzIyODM0MTUzNDcmYW1wO3Nk
YXRhPWRaTVhwaUNZbzViN3RWdUtyYkpDc25hUFA0Mm1xUlZpJTJCM3g0Z2FyV3J2SSUzRCZhbXA7
cmVzZXJ2ZWQ9MCIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojOTU0Rjcy
Ij5QUiM2OTI8L3NwYW4+PC9hPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+LjxzcGFuIGNsYXNzPSJtLTI0Nzkx
NDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui
PiZuYnNwOzwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8b2wgc3RhcnQ9IjEiIHR5cGU9IjEiPg0KPGxpIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0bzttYXJnaW4tbGVmdDowY207bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzMiPg0KPHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj5JcyB0aGUgaW50ZW50aW9uIHRoYXQgdGhpcyBjaGFuZ2UgdW5ibG9ja3Mgc3Bl
Y2lmaWNhdGlvbiAvIGRldmVsb3BtZW50IHNvIHRoYXQgdGhlIFdHIGNhbiBjb250aW51ZT88L3Nw
YW4+PG86cD48L286cD48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6MGNt
O21zby1saXN0OmwwIGxldmVsMSBsZm8zIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+V2lsbCB0aGVzZSBj
aGFuZ2VzIGJlIHVud291bmQgb25jZSBwcm9ncmVzcyBoYXMgYmVlbiBtYWRlPzwvc3Bhbj48bzpw
PjwvbzpwPjwvbGk+PC9vbD4NCjxvbCBzdGFydD0iMiIgdHlwZT0iMSI+DQo8b2wgc3RhcnQ9IjEi
IHR5cGU9ImEiPg0KPGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDowY207bXNvLWxp
c3Q6bDIgbGV2ZWwyIGxmbzYiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5UaGUgREFUQSBmcmFtZSBoYXMg
YmVlbiByZXN1cnJlY3RlZCAoSSBwcmVzdW1lIHRvIGRlbWFyayBmcmFtZXMgaW4gdGhlIHNhbWUg
c3RyZWFtKS4gV2lsbCBpdCBiZSBzdHJ1Y2sgd2l0aCBhIHdvb2RlbiBzdGFrZSBpbiB0aGUgZnV0
dXJlLCBvciBjb250aW51ZSB0byBoYW5nIGFyb3VuZD88L3NwYW4+PG86cD48L286cD48L2xpPjwv
b2w+DQo8L29sPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+VGhhbmtzPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi
Pkx1Y2FzPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPkFWRSE8YnI+DQom
bmJzcDsgUGhpbGlwcCBTLiBUaWVzZWwgLyBwaGlsc+KApjwvc3Bhbj48c3BhbiBzdHlsZT0iY29s
b3I6Izg4ODg4OCI+PGJyPg0KPHNwYW4gY2xhc3M9Im0tMjQ3OTE0OTMzNzAzNTQ4NjA5M2hvZW56
YiI+LS0mbmJzcDs8L3NwYW4+PGJyPg0KPHNwYW4gY2xhc3M9Im0tMjQ3OTE0OTMzNzAzNTQ4NjA5
M2hvZW56YiI+Jm5ic3A7ICZuYnNwO3twaGlsc30tLS0mZ3Q7LS0tKDwvc3Bhbj48L3NwYW4+PGEg
aHJlZj0ibWFpbHRvOnBoaWxzQGluLXBhbmlrLmRlIiB0YXJnZXQ9Il9ibGFuayI+cGhpbHNAaW4t
cGFuaWsuZGU8L2E+PHNwYW4gY2xhc3M9Im0tMjQ3OTE0OTMzNzAzNTQ4NjA5M2hvZW56YiI+PHNw
YW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPiktLS0mZ3Q7LS0tKDwvc3Bhbj48L3NwYW4+PGEgaHJl
Zj0iaHR0cDovL3BoaWxzLmluLXBhbmlrLmRlIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3BoaWxz
LmluLXBhbmlrLmRlPC9hPjxzcGFuIGNsYXNzPSJtLTI0NzkxNDkzMzcwMzU0ODYwOTNob2VuemIi
PjxzcGFuIHN0eWxlPSJjb2xvcjojODg4ODg4Ij4pLS0tLSw8L3NwYW4+PC9zcGFuPjxzcGFuIHN0
eWxlPSJjb2xvcjojODg4ODg4Ij48YnI+DQo8c3BhbiBjbGFzcz0ibS0yNDc5MTQ5MzM3MDM1NDg2
MDkzaG9lbnpiIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyB3ZW5uIHcgZWluZSAmbmJzcDsgYXViZSBp
c3QgZG4gJm5ic3A7ICZuYnNwOyAmbmJzcDttYW4gYXUgZHJhbiBkcmUgZW4gJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfDwvc3Bh
bj48YnI+DQo8c3BhbiBjbGFzcz0ibS0yNDc5MTQ5MzM3MDM1NDg2MDkzaG9lbnpiIj4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO28gJm5ic3A7ICZuYnNwOyBTY2hyICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FuIG11c3MgJm5ic3A7ICZuYnNwOyBoYyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgaCAmbmJzcDsgKEt1cnQgU2Nod2l0dGVycykgfDwvc3Bhbj48
YnI+DQo8c3BhbiBjbGFzcz0ibS0yNDc5MTQ5MzM3MDM1NDg2MDkzaG9lbnpiIj46d3EhICZuYnNw
OyZsdDstLS0tKHBob25lOiA8L3NwYW4+PC9zcGFuPjxhIGhyZWY9InRlbDomIzQzOzQ5JTIwMTc5
JTIwNjczNzQzOSIgdGFyZ2V0PSJfYmxhbmsiPiYjNDM7NDktMTc5LTY3Mzc0Mzk8L2E+PHNwYW4g
Y2xhc3M9Im0tMjQ3OTE0OTMzNzAzNTQ4NjA5M2hvZW56YiI+PHNwYW4gc3R5bGU9ImNvbG9yOiM4
ODg4ODgiPiktLS0mbHQ7LS0tKGphYmJlcjoNCjwvc3Bhbj48L3NwYW4+PGEgaHJlZj0ibWFpbHRv
OnBoaWxzQGluLXBhbmlrLmRlIiB0YXJnZXQ9Il9ibGFuayI+cGhpbHNAaW4tcGFuaWsuZGU8L2E+
PHNwYW4gY2xhc3M9Im0tMjQ3OTE0OTMzNzAzNTQ4NjA5M2hvZW56YiI+PHNwYW4gc3R5bGU9ImNv
bG9yOiM4ODg4ODgiPiktLS0tJzwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_DB5PR07MB1237A77FC6F791C1A95239F784BA0DB5PR07MB1237eurp_--


From nobody Sun Jul 23 11:53:11 2017
Return-Path: <mikkelfj@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 DD5BF13178D for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 11:53:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 QLaa75lMx2ak for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 11:53:07 -0700 (PDT)
Received: from mail-ua0-x22b.google.com (mail-ua0-x22b.google.com [IPv6:2607:f8b0:400c:c08::22b]) (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 E4559131771 for <quic@ietf.org>; Sun, 23 Jul 2017 11:53:06 -0700 (PDT)
Received: by mail-ua0-x22b.google.com with SMTP id 80so65106682uas.0 for <quic@ietf.org>; Sun, 23 Jul 2017 11:53:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=9jEDWvFppgFDLD6rTWpKwMw/2bMFrW93NePylePPMIM=; b=p/4xUWTnvBJ47Be8HX7VxBP6zfvQIo+6rN1zP8pienUmbXGVW3nvUvOT0+hAOtQPf7 DqpXEB8+ReDqgTh9oOYIdraQnHhjVL9N+RuWjPY9FbUG5dLKw/FYPc502GO4n7DTjXvy zAn5QCtq9HibOFdUENSVHJNDFQB0vZK4/5mC2GtrxehONoObTlmfcPcg3TSCdDQb0es4 Yr7/bb/iXwGpMKIjiXR6f/KGp/2bKXdCMc8htzE1eQimHgnaIICevAFGqmsl+0t3Hrjr HdbRemu7wOq9LubrW8twN7LrQn8U1LKX7nbqhbYmQvCAmullIGix8PCxCuc8fQbZW/fJ 0Nug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=9jEDWvFppgFDLD6rTWpKwMw/2bMFrW93NePylePPMIM=; b=r/lSLMZTly6Q3RHp016CvJizTq5XVE4k6K3bqQdeLT2AE9J2JUJ+wZo62uuI2kn7Vg PUcScUnXQn96xtvgL3wu6YCmP+Z52rb/3ZEQ/RITZRli4oYr9OJkY7/8qu65MEUiGKcK WAq0DsqqvrViHQOgKwyCEJNmZiJPo1zSYBX6K/ouAqOiMR++FIpx4rsRQBgLGNAzlO0W 6MYWZYARkqfwx/ReNUrO+yAHOYgIt2cy4WWUeD2B5C+YDjT+TKPqyzpKkjzjT0ahFNH9 YK71ybdZ0T6ZugtA+aVDfWvXQVL+I6s+eEA6ILpqsXaoNF6kd3czDor085sNp4RbKSbU AzvA==
X-Gm-Message-State: AIVw110cxoUWgMS22JDbeXTVM5T/p79OzaEBiQKABRhXYS2vVeVEkmMh LKx02fP5DygBM5R+hpQAunj1R4e5wg==
X-Received: by 10.159.52.79 with SMTP id s15mr9078611uab.157.1500835986012; Sun, 23 Jul 2017 11:53:06 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Sun, 23 Jul 2017 14:53:05 -0400
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Sun, 23 Jul 2017 14:53:05 -0400
Message-ID: <CAN1APdfX46n_wD1MZiWpxJ4CgSdotrSm0dSe9DvyHbmXieU6bw@mail.gmail.com>
Subject: RE: HTTP requests on one stream #692
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>
Cc: Lucas Pardue <lucas.pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>,  Mike Bishop <michael.bishop@microsoft.com>, "Philipp S. Tiesel" <phils@in-panik.de>
Content-Type: multipart/alternative; boundary="f403043ed1d4d000600555009b33"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/7FVMvwdbu49Yd8K2jCSkamA0MW4>
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, 23 Jul 2017 18:53:10 -0000

--f403043ed1d4d000600555009b33
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

If stream identifiers move to 64 bit, unidirectional streams can be used as
unreliable streams by storing an association context at the start of each
stream. Then ack/nack becomes irrelevant because the receiver can just send
a no longer interested frame instead (if it makes sense - since it might be
too late). This has the benefit that packet boundaries are neatly defined
in the length of the stream. I previously tried to define an unreliable
concept within a single stream but it was not nearly as elegant as using
separate streams. However, if stream identifiers are 32-bit or they are not
explicitly uni-directional, this concept no longer works nearly as well.
32-bit only lasts an hour in high volume traffic.

Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 23 July 2017 at 20.29.19, Swindells, Thomas (Nokia - GB/Cambridge, UK) (
thomas.swindells@nokia.com) wrote:

I agree that blindly acking packets would cause big problems with the
current operations. But perhaps if/when we get onto unreliable streams a
way to explicitly nack packets but state don=E2=80=99t bother retransmittin=
g the
ones for stream x would be a potential mechanism?



Thomas



*From:* Ian Swett [mailto:ianswett@google.com]
*Sent:* 23 July 2017 14:03
*To:* Swindells, Thomas (Nokia - GB/Cambridge, UK) <
thomas.swindells@nokia.com>
*Cc:* Philipp S. Tiesel <phils@in-panik.de>; Lucas Pardue <
Lucas.Pardue@bbc.co.uk>; Mike Bishop <Michael.Bishop@microsoft.com>; IETF
QUIC WG <quic@ietf.org>
*Subject:* Re: HTTP requests on one stream #692





On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (Nokia - GB/Cambridge,
UK) <thomas.swindells@nokia.com> wrote:

A few comments linline.



Thomas



*From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Ian Swett
*Sent:* 23 July 2017 10:59
*To:* Philipp S. Tiesel <phils@in-panik.de>
*Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; Mike Bishop <
Michael.Bishop@microsoft.com>; IETF QUIC WG <quic@ietf.org>
*Subject:* Re: HTTP requests on one stream #692



A few comments on unreliable streams in QUIC, and this may be a longer
discussion and I'd be curious to read the considerations you have in mind.



QUIC as specified today definitely enables unreliability.  For example, I
can send stream data once, and if some portion of it is lost, at that point
I can decide if I want to retransmit it or just cancel the stream.

*[Thomas Swindells] As stream frames contain the offset  client potentially
also has the option of just acknowledging reception even it didn=E2=80=99t =
actually
receive them - though obviously this would and cause problems if non-stream
frames were also being acknowledged when in fact the client hadn=E2=80=99t
acknowledge them. .*



This is prohibited currently, and for good reason, since acking packets you
haven't received breaks congestion control and potentially flow control.
Also, you'd be assuming what was in the packets was what you expected, and
if you were wrong, it could go really poorly.  ie: imagine if you acked a
packet containing QPACK compression context, but didn't receive it.  The
connection would then be in a completely invalid state.



I generally consider unreliability to be a matter of sender side policy.

*[Thomas Swindells] I don=E2=80=99t think I agree with that. Often it is th=
e client
which has the knowledge about whether data is or is not important. Live
video streaming is the best example for this, if the client has enough
buffer and is playing the output out live then it would prefer to get the
data re-transmitted, however data over a certain age isn=E2=80=99t useful a=
nd it
may prefer to lose some frames and jump back up to live. However if the
client is actually recording the output (or has a longer buffer) it may
prefer to stall and get all the data.*





This is definitely an interesting use case and one I think should be in
scope for HTTP over QUIC.  However, at the end of the day the server needs
to send what the client wants, so it's better to inform the server what to
send than trick it.  Given we're discussing HTTP, ideally the HTTP/2
priorities + cancellation would provide what you need, but I'll admit at
the moment it's not a natural mapping.



Making this work well may require a more robust interface between the
application and QUIC stream, or may just require some new features, we'll
see.  I can't think of anything about moving from 2 to 1 streams changes
this, especially given the new header compression schemes will allow
cancellation of the headers as well as the payload, unlike before.









On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel <phils@in-panik.de>
wrote:

Hi,



too bad that I missed that discussion.



Separating DATA and Request/Response to different streams would be
beneficial if we add unreliable streams. I will try to write up something
(at least considerations) before the interim.





On 22. Jul 2017, at 03:04, Mike Bishop <Michael.Bishop@microsoft.com> wrote=
:



No, the consensus both in Paris and Prague was a single stream, which means
the DATA frame is back to stay.  The HPACK-without-dynamic-table piece is
temporary, until we pick a direction for header compression.



Sent from my Windows 10 phone



*From: *Lucas Pardue <Lucas.Pardue@bbc.co.uk>
*Sent: *Friday, July 21, 2017 8:20 AM
*To: *IETF QUIC WG <quic@ietf.org>
*Subject: *HTTP requests on one stream #692



Hi,



Apologies if this was discussed already in Prague but I=E2=80=99d like some
clarification on the intended lifetime scope of the changes in PR#692
<https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.=
com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&data=3D02%7C01%7Cmichael.bi=
shop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141af9=
1ab2d7cd011db47%7C1%7C0%7C636362472283415347&sdata=3DdZMXpiCYo5b7tVuKrbJCsn=
aPP42mqRVi%2B3x4garWrvI%3D&reserved=3D0>
.



   1. Is the intention that this change unblocks specification /
   development so that the WG can continue?
   2. Will these changes be unwound once progress has been made?


   1. The DATA frame has been resurrected (I presume to demark frames in
      the same stream). Will it be struck with a wooden stake in the future=
, or
      continue to hang around?



Thanks

Lucas



AVE!
  Philipp S. Tiesel / phils=E2=80=A6
--=20
   {phils}--->---(phils@in-panik.de)--->---(http://phils.in-panik.de)----,
      wenn w eine   aube ist dn      man au dran dre en                   |
           o     Schr        an muss     hc         h   (Kurt Schwitters) |
:wq!  <----(phone: +49-179-6737439 <+49%20179%206737439>)---<---(jabber:
phils@in-panik.de)----'

--f403043ed1d4d000600555009b33
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto">If stream identifiers move to 64 bit, unidirectio=
nal streams can be used as unreliable streams by storing an association con=
text at the start of each stream. Then ack/nack becomes irrelevant because =
the receiver can just send a no longer interested frame instead (if it make=
s sense - since it might be too late). This has the benefit that packet bou=
ndaries are neatly defined in the length of the stream. I previously tried =
to define an unreliable concept within a single stream but it was not nearl=
y as elegant as using separate streams. However, if stream identifiers are =
32-bit or they are not explicitly uni-directional, this concept no longer w=
orks nearly as well. 32-bit only lasts an hour in high volume traffic.</div=
> <br> <div id=3D"bloop_sign_1500835674447248896" class=3D"bloop_sign"><div=
 style=3D"font-family:helvetica,arial;font-size:13px">Kind Regards,</div><d=
iv style=3D"font-family:helvetica,arial;font-size:13px">Mikkel Fahn=C3=B8e =
J=C3=B8rgensen<br><br></div></div> <br><p class=3D"airmail_on">On 23 July 2=
017 at 20.29.19, Swindells, Thomas (Nokia - GB/Cambridge, UK) (<a href=3D"m=
ailto:thomas.swindells@nokia.com">thomas.swindells@nokia.com</a>) wrote:</p=
> <blockquote type=3D"cite" class=3D"clean_bq"><span><div lang=3D"EN-GB" li=
nk=3D"blue" vlink=3D"purple"><div></div><div>






<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">I agree that blindly acking packets would cause big=
 problems with the current operations. But perhaps if/when we get onto unre=
liable streams a way
 to explicitly nack packets but state don=E2=80=99t bother retransmitting t=
he ones for stream x would be a potential mechanism?</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thomas</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Ian Swett [mailto:<a href=3D"mailto:ianswett@google.com">ianswett@google.co=
m</a>]
<br>
<b>Sent:</b> 23 July 2017 14:03<br>
<b>To:</b> Swindells, Thomas (Nokia - GB/Cambridge, UK) &lt;<a href=3D"mail=
to:thomas.swindells@nokia.com">thomas.swindells@nokia.com</a>&gt;<br>
<b>Cc:</b> Philipp S. Tiesel &lt;<a href=3D"mailto:phils@in-panik.de">phils=
@in-panik.de</a>&gt;; Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@bbc.c=
o.uk">Lucas.Pardue@bbc.co.uk</a>&gt;; Mike Bishop &lt;<a href=3D"mailto:Mic=
hael.Bishop@microsoft.com">Michael.Bishop@microsoft.com</a>&gt;; IETF QUIC =
WG &lt;<a href=3D"mailto:quic@ietf.org">quic@ietf.org</a>&gt;<br>
<b>Subject:</b> Re: HTTP requests on one stream #692</span></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<p class=3D"MsoNormal">On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (=
Nokia - GB/Cambridge, UK) &lt;<a href=3D"mailto:thomas.swindells@nokia.com"=
 target=3D"_blank">thomas.swindells@nokia.com</a>&gt; wrote:</p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">A few comments linline.</span></p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">Thomas</span></p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quo=
t;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-US" style=3D"f=
ont-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> QUIC
 [mailto:</span><a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">=
<span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif">quic-bounces@ietf.org</span></a><span lang=3D"EN-US" style=
=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">]
<b>On Behalf Of </b>Ian Swett<br>
<b>Sent:</b> 23 July 2017 10:59<br>
<b>To:</b> Philipp S. Tiesel &lt;</span><a href=3D"mailto:phils@in-panik.de=
" target=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif">phils@in-panik.de</span></a><span lang=
=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-s=
erif">&gt;<br>
<b>Cc:</b> Lucas Pardue &lt;</span><a href=3D"mailto:Lucas.Pardue@bbc.co.uk=
" target=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif">Lucas.Pardue@bbc.co.uk</span></a><span =
lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">&gt;;
 Mike Bishop &lt;</span><a href=3D"mailto:Michael.Bishop@microsoft.com" tar=
get=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif">Michael.Bishop@microsoft.com</span></a><span=
 lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,s=
ans-serif">&gt;;
 IETF QUIC WG &lt;</span><a href=3D"mailto:quic@ietf.org" target=3D"_blank"=
><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&q=
uot;,sans-serif">quic@ietf.org</span></a><span lang=3D"EN-US" style=3D"font=
-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">&gt;<br>
<b>Subject:</b> Re: HTTP requests on one stream #692</span></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">A few comments on unreliable streams in QUIC, and this may be a lo=
nger discussion and I&#39;d be curious to read the considerations you have =
in mind.</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">QUIC as specified today definitely enables unreliability.=C2=A0 Fo=
r example, I can send stream data once, and if some portion of it is lost, =
at that point I can decide if I want to retransmit
 it or just cancel the stream.=C2=A0 </p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><b><i><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif">[Thomas Swindells] As stream frames contain the offset =C2=
=A0client potentially also has the option of just acknowledging
 reception even it didn=E2=80=99t actually receive them - though obviously =
this would and cause problems if non-stream frames were also being acknowle=
dged when in fact the client hadn=E2=80=99t acknowledge them. .</span></i><=
/b></p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">This is prohibited currently, and for good reason, s=
ince acking packets you haven&#39;t received breaks congestion control and =
potentially flow control.=C2=A0 Also, you&#39;d be assuming what was in the=
 packets was what you expected, and=C2=A0 if you were
 wrong, it could go really poorly.=C2=A0 ie: imagine if you acked a packet =
containing QPACK compression context, but didn&#39;t receive it.=C2=A0 The =
connection would then be in a completely invalid state.</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">I generally consider unreliability to be a matter of sender side p=
olicy.</p>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><b><i><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif">[Thomas Swindells] I don=E2=80=99t think I agree with that.=
 Often it is the client which has the knowledge about whether
 data is or is not important. Live video streaming is the best example for =
this, if the client has enough buffer and is playing the output out live th=
en it would prefer to get the data re-transmitted, however data over a cert=
ain age isn=E2=80=99t useful and it may
 prefer to lose some frames and jump back up to live. However if the client=
 is actually recording the output (or has a longer buffer) it may prefer to=
 stall and get all the data.</span></i></b></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">This is definitely an interesting use case and one I=
 think should be in scope for HTTP over QUIC.=C2=A0 However, at the end of =
the day the server needs to send what the client wants, so it&#39;s better =
to inform the server what to send than trick
 it.=C2=A0 Given we&#39;re discussing HTTP, ideally the HTTP/2 priorities +=
 cancellation would provide what you need, but I&#39;ll admit at the moment=
 it&#39;s not a natural mapping.</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">Making this work well may require a more robust interface between =
the application and QUIC stream, or may just require some new features, we&=
#39;ll see.=C2=A0 I can&#39;t think of anything about
 moving from 2 to 1 streams changes this, especially given the new header c=
ompression schemes will allow cancellation of the headers as well as the pa=
yload, unlike before.</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel &lt;<a href=3D"=
mailto:phils@in-panik.de" target=3D"_blank">phils@in-panik.de</a>&gt; wrote=
:</p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">Hi,</p>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">too bad that I missed that discussion.=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">Separating DATA and Request/Response to different streams would be=
 beneficial if we add unreliable streams. I will try to write up something =
(at least considerations) before the
 interim.=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">On 22. Jul 2017, at 03:04, Mike Bishop &lt;<a href=3D"mailto:Micha=
el.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@microsoft.com</a>=
&gt; wrote:</p>
</div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">No, the consensus both in Paris and Prague was a single stream, w=
hich means the DATA frame is back to stay.=C2=A0 The
 HPACK-without-dynamic-table piece is temporary, until we pick a direction =
for header compression.</span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">Sent from my Windows 10 phone</span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
</div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><b><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;=
,sans-serif">From:<span class=3D"m-2479149337035486093m-2849819982971028205=
apple-converted-space">=C2=A0</span></span></b><a href=3D"mailto:Lucas.Pard=
ue@bbc.co.uk" target=3D"_blank"><span style=3D"font-size:11.0pt;font-family=
:&quot;Calibri&quot;,sans-serif;color:#954f72">Lucas
 Pardue</span></a><span style=3D"font-size:11.0pt;font-family:&quot;Calibri=
&quot;,sans-serif"><br>
<b>Sent:<span class=3D"m-2479149337035486093m-2849819982971028205apple-conv=
erted-space">=C2=A0</span></b>Friday, July 21, 2017 8:20 AM<br>
<b>To:<span class=3D"m-2479149337035486093m-2849819982971028205apple-conver=
ted-space">=C2=A0</span></b></span><a href=3D"mailto:quic@ietf.org" target=
=3D"_blank"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;=
,sans-serif;color:#954f72">IETF QUIC WG</span></a><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><br>
<b>Subject:<span class=3D"m-2479149337035486093m-2849819982971028205apple-c=
onverted-space">=C2=A0</span></b>HTTP requests on one stream #692</span></p=
>
</div>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">Hi,</span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">Apologies if this was discussed already in Prague but I=E2=80=99d=
 like some clarification on the intended lifetime scope
 of the changes in<span class=3D"m-2479149337035486093m-2849819982971028205=
apple-converted-space">=C2=A0</span></span><a href=3D"https://na01.safelink=
s.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fquicwg%2Fbase-dr=
afts%2Fpull%2F692%2Ffiles&amp;data=3D02%7C01%7Cmichael.bishop%40microsoft.c=
om%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141af91ab2d7cd011db47%7C=
1%7C0%7C636362472283415347&amp;sdata=3DdZMXpiCYo5b7tVuKrbJCsnaPP42mqRVi%2B3=
x4garWrvI%3D&amp;reserved=3D0" target=3D"_blank"><span style=3D"font-size:1=
1.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#954f72">PR#692</spa=
n></a><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-=
serif">.<span class=3D"m-2479149337035486093m-2849819982971028205apple-conv=
erted-space">=C2=A0</span></span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
</div>
<ol start=3D"1" type=3D"1">
<li class=3D"MsoNormal" style=3D"margin-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>Is the intention that this change unblocks specification / development so =
that the WG can continue?</span></li><li class=3D"MsoNormal" style=3D"margi=
n-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>Will these changes be unwound once progress has been made?</span></li></ol=
>
<ol start=3D"2" type=3D"1">
<ol start=3D"1" type=3D"a">
<li class=3D"MsoNormal" style=3D"margin-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>The DATA frame has been resurrected (I presume to demark frames in the sam=
e stream). Will it be struck with a wooden stake in the future, or continue=
 to hang around?</span></li></ol>
</ol>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">=C2=A0</span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">Thanks</span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">Lucas</span></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto"><span style=3D"color:black">AVE!<br>
=C2=A0 Philipp S. Tiesel / phils=E2=80=A6</span><span style=3D"color:#88888=
8"><br>
<span class=3D"m-2479149337035486093hoenzb">--=C2=A0</span><br>
<span class=3D"m-2479149337035486093hoenzb">=C2=A0 =C2=A0{phils}---&gt;---(=
</span></span><a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@=
in-panik.de</a><span class=3D"m-2479149337035486093hoenzb"><span style=3D"c=
olor:#888888">)---&gt;---(</span></span><a href=3D"http://phils.in-panik.de=
" target=3D"_blank">http://phils.in-panik.de</a><span class=3D"m-2479149337=
035486093hoenzb"><span style=3D"color:#888888">)----,</span></span><span st=
yle=3D"color:#888888"><br>
<span class=3D"m-2479149337035486093hoenzb">=C2=A0 =C2=A0 =C2=A0 wenn w ein=
e =C2=A0 aube ist dn =C2=A0 =C2=A0 =C2=A0man au dran dre en =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |</span><br>
<span class=3D"m-2479149337035486093hoenzb">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0o =C2=A0 =C2=A0 Schr =C2=A0 =C2=A0 =C2=A0 =C2=A0an muss =C2=A0 =
=C2=A0 hc =C2=A0 =C2=A0 =C2=A0 =C2=A0 h =C2=A0 (Kurt Schwitters) |</span><b=
r>
<span class=3D"m-2479149337035486093hoenzb">:wq! =C2=A0&lt;----(phone: </sp=
an></span><a href=3D"tel:+49%20179%206737439" target=3D"_blank">+49-179-673=
7439</a><span class=3D"m-2479149337035486093hoenzb"><span style=3D"color:#8=
88888">)---&lt;---(jabber:
</span></span><a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@=
in-panik.de</a><span class=3D"m-2479149337035486093hoenzb"><span style=3D"c=
olor:#888888">)----&#39;</span></span></p>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto">=C2=A0</p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</div>
</div>
</div>


</div></div></span></blockquote></body></html>

--f403043ed1d4d000600555009b33--


From nobody Sun Jul 23 13:21:31 2017
Return-Path: <ianswett@google.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 E9B5B129B15 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 13:21:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 COKne4N1G1Op for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 13:21:26 -0700 (PDT)
Received: from mail-yb0-x233.google.com (mail-yb0-x233.google.com [IPv6:2607:f8b0:4002:c09::233]) (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 BDCFC1270AC for <quic@ietf.org>; Sun, 23 Jul 2017 13:21:25 -0700 (PDT)
Received: by mail-yb0-x233.google.com with SMTP id w187so19468884ybc.0 for <quic@ietf.org>; Sun, 23 Jul 2017 13:21:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Vg4e37lGBp3AOIE4A4n1zYD2Jyo5UBZM/bcvFFrSKT8=; b=OLjsoIAAlzizDk/6Q2tc2rT9PUlq4BqTSym0HQ86Mlu526MngWsVKSlADCkAVa8k2F n3+fRXLXZQfuWqGWj11wuDDwog+yUhRv2A76QrXJ7vhalG+KLY0Fy4X13QZsuYwtPEiB JWDVNtR4OWuUy89CgzEbKbnwaY8CwlJGP+jc6N6v4yKS4nOQl6oD76e9jkLSvlvv6a3m GNm3G7hPpDKs4tMLP1rNkORL8AY9Py/KLobCAYOzmB/j6HheJdUA5/egrk29FqRyMHZP AntJ+G+bD+TlNGc9+bkU66sddjaSgCqPNGpRcoJcRzxm3jMwcIuoFZr6wH344IUmm8/k HzOg==
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=Vg4e37lGBp3AOIE4A4n1zYD2Jyo5UBZM/bcvFFrSKT8=; b=a5fz0rn675BSfrNW/6lRwGozhh47jJfeIIDBJeF04kUa/+nV8NaUiHYCt2JZ6rMB6p aF5RI8/fFXEydqPuvMU0kVuLzglJyxRPSlkdvH/8IPTDhhtLourV6j/Qy4u+41oiY3gh t9pgHNcVuGZb7e7Awf67NlRBtofZipBOnlNHfoxXXY+FQoNtCSmte2uquBQa3W90VeWY sdm9mG1LGLptnxTPBOD0b92Iw861H4Ih4h743e4E+mOfwJYv5vqE3x1M2kfjUwn9cbqd U2s2d2WPthVq8XJ85BVgFpptRU+FwqdPGSVmEtNtyDSxis4ZFhXkPMy7YC6yz5ylEcNK ZEQA==
X-Gm-Message-State: AIVw111YAMUxCOnTYaMlL+6ORA6Wih6FA6bTi1PdCKvKC8lTK7UJiytf fuGw4+qk6DC7X1mLlqivpkQg4Pq2HAft
X-Received: by 10.37.189.204 with SMTP id g12mr12498891ybk.336.1500841284527;  Sun, 23 Jul 2017 13:21:24 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.163.130 with HTTP; Sun, 23 Jul 2017 13:21:04 -0700 (PDT)
In-Reply-To: <CAN1APdfX46n_wD1MZiWpxJ4CgSdotrSm0dSe9DvyHbmXieU6bw@mail.gmail.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAN1APdfX46n_wD1MZiWpxJ4CgSdotrSm0dSe9DvyHbmXieU6bw@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Sun, 23 Jul 2017 16:21:04 -0400
Message-ID: <CAKcm_gNR4k7TcJpDdQaLwyxc418J8BRvQUE_kZ_GNfeha79iGw@mail.gmail.com>
Subject: Re: HTTP requests on one stream #692
To: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
Cc: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Lucas Pardue <lucas.pardue@bbc.co.uk>,  IETF QUIC WG <quic@ietf.org>, Mike Bishop <michael.bishop@microsoft.com>,  "Philipp S. Tiesel" <phils@in-panik.de>
Content-Type: multipart/alternative; boundary="089e082311d0a1668f055501d7d1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/GcNbQX2-tgZp9JovnDutkJLP3Ec>
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, 23 Jul 2017 20:21:29 -0000

--089e082311d0a1668f055501d7d1
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Good points Mikkel.  When we did the math on using one stream ID per video
or audio frame in WebRTC at the Tokyo interim, I believe it worked out to
enough for 2 weeks of video.  But for other applications, it is very
possible to hit the 32 bit limit in a moderate amount of time.

On Sun, Jul 23, 2017 at 2:53 PM, Mikkel Fahn=C3=B8e J=C3=B8rgensen <mikkelf=
j@gmail.com
> wrote:

> If stream identifiers move to 64 bit, unidirectional streams can be used
> as unreliable streams by storing an association context at the start of
> each stream. Then ack/nack becomes irrelevant because the receiver can ju=
st
> send a no longer interested frame instead (if it makes sense - since it
> might be too late). This has the benefit that packet boundaries are neatl=
y
> defined in the length of the stream. I previously tried to define an
> unreliable concept within a single stream but it was not nearly as elegan=
t
> as using separate streams. However, if stream identifiers are 32-bit or
> they are not explicitly uni-directional, this concept no longer works
> nearly as well. 32-bit only lasts an hour in high volume traffic.
>
> Kind Regards,
> Mikkel Fahn=C3=B8e J=C3=B8rgensen
>
>
> On 23 July 2017 at 20.29.19, Swindells, Thomas (Nokia - GB/Cambridge, UK)=
 (
> thomas.swindells@nokia.com) wrote:
>
> I agree that blindly acking packets would cause big problems with the
> current operations. But perhaps if/when we get onto unreliable streams a
> way to explicitly nack packets but state don=E2=80=99t bother retransmitt=
ing the
> ones for stream x would be a potential mechanism?
>
>
>
> Thomas
>
>
>
> *From:* Ian Swett [mailto:ianswett@google.com]
> *Sent:* 23 July 2017 14:03
> *To:* Swindells, Thomas (Nokia - GB/Cambridge, UK) <
> thomas.swindells@nokia.com>
> *Cc:* Philipp S. Tiesel <phils@in-panik.de>; Lucas Pardue <
> Lucas.Pardue@bbc.co.uk>; Mike Bishop <Michael.Bishop@microsoft.com>; IETF
> QUIC WG <quic@ietf.org>
> *Subject:* Re: HTTP requests on one stream #692
>
>
>
>
>
> On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (Nokia - GB/Cambridge,
> UK) <thomas.swindells@nokia.com> wrote:
>
> A few comments linline.
>
>
>
> Thomas
>
>
>
> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Ian Swett
> *Sent:* 23 July 2017 10:59
> *To:* Philipp S. Tiesel <phils@in-panik.de>
> *Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; Mike Bishop <
> Michael.Bishop@microsoft.com>; IETF QUIC WG <quic@ietf.org>
> *Subject:* Re: HTTP requests on one stream #692
>
>
>
> A few comments on unreliable streams in QUIC, and this may be a longer
> discussion and I'd be curious to read the considerations you have in mind=
.
>
>
>
> QUIC as specified today definitely enables unreliability.  For example, I
> can send stream data once, and if some portion of it is lost, at that poi=
nt
> I can decide if I want to retransmit it or just cancel the stream.
>
> *[Thomas Swindells] As stream frames contain the offset  client
> potentially also has the option of just acknowledging reception even it
> didn=E2=80=99t actually receive them - though obviously this would and ca=
use
> problems if non-stream frames were also being acknowledged when in fact t=
he
> client hadn=E2=80=99t acknowledge them. .*
>
>
>
> This is prohibited currently, and for good reason, since acking packets
> you haven't received breaks congestion control and potentially flow
> control.  Also, you'd be assuming what was in the packets was what you
> expected, and  if you were wrong, it could go really poorly.  ie: imagine
> if you acked a packet containing QPACK compression context, but didn't
> receive it.  The connection would then be in a completely invalid state.
>
>
>
> I generally consider unreliability to be a matter of sender side policy.
>
> *[Thomas Swindells] I don=E2=80=99t think I agree with that. Often it is =
the
> client which has the knowledge about whether data is or is not important.
> Live video streaming is the best example for this, if the client has enou=
gh
> buffer and is playing the output out live then it would prefer to get the
> data re-transmitted, however data over a certain age isn=E2=80=99t useful=
 and it
> may prefer to lose some frames and jump back up to live. However if the
> client is actually recording the output (or has a longer buffer) it may
> prefer to stall and get all the data.*
>
>
>
>
>
> This is definitely an interesting use case and one I think should be in
> scope for HTTP over QUIC.  However, at the end of the day the server need=
s
> to send what the client wants, so it's better to inform the server what t=
o
> send than trick it.  Given we're discussing HTTP, ideally the HTTP/2
> priorities + cancellation would provide what you need, but I'll admit at
> the moment it's not a natural mapping.
>
>
>
> Making this work well may require a more robust interface between the
> application and QUIC stream, or may just require some new features, we'll
> see.  I can't think of anything about moving from 2 to 1 streams changes
> this, especially given the new header compression schemes will allow
> cancellation of the headers as well as the payload, unlike before.
>
>
>
>
>
>
>
>
>
> On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel <phils@in-panik.de>
> wrote:
>
> Hi,
>
>
>
> too bad that I missed that discussion.
>
>
>
> Separating DATA and Request/Response to different streams would be
> beneficial if we add unreliable streams. I will try to write up something
> (at least considerations) before the interim.
>
>
>
>
>
> On 22. Jul 2017, at 03:04, Mike Bishop <Michael.Bishop@microsoft.com>
> wrote:
>
>
>
> No, the consensus both in Paris and Prague was a single stream, which
> means the DATA frame is back to stay.  The HPACK-without-dynamic-table
> piece is temporary, until we pick a direction for header compression.
>
>
>
> Sent from my Windows 10 phone
>
>
>
> *From: *Lucas Pardue <Lucas.Pardue@bbc.co.uk>
> *Sent: *Friday, July 21, 2017 8:20 AM
> *To: *IETF QUIC WG <quic@ietf.org>
> *Subject: *HTTP requests on one stream #692
>
>
>
> Hi,
>
>
>
> Apologies if this was discussed already in Prague but I=E2=80=99d like so=
me
> clarification on the intended lifetime scope of the changes in PR#692
> <https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithu=
b.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&data=3D02%7C01%7Cmichael.=
bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141a=
f91ab2d7cd011db47%7C1%7C0%7C636362472283415347&sdata=3DdZMXpiCYo5b7tVuKrbJC=
snaPP42mqRVi%2B3x4garWrvI%3D&reserved=3D0>
> .
>
>
>
>    1. Is the intention that this change unblocks specification /
>    development so that the WG can continue?
>    2. Will these changes be unwound once progress has been made?
>
>
>    1. The DATA frame has been resurrected (I presume to demark frames in
>       the same stream). Will it be struck with a wooden stake in the futu=
re, or
>       continue to hang around?
>
>
>
> Thanks
>
> Lucas
>
>
>
> AVE!
>   Philipp S. Tiesel / phils=E2=80=A6
> --
>    {phils}--->---(phils@in-panik.de)--->---(http://phils.in-panik.de)----=
,
>       wenn w eine   aube ist dn      man au dran dre en                  =
 |
>            o     Schr        an muss     hc         h   (Kurt Schwitters)=
 |
> :wq!  <----(phone: +49-179-6737439 <+49%20179%206737439>)---<---(jabber:
> phils@in-panik.de)----'
>
>
>
>
>
>
>
>

--089e082311d0a1668f055501d7d1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Good points Mikkel.=C2=A0 When we did the math on usi=
ng one stream ID per video or audio frame in WebRTC at the Tokyo interim, I=
 believe it worked out to enough for 2 weeks of video.=C2=A0 But for other =
applications, it is very possible to hit the 32 bit limit in a moderate amo=
unt of time.<br></div></div><div class=3D"gmail_extra"><br><div class=3D"gm=
ail_quote">On Sun, Jul 23, 2017 at 2:53 PM, Mikkel Fahn=C3=B8e J=C3=B8rgens=
en <span dir=3D"ltr">&lt;<a href=3D"mailto:mikkelfj@gmail.com" target=3D"_b=
lank">mikkelfj@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex"><div style=3D"word-wrap:break-word"><div id=3D"m_6847547793269134149b=
loop_customfont" style=3D"font-family:Helvetica,Arial;font-size:13px;color:=
rgba(0,0,0,1.0);margin:0px;line-height:auto">If stream identifiers move to =
64 bit, unidirectional streams can be used as unreliable streams by storing=
 an association context at the start of each stream. Then ack/nack becomes =
irrelevant because the receiver can just send a no longer interested frame =
instead (if it makes sense - since it might be too late). This has the bene=
fit that packet boundaries are neatly defined in the length of the stream. =
I previously tried to define an unreliable concept within a single stream b=
ut it was not nearly as elegant as using separate streams. However, if stre=
am identifiers are 32-bit or they are not explicitly uni-directional, this =
concept no longer works nearly as well. 32-bit only lasts an hour in high v=
olume traffic.</div> <br> <div id=3D"m_6847547793269134149bloop_sign_150083=
5674447248896" class=3D"m_6847547793269134149bloop_sign"><div style=3D"font=
-family:helvetica,arial;font-size:13px">Kind Regards,</div><div style=3D"fo=
nt-family:helvetica,arial;font-size:13px">Mikkel Fahn=C3=B8e J=C3=B8rgensen=
<br><br></div></div><div><div class=3D"h5"> <br><p class=3D"m_6847547793269=
134149airmail_on">On 23 July 2017 at 20.29.19, Swindells, Thomas (Nokia - G=
B/Cambridge, UK) (<a href=3D"mailto:thomas.swindells@nokia.com" target=3D"_=
blank">thomas.swindells@nokia.com</a>) wrote:</p> <blockquote type=3D"cite"=
 class=3D"m_6847547793269134149clean_bq"><span><div lang=3D"EN-GB" link=3D"=
blue" vlink=3D"purple"><div></div><div>






<div class=3D"m_6847547793269134149WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">I agree that blindly acking packets would cause big=
 problems with the current operations. But perhaps if/when we get onto unre=
liable streams a way
 to explicitly nack packets but state don=E2=80=99t bother retransmitting t=
he ones for stream x would be a potential mechanism?</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thomas</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Ian Swett [mailto:<a href=3D"mailto:ianswett@google.com" target=3D"_blank">=
ianswett@google.com</a>]
<br>
<b>Sent:</b> 23 July 2017 14:03<br>
<b>To:</b> Swindells, Thomas (Nokia - GB/Cambridge, UK) &lt;<a href=3D"mail=
to:thomas.swindells@nokia.com" target=3D"_blank">thomas.swindells@nokia.com=
</a>&gt;<br>
<b>Cc:</b> Philipp S. Tiesel &lt;<a href=3D"mailto:phils@in-panik.de" targe=
t=3D"_blank">phils@in-panik.de</a>&gt;; Lucas Pardue &lt;<a href=3D"mailto:=
Lucas.Pardue@bbc.co.uk" target=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt;; M=
ike Bishop &lt;<a href=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_b=
lank">Michael.Bishop@microsoft.com</a>&gt;<wbr>; IETF QUIC WG &lt;<a href=
=3D"mailto:quic@ietf.org" target=3D"_blank">quic@ietf.org</a>&gt;<br>
<b>Subject:</b> Re: HTTP requests on one stream #692</span></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<p class=3D"MsoNormal">On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (=
Nokia - GB/Cambridge, UK) &lt;<a href=3D"mailto:thomas.swindells@nokia.com"=
 target=3D"_blank">thomas.swindells@nokia.com</a>&gt; wrote:</p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">A few comments linline.</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thomas</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
QUIC
 [mailto:</span><a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">=
<span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif">quic-bounces@ietf.org</span></a><span lang=3D"EN-US" style=
=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">]
<b>On Behalf Of </b>Ian Swett<br>
<b>Sent:</b> 23 July 2017 10:59<br>
<b>To:</b> Philipp S. Tiesel &lt;</span><a href=3D"mailto:phils@in-panik.de=
" target=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif">phils@in-panik.de</span></a><span lang=
=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-s=
erif">&gt;<br>
<b>Cc:</b> Lucas Pardue &lt;</span><a href=3D"mailto:Lucas.Pardue@bbc.co.uk=
" target=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif">Lucas.Pardue@bbc.co.uk</span></a><span =
lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">&gt;;
 Mike Bishop &lt;</span><a href=3D"mailto:Michael.Bishop@microsoft.com" tar=
get=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif">Michael.Bishop@microsoft.com</span></a><span=
 lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,s=
ans-serif">&gt;<wbr>;
 IETF QUIC WG &lt;</span><a href=3D"mailto:quic@ietf.org" target=3D"_blank"=
><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&q=
uot;,sans-serif">quic@ietf.org</span></a><span lang=3D"EN-US" style=3D"font=
-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">&gt;<br>
<b>Subject:</b> Re: HTTP requests on one stream #692</span></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<div>
<p class=3D"MsoNormal">A few comments on unreliable streams in QUIC, and th=
is may be a longer discussion and I&#39;d be curious to read the considerat=
ions you have in mind.</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">QUIC as specified today definitely enables unreliabi=
lity.=C2=A0 For example, I can send stream data once, and if some portion o=
f it is lost, at that point I can decide if I want to retransmit
 it or just cancel the stream.=C2=A0 </p>
<p class=3D"MsoNormal"><b><i><span style=3D"font-size:11.0pt;font-family:&q=
uot;Calibri&quot;,sans-serif">[Thomas Swindells] As stream frames contain t=
he offset =C2=A0client potentially also has the option of just acknowledgin=
g
 reception even it didn=E2=80=99t actually receive them - though obviously =
this would and cause problems if non-stream frames were also being acknowle=
dged when in fact the client hadn=E2=80=99t acknowledge them. .</span></i><=
/b></p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">This is prohibited currently, and for good reason, s=
ince acking packets you haven&#39;t received breaks congestion control and =
potentially flow control.=C2=A0 Also, you&#39;d be assuming what was in the=
 packets was what you expected, and=C2=A0 if you were
 wrong, it could go really poorly.=C2=A0 ie: imagine if you acked a packet =
containing QPACK compression context, but didn&#39;t receive it.=C2=A0 The =
connection would then be in a completely invalid state.</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div>
<p class=3D"MsoNormal">I generally consider unreliability to be a matter of=
 sender side policy.</p>
<p class=3D"MsoNormal"><b><i><span style=3D"font-size:11.0pt;font-family:&q=
uot;Calibri&quot;,sans-serif">[Thomas Swindells] I don=E2=80=99t think I ag=
ree with that. Often it is the client which has the knowledge about whether
 data is or is not important. Live video streaming is the best example for =
this, if the client has enough buffer and is playing the output out live th=
en it would prefer to get the data re-transmitted, however data over a cert=
ain age isn=E2=80=99t useful and it may
 prefer to lose some frames and jump back up to live. However if the client=
 is actually recording the output (or has a longer buffer) it may prefer to=
 stall and get all the data.</span></i></b></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">This is definitely an interesting use case and one I=
 think should be in scope for HTTP over QUIC.=C2=A0 However, at the end of =
the day the server needs to send what the client wants, so it&#39;s better =
to inform the server what to send than trick
 it.=C2=A0 Given we&#39;re discussing HTTP, ideally the HTTP/2 priorities +=
 cancellation would provide what you need, but I&#39;ll admit at the moment=
 it&#39;s not a natural mapping.</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal">Making this work well may require a more robust inte=
rface between the application and QUIC stream, or may just require some new=
 features, we&#39;ll see.=C2=A0 I can&#39;t think of anything about
 moving from 2 to 1 streams changes this, especially given the new header c=
ompression schemes will allow cancellation of the headers as well as the pa=
yload, unlike before.</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<p class=3D"MsoNormal">On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel &=
lt;<a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@in-panik.de=
</a>&gt; wrote:</p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal">Hi,</p>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">too bad that I missed that discussion.=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">Separating DATA and Request/Response to different st=
reams would be beneficial if we add unreliable streams. I will try to write=
 up something (at least considerations) before the
 interim.=C2=A0</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal">On 22. Jul 2017, at 03:04, Mike Bishop &lt;<a href=
=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@m=
icrosoft.com</a>&gt; wrote:</p>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">No, the consensus both in Paris and Prague was a si=
ngle stream, which means the DATA frame is back to stay.=C2=A0 The
 HPACK-without-dynamic-table piece is temporary, until we pick a direction =
for header compression.</span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Sent from my Windows 10 phone</span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
</div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:<span class=3D"m_6847547793269134149m-24791=
49337035486093m-2849819982971028205apple-converted-space">=C2=A0</span></sp=
an></b><a href=3D"mailto:Lucas.Pardue@bbc.co.uk" target=3D"_blank"><span st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#9=
54f72">Lucas
 Pardue</span></a><span style=3D"font-size:11.0pt;font-family:&quot;Calibri=
&quot;,sans-serif"><br>
<b>Sent:<span class=3D"m_6847547793269134149m-2479149337035486093m-28498199=
82971028205apple-converted-space">=C2=A0</span></b>Friday, July 21, 2017 8:=
20 AM<br>
<b>To:<span class=3D"m_6847547793269134149m-2479149337035486093m-2849819982=
971028205apple-converted-space">=C2=A0</span></b></span><a href=3D"mailto:q=
uic@ietf.org" target=3D"_blank"><span style=3D"font-size:11.0pt;font-family=
:&quot;Calibri&quot;,sans-serif;color:#954f72">IETF QUIC WG</span></a><span=
 style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><br>
<b>Subject:<span class=3D"m_6847547793269134149m-2479149337035486093m-28498=
19982971028205apple-converted-space">=C2=A0</span></b>HTTP requests on one =
stream #692</span></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Hi,</span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Apologies if this was discussed already in Prague b=
ut I=E2=80=99d like some clarification on the intended lifetime scope
 of the changes in<span class=3D"m_6847547793269134149m-2479149337035486093=
m-2849819982971028205apple-converted-space">=C2=A0</span></span><a href=3D"=
https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.c=
om%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&amp;data=3D02%7C01%7Cmichael=
.bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141=
af91ab2d7cd011db47%7C1%7C0%7C636362472283415347&amp;sdata=3DdZMXpiCYo5b7tVu=
KrbJCsnaPP42mqRVi%2B3x4garWrvI%3D&amp;reserved=3D0" target=3D"_blank"><span=
 style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color=
:#954f72">PR#692</span></a><span style=3D"font-size:11.0pt;font-family:&quo=
t;Calibri&quot;,sans-serif">.<span class=3D"m_6847547793269134149m-24791493=
37035486093m-2849819982971028205apple-converted-space">=C2=A0</span></span>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
</div>
<ol start=3D"1" type=3D"1">
<li class=3D"MsoNormal" style=3D"margin-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>Is the intention that this change unblocks specification / development so =
that the WG can continue?</span></li><li class=3D"MsoNormal" style=3D"margi=
n-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>Will these changes be unwound once progress has been made?</span></li></ol=
>
<ol start=3D"2" type=3D"1">
<ol start=3D"1" type=3D"a">
<li class=3D"MsoNormal" style=3D"margin-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>The DATA frame has been resurrected (I presume to demark frames in the sam=
e stream). Will it be struck with a wooden stake in the future, or continue=
 to hang around?</span></li></ol>
</ol>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thanks</span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Lucas</span></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:black">AVE!<br>
=C2=A0 Philipp S. Tiesel / phils=E2=80=A6</span><span style=3D"color:#88888=
8"><br>
<span class=3D"m_6847547793269134149m-2479149337035486093hoenzb">--=C2=A0</=
span><br>
<span class=3D"m_6847547793269134149m-2479149337035486093hoenzb">=C2=A0 =C2=
=A0{phils}---&gt;---(</span></span><a href=3D"mailto:phils@in-panik.de" tar=
get=3D"_blank">phils@in-<wbr>panik.de</a><span class=3D"m_68475477932691341=
49m-2479149337035486093hoenzb"><span style=3D"color:#888888">)---&gt;---(</=
span></span><a href=3D"http://phils.in-panik.de" target=3D"_blank">http://p=
hils.<wbr>in-panik.de</a><span class=3D"m_6847547793269134149m-247914933703=
5486093hoenzb"><span style=3D"color:#888888">)----,</span></span><span styl=
e=3D"color:#888888"><br>
<span class=3D"m_6847547793269134149m-2479149337035486093hoenzb">=C2=A0 =C2=
=A0 =C2=A0 wenn w eine =C2=A0 aube ist dn =C2=A0 =C2=A0 =C2=A0man au dran d=
re en =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |</spa=
n><br>
<span class=3D"m_6847547793269134149m-2479149337035486093hoenzb">=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0o =C2=A0 =C2=A0 Schr =C2=A0 =C2=A0 =C2=A0 =
=C2=A0an muss =C2=A0 =C2=A0 hc =C2=A0 =C2=A0 =C2=A0 =C2=A0 h =C2=A0 (Kurt S=
chwitters) |</span><br>
<span class=3D"m_6847547793269134149m-2479149337035486093hoenzb">:wq! =C2=
=A0&lt;----(phone: </span></span><a href=3D"tel:+49%20179%206737439" target=
=3D"_blank">+49-179-6737439</a><span class=3D"m_6847547793269134149m-247914=
9337035486093hoenzb"><span style=3D"color:#888888">)---&lt;---(<wbr>jabber:
</span></span><a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@=
in-panik.de</a><span class=3D"m_6847547793269134149m-2479149337035486093hoe=
nzb"><span style=3D"color:#888888">)----&#39;</span></span></p>
</div>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</div>
</div>
</div>


</div></div></span></blockquote></div></div></div>
</blockquote></div><br></div>

--089e082311d0a1668f055501d7d1--


From nobody Sun Jul 23 14:30:37 2017
Return-Path: <martin.thomson@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 50449127180 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 14:30:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 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, URIBL_BLOCKED=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 OHb9KvLMNYP1 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 14:30:33 -0700 (PDT)
Received: from mail-it0-x232.google.com (mail-it0-x232.google.com [IPv6:2607:f8b0:4001:c0b::232]) (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 8845E127342 for <quic@ietf.org>; Sun, 23 Jul 2017 14:30:33 -0700 (PDT)
Received: by mail-it0-x232.google.com with SMTP id v205so8174992itf.1 for <quic@ietf.org>; Sun, 23 Jul 2017 14:30:33 -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=+cUvSRNGBacTgJKj/906CHtASv8EeuF/0UohrQ3h7yY=; b=cJxBFqryL/MVQb1mreqj4vN7OdgAwrfSVtYU5fAU79zh9oa5y7QAgQHbGpVEInOsG3 /9MSXFULnBjfMefartDDw2a96m0FKgnIm0tQGLooMFzj/rjlfUNBENW+17StFFKEDtdn l52xIxB9Vg64YDGymje59F3sT1Dt/AccIwfmD+43XDhmHajbaS5cDHTUZgYF6hdOt6Ed G0rz8I2r6ISqSfHysRzGuCR9qGPG6OUYCh5u4sbd8qXrzqeEJ0HpeZ58xplRGAqhIUkm 3brG1pF0XgjTzwnyR6xcDGXn5Q1QSaqtiajXGT5ENCnohZPu5V1/e72TLiI3hb1r/2Ck Lwyw==
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=+cUvSRNGBacTgJKj/906CHtASv8EeuF/0UohrQ3h7yY=; b=fdRpsDROwVpWC0HbicNj36KhbvJmlHM1cVgdLYZkSO2X3dZe9/+OZXe0BXdrPrGpg9 IF2s76KFD3fsYeqA3J+NAXQ43vXEgkLHd59V12XAqut6SKrVZNJs+tmfAEsRncs9OsIH nzXCk7rpOG3aC8R++jDA8gzqGL7ajtB6WbDXqTcoQttVMUpWJmYWahDNmSiSgSg/DxsH LIfEf+hpaFnFngNE7JzI9uR5knMKROWs2dClrDsf8M/tf31tlTf/9WZgZigrYXBqm5Dm 4M55qJMFREgUuhuego4DVyczhGeHKmCieraQMrbQCGaZJeH0ip92QFNcbcpQUAWSFCXf bN7A==
X-Gm-Message-State: AIVw113UJG+XaT0nBEw/jGTnKaCDBAVRl2rdggI6oIq0ttexFBgCu4D0 +c54WSnkhAxWGio3gxSOmBRlToqaCg==
X-Received: by 10.36.53.70 with SMTP id k67mr5452207ita.79.1500845432866; Sun, 23 Jul 2017 14:30:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Sun, 23 Jul 2017 14:30:31 -0700 (PDT)
Received: by 10.107.164.26 with HTTP; Sun, 23 Jul 2017 14:30:31 -0700 (PDT)
In-Reply-To: <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Sun, 23 Jul 2017 23:30:31 +0200
Message-ID: <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com>
Subject: RE: HTTP requests on one stream #692
To: "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>
Cc: Ian Swett <ianswett@google.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>,  "Philipp S. Tiesel" <phils@in-panik.de>
Content-Type: multipart/alternative; boundary="001a114abeece38f7f055502ceee"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/FlsNYC_AiPFfIsL2f7_jLC0pdhs>
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, 23 Jul 2017 21:30:36 -0000

--001a114abeece38f7f055502ceee
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

And you can't acknowledge stream data either, only packets. If you want to
keep some frames but not others, which seems likely, over-acknowledgement
doesn't work.

On 24 Jul. 2017 04:29, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <
thomas.swindells@nokia.com> wrote:

> I agree that blindly acking packets would cause big problems with the
> current operations. But perhaps if/when we get onto unreliable streams a
> way to explicitly nack packets but state don=E2=80=99t bother retransmitt=
ing the
> ones for stream x would be a potential mechanism?
>
>
>
> Thomas
>
>
>
> *From:* Ian Swett [mailto:ianswett@google.com]
> *Sent:* 23 July 2017 14:03
> *To:* Swindells, Thomas (Nokia - GB/Cambridge, UK) <
> thomas.swindells@nokia.com>
> *Cc:* Philipp S. Tiesel <phils@in-panik.de>; Lucas Pardue <
> Lucas.Pardue@bbc.co.uk>; Mike Bishop <Michael.Bishop@microsoft.com>; IETF
> QUIC WG <quic@ietf.org>
> *Subject:* Re: HTTP requests on one stream #692
>
>
>
>
>
> On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (Nokia - GB/Cambridge,
> UK) <thomas.swindells@nokia.com> wrote:
>
> A few comments linline.
>
>
>
> Thomas
>
>
>
> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Ian Swett
> *Sent:* 23 July 2017 10:59
> *To:* Philipp S. Tiesel <phils@in-panik.de>
> *Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; Mike Bishop <
> Michael.Bishop@microsoft.com>; IETF QUIC WG <quic@ietf.org>
> *Subject:* Re: HTTP requests on one stream #692
>
>
>
> A few comments on unreliable streams in QUIC, and this may be a longer
> discussion and I'd be curious to read the considerations you have in mind=
.
>
>
>
> QUIC as specified today definitely enables unreliability.  For example, I
> can send stream data once, and if some portion of it is lost, at that poi=
nt
> I can decide if I want to retransmit it or just cancel the stream.
>
> *[Thomas Swindells] As stream frames contain the offset  client
> potentially also has the option of just acknowledging reception even it
> didn=E2=80=99t actually receive them - though obviously this would and ca=
use
> problems if non-stream frames were also being acknowledged when in fact t=
he
> client hadn=E2=80=99t acknowledge them. .*
>
>
>
> This is prohibited currently, and for good reason, since acking packets
> you haven't received breaks congestion control and potentially flow
> control.  Also, you'd be assuming what was in the packets was what you
> expected, and  if you were wrong, it could go really poorly.  ie: imagine
> if you acked a packet containing QPACK compression context, but didn't
> receive it.  The connection would then be in a completely invalid state.
>
>
>
> I generally consider unreliability to be a matter of sender side policy.
>
> *[Thomas Swindells] I don=E2=80=99t think I agree with that. Often it is =
the
> client which has the knowledge about whether data is or is not important.
> Live video streaming is the best example for this, if the client has enou=
gh
> buffer and is playing the output out live then it would prefer to get the
> data re-transmitted, however data over a certain age isn=E2=80=99t useful=
 and it
> may prefer to lose some frames and jump back up to live. However if the
> client is actually recording the output (or has a longer buffer) it may
> prefer to stall and get all the data.*
>
>
>
>
>
> This is definitely an interesting use case and one I think should be in
> scope for HTTP over QUIC.  However, at the end of the day the server need=
s
> to send what the client wants, so it's better to inform the server what t=
o
> send than trick it.  Given we're discussing HTTP, ideally the HTTP/2
> priorities + cancellation would provide what you need, but I'll admit at
> the moment it's not a natural mapping.
>
>
>
> Making this work well may require a more robust interface between the
> application and QUIC stream, or may just require some new features, we'll
> see.  I can't think of anything about moving from 2 to 1 streams changes
> this, especially given the new header compression schemes will allow
> cancellation of the headers as well as the payload, unlike before.
>
>
>
>
>
>
>
>
>
> On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel <phils@in-panik.de>
> wrote:
>
> Hi,
>
>
>
> too bad that I missed that discussion.
>
>
>
> Separating DATA and Request/Response to different streams would be
> beneficial if we add unreliable streams. I will try to write up something
> (at least considerations) before the interim.
>
>
>
>
>
> On 22. Jul 2017, at 03:04, Mike Bishop <Michael.Bishop@microsoft.com>
> wrote:
>
>
>
> No, the consensus both in Paris and Prague was a single stream, which
> means the DATA frame is back to stay.  The HPACK-without-dynamic-table
> piece is temporary, until we pick a direction for header compression.
>
>
>
> Sent from my Windows 10 phone
>
>
>
> *From: *Lucas Pardue <Lucas.Pardue@bbc.co.uk>
> *Sent: *Friday, July 21, 2017 8:20 AM
> *To: *IETF QUIC WG <quic@ietf.org>
> *Subject: *HTTP requests on one stream #692
>
>
>
> Hi,
>
>
>
> Apologies if this was discussed already in Prague but I=E2=80=99d like so=
me
> clarification on the intended lifetime scope of the changes in PR#692
> <https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithu=
b.com%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&data=3D02%7C01%7Cmichael.=
bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141a=
f91ab2d7cd011db47%7C1%7C0%7C636362472283415347&sdata=3DdZMXpiCYo5b7tVuKrbJC=
snaPP42mqRVi%2B3x4garWrvI%3D&reserved=3D0>
> .
>
>
>
>    1. Is the intention that this change unblocks specification /
>    development so that the WG can continue?
>    2. Will these changes be unwound once progress has been made?
>
>
>    1. The DATA frame has been resurrected (I presume to demark frames in
>       the same stream). Will it be struck with a wooden stake in the futu=
re, or
>       continue to hang around?
>
>
>
> Thanks
>
> Lucas
>
>
>
> AVE!
>   Philipp S. Tiesel / phils=E2=80=A6
> --
>    {phils}--->---(phils@in-panik.de)--->---(http://phils.in-panik.de)----=
,
>       wenn w eine   aube ist dn      man au dran dre en                  =
 |
>            o     Schr        an muss     hc         h   (Kurt Schwitters)=
 |
> :wq!  <----(phone: +49-179-6737439 <+49%20179%206737439>)---<---(jabber:
> phils@in-panik.de)----'
>
>
>
>
>
>
>

--001a114abeece38f7f055502ceee
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">And you can&#39;t acknowledge stream data either, only pa=
ckets. If you want to keep some frames but not others, which seems likely, =
over-acknowledgement doesn&#39;t work.=C2=A0</div><div class=3D"gmail_extra=
"><br><div class=3D"gmail_quote">On 24 Jul. 2017 04:29, &quot;Swindells, Th=
omas (Nokia - GB/Cambridge, UK)&quot; &lt;<a href=3D"mailto:thomas.swindell=
s@nokia.com">thomas.swindells@nokia.com</a>&gt; wrote:<br type=3D"attributi=
on"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-GB" link=3D"blue" vlink=3D"purple">
<div class=3D"m_7408729363155421353WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">I agree that blindly acking packets would cause big=
 problems with the current operations. But perhaps if/when we get onto unre=
liable streams a way
 to explicitly nack packets but state don=E2=80=99t bother retransmitting t=
he ones for stream x would be a potential mechanism?<u></u><u></u></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thomas<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><u></u>=C2=A0<u></u></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Ian Swett [mailto:<a href=3D"mailto:ianswett@google.com" target=3D"_blank">=
ianswett@google.com</a>]
<br>
<b>Sent:</b> 23 July 2017 14:03<br>
<b>To:</b> Swindells, Thomas (Nokia - GB/Cambridge, UK) &lt;<a href=3D"mail=
to:thomas.swindells@nokia.com" target=3D"_blank">thomas.swindells@nokia.com=
</a>&gt;<br>
<b>Cc:</b> Philipp S. Tiesel &lt;<a href=3D"mailto:phils@in-panik.de" targe=
t=3D"_blank">phils@in-panik.de</a>&gt;; Lucas Pardue &lt;<a href=3D"mailto:=
Lucas.Pardue@bbc.co.uk" target=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt;; M=
ike Bishop &lt;<a href=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_b=
lank">Michael.Bishop@microsoft.com</a>&gt;<wbr>; IETF QUIC WG &lt;<a href=
=3D"mailto:quic@ietf.org" target=3D"_blank">quic@ietf.org</a>&gt;<br>
<b>Subject:</b> Re: HTTP requests on one stream #692<u></u><u></u></span></=
p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Sun, Jul 23, 2017 at 7:57 AM, Swindells, Thomas (=
Nokia - GB/Cambridge, UK) &lt;<a href=3D"mailto:thomas.swindells@nokia.com"=
 target=3D"_blank">thomas.swindells@nokia.com</a>&gt; wrote:<u></u><u></u><=
/p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">A few comments linline.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thomas</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
QUIC
 [mailto:</span><a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">=
<span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif">quic-bounces@ietf.org</span></a><span lang=3D"EN-US" style=
=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">]
<b>On Behalf Of </b>Ian Swett<br>
<b>Sent:</b> 23 July 2017 10:59<br>
<b>To:</b> Philipp S. Tiesel &lt;</span><a href=3D"mailto:phils@in-panik.de=
" target=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif">phils@in-panik.de</span></a><span lang=
=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-s=
erif">&gt;<br>
<b>Cc:</b> Lucas Pardue &lt;</span><a href=3D"mailto:Lucas.Pardue@bbc.co.uk=
" target=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif">Lucas.Pardue@bbc.co.uk</span></a><span =
lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sa=
ns-serif">&gt;;
 Mike Bishop &lt;</span><a href=3D"mailto:Michael.Bishop@microsoft.com" tar=
get=3D"_blank"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif">Michael.Bishop@microsoft.com</span></a><span=
 lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,s=
ans-serif">&gt;<wbr>;
 IETF QUIC WG &lt;</span><a href=3D"mailto:quic@ietf.org" target=3D"_blank"=
><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&q=
uot;,sans-serif">quic@ietf.org</span></a><span lang=3D"EN-US" style=3D"font=
-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">&gt;<br>
<b>Subject:</b> Re: HTTP requests on one stream #692</span><u></u><u></u></=
p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal">A few comments on unreliable streams in QUIC, and th=
is may be a longer discussion and I&#39;d be curious to read the considerat=
ions you have in mind.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">QUIC as specified today definitely enables unreliabi=
lity.=C2=A0 For example, I can send stream data once, and if some portion o=
f it is lost, at that point I can decide if I want to retransmit
 it or just cancel the stream.=C2=A0 <u></u><u></u></p>
<p class=3D"MsoNormal"><b><i><span style=3D"font-size:11.0pt;font-family:&q=
uot;Calibri&quot;,sans-serif">[Thomas Swindells] As stream frames contain t=
he offset =C2=A0client potentially also has the option of just acknowledgin=
g
 reception even it didn=E2=80=99t actually receive them - though obviously =
this would and cause problems if non-stream frames were also being acknowle=
dged when in fact the client hadn=E2=80=99t acknowledge them. .</span></i><=
/b><u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">This is prohibited currently, and for good reason, s=
ince acking packets you haven&#39;t received breaks congestion control and =
potentially flow control.=C2=A0 Also, you&#39;d be assuming what was in the=
 packets was what you expected, and=C2=A0 if you were
 wrong, it could go really poorly.=C2=A0 ie: imagine if you acked a packet =
containing QPACK compression context, but didn&#39;t receive it.=C2=A0 The =
connection would then be in a completely invalid state.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div>
<p class=3D"MsoNormal">I generally consider unreliability to be a matter of=
 sender side policy.<u></u><u></u></p>
<p class=3D"MsoNormal"><b><i><span style=3D"font-size:11.0pt;font-family:&q=
uot;Calibri&quot;,sans-serif">[Thomas Swindells] I don=E2=80=99t think I ag=
ree with that. Often it is the client which has the knowledge about whether
 data is or is not important. Live video streaming is the best example for =
this, if the client has enough buffer and is playing the output out live th=
en it would prefer to get the data re-transmitted, however data over a cert=
ain age isn=E2=80=99t useful and it may
 prefer to lose some frames and jump back up to live. However if the client=
 is actually recording the output (or has a longer buffer) it may prefer to=
 stall and get all the data.</span></i></b><u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">This is definitely an interesting use case and one I=
 think should be in scope for HTTP over QUIC.=C2=A0 However, at the end of =
the day the server needs to send what the client wants, so it&#39;s better =
to inform the server what to send than trick
 it.=C2=A0 Given we&#39;re discussing HTTP, ideally the HTTP/2 priorities +=
 cancellation would provide what you need, but I&#39;ll admit at the moment=
 it&#39;s not a natural mapping.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal">Making this work well may require a more robust inte=
rface between the application and QUIC stream, or may just require some new=
 features, we&#39;ll see.=C2=A0 I can&#39;t think of anything about
 moving from 2 to 1 streams changes this, especially given the new header c=
ompression schemes will allow cancellation of the headers as well as the pa=
yload, unlike before.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">On Sun, Jul 23, 2017 at 4:56 AM, Philipp S. Tiesel &=
lt;<a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@in-panik.de=
</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal">Hi,<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">too bad that I missed that discussion.=C2=A0<u></u><=
u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Separating DATA and Request/Response to different st=
reams would be beneficial if we add unreliable streams. I will try to write=
 up something (at least considerations) before the
 interim.=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal">On 22. Jul 2017, at 03:04, Mike Bishop &lt;<a href=
=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@m=
icrosoft.com</a>&gt; wrote:<u></u><u></u></p>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">No, the consensus both in Paris and Prague was a si=
ngle stream, which means the DATA frame is back to stay.=C2=A0 The
 HPACK-without-dynamic-table piece is temporary, until we pick a direction =
for header compression.</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Sent from my Windows 10 phone</span><u></u><u></u><=
/p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:<span class=3D"m_7408729363155421353m-24791=
49337035486093m-2849819982971028205apple-converted-space">=C2=A0</span></sp=
an></b><a href=3D"mailto:Lucas.Pardue@bbc.co.uk" target=3D"_blank"><span st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#9=
54f72">Lucas
 Pardue</span></a><span style=3D"font-size:11.0pt;font-family:&quot;Calibri=
&quot;,sans-serif"><br>
<b>Sent:<span class=3D"m_7408729363155421353m-2479149337035486093m-28498199=
82971028205apple-converted-space">=C2=A0</span></b>Friday, July 21, 2017 8:=
20 AM<br>
<b>To:<span class=3D"m_7408729363155421353m-2479149337035486093m-2849819982=
971028205apple-converted-space">=C2=A0</span></b></span><a href=3D"mailto:q=
uic@ietf.org" target=3D"_blank"><span style=3D"font-size:11.0pt;font-family=
:&quot;Calibri&quot;,sans-serif;color:#954f72">IETF QUIC WG</span></a><span=
 style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><br>
<b>Subject:<span class=3D"m_7408729363155421353m-2479149337035486093m-28498=
19982971028205apple-converted-space">=C2=A0</span></b>HTTP requests on one =
stream #692</span><u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Hi,</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Apologies if this was discussed already in Prague b=
ut I=E2=80=99d like some clarification on the intended lifetime scope
 of the changes in<span class=3D"m_7408729363155421353m-2479149337035486093=
m-2849819982971028205apple-converted-space">=C2=A0</span></span><a href=3D"=
https://na01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.c=
om%2Fquicwg%2Fbase-drafts%2Fpull%2F692%2Ffiles&amp;data=3D02%7C01%7Cmichael=
.bishop%40microsoft.com%7C1a66873ec983497bf7de08d4d04c0326%7C72f988bf86f141=
af91ab2d7cd011db47%7C1%7C0%7C636362472283415347&amp;sdata=3DdZMXpiCYo5b7tVu=
KrbJCsnaPP42mqRVi%2B3x4garWrvI%3D&amp;reserved=3D0" target=3D"_blank"><span=
 style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color=
:#954f72">PR#692</span></a><span style=3D"font-size:11.0pt;font-family:&quo=
t;Calibri&quot;,sans-serif">.<span class=3D"m_7408729363155421353m-24791493=
37035486093m-2849819982971028205apple-converted-space">=C2=A0</span></span>=
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
<ol start=3D"1" type=3D"1">
<li class=3D"MsoNormal" style=3D"margin-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>Is the intention that this change unblocks specification / development so =
that the WG can continue?</span><u></u><u></u></li><li class=3D"MsoNormal" =
style=3D"margin-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>Will these changes be unwound once progress has been made?</span><u></u><u=
></u></li></ol>
<ol start=3D"2" type=3D"1">
<ol start=3D"1" type=3D"a">
<li class=3D"MsoNormal" style=3D"margin-left:0cm">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"=
>The DATA frame has been resurrected (I presume to demark frames in the sam=
e stream). Will it be struck with a wooden stake in the future, or continue=
 to hang around?</span><u></u><u></u></li></ol>
</ol>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Thanks</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Lucas</span><u></u><u></u></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:black">AVE!<br>
=C2=A0 Philipp S. Tiesel / phils=E2=80=A6</span><span style=3D"color:#88888=
8"><br>
<span class=3D"m_7408729363155421353m-2479149337035486093hoenzb">--=C2=A0</=
span><br>
<span class=3D"m_7408729363155421353m-2479149337035486093hoenzb">=C2=A0 =C2=
=A0{phils}---&gt;---(</span></span><a href=3D"mailto:phils@in-panik.de" tar=
get=3D"_blank">phils@in-<wbr>panik.de</a><span class=3D"m_74087293631554213=
53m-2479149337035486093hoenzb"><span style=3D"color:#888888">)---&gt;---(</=
span></span><a href=3D"http://phils.in-panik.de" target=3D"_blank">http://p=
hils.<wbr>in-panik.de</a><span class=3D"m_7408729363155421353m-247914933703=
5486093hoenzb"><span style=3D"color:#888888">)----,</span></span><span styl=
e=3D"color:#888888"><br>
<span class=3D"m_7408729363155421353m-2479149337035486093hoenzb">=C2=A0 =C2=
=A0 =C2=A0 wenn w eine =C2=A0 aube ist dn =C2=A0 =C2=A0 =C2=A0man au dran d=
re en =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |</spa=
n><br>
<span class=3D"m_7408729363155421353m-2479149337035486093hoenzb">=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0o =C2=A0 =C2=A0 Schr =C2=A0 =C2=A0 =C2=A0 =
=C2=A0an muss =C2=A0 =C2=A0 hc =C2=A0 =C2=A0 =C2=A0 =C2=A0 h =C2=A0 (Kurt S=
chwitters) |</span><br>
<span class=3D"m_7408729363155421353m-2479149337035486093hoenzb">:wq! =C2=
=A0&lt;----(phone: </span></span><a href=3D"tel:+49%20179%206737439" target=
=3D"_blank">+49-179-6737439</a><span class=3D"m_7408729363155421353m-247914=
9337035486093hoenzb"><span style=3D"color:#888888">)---&lt;---(<wbr>jabber:
</span></span><a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@=
in-panik.de</a><span class=3D"m_7408729363155421353m-2479149337035486093hoe=
nzb"><span style=3D"color:#888888">)----&#39;</span></span><u></u><u></u></=
p>
</div>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</div>
</div>
</div>

</blockquote></div></div>

--001a114abeece38f7f055502ceee--


From nobody Sun Jul 23 14:37:55 2017
Return-Path: <martin.thomson@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 DCBD712EC18 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 14:37:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 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, URIBL_BLOCKED=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 7JCyvGQpFwEu for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 14:37:52 -0700 (PDT)
Received: from mail-it0-x236.google.com (mail-it0-x236.google.com [IPv6:2607:f8b0:4001:c0b::236]) (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 1CCB5126C23 for <quic@ietf.org>; Sun, 23 Jul 2017 14:37:52 -0700 (PDT)
Received: by mail-it0-x236.google.com with SMTP id v127so26859054itd.0 for <quic@ietf.org>; Sun, 23 Jul 2017 14:37:52 -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=OeQawBZSgRTTy41JqQ5YFCHRRZ6vZBicvCl1xTXLJjA=; b=WciO+VATZJx8uZ+ihnDipE+zLmVNj5K+82bHpYXLSGBonu1bFwiwkCzEWCob9vZxOm EDJQhmEdtYc9vB6lMH1HL1EhU6RVd1LmFwTJGA0tX178YSU0kltVwU8kHzGVe+CvVeUF 6lzbXmAOKaeBjWqfoQGfeZ+WxK+gdRVSEfcpwWfbopqTc1iOCNcMpvfi0EXRPiR5/qwK C9BpxWn5YMYnKruCKH5zELipV1dNkbaq08F+aRg/axEwbI2/FTAoOmSA281jWeGwrNcI BdZ/Lf3BBUUd7jo52P9+ktVJ0NqrOp9rRLUETsWClWIbkXkU/0RcIaoYo6FGCb6zlUgX vGXg==
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=OeQawBZSgRTTy41JqQ5YFCHRRZ6vZBicvCl1xTXLJjA=; b=goHCiTqUseKlLfScK3h9YuDPjTyNuEU/02+mYPy9HNFZz6by5i7ehhUKn/9n6rUDXM 4SOtC2/Wyh1Z7tg+bCX3tl8zbTy0x+R70aLq+0wky26Y/nHanaJapmkJkdLqbH5DMeiY SKhWcAcB+jM8t8VG8CEdsWkkAARfAF4ckFVnoVCIbK47tJsE4s6plHBeROVdW04T4sQV v2nfMQdLM4CkHgMeEFqConJCwJ1fYft4lHWYVc+Co3WJv2rVhw3o9ezjX5u/aSHCKt6/ QPl5aiVuyQTkRtUqWyAxQqzYCDrbjQB2LqZYnU7snxtQ2ubsW2v5ffplKCos86SzqqE4 79BA==
X-Gm-Message-State: AIVw110HXOFLY+mluDZWSNH4WlA66HKtbMUlQ7HY8x9jAELhATmH2Vzr q1+9xROs9ekvmmLN58oUlhqZpjx7zA==
X-Received: by 10.36.152.136 with SMTP id n130mr5418360itd.79.1500845871465; Sun, 23 Jul 2017 14:37:51 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.26 with HTTP; Sun, 23 Jul 2017 14:37:50 -0700 (PDT)
Received: by 10.107.164.26 with HTTP; Sun, 23 Jul 2017 14:37:50 -0700 (PDT)
In-Reply-To: <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
References: <80c7cebc-30f1-79a3-3503-224b97d27377@huitema.net> <CAJ_4DfT9VQUXT4LnLQ_Ty4hjvmU8ptevgzGm-EEMp7R=po2KWQ@mail.gmail.com> <6bc0beec-8353-1dd2-b743-2fb3fab9f152@cs.tcd.ie> <CABkgnnWQg=MbPEed9aMMYwEfMsgnDHu5yyC8tSnYz6-0Uvpxrw@mail.gmail.com> <7fe2f1dd-a1c1-e55f-860b-fdc3c54f3504@cs.tcd.ie>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Sun, 23 Jul 2017 23:37:50 +0200
Message-ID: <CABkgnnWoZJgZgb_pREMKjLfw2RU9=yyYUZbwNFpibBaLaXqnZw@mail.gmail.com>
Subject: Re: Randomizer state attacks
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Cc: Ryan Hamilton <rch@google.com>, Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c05e63c080f9d055502e92c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/PSVYoQ8vegHWWYhLrWgnYTpRcHM>
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, 23 Jul 2017 21:37:54 -0000

--94eb2c05e63c080f9d055502e92c
Content-Type: text/plain; charset="UTF-8"

On 22 Jul. 2017 22:05, "Stephen Farrell" <stephen.farrell@cs.tcd.ie> wrote:

> This principle would have to apply to a peer as well.  That is, even
> encrypted bits count.

I'm not sure I understand or agree there. How would encrypted bits
affect a dual-ec kind of attack? Or did you mean something else?


State recovery depends only on seeing output. For a server in particular,
if becoming a client is advantageous to an attacker, then that is what they
will do.


For example, prior to considering this putative
new principle, it'd be natural to say that a connection ID be
random, and it'd be natural to implement by getting a value from a
prng and using that.


Fair point. The requirement on connection ID is not randomness, but
uniqueness, or maybe not even that, so it is reasonable to state the actual
requirement.

--94eb2c05e63c080f9d055502e92c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><div class=3D"gmail_extra"><div class=3D"gmail_quote=
">On 22 Jul. 2017 22:05, &quot;Stephen Farrell&quot; &lt;<a href=3D"mailto:=
stephen.farrell@cs.tcd.ie">stephen.farrell@cs.tcd.ie</a>&gt; wrote:<blockqu=
ote class=3D"quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div class=3D"quoted-text">
&gt; This principle would have to apply to a peer as well.=C2=A0 That is, e=
ven<br>
&gt; encrypted bits count.<br>
<br>
</div>I&#39;m not sure I understand or agree there. How would encrypted bit=
s<br>
affect a dual-ec kind of attack? Or did you mean something else?<br></block=
quote></div></div></div><div dir=3D"auto"><br></div><div dir=3D"auto">State=
 recovery depends only on seeing output. For a server in particular, if bec=
oming a client is advantageous to an attacker, then that is what they will =
do.=C2=A0</div><div dir=3D"auto"><div class=3D"gmail_extra"><div class=3D"g=
mail_quote"><blockquote class=3D"quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div class=3D"quoted-text">
</div></blockquote></div></div></div><div dir=3D"auto"><br></div><div dir=
=3D"auto"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><blockquote=
 class=3D"quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div class=3D"quoted-text">For example, prior to considering =
this putative</div>
new principle, it&#39;d be natural to say that a connection ID be<br>
random, and it&#39;d be natural to implement by getting a value from a<br>
prng and using that. </blockquote></div></div></div><div dir=3D"auto"><br><=
/div><div dir=3D"auto">Fair point. The requirement on connection ID is not =
randomness, but uniqueness, or maybe not even that, so it is reasonable to =
state the actual requirement.</div></div>

--94eb2c05e63c080f9d055502e92c--


From nobody Sun Jul 23 22:19:00 2017
Return-Path: <Michael.Bishop@microsoft.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 A3FE91272E1 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 22:18:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.899
X-Spam-Level: 
X-Spam-Status: No, score=-0.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URI_HEX=1.122] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 t-Ukbb6XMi_1 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 22:18:56 -0700 (PDT)
Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0111.outbound.protection.outlook.com [104.47.33.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9349F1205F0 for <quic@ietf.org>; Sun, 23 Jul 2017 22:18:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=vtnkPyHq7zY/RQK/5GsALYYGBiAr5hqHnDDJrWx0se0=; b=ZY2JiIKJSFP2+nCGC9DXkaZqzJthhcK04TBkfPSs7FtlH8pNadGxwYYBCPUy+pfOYZ4o0JnjXriitCHmaaG1xxey9FZnkxkdVs4XmMQMTohuNaEPYmhNsGntEwzrFvegRqHpGc7JzdbqzJB2exEdiWV2WkouGye+FUFnZT3nLNs=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0127.namprd21.prod.outlook.com (10.173.52.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.2; Mon, 24 Jul 2017 05:18:53 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1282.008; Mon, 24 Jul 2017 05:18:53 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Martin Thomson <martin.thomson@gmail.com>, "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>
CC: Ian Swett <ianswett@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, "Philipp S. Tiesel" <phils@in-panik.de>
Subject: RE: HTTP requests on one stream #692
Thread-Topic: HTTP requests on one stream #692
Thread-Index: AdMCNJiq1/jFQyapRDqdWSVpnV2UvgAUdAmMAELNc4AAAid+AAAA+mRQAAV2kgAAANuvsAAQ3neAABAmcHA=
Date: Mon, 24 Jul 2017 05:18:52 +0000
Message-ID: <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com>
In-Reply-To: <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
x-originating-ip: [2601:600:8080:5a28:a558:ef13:687c:db68]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0127; 7:fQJj9Qjlz6fo6jUf6CwpOJpAS1/BTKbdD8Zg1u79WQa2P/F5EkV8+yycpJcusitsJzfrSRZiHR3AHAXCE1xNZFgOPfs6AhwpyVyZAKNel5ugIR51fdTX7jUVFEt4M+rStzXjhwf/S0U/03nob6A8POBw0v4sCkJklyyt3Ai5L63C7bGs/GN5mnA+3/5Wwcj6wDHaBMJIq+im+dQYFOEmVIAFMc/YiRtmMT/SdfYkE0WfjE6jDfB6K/+eZKHLKEsnobClhYq+Ux7HUvJlyVXI07kvClcCOxSqFU3rB114zRhJyr8KdDrymfmYbzwLL7B790BvIjZLlo2QUUK2sp3ETJps6rKSzIYmzA0hbUYOYVc1ldL/nYYPKsQU4zPgRyIz2XySvoQiVpfTHRM+MQXy3PxxT/7O+1bP46jSmMUTTux2ugr63jHm+r1pAGsp0BeXFfaMybHB062goEgnRTwo6aketlm0I4gJEM2A3Kxhd2g5A6xrBPnCZ2nlQLxnI/7rfC+/alyJg2lZlcS6KBjMD4R5BAjQuszQBHWKN8mtvIw2yLAAkBZh+G79gf5ft7QFbEszxOnwRjY8PdBzMLO2PqbasQu8K8ZriW4nkhbYe8gQNpUa4now9DtlBqTO+IOBv+WQiT3h+Ms+BkJ6VpLIDBahUsyb5yVfB7Gd1hjQFPEMCvJNXCszD0r0Vz2sTAEhNvupuT1IJKgVUgbYElhhrYDYYUzPjATLi9ibl+wGehMgxB4FjBVPS3Y/JWpKkvhl5N0jgBKgV6WWiyrDidRkXUe7f+2U/4KgKNqj8M+qQxBWGpE71A8vtNECArTizeHd
x-ms-office365-filtering-correlation-id: a755db43-0874-4786-c90f-08d4d25379ba
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0127; 
x-ms-traffictypediagnostic: MWHPR21MB0127:
x-exchange-antispam-report-test: UriScan:(158342451672863)(89211679590171)(189930954265078)(82608151540597)(211936372134217)(100405760836317)(153496737603132)(219752817060721)(127952516941037)(21748063052155);
x-microsoft-antispam-prvs: <MWHPR21MB01274909D62E860B588EFD3E87BB0@MWHPR21MB0127.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(920507026)(6055026)(61426038)(61427038)(6041248)(20161123558100)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0127; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0127; 
x-forefront-prvs: 0378F1E47A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39450400003)(39410400002)(39850400002)(39860400002)(39840400002)(39400400002)(47760400005)(189002)(199003)(377454003)(24454002)(72206003)(39060400002)(97736004)(53546010)(53386004)(38730400002)(86362001)(6246003)(86612001)(4326008)(5005710100001)(8676002)(33656002)(10290500003)(478600001)(2900100001)(2950100002)(229853002)(14454004)(19609705001)(34040400001)(3280700002)(6116002)(102836003)(3660700001)(74316002)(50986999)(790700001)(2906002)(76176999)(54356999)(101416001)(236005)(25786009)(6436002)(7696004)(6506006)(8990500004)(54896002)(9686003)(99286003)(55016002)(93886004)(6306002)(606006)(7736002)(81156014)(8936002)(81166006)(5660300001)(54906002)(189998001)(105586002)(53936002)(77096006)(68736007)(106356001)(10090500001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0127; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB0141C6AA46DFF0B005972F2287BB0MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2017 05:18:53.0753 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0127
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/RKGVeO2LoG1oclwO6r3YkTlXxOI>
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: Mon, 24 Jul 2017 05:18:58 -0000

--_000_MWHPR21MB0141C6AA46DFF0B005972F2287BB0MWHPR21MB0141namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGhlIE5BQ0sgaGFzIHRoZSBzYW1lIHByb2JsZW0gYXMgb3Zlci1hY2tpbmcg4oCTIHlvdSBjYW7i
gJl0IGFjayBmcmFtZXMsIHlvdSBhY2sgcGFja2V0cy4gIFdoaWxlIEkgc2VlIHRoZSBhcmd1bWVu
dCBmb3Igc2F5aW5nIHRoYXQgdW5yZWxpYWJsZSBkZWxpdmVyeSBpcyBhIGNsaWVudCBjaG9pY2Us
IG5vdCBhIHNlbmRlciBvbmUsIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdlIGNvdWxkIHJlYXNv
bmFibGUgZXhwcmVzcyBhdCB0aGUgYXBwbGljYXRpb24gbGF5ZXIgYW5kIHRoZW4gaGF2ZSB0aGUg
c2VuZGVyIGFjdHVhbGx5IHBlcmZvcm0uDQoNClNpbXBsZXN0IG9wdGlvbnMgSSBzZWUgd291bGQg
YmU6DQoNCiAgKiAgIE5vIHJldHJhbnNtaXNzaW9ucyBldmVyIChsb2NhbCBjb25maWd1cmF0aW9u
IHRvIHN0YWNrLCBSU1RfU1RSRUFNIGFmdGVyIHN0cmVhbSBjb21wbGV0aW9uKQ0KICAqICAgTm8g
cmV0cmFuc21pc3Npb25zIGFmdGVyIGEgY2VydGFpbiB0aW1lb3V0IChSU1RfU1RSRUFNIG9uIGEg
dGltZXIsIGlmIHlvdSBhc3N1bWUgdGhlIHN0cmVhbSBkYXRhIGFsbCBiZWNvbWVzIGF2YWlsYWJs
ZSBhdCBvbmNlKQ0KDQpTbGlnaHRseSBtb3JlIGNvbXBsZXggd291bGQgYmUgc29tZXRoaW5nIGxp
a2Ug4oCcb25seSByZXRyYW5zbWl0IGFueSBnaXZlbiBzZWdtZW50IG9uY2XigJ0gb3Ig4oCcZ2l2
ZSB1cCBvbiByZXRyYW5zbWlzc2lvbnMgYWZ0ZXIgYSBzZWdtZW50IGlzIFggbXMgb2xkLuKAnQ0K
DQpGcm9tOiBNYXJ0aW4gVGhvbXNvbiBbbWFpbHRvOm1hcnRpbi50aG9tc29uQGdtYWlsLmNvbV0N
ClNlbnQ6IFN1bmRheSwgSnVseSAyMywgMjAxNyAyOjMxIFBNDQpUbzogU3dpbmRlbGxzLCBUaG9t
YXMgKE5va2lhIC0gR0IpIDx0aG9tYXMuc3dpbmRlbGxzQG5va2lhLmNvbT4NCkNjOiBJYW4gU3dl
dHQgPGlhbnN3ZXR0QGdvb2dsZS5jb20+OyBNaWtlIEJpc2hvcCA8TWljaGFlbC5CaXNob3BAbWlj
cm9zb2Z0LmNvbT47IEx1Y2FzIFBhcmR1ZSA8THVjYXMuUGFyZHVlQGJiYy5jby51az47IElFVEYg
UVVJQyBXRyA8cXVpY0BpZXRmLm9yZz47IFBoaWxpcHAgUy4gVGllc2VsIDxwaGlsc0Bpbi1wYW5p
ay5kZT4NClN1YmplY3Q6IFJFOiBIVFRQIHJlcXVlc3RzIG9uIG9uZSBzdHJlYW0gIzY5Mg0KDQpB
bmQgeW91IGNhbid0IGFja25vd2xlZGdlIHN0cmVhbSBkYXRhIGVpdGhlciwgb25seSBwYWNrZXRz
LiBJZiB5b3Ugd2FudCB0byBrZWVwIHNvbWUgZnJhbWVzIGJ1dCBub3Qgb3RoZXJzLCB3aGljaCBz
ZWVtcyBsaWtlbHksIG92ZXItYWNrbm93bGVkZ2VtZW50IGRvZXNuJ3Qgd29yay4NCg0KT24gMjQg
SnVsLiAyMDE3IDA0OjI5LCAiU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lhIC0gR0IvQ2FtYnJpZGdl
LCBVSykiIDx0aG9tYXMuc3dpbmRlbGxzQG5va2lhLmNvbTxtYWlsdG86dGhvbWFzLnN3aW5kZWxs
c0Bub2tpYS5jb20+PiB3cm90ZToNCkkgYWdyZWUgdGhhdCBibGluZGx5IGFja2luZyBwYWNrZXRz
IHdvdWxkIGNhdXNlIGJpZyBwcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IG9wZXJhdGlvbnMuIEJ1
dCBwZXJoYXBzIGlmL3doZW4gd2UgZ2V0IG9udG8gdW5yZWxpYWJsZSBzdHJlYW1zIGEgd2F5IHRv
IGV4cGxpY2l0bHkgbmFjayBwYWNrZXRzIGJ1dCBzdGF0ZSBkb27igJl0IGJvdGhlciByZXRyYW5z
bWl0dGluZyB0aGUgb25lcyBmb3Igc3RyZWFtIHggd291bGQgYmUgYSBwb3RlbnRpYWwgbWVjaGFu
aXNtPw0KDQpUaG9tYXMNCg0KRnJvbTogSWFuIFN3ZXR0IFttYWlsdG86aWFuc3dldHRAZ29vZ2xl
LmNvbTxtYWlsdG86aWFuc3dldHRAZ29vZ2xlLmNvbT5dDQpTZW50OiAyMyBKdWx5IDIwMTcgMTQ6
MDMNClRvOiBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlkZ2UsIFVLKSA8dGhv
bWFzLnN3aW5kZWxsc0Bub2tpYS5jb208bWFpbHRvOnRob21hcy5zd2luZGVsbHNAbm9raWEuY29t
Pj4NCkNjOiBQaGlsaXBwIFMuIFRpZXNlbCA8cGhpbHNAaW4tcGFuaWsuZGU8bWFpbHRvOnBoaWxz
QGluLXBhbmlrLmRlPj47IEx1Y2FzIFBhcmR1ZSA8THVjYXMuUGFyZHVlQGJiYy5jby51azxtYWls
dG86THVjYXMuUGFyZHVlQGJiYy5jby51az4+OyBNaWtlIEJpc2hvcCA8TWljaGFlbC5CaXNob3BA
bWljcm9zb2Z0LmNvbTxtYWlsdG86TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbT4+OyBJRVRG
IFFVSUMgV0cgPHF1aWNAaWV0Zi5vcmc8bWFpbHRvOnF1aWNAaWV0Zi5vcmc+Pg0KU3ViamVjdDog
UmU6IEhUVFAgcmVxdWVzdHMgb24gb25lIHN0cmVhbSAjNjkyDQoNCg0KT24gU3VuLCBKdWwgMjMs
IDIwMTcgYXQgNzo1NyBBTSwgU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lhIC0gR0IvQ2FtYnJpZGdl
LCBVSykgPHRob21hcy5zd2luZGVsbHNAbm9raWEuY29tPG1haWx0bzp0aG9tYXMuc3dpbmRlbGxz
QG5va2lhLmNvbT4+IHdyb3RlOg0KQSBmZXcgY29tbWVudHMgbGlubGluZS4NCg0KVGhvbWFzDQoN
CkZyb206IFFVSUMgW21haWx0bzpxdWljLWJvdW5jZXNAaWV0Zi5vcmc8bWFpbHRvOnF1aWMtYm91
bmNlc0BpZXRmLm9yZz5dIE9uIEJlaGFsZiBPZiBJYW4gU3dldHQNClNlbnQ6IDIzIEp1bHkgMjAx
NyAxMDo1OQ0KVG86IFBoaWxpcHAgUy4gVGllc2VsIDxwaGlsc0Bpbi1wYW5pay5kZTxtYWlsdG86
cGhpbHNAaW4tcGFuaWsuZGU+Pg0KQ2M6IEx1Y2FzIFBhcmR1ZSA8THVjYXMuUGFyZHVlQGJiYy5j
by51azxtYWlsdG86THVjYXMuUGFyZHVlQGJiYy5jby51az4+OyBNaWtlIEJpc2hvcCA8TWljaGFl
bC5CaXNob3BAbWljcm9zb2Z0LmNvbTxtYWlsdG86TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNv
bT4+OyBJRVRGIFFVSUMgV0cgPHF1aWNAaWV0Zi5vcmc8bWFpbHRvOnF1aWNAaWV0Zi5vcmc+Pg0K
U3ViamVjdDogUmU6IEhUVFAgcmVxdWVzdHMgb24gb25lIHN0cmVhbSAjNjkyDQoNCkEgZmV3IGNv
bW1lbnRzIG9uIHVucmVsaWFibGUgc3RyZWFtcyBpbiBRVUlDLCBhbmQgdGhpcyBtYXkgYmUgYSBs
b25nZXIgZGlzY3Vzc2lvbiBhbmQgSSdkIGJlIGN1cmlvdXMgdG8gcmVhZCB0aGUgY29uc2lkZXJh
dGlvbnMgeW91IGhhdmUgaW4gbWluZC4NCg0KUVVJQyBhcyBzcGVjaWZpZWQgdG9kYXkgZGVmaW5p
dGVseSBlbmFibGVzIHVucmVsaWFiaWxpdHkuICBGb3IgZXhhbXBsZSwgSSBjYW4gc2VuZCBzdHJl
YW0gZGF0YSBvbmNlLCBhbmQgaWYgc29tZSBwb3J0aW9uIG9mIGl0IGlzIGxvc3QsIGF0IHRoYXQg
cG9pbnQgSSBjYW4gZGVjaWRlIGlmIEkgd2FudCB0byByZXRyYW5zbWl0IGl0IG9yIGp1c3QgY2Fu
Y2VsIHRoZSBzdHJlYW0uDQpbVGhvbWFzIFN3aW5kZWxsc10gQXMgc3RyZWFtIGZyYW1lcyBjb250
YWluIHRoZSBvZmZzZXQgIGNsaWVudCBwb3RlbnRpYWxseSBhbHNvIGhhcyB0aGUgb3B0aW9uIG9m
IGp1c3QgYWNrbm93bGVkZ2luZyByZWNlcHRpb24gZXZlbiBpdCBkaWRu4oCZdCBhY3R1YWxseSBy
ZWNlaXZlIHRoZW0gLSB0aG91Z2ggb2J2aW91c2x5IHRoaXMgd291bGQgYW5kIGNhdXNlIHByb2Js
ZW1zIGlmIG5vbi1zdHJlYW0gZnJhbWVzIHdlcmUgYWxzbyBiZWluZyBhY2tub3dsZWRnZWQgd2hl
biBpbiBmYWN0IHRoZSBjbGllbnQgaGFkbuKAmXQgYWNrbm93bGVkZ2UgdGhlbS4gLg0KDQpUaGlz
IGlzIHByb2hpYml0ZWQgY3VycmVudGx5LCBhbmQgZm9yIGdvb2QgcmVhc29uLCBzaW5jZSBhY2tp
bmcgcGFja2V0cyB5b3UgaGF2ZW4ndCByZWNlaXZlZCBicmVha3MgY29uZ2VzdGlvbiBjb250cm9s
IGFuZCBwb3RlbnRpYWxseSBmbG93IGNvbnRyb2wuICBBbHNvLCB5b3UnZCBiZSBhc3N1bWluZyB3
aGF0IHdhcyBpbiB0aGUgcGFja2V0cyB3YXMgd2hhdCB5b3UgZXhwZWN0ZWQsIGFuZCAgaWYgeW91
IHdlcmUgd3JvbmcsIGl0IGNvdWxkIGdvIHJlYWxseSBwb29ybHkuICBpZTogaW1hZ2luZSBpZiB5
b3UgYWNrZWQgYSBwYWNrZXQgY29udGFpbmluZyBRUEFDSyBjb21wcmVzc2lvbiBjb250ZXh0LCBi
dXQgZGlkbid0IHJlY2VpdmUgaXQuICBUaGUgY29ubmVjdGlvbiB3b3VsZCB0aGVuIGJlIGluIGEg
Y29tcGxldGVseSBpbnZhbGlkIHN0YXRlLg0KDQpJIGdlbmVyYWxseSBjb25zaWRlciB1bnJlbGlh
YmlsaXR5IHRvIGJlIGEgbWF0dGVyIG9mIHNlbmRlciBzaWRlIHBvbGljeS4NCltUaG9tYXMgU3dp
bmRlbGxzXSBJIGRvbuKAmXQgdGhpbmsgSSBhZ3JlZSB3aXRoIHRoYXQuIE9mdGVuIGl0IGlzIHRo
ZSBjbGllbnQgd2hpY2ggaGFzIHRoZSBrbm93bGVkZ2UgYWJvdXQgd2hldGhlciBkYXRhIGlzIG9y
IGlzIG5vdCBpbXBvcnRhbnQuIExpdmUgdmlkZW8gc3RyZWFtaW5nIGlzIHRoZSBiZXN0IGV4YW1w
bGUgZm9yIHRoaXMsIGlmIHRoZSBjbGllbnQgaGFzIGVub3VnaCBidWZmZXIgYW5kIGlzIHBsYXlp
bmcgdGhlIG91dHB1dCBvdXQgbGl2ZSB0aGVuIGl0IHdvdWxkIHByZWZlciB0byBnZXQgdGhlIGRh
dGEgcmUtdHJhbnNtaXR0ZWQsIGhvd2V2ZXIgZGF0YSBvdmVyIGEgY2VydGFpbiBhZ2UgaXNu4oCZ
dCB1c2VmdWwgYW5kIGl0IG1heSBwcmVmZXIgdG8gbG9zZSBzb21lIGZyYW1lcyBhbmQganVtcCBi
YWNrIHVwIHRvIGxpdmUuIEhvd2V2ZXIgaWYgdGhlIGNsaWVudCBpcyBhY3R1YWxseSByZWNvcmRp
bmcgdGhlIG91dHB1dCAob3IgaGFzIGEgbG9uZ2VyIGJ1ZmZlcikgaXQgbWF5IHByZWZlciB0byBz
dGFsbCBhbmQgZ2V0IGFsbCB0aGUgZGF0YS4NCg0KDQpUaGlzIGlzIGRlZmluaXRlbHkgYW4gaW50
ZXJlc3RpbmcgdXNlIGNhc2UgYW5kIG9uZSBJIHRoaW5rIHNob3VsZCBiZSBpbiBzY29wZSBmb3Ig
SFRUUCBvdmVyIFFVSUMuICBIb3dldmVyLCBhdCB0aGUgZW5kIG9mIHRoZSBkYXkgdGhlIHNlcnZl
ciBuZWVkcyB0byBzZW5kIHdoYXQgdGhlIGNsaWVudCB3YW50cywgc28gaXQncyBiZXR0ZXIgdG8g
aW5mb3JtIHRoZSBzZXJ2ZXIgd2hhdCB0byBzZW5kIHRoYW4gdHJpY2sgaXQuICBHaXZlbiB3ZSdy
ZSBkaXNjdXNzaW5nIEhUVFAsIGlkZWFsbHkgdGhlIEhUVFAvMiBwcmlvcml0aWVzICsgY2FuY2Vs
bGF0aW9uIHdvdWxkIHByb3ZpZGUgd2hhdCB5b3UgbmVlZCwgYnV0IEknbGwgYWRtaXQgYXQgdGhl
IG1vbWVudCBpdCdzIG5vdCBhIG5hdHVyYWwgbWFwcGluZy4NCg0KTWFraW5nIHRoaXMgd29yayB3
ZWxsIG1heSByZXF1aXJlIGEgbW9yZSByb2J1c3QgaW50ZXJmYWNlIGJldHdlZW4gdGhlIGFwcGxp
Y2F0aW9uIGFuZCBRVUlDIHN0cmVhbSwgb3IgbWF5IGp1c3QgcmVxdWlyZSBzb21lIG5ldyBmZWF0
dXJlcywgd2UnbGwgc2VlLiAgSSBjYW4ndCB0aGluayBvZiBhbnl0aGluZyBhYm91dCBtb3Zpbmcg
ZnJvbSAyIHRvIDEgc3RyZWFtcyBjaGFuZ2VzIHRoaXMsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIG5l
dyBoZWFkZXIgY29tcHJlc3Npb24gc2NoZW1lcyB3aWxsIGFsbG93IGNhbmNlbGxhdGlvbiBvZiB0
aGUgaGVhZGVycyBhcyB3ZWxsIGFzIHRoZSBwYXlsb2FkLCB1bmxpa2UgYmVmb3JlLg0KDQoNCg0K
DQpPbiBTdW4sIEp1bCAyMywgMjAxNyBhdCA0OjU2IEFNLCBQaGlsaXBwIFMuIFRpZXNlbCA8cGhp
bHNAaW4tcGFuaWsuZGU8bWFpbHRvOnBoaWxzQGluLXBhbmlrLmRlPj4gd3JvdGU6DQpIaSwNCg0K
dG9vIGJhZCB0aGF0IEkgbWlzc2VkIHRoYXQgZGlzY3Vzc2lvbi4NCg0KU2VwYXJhdGluZyBEQVRB
IGFuZCBSZXF1ZXN0L1Jlc3BvbnNlIHRvIGRpZmZlcmVudCBzdHJlYW1zIHdvdWxkIGJlIGJlbmVm
aWNpYWwgaWYgd2UgYWRkIHVucmVsaWFibGUgc3RyZWFtcy4gSSB3aWxsIHRyeSB0byB3cml0ZSB1
cCBzb21ldGhpbmcgKGF0IGxlYXN0IGNvbnNpZGVyYXRpb25zKSBiZWZvcmUgdGhlIGludGVyaW0u
DQoNCg0KT24gMjIuIEp1bCAyMDE3LCBhdCAwMzowNCwgTWlrZSBCaXNob3AgPE1pY2hhZWwuQmlz
aG9wQG1pY3Jvc29mdC5jb208bWFpbHRvOk1pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5jb20+PiB3
cm90ZToNCg0KTm8sIHRoZSBjb25zZW5zdXMgYm90aCBpbiBQYXJpcyBhbmQgUHJhZ3VlIHdhcyBh
IHNpbmdsZSBzdHJlYW0sIHdoaWNoIG1lYW5zIHRoZSBEQVRBIGZyYW1lIGlzIGJhY2sgdG8gc3Rh
eS4gIFRoZSBIUEFDSy13aXRob3V0LWR5bmFtaWMtdGFibGUgcGllY2UgaXMgdGVtcG9yYXJ5LCB1
bnRpbCB3ZSBwaWNrIGEgZGlyZWN0aW9uIGZvciBoZWFkZXIgY29tcHJlc3Npb24uDQoNClNlbnQg
ZnJvbSBteSBXaW5kb3dzIDEwIHBob25lDQoNCkZyb206IEx1Y2FzIFBhcmR1ZTxtYWlsdG86THVj
YXMuUGFyZHVlQGJiYy5jby51az4NClNlbnQ6IEZyaWRheSwgSnVseSAyMSwgMjAxNyA4OjIwIEFN
DQpUbzogSUVURiBRVUlDIFdHPG1haWx0bzpxdWljQGlldGYub3JnPg0KU3ViamVjdDogSFRUUCBy
ZXF1ZXN0cyBvbiBvbmUgc3RyZWFtICM2OTINCg0KSGksDQoNCkFwb2xvZ2llcyBpZiB0aGlzIHdh
cyBkaXNjdXNzZWQgYWxyZWFkeSBpbiBQcmFndWUgYnV0IEnigJlkIGxpa2Ugc29tZSBjbGFyaWZp
Y2F0aW9uIG9uIHRoZSBpbnRlbmRlZCBsaWZldGltZSBzY29wZSBvZiB0aGUgY2hhbmdlcyBpbiBQ
UiM2OTI8aHR0cHM6Ly9uYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9
aHR0cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGcXVpY3dnJTJGYmFzZS1kcmFmdHMlMkZwdWxsJTJG
NjkyJTJGZmlsZXMmZGF0YT0wMiU3QzAxJTdDbWljaGFlbC5iaXNob3AlNDBtaWNyb3NvZnQuY29t
JTdDMWE2Njg3M2VjOTgzNDk3YmY3ZGUwOGQ0ZDA0YzAzMjYlN0M3MmY5ODhiZjg2ZjE0MWFmOTFh
YjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM2MzYyNDcyMjgzNDE1MzQ3JnNkYXRhPWRaTVhwaUNZ
bzViN3RWdUtyYkpDc25hUFA0Mm1xUlZpJTJCM3g0Z2FyV3J2SSUzRCZyZXNlcnZlZD0wPi4NCg0K
DQogIDEuICBJcyB0aGUgaW50ZW50aW9uIHRoYXQgdGhpcyBjaGFuZ2UgdW5ibG9ja3Mgc3BlY2lm
aWNhdGlvbiAvIGRldmVsb3BtZW50IHNvIHRoYXQgdGhlIFdHIGNhbiBjb250aW51ZT8NCiAgMi4g
IFdpbGwgdGhlc2UgY2hhbmdlcyBiZSB1bndvdW5kIG9uY2UgcHJvZ3Jlc3MgaGFzIGJlZW4gbWFk
ZT8NCg0KICAgICAqICAgVGhlIERBVEEgZnJhbWUgaGFzIGJlZW4gcmVzdXJyZWN0ZWQgKEkgcHJl
c3VtZSB0byBkZW1hcmsgZnJhbWVzIGluIHRoZSBzYW1lIHN0cmVhbSkuIFdpbGwgaXQgYmUgc3Ry
dWNrIHdpdGggYSB3b29kZW4gc3Rha2UgaW4gdGhlIGZ1dHVyZSwgb3IgY29udGludWUgdG8gaGFu
ZyBhcm91bmQ/DQoNClRoYW5rcw0KTHVjYXMNCg0KQVZFIQ0KICBQaGlsaXBwIFMuIFRpZXNlbCAv
IHBoaWxz4oCmDQotLQ0KICAge3BoaWxzfS0tLT4tLS0ocGhpbHNAaW4tcGFuaWsuZGU8bWFpbHRv
OnBoaWxzQGluLXBhbmlrLmRlPiktLS0+LS0tKGh0dHA6Ly9waGlscy5pbi1wYW5pay5kZTxodHRw
czovL25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJG
JTJGcGhpbHMuaW4tcGFuaWsuZGUmZGF0YT0wMiU3QzAxJTdDTWljaGFlbC5CaXNob3AlNDBtaWNy
b3NvZnQuY29tJTdDNzgzYWQ4OWFlY2UyNGFkMWNlYTYwOGQ0ZDIxMjBjZjUlN0M3MmY5ODhiZjg2
ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM2MzY0NDIyNDI3MDcwMjYzJnNkYXRh
PXV2RThBN3NTTEliMmJZViUyRlBGSmRPakZFZXN1eWNpY0hkZiUyQmtqcW11cyUyRk0lM0QmcmVz
ZXJ2ZWQ9MD4pLS0tLSwNCiAgICAgIHdlbm4gdyBlaW5lICAgYXViZSBpc3QgZG4gICAgICBtYW4g
YXUgZHJhbiBkcmUgZW4gICAgICAgICAgICAgICAgICAgfA0KICAgICAgICAgICBvICAgICBTY2hy
ICAgICAgICBhbiBtdXNzICAgICBoYyAgICAgICAgIGggICAoS3VydCBTY2h3aXR0ZXJzKSB8DQo6
d3EhICA8LS0tLShwaG9uZTogKzQ5LTE3OS02NzM3NDM5PHRlbDorNDklMjAxNzklMjA2NzM3NDM5
PiktLS08LS0tKGphYmJlcjogcGhpbHNAaW4tcGFuaWsuZGU8bWFpbHRvOnBoaWxzQGluLXBhbmlr
LmRlPiktLS0tJw0KDQoNCg0K

--_000_MWHPR21MB0141C6AA46DFF0B005972F2287BB0MWHPR21MB0141namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMg
MiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1
IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWws
IGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNvTGlz
dFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3JhcGgNCgl7
bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGluOw0KCW1hcmdpbi1yaWdodDow
aW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6LjVpbjsNCgltYXJnaW4tYm90
dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs
c2Fucy1zZXJpZjt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWww
DQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsN
CgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdp
bi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmO30NCnNwYW4ubTc0MDg3MjkzNjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYw
OTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxl
LW5hbWU6bV83NDA4NzI5MzYzMTU1NDIxMzUzbS0yNDc5MTQ5MzM3MDM1NDg2MDkzbS0yODQ5ODE5
OTgyOTcxMDI4MjA1YXBwbGUtY29udmVydGVkLXNwYWNlO30NCnNwYW4ubTc0MDg3MjkzNjMxNTU0
MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNob2VuemINCgl7bXNvLXN0eWxlLW5hbWU6bV83NDA4
NzI5MzYzMTU1NDIxMzUzbS0yNDc5MTQ5MzM3MDM1NDg2MDkzaG9lbnpiO30NCnNwYW4uRW1haWxT
dHlsZTIwDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJD
YWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQN
Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNh
bnMtc2VyaWY7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1h
cmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6
V29yZFNlY3Rpb24xO30NCi8qIExpc3QgRGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJe21zby1s
aXN0LWlkOjc3OTk1MzkwMTsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlzdC10ZW1w
bGF0ZS1pZHM6NTY2Nzc0MTIwIDY3Njk4Njg5IDY3Njk4NjkxIDY3Njk4NjkzIDY3Njk4Njg5IDY3
Njk4NjkxIDY3Njk4NjkzIDY3Njk4Njg5IDY3Njk4NjkxIDY3Njk4NjkzO30NCkBsaXN0IGwwOmxl
dmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6
74K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp
b246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBs
aXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVy
LXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3Vy
aWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1
bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJ
bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglm
b250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1i
ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1z
dG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50
Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZl
bC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0
LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDps
ZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0
Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9
DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1z
by1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5
OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs
bGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNv
LWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250
LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVt
YmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWIt
c3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu
dDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxDQoJe21zby1saXN0
LWlkOjExMDg2MjUyOTY7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjEzMjE0Nzk4ODQ7fQ0KQGxp
c3QgbDE6bGV2ZWwxDQoJe21zby1sZXZlbC1zdGFydC1hdDoyOw0KCW1zby1sZXZlbC10YWItc3Rv
cDouNWluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot
LjI1aW47fQ0KQGxpc3QgbDE6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmFscGhh
LWxvd2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDoxLjBpbjsNCgltc28tbGV2ZWwtbnVtYmVyLXBv
c2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluO30NCkBsaXN0IGwyDQoJe21zby1saXN0
LWlkOjE2NjIwMDc5NzQ7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjEzNTg4Njg2MDY7fQ0Kb2wN
Cgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KLS0+PC9z
dHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVk
aXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJl
ZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9o
ZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRp
diBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBOQUNLIGhh
cyB0aGUgc2FtZSBwcm9ibGVtIGFzIG92ZXItYWNraW5nIOKAkyB5b3UgY2Fu4oCZdCBhY2sgZnJh
bWVzLCB5b3UgYWNrIHBhY2tldHMuJm5ic3A7IFdoaWxlIEkgc2VlIHRoZSBhcmd1bWVudCBmb3Ig
c2F5aW5nIHRoYXQgdW5yZWxpYWJsZSBkZWxpdmVyeSBpcyBhIGNsaWVudCBjaG9pY2UsIG5vdCBh
IHNlbmRlciBvbmUsIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdlIGNvdWxkIHJlYXNvbmFibGUg
ZXhwcmVzcw0KIGF0IHRoZSBhcHBsaWNhdGlvbiBsYXllciBhbmQgdGhlbiBoYXZlIHRoZSBzZW5k
ZXIgYWN0dWFsbHkgcGVyZm9ybS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+U2ltcGxlc3Qgb3B0
aW9ucyBJIHNlZSB3b3VsZCBiZTo8bzpwPjwvbzpwPjwvcD4NCjx1bCBzdHlsZT0ibWFyZ2luLXRv
cDowaW4iIHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0i
bWFyZ2luLWxlZnQ6MGluO21zby1saXN0OmwwIGxldmVsMSBsZm8zIj5ObyByZXRyYW5zbWlzc2lv
bnMgZXZlciAobG9jYWwgY29uZmlndXJhdGlvbiB0byBzdGFjaywgUlNUX1NUUkVBTSBhZnRlciBz
dHJlYW0gY29tcGxldGlvbik8bzpwPjwvbzpwPjwvbGk+PGxpIGNsYXNzPSJNc29MaXN0UGFyYWdy
YXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MGluO21zby1saXN0OmwwIGxldmVsMSBsZm8zIj5ObyBy
ZXRyYW5zbWlzc2lvbnMgYWZ0ZXIgYSBjZXJ0YWluIHRpbWVvdXQgKFJTVF9TVFJFQU0gb24gYSB0
aW1lciwgaWYgeW91IGFzc3VtZSB0aGUgc3RyZWFtIGRhdGEgYWxsIGJlY29tZXMgYXZhaWxhYmxl
IGF0IG9uY2UpPG86cD48L286cD48L2xpPjwvdWw+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlNsaWdodGx5IG1vcmUgY29t
cGxleCB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZSDigJxvbmx5IHJldHJhbnNtaXQgYW55IGdpdmVu
IHNlZ21lbnQgb25jZeKAnSBvciDigJxnaXZlIHVwIG9uIHJldHJhbnNtaXNzaW9ucyBhZnRlciBh
IHNlZ21lbnQgaXMgWCBtcyBvbGQu4oCdPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPkZyb206
PC9iPiBNYXJ0aW4gVGhvbXNvbiBbbWFpbHRvOm1hcnRpbi50aG9tc29uQGdtYWlsLmNvbV0NCjxi
cj4NCjxiPlNlbnQ6PC9iPiBTdW5kYXksIEp1bHkgMjMsIDIwMTcgMjozMSBQTTxicj4NCjxiPlRv
OjwvYj4gU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lhIC0gR0IpICZsdDt0aG9tYXMuc3dpbmRlbGxz
QG5va2lhLmNvbSZndDs8YnI+DQo8Yj5DYzo8L2I+IElhbiBTd2V0dCAmbHQ7aWFuc3dldHRAZ29v
Z2xlLmNvbSZndDs7IE1pa2UgQmlzaG9wICZsdDtNaWNoYWVsLkJpc2hvcEBtaWNyb3NvZnQuY29t
Jmd0OzsgTHVjYXMgUGFyZHVlICZsdDtMdWNhcy5QYXJkdWVAYmJjLmNvLnVrJmd0OzsgSUVURiBR
VUlDIFdHICZsdDtxdWljQGlldGYub3JnJmd0OzsgUGhpbGlwcCBTLiBUaWVzZWwgJmx0O3BoaWxz
QGluLXBhbmlrLmRlJmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBSRTogSFRUUCByZXF1ZXN0cyBv
biBvbmUgc3RyZWFtICM2OTI8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFuZCB5b3Ug
Y2FuJ3QgYWNrbm93bGVkZ2Ugc3RyZWFtIGRhdGEgZWl0aGVyLCBvbmx5IHBhY2tldHMuIElmIHlv
dSB3YW50IHRvIGtlZXAgc29tZSBmcmFtZXMgYnV0IG5vdCBvdGhlcnMsIHdoaWNoIHNlZW1zIGxp
a2VseSwgb3Zlci1hY2tub3dsZWRnZW1lbnQgZG9lc24ndCB3b3JrLiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gMjQgSnVsLiAyMDE3IDA0OjI5
LCAmcXVvdDtTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlkZ2UsIFVLKSZxdW90
OyAmbHQ7PGEgaHJlZj0ibWFpbHRvOnRob21hcy5zd2luZGVsbHNAbm9raWEuY29tIj50aG9tYXMu
c3dpbmRlbGxzQG5va2lhLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPGJsb2Nr
cXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7
cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6
MGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1HQiI+SSBhZ3JlZSB0aGF0IGJsaW5kbHkgYWNraW5nIHBhY2tldHMgd291bGQgY2F1c2UgYmln
IHByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgb3BlcmF0aW9ucy4gQnV0IHBlcmhhcHMgaWYvd2hl
biB3ZSBnZXQgb250byB1bnJlbGlhYmxlIHN0cmVhbXMgYSB3YXkgdG8gZXhwbGljaXRseQ0KIG5h
Y2sgcGFja2V0cyBidXQgc3RhdGUgZG9u4oCZdCBib3RoZXIgcmV0cmFuc21pdHRpbmcgdGhlIG9u
ZXMgZm9yIHN0cmVhbSB4IHdvdWxkIGJlIGEgcG90ZW50aWFsIG1lY2hhbmlzbT88bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4m
bmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFu
IGxhbmc9IkVOLUdCIj5UaG9tYXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3Bh
ZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+RnJvbTo8L2I+IElhbiBTd2V0dCBbbWFpbHRv
OjxhIGhyZWY9Im1haWx0bzppYW5zd2V0dEBnb29nbGUuY29tIiB0YXJnZXQ9Il9ibGFuayI+aWFu
c3dldHRAZ29vZ2xlLmNvbTwvYT5dDQo8YnI+DQo8Yj5TZW50OjwvYj4gMjMgSnVseSAyMDE3IDE0
OjAzPGJyPg0KPGI+VG86PC9iPiBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlk
Z2UsIFVLKSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnRob21hcy5zd2luZGVsbHNAbm9raWEuY29tIiB0
YXJnZXQ9Il9ibGFuayI+dGhvbWFzLnN3aW5kZWxsc0Bub2tpYS5jb208L2E+Jmd0Ozxicj4NCjxi
PkNjOjwvYj4gUGhpbGlwcCBTLiBUaWVzZWwgJmx0OzxhIGhyZWY9Im1haWx0bzpwaGlsc0Bpbi1w
YW5pay5kZSIgdGFyZ2V0PSJfYmxhbmsiPnBoaWxzQGluLXBhbmlrLmRlPC9hPiZndDs7IEx1Y2Fz
IFBhcmR1ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOkx1Y2FzLlBhcmR1ZUBiYmMuY28udWsiIHRhcmdl
dD0iX2JsYW5rIj5MdWNhcy5QYXJkdWVAYmJjLmNvLnVrPC9hPiZndDs7IE1pa2UgQmlzaG9wICZs
dDs8YSBocmVmPSJtYWlsdG86TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbSIgdGFyZ2V0PSJf
YmxhbmsiPk1pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5jb208L2E+Jmd0OzsNCiBJRVRGIFFVSUMg
V0cgJmx0OzxhIGhyZWY9Im1haWx0bzpxdWljQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+cXVp
Y0BpZXRmLm9yZzwvYT4mZ3Q7PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBIVFRQIHJlcXVlc3Rz
IG9uIG9uZSBzdHJlYW0gIzY5MjxzcGFuIGxhbmc9IkVOLUdCIj48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+
T24gU3VuLCBKdWwgMjMsIDIwMTcgYXQgNzo1NyBBTSwgU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lh
IC0gR0IvQ2FtYnJpZGdlLCBVSykgJmx0OzxhIGhyZWY9Im1haWx0bzp0aG9tYXMuc3dpbmRlbGxz
QG5va2lhLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnRob21hcy5zd2luZGVsbHNAbm9raWEuY29tPC9h
PiZndDsNCiB3cm90ZTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0i
Ym9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAw
aW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJp
Z2h0OjBpbjttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+QSBmZXcgY29tbWVudHMgbGlubGluZS48bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVO
LUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIGxhbmc9IkVOLUdCIj5UaG9tYXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEu
NXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRl
cjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAw
aW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+RnJvbTo8L2I+IFFVSUMgW21haWx0
bzo8c3BhbiBsYW5nPSJFTi1HQiI+PGEgaHJlZj0ibWFpbHRvOnF1aWMtYm91bmNlc0BpZXRmLm9y
ZyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGxhbmc9IkVOLVVTIj5xdWljLWJvdW5jZXNAaWV0Zi5v
cmc8L3NwYW4+PC9hPjwvc3Bhbj5dDQo8Yj5PbiBCZWhhbGYgT2YgPC9iPklhbiBTd2V0dDxicj4N
CjxiPlNlbnQ6PC9iPiAyMyBKdWx5IDIwMTcgMTA6NTk8YnI+DQo8Yj5Ubzo8L2I+IFBoaWxpcHAg
Uy4gVGllc2VsICZsdDs8c3BhbiBsYW5nPSJFTi1HQiI+PGEgaHJlZj0ibWFpbHRvOnBoaWxzQGlu
LXBhbmlrLmRlIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gbGFuZz0iRU4tVVMiPnBoaWxzQGluLXBh
bmlrLmRlPC9zcGFuPjwvYT48L3NwYW4+Jmd0Ozxicj4NCjxiPkNjOjwvYj4gTHVjYXMgUGFyZHVl
ICZsdDs8c3BhbiBsYW5nPSJFTi1HQiI+PGEgaHJlZj0ibWFpbHRvOkx1Y2FzLlBhcmR1ZUBiYmMu
Y28udWsiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBsYW5nPSJFTi1VUyI+THVjYXMuUGFyZHVlQGJi
Yy5jby51azwvc3Bhbj48L2E+PC9zcGFuPiZndDs7IE1pa2UgQmlzaG9wICZsdDs8c3BhbiBsYW5n
PSJFTi1HQiI+PGEgaHJlZj0ibWFpbHRvOk1pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5jb20iIHRh
cmdldD0iX2JsYW5rIj48c3BhbiBsYW5nPSJFTi1VUyI+TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0
LmNvbTwvc3Bhbj48L2E+PC9zcGFuPiZndDs7DQogSUVURiBRVUlDIFdHICZsdDs8c3BhbiBsYW5n
PSJFTi1HQiI+PGEgaHJlZj0ibWFpbHRvOnF1aWNAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj48
c3BhbiBsYW5nPSJFTi1VUyI+cXVpY0BpZXRmLm9yZzwvc3Bhbj48L2E+PC9zcGFuPiZndDs8YnI+
DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IEhUVFAgcmVxdWVzdHMgb24gb25lIHN0cmVhbSAjNjkyPHNw
YW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
bGFuZz0iRU4tR0IiPkEgZmV3IGNvbW1lbnRzIG9uIHVucmVsaWFibGUgc3RyZWFtcyBpbiBRVUlD
LCBhbmQgdGhpcyBtYXkgYmUgYSBsb25nZXIgZGlzY3Vzc2lvbiBhbmQgSSdkIGJlIGN1cmlvdXMg
dG8gcmVhZCB0aGUgY29uc2lkZXJhdGlvbnMgeW91IGhhdmUgaW4gbWluZC48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxh
bmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5RVUlDIGFzIHNwZWNpZmll
ZCB0b2RheSBkZWZpbml0ZWx5IGVuYWJsZXMgdW5yZWxpYWJpbGl0eS4mbmJzcDsgRm9yIGV4YW1w
bGUsIEkgY2FuIHNlbmQgc3RyZWFtIGRhdGEgb25jZSwgYW5kIGlmIHNvbWUgcG9ydGlvbiBvZiBp
dCBpcyBsb3N0LCBhdCB0aGF0IHBvaW50IEkgY2FuIGRlY2lkZQ0KIGlmIEkgd2FudCB0byByZXRy
YW5zbWl0IGl0IG9yIGp1c3QgY2FuY2VsIHRoZSBzdHJlYW0uJm5ic3A7IDxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PGk+PHNwYW4gbGFuZz0iRU4tR0Ii
PltUaG9tYXMgU3dpbmRlbGxzXSBBcyBzdHJlYW0gZnJhbWVzIGNvbnRhaW4gdGhlIG9mZnNldCAm
bmJzcDtjbGllbnQgcG90ZW50aWFsbHkgYWxzbyBoYXMgdGhlIG9wdGlvbiBvZiBqdXN0IGFja25v
d2xlZGdpbmcgcmVjZXB0aW9uIGV2ZW4gaXQgZGlkbuKAmXQgYWN0dWFsbHkgcmVjZWl2ZQ0KIHRo
ZW0gLSB0aG91Z2ggb2J2aW91c2x5IHRoaXMgd291bGQgYW5kIGNhdXNlIHByb2JsZW1zIGlmIG5v
bi1zdHJlYW0gZnJhbWVzIHdlcmUgYWxzbyBiZWluZyBhY2tub3dsZWRnZWQgd2hlbiBpbiBmYWN0
IHRoZSBjbGllbnQgaGFkbuKAmXQgYWNrbm93bGVkZ2UgdGhlbS4gLjwvc3Bhbj48L2k+PC9iPjxz
cGFuIGxhbmc9IkVOLUdCIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t
R0IiPlRoaXMgaXMgcHJvaGliaXRlZCBjdXJyZW50bHksIGFuZCBmb3IgZ29vZCByZWFzb24sIHNp
bmNlIGFja2luZyBwYWNrZXRzIHlvdSBoYXZlbid0IHJlY2VpdmVkIGJyZWFrcyBjb25nZXN0aW9u
IGNvbnRyb2wgYW5kIHBvdGVudGlhbGx5IGZsb3cgY29udHJvbC4mbmJzcDsgQWxzbywgeW91J2QN
CiBiZSBhc3N1bWluZyB3aGF0IHdhcyBpbiB0aGUgcGFja2V0cyB3YXMgd2hhdCB5b3UgZXhwZWN0
ZWQsIGFuZCZuYnNwOyBpZiB5b3Ugd2VyZSB3cm9uZywgaXQgY291bGQgZ28gcmVhbGx5IHBvb3Js
eS4mbmJzcDsgaWU6IGltYWdpbmUgaWYgeW91IGFja2VkIGEgcGFja2V0IGNvbnRhaW5pbmcgUVBB
Q0sgY29tcHJlc3Npb24gY29udGV4dCwgYnV0IGRpZG4ndCByZWNlaXZlIGl0LiZuYnNwOyBUaGUg
Y29ubmVjdGlvbiB3b3VsZCB0aGVuIGJlIGluIGEgY29tcGxldGVseSBpbnZhbGlkDQogc3RhdGUu
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9k
aXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0ND
Q0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21h
cmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBpbjttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1
ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+SSBnZW5lcmFsbHkgY29uc2lkZXIg
dW5yZWxpYWJpbGl0eSB0byBiZSBhIG1hdHRlciBvZiBzZW5kZXIgc2lkZSBwb2xpY3kuPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48aT48c3BhbiBsYW5n
PSJFTi1HQiI+W1Rob21hcyBTd2luZGVsbHNdIEkgZG9u4oCZdCB0aGluayBJIGFncmVlIHdpdGgg
dGhhdC4gT2Z0ZW4gaXQgaXMgdGhlIGNsaWVudCB3aGljaCBoYXMgdGhlIGtub3dsZWRnZSBhYm91
dCB3aGV0aGVyIGRhdGEgaXMgb3IgaXMgbm90IGltcG9ydGFudC4gTGl2ZSB2aWRlbw0KIHN0cmVh
bWluZyBpcyB0aGUgYmVzdCBleGFtcGxlIGZvciB0aGlzLCBpZiB0aGUgY2xpZW50IGhhcyBlbm91
Z2ggYnVmZmVyIGFuZCBpcyBwbGF5aW5nIHRoZSBvdXRwdXQgb3V0IGxpdmUgdGhlbiBpdCB3b3Vs
ZCBwcmVmZXIgdG8gZ2V0IHRoZSBkYXRhIHJlLXRyYW5zbWl0dGVkLCBob3dldmVyIGRhdGEgb3Zl
ciBhIGNlcnRhaW4gYWdlIGlzbuKAmXQgdXNlZnVsIGFuZCBpdCBtYXkgcHJlZmVyIHRvIGxvc2Ug
c29tZSBmcmFtZXMgYW5kIGp1bXAgYmFjaw0KIHVwIHRvIGxpdmUuIEhvd2V2ZXIgaWYgdGhlIGNs
aWVudCBpcyBhY3R1YWxseSByZWNvcmRpbmcgdGhlIG91dHB1dCAob3IgaGFzIGEgbG9uZ2VyIGJ1
ZmZlcikgaXQgbWF5IHByZWZlciB0byBzdGFsbCBhbmQgZ2V0IGFsbCB0aGUgZGF0YS48L3NwYW4+
PC9pPjwvYj48c3BhbiBsYW5nPSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9
IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIGxhbmc9IkVOLUdCIj5UaGlzIGlzIGRlZmluaXRlbHkgYW4gaW50ZXJlc3RpbmcgdXNlIGNh
c2UgYW5kIG9uZSBJIHRoaW5rIHNob3VsZCBiZSBpbiBzY29wZSBmb3IgSFRUUCBvdmVyIFFVSUMu
Jm5ic3A7IEhvd2V2ZXIsIGF0IHRoZSBlbmQgb2YgdGhlIGRheSB0aGUgc2VydmVyIG5lZWRzIHRv
IHNlbmQgd2hhdA0KIHRoZSBjbGllbnQgd2FudHMsIHNvIGl0J3MgYmV0dGVyIHRvIGluZm9ybSB0
aGUgc2VydmVyIHdoYXQgdG8gc2VuZCB0aGFuIHRyaWNrIGl0LiZuYnNwOyBHaXZlbiB3ZSdyZSBk
aXNjdXNzaW5nIEhUVFAsIGlkZWFsbHkgdGhlIEhUVFAvMiBwcmlvcml0aWVzICYjNDM7IGNhbmNl
bGxhdGlvbiB3b3VsZCBwcm92aWRlIHdoYXQgeW91IG5lZWQsIGJ1dCBJJ2xsIGFkbWl0IGF0IHRo
ZSBtb21lbnQgaXQncyBub3QgYSBuYXR1cmFsIG1hcHBpbmcuPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1H
QiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHls
ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBp
biAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2lu
LXJpZ2h0OjBpbjttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdiBzdHls
ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAw
aW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj5NYWtpbmcgdGhpcyB3b3JrIHdlbGwgbWF5IHJl
cXVpcmUgYSBtb3JlIHJvYnVzdCBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgYXBwbGljYXRpb24gYW5k
IFFVSUMgc3RyZWFtLCBvciBtYXkganVzdCByZXF1aXJlIHNvbWUgbmV3IGZlYXR1cmVzLCB3ZSds
bCBzZWUuJm5ic3A7IEkgY2FuJ3QNCiB0aGluayBvZiBhbnl0aGluZyBhYm91dCBtb3ZpbmcgZnJv
bSAyIHRvIDEgc3RyZWFtcyBjaGFuZ2VzIHRoaXMsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIG5ldyBo
ZWFkZXIgY29tcHJlc3Npb24gc2NoZW1lcyB3aWxsIGFsbG93IGNhbmNlbGxhdGlvbiBvZiB0aGUg
aGVhZGVycyBhcyB3ZWxsIGFzIHRoZSBwYXlsb2FkLCB1bmxpa2UgYmVmb3JlLjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
bGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPk9uIFN1biwg
SnVsIDIzLCAyMDE3IGF0IDQ6NTYgQU0sIFBoaWxpcHAgUy4gVGllc2VsICZsdDs8YSBocmVmPSJt
YWlsdG86cGhpbHNAaW4tcGFuaWsuZGUiIHRhcmdldD0iX2JsYW5rIj5waGlsc0Bpbi1wYW5pay5k
ZTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxl
PSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGlu
IDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4t
cmlnaHQ6MGluO21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPkhpLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIGxhbmc9IkVOLUdCIj50b28gYmFkIHRoYXQgSSBtaXNzZWQgdGhhdCBkaXNjdXNzaW9uLiZu
YnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0Ii
PlNlcGFyYXRpbmcgREFUQSBhbmQgUmVxdWVzdC9SZXNwb25zZSB0byBkaWZmZXJlbnQgc3RyZWFt
cyB3b3VsZCBiZSBiZW5lZmljaWFsIGlmIHdlIGFkZCB1bnJlbGlhYmxlIHN0cmVhbXMuIEkgd2ls
bCB0cnkgdG8gd3JpdGUgdXAgc29tZXRoaW5nIChhdCBsZWFzdCBjb25zaWRlcmF0aW9ucykNCiBi
ZWZvcmUgdGhlIGludGVyaW0uJm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2lu
LWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1HQiI+T24gMjIuIEp1bCAyMDE3LCBhdCAwMzowNCwgTWlrZSBCaXNob3AgJmx0OzxhIGhy
ZWY9Im1haWx0bzpNaWNoYWVsLkJpc2hvcEBtaWNyb3NvZnQuY29tIiB0YXJnZXQ9Il9ibGFuayI+
TWljaGFlbC5CaXNob3BAbWljcm9zb2Z0LmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1H
QiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Tm8sIHRoZSBjb25zZW5zdXMg
Ym90aCBpbiBQYXJpcyBhbmQgUHJhZ3VlIHdhcyBhIHNpbmdsZSBzdHJlYW0sIHdoaWNoIG1lYW5z
IHRoZSBEQVRBIGZyYW1lIGlzIGJhY2sgdG8gc3RheS4mbmJzcDsgVGhlIEhQQUNLLXdpdGhvdXQt
ZHluYW1pYy10YWJsZSBwaWVjZSBpcyB0ZW1wb3JhcnksDQogdW50aWwgd2UgcGljayBhIGRpcmVj
dGlvbiBmb3IgaGVhZGVyIGNvbXByZXNzaW9uLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNw
OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPlNlbnQgZnJvbSBteSBXaW5kb3dzIDEwIHBob25lPG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7
cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48Yj48c3BhbiBsYW5nPSJFTi1HQiI+RnJvbTo8c3BhbiBjbGFzcz0ibTc0MDg3MjkzNjMxNTU0
MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252
ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLUdCIj48
YSBocmVmPSJtYWlsdG86THVjYXMuUGFyZHVlQGJiYy5jby51ayIgdGFyZ2V0PSJfYmxhbmsiPjxz
cGFuIHN0eWxlPSJjb2xvcjojOTU0RjcyIj5MdWNhcw0KIFBhcmR1ZTwvc3Bhbj48L2E+PGJyPg0K
PGI+U2VudDo8c3BhbiBjbGFzcz0ibTc0MDg3MjkzNjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0
ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwv
c3Bhbj48L2I+RnJpZGF5LCBKdWx5IDIxLCAyMDE3IDg6MjAgQU08YnI+DQo8Yj5Ubzo8c3BhbiBj
bGFzcz0ibTc0MDg3MjkzNjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5
ODI5NzEwMjgyMDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+PGEgaHJl
Zj0ibWFpbHRvOnF1aWNAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29s
b3I6Izk1NEY3MiI+SUVURiBRVUlDIFdHPC9zcGFuPjwvYT48YnI+DQo8Yj5TdWJqZWN0OjxzcGFu
IGNsYXNzPSJtNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3OTE0OTMzNzAzNTQ4NjA5M20tMjg0OTgx
OTk4Mjk3MTAyODIwNWFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvYj5IVFRQ
IHJlcXVlc3RzIG9uIG9uZSBzdHJlYW0gIzY5MjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1H
QiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPkhp
LDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPkFw
b2xvZ2llcyBpZiB0aGlzIHdhcyBkaXNjdXNzZWQgYWxyZWFkeSBpbiBQcmFndWUgYnV0IEnigJlk
IGxpa2Ugc29tZSBjbGFyaWZpY2F0aW9uIG9uIHRoZSBpbnRlbmRlZCBsaWZldGltZSBzY29wZSBv
ZiB0aGUgY2hhbmdlcyBpbjxzcGFuIGNsYXNzPSJtNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3OTE0
OTMzNzAzNTQ4NjA5M20tMjg0OTgxOTk4Mjk3MTAyODIwNWFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+
Jm5ic3A7PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5v
dXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRnF1aWN3ZyUyRmJhc2Ut
ZHJhZnRzJTJGcHVsbCUyRjY5MiUyRmZpbGVzJmFtcDtkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJp
c2hvcCU0MG1pY3Jvc29mdC5jb20lN0MxYTY2ODczZWM5ODM0OTdiZjdkZTA4ZDRkMDRjMDMyNiU3
QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjI0NzIyODM0
MTUzNDcmYW1wO3NkYXRhPWRaTVhwaUNZbzViN3RWdUtyYkpDc25hUFA0Mm1xUlZpJTJCM3g0Z2Fy
V3J2SSUzRCZhbXA7cmVzZXJ2ZWQ9MCIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xv
cjojOTU0RjcyIj5QUiM2OTI8L3NwYW4+PC9hPi48c3BhbiBjbGFzcz0ibTc0MDg3MjkzNjMxNTU0
MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVhcHBsZS1jb252
ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxvbCBzdGFydD0iMSIgdHlwZT0iMSI+DQo8
bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdpbi1sZWZ0OjBpbjttc28tbGlzdDpsMiBsZXZlbDEg
bGZvMSI+DQo8c3BhbiBsYW5nPSJFTi1HQiI+SXMgdGhlIGludGVudGlvbiB0aGF0IHRoaXMgY2hh
bmdlIHVuYmxvY2tzIHNwZWNpZmljYXRpb24gLyBkZXZlbG9wbWVudCBzbyB0aGF0IHRoZSBXRyBj
YW4gY29udGludWU/PG86cD48L286cD48L3NwYW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
O21hcmdpbi1sZWZ0OjBpbjttc28tbGlzdDpsMiBsZXZlbDEgbGZvMSI+DQo8c3BhbiBsYW5nPSJF
Ti1HQiI+V2lsbCB0aGVzZSBjaGFuZ2VzIGJlIHVud291bmQgb25jZSBwcm9ncmVzcyBoYXMgYmVl
biBtYWRlPzxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PC9vbD4NCjxvbCBzdGFydD0iMiIgdHlwZT0i
MSI+DQo8b2wgc3RhcnQ9IjEiIHR5cGU9ImEiPg0KPGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttYXJn
aW4tbGVmdDowaW47bXNvLWxpc3Q6bDEgbGV2ZWwyIGxmbzIiPg0KPHNwYW4gbGFuZz0iRU4tR0Ii
PlRoZSBEQVRBIGZyYW1lIGhhcyBiZWVuIHJlc3VycmVjdGVkIChJIHByZXN1bWUgdG8gZGVtYXJr
IGZyYW1lcyBpbiB0aGUgc2FtZSBzdHJlYW0pLiBXaWxsIGl0IGJlIHN0cnVjayB3aXRoIGEgd29v
ZGVuIHN0YWtlIGluIHRoZSBmdXR1cmUsIG9yIGNvbnRpbnVlIHRvIGhhbmcgYXJvdW5kPzxvOnA+
PC9vOnA+PC9zcGFuPjwvbGk+PC9vbD4NCjwvb2w+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+VGhh
bmtzPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+THVjYXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiIHN0eWxlPSJjb2xvcjpibGFjayI+QVZF
ITxicj4NCiZuYnNwOyBQaGlsaXBwIFMuIFRpZXNlbCAvIHBoaWxz4oCmPC9zcGFuPjxzcGFuIGxh
bmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6Izg4ODg4OCI+PGJyPg0KPHNwYW4gY2xhc3M9Im03NDA4
NzI5MzYzMTU1NDIxMzUzbS0yNDc5MTQ5MzM3MDM1NDg2MDkzaG9lbnpiIj4tLSZuYnNwOzwvc3Bh
bj48YnI+DQo8c3BhbiBjbGFzcz0ibTc0MDg3MjkzNjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0
ODYwOTNob2VuemIiPiZuYnNwOyAmbmJzcDt7cGhpbHN9LS0tJmd0Oy0tLSg8L3NwYW4+PC9zcGFu
PjxzcGFuIGxhbmc9IkVOLUdCIj48YSBocmVmPSJtYWlsdG86cGhpbHNAaW4tcGFuaWsuZGUiIHRh
cmdldD0iX2JsYW5rIj5waGlsc0Bpbi1wYW5pay5kZTwvYT48c3BhbiBjbGFzcz0ibTc0MDg3Mjkz
NjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNob2VuemIiPjxzcGFuIHN0eWxlPSJjb2xv
cjojODg4ODg4Ij4pLS0tJmd0Oy0tLSg8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vbmEw
MS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZwaGls
cy5pbi1wYW5pay5kZSZhbXA7ZGF0YT0wMiU3QzAxJTdDTWljaGFlbC5CaXNob3AlNDBtaWNyb3Nv
ZnQuY29tJTdDNzgzYWQ4OWFlY2UyNGFkMWNlYTYwOGQ0ZDIxMjBjZjUlN0M3MmY5ODhiZjg2ZjE0
MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM2MzY0NDIyNDI3MDcwMjYzJmFtcDtzZGF0
YT11dkU4QTdzU0xJYjJiWVYlMkZQRkpkT2pGRWVzdXljaWNIZGYlMkJranFtdXMlMkZNJTNEJmFt
cDtyZXNlcnZlZD0wIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3BoaWxzLmluLXBhbmlrLmRlPC9h
PjxzcGFuIGNsYXNzPSJtNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3OTE0OTMzNzAzNTQ4NjA5M2hv
ZW56YiI+PHNwYW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPiktLS0tLDwvc3Bhbj48L3NwYW4+PHNw
YW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPjxicj4NCjxzcGFuIGNsYXNzPSJtNzQwODcyOTM2MzE1
NTQyMTM1M20tMjQ3OTE0OTMzNzAzNTQ4NjA5M2hvZW56YiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
d2VubiB3IGVpbmUgJm5ic3A7IGF1YmUgaXN0IGRuICZuYnNwOyAmbmJzcDsgJm5ic3A7bWFuIGF1
IGRyYW4gZHJlIGVuICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IHw8L3NwYW4+PGJyPg0KPHNwYW4gY2xhc3M9Im03NDA4NzI5MzYz
MTU1NDIxMzUzbS0yNDc5MTQ5MzM3MDM1NDg2MDkzaG9lbnpiIj4mbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO28gJm5ic3A7ICZuYnNwOyBTY2hyICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwO2FuIG11c3MgJm5ic3A7ICZuYnNwOyBoYyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgaCAmbmJzcDsgKEt1cnQgU2Nod2l0dGVycykgfDwvc3Bhbj48YnI+DQo8c3BhbiBj
bGFzcz0ibTc0MDg3MjkzNjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNob2VuemIiPjp3
cSEgJm5ic3A7Jmx0Oy0tLS0ocGhvbmU6IDwvc3Bhbj4NCjwvc3Bhbj48YSBocmVmPSJ0ZWw6JiM0
Mzs0OSUyMDE3OSUyMDY3Mzc0MzkiIHRhcmdldD0iX2JsYW5rIj4mIzQzOzQ5LTE3OS02NzM3NDM5
PC9hPjxzcGFuIGNsYXNzPSJtNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3OTE0OTMzNzAzNTQ4NjA5
M2hvZW56YiI+PHNwYW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPiktLS0mbHQ7LS0tKGphYmJlcjoN
Cjwvc3Bhbj48L3NwYW4+PGEgaHJlZj0ibWFpbHRvOnBoaWxzQGluLXBhbmlrLmRlIiB0YXJnZXQ9
Il9ibGFuayI+cGhpbHNAaW4tcGFuaWsuZGU8L2E+PHNwYW4gY2xhc3M9Im03NDA4NzI5MzYzMTU1
NDIxMzUzbS0yNDc5MTQ5MzM3MDM1NDg2MDkzaG9lbnpiIj48c3BhbiBzdHlsZT0iY29sb3I6Izg4
ODg4OCI+KS0tLS0nPC9zcGFuPjwvc3Bhbj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdC
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1
b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIj4m
bmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_MWHPR21MB0141C6AA46DFF0B005972F2287BB0MWHPR21MB0141namp_--


From nobody Sun Jul 23 22:20:56 2017
Return-Path: <Michael.Bishop@microsoft.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 012A41296C6 for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 22:20:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.021
X-Spam-Level: 
X-Spam-Status: No, score=-2.021 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 0xohbfpaY62b for <quic@ietfa.amsl.com>; Sun, 23 Jul 2017 22:20:54 -0700 (PDT)
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0104.outbound.protection.outlook.com [104.47.38.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AA5F4128B8F for <quic@ietf.org>; Sun, 23 Jul 2017 22:20:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ABGbIxrgSTOilMzrg9a4XbHrJGpR8QHtvqinm/kF5YM=; b=I+WJ28NJWgRkrjQAQADS7dwNUEon2iH9ayvnZyo/3rbgiN8Kp+IT3p/3Ihhr5lcIbwYXx5a2T1YVqQrVeL6BykveK6fbutUAPJegBLY6ND9lrOWCSBwC9HUUmvCcpBOm96pltOdSQZHvHffE7q9JGdxe6nSH4fh8tLZtQTWUiRI=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0160.namprd21.prod.outlook.com (10.173.52.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.2; Mon, 24 Jul 2017 05:20:51 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1282.008; Mon, 24 Jul 2017 05:20:51 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Patrick McManus <pmcmanus@mozilla.com>, Eric Rescorla <ekr@rtfm.com>
CC: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, Martin Duke <martin.h.duke@gmail.com>
Subject: RE: New Second Implementation Draft
Thread-Topic: New Second Implementation Draft
Thread-Index: AQHTAYMPsVZ1kdsT/kGX6kMckMKBMaJdcN8AgAB7CgCAABgsgIAAFmUAgAABiICABFnMUA==
Date: Mon, 24 Jul 2017 05:20:50 +0000
Message-ID: <MWHPR21MB0141E6CD40B97385610701E887BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012> <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012> <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com> <CABcZeBNc3vWnY7Bn=KeERMHOptX16=aievVmvj61MxqwOOf61w@mail.gmail.com> <CAOdDvNph_dd1MGSAJFoA+T8KTj6=ms2T78PXjqUz_9htymqEtg@mail.gmail.com>
In-Reply-To: <CAOdDvNph_dd1MGSAJFoA+T8KTj6=ms2T78PXjqUz_9htymqEtg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
x-originating-ip: [2601:600:8080:5a28:a558:ef13:687c:db68]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0160; 7:T8KkAiNIyliCtJmHRPhyoQLCRe32NLDqlQ3qjVKbaJ3vfN5PvxmfQ6kV5jBvOG8Anwv0eAVt85iapNsKj5gML9Fo9K//Fh1r/SMMO2xL+5Gg1xpIlcH9AxL65Ja2nluDGjRP9DM0UpWf7frLwXH3UjWX2X7c8/us/YEyS02xpdAd4EVBmBBLoyKhuTNrgyWeQ73bVQeUO7Rg0563qEAomQ7jaDMTmOxJPSnY4NR6mbYyFogPLr8PVF+Bu12fazNt6d3b9sEZb39b+bO7vv5y6RbZY6OaptOTishj62lJy9m6Am0TCNKwn9M0D1qHqcmtLt3HsnAzINwOaoZVntuRwo6UVE0cPO/fG1TG2YcgedD2KGSXHw+h83PGxhVnQuI5EVF+sybV4Lbxqhr3QOrIClatMK7/nAeacticV16FerNtawL2WDFu/T6XsmNfO1eya7NbV3RIsmk+Kl/vGKYkmuheiiYWTkpfxSp4s7HevEp3dnrRw3SG0tXqIJPK1SAD2/tdHKAB9wWAJaztOZn2TmjrIgtf2N/j1guBJC52jzxL/XEzUnYriNlDN0K8jlRiomuDr3LHHPMUoGtwgs04jGj4siWwfQFvUTfw24J4VUgAIhXkyCr2JbkDvRj3kIM7dao7C48XZQ97CuDfhR+bxJ1ogppb//MvyQiglTAHi7CCMEAlTP+MdQ+Plwbq6bNv65NmETV3JEfWMvyEjRcNWyHhyJp6q5jYR0oCuAsGWsvWAut/26VB8LQQVfpkEe5RQqZx+NleQ5PuVshPj8urvPoBMMm7J5BrBKaMFNvpddcKL5pNHwIi8in5TqktHVr5
x-ms-office365-filtering-correlation-id: 292a262a-d5a0-4acd-78bc-08d4d253c001
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0160; 
x-ms-traffictypediagnostic: MWHPR21MB0160:
x-exchange-antispam-report-test: UriScan:(127952516941037)(21748063052155);
x-microsoft-antispam-prvs: <MWHPR21MB01609EF4EF44D44922C625BF87BB0@MWHPR21MB0160.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(61426038)(61427038)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123560025)(20161123555025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0160; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0160; 
x-forefront-prvs: 0378F1E47A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39850400002)(39410400002)(39400400002)(39860400002)(39840400002)(39450400003)(47760400005)(199003)(24454002)(377454003)(189002)(57704003)(229853002)(81166006)(6436002)(4326008)(97736004)(14454004)(8676002)(72206003)(189998001)(3280700002)(3660700001)(7736002)(81156014)(105586002)(6506006)(77096006)(7696004)(5660300001)(106356001)(8936002)(25786009)(3480700004)(2950100002)(74316002)(38730400002)(2906002)(10090500001)(39060400002)(6246003)(2900100001)(478600001)(93886004)(33656002)(6116002)(790700001)(101416001)(561944003)(50986999)(86612001)(6306002)(54896002)(10290500003)(53546010)(8990500004)(5005710100001)(55016002)(54906002)(99286003)(86362001)(9686003)(236005)(19609705001)(102836003)(53936002)(76176999)(54356999)(68736007); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0160; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB0141E6CD40B97385610701E887BB0MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2017 05:20:51.0312 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0160
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/YdVvzrJ72P9UAdsKGnw65LlGJD8>
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: Mon, 24 Jul 2017 05:20:56 -0000

--_000_MWHPR21MB0141E6CD40B97385610701E887BB0MWHPR21MB0141namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SeKAmWQgZm9sbG93IHByZWNlZGVudCDigJMgaHR0cC8xLjEgaXMgYWxyZWFkeSBkZWZpbmVkLCBz
byB3aHkgbm90IGh0dHAvMC45Pw0KDQpJ4oCZZCBhbHNvIGxpa2UgdG8gbWVudGlvbiB0aGF0IG15
IHdpZmUgaXMgcGFydGljdWxhcmx5IGZvbmQgb2YgdGhlIHBhaW50IGNvbG9yIOKAnFJoaW5v4oCd
IGZvciB0aGUgYXNzb2NpYXRlZCBiaWtlc2hlZC4gIPCfmIkNCg0KRnJvbTogUVVJQyBbbWFpbHRv
OnF1aWMtYm91bmNlc0BpZXRmLm9yZ10gT24gQmVoYWxmIE9mIFBhdHJpY2sgTWNNYW51cw0KU2Vu
dDogRnJpZGF5LCBKdWx5IDIxLCAyMDE3IDM6NTMgQU0NClRvOiBFcmljIFJlc2NvcmxhIDxla3JA
cnRmbS5jb20+DQpDYzogTHVjYXMgUGFyZHVlIDxMdWNhcy5QYXJkdWVAYmJjLmNvLnVrPjsgSUVU
RiBRVUlDIFdHIDxxdWljQGlldGYub3JnPjsgTWFydGluIFRob21zb24gPG1hcnRpbi50aG9tc29u
QGdtYWlsLmNvbT47IE1hcnRpbiBEdWtlIDxtYXJ0aW4uaC5kdWtlQGdtYWlsLmNvbT4NClN1Ympl
Y3Q6IFJlOiBOZXcgU2Vjb25kIEltcGxlbWVudGF0aW9uIERyYWZ0DQoNCml0cyBhIGdvb2QgaWRl
YSB0aGF0IG5lZWRzIGEgYmlrZXNoZWQuIGhxLW5vcCB3b3VsZCBiZSBteSBwcmVmZXJlbmNlIChz
dGF5IGluIHRoZSBocSBuYW1lc3BhY2UpLi4NCg0KT24gRnJpLCBKdWwgMjEsIDIwMTcgYXQgMTI6
NDcgUE0sIEVyaWMgUmVzY29ybGEgPGVrckBydGZtLmNvbTxtYWlsdG86ZWtyQHJ0Zm0uY29tPj4g
d3JvdGU6DQpoMDlxLTA1PyA6KQ0KDQpPbiBGcmksIEp1bCAyMSwgMjAxNyBhdCAyOjI3IEFNLCBN
YXJ0aW4gVGhvbXNvbiA8bWFydGluLnRob21zb25AZ21haWwuY29tPG1haWx0bzptYXJ0aW4udGhv
bXNvbkBnbWFpbC5jb20+PiB3cm90ZToNCkRvIHdlIG5lZWQgYSBwZXJtYW5lbnQgQUxQTiB0b2tl
biBmb3IgdGhpcz8gIEl0IHNlZW1zIGxpa2UgYSB1c2VmdWwNCmZhY2lsaXR5IHRvIGJ1aWxkIGlu
dG8gc3RhY2tzIHRoYXQgYXJlIHRyYW5zcG9ydC1vbmx5LiAgTWF5YmUgImgwOXEiLg0KDQpPbiAy
MSBKdWx5IDIwMTcgYXQgMTA6MDAsIEx1Y2FzIFBhcmR1ZSA8THVjYXMuUGFyZHVlQGJiYy5jby51
azxtYWlsdG86THVjYXMuUGFyZHVlQGJiYy5jby51az4+IHdyb3RlOg0KPiBJIGFwcHJlY2lhdGUg
dGhlIGZsZXhpYmlsaXR5IGJ1dCBoYXZlIGRpZmZpY3VsdHkgaW4gc2VlaW5nIGhvdyB0aGlzIHdv
dWxkDQo+IGZsb3cgdGhyb3VnaCB0byBpbnRlcm9wIHRlc3RpbmcsIGhvdyBkbyB3ZSBtZWFzdXJl
IHN1Y2Nlc3M/IE9uZSBwb3NzaWJsZQ0KPiBvdXRjb21lIGlzIGludGVyb3AgbGltaXRlZCB0byBz
ZWxmLXRlc3Qgb2Yg4oCcYmVzcG9rZS1zaW1wbGUtYXBw4oCdIG92ZXIgUVVJQywNCj4gaXMgdGhh
dCBnb29kIGVub3VnaD8gTXkgcHJlZmVyZW5jZSBpcyB0byBwaWNrIGEgbWluaW1hbCBiYXNlbGlu
ZSAo4oCcZWNobyBhbmQNCj4gYW1wbGlmeeKAnSBvciB3aGF0ZXZlciBlbHNlKSBhbmQgdGhlbiBh
ZGRpdGlvbmFscyBhcmUgYSBib251cyB0aGF0IGlzIHVwIHRvDQo+IGV4dGVybmFsIGNvb3JkaW5h
dGlvbi4gSSB0aGluayB0aGlzIGNvbW1vbiBiYXNlbGluZSBjb3VsZCBhbHNvIGhlbHAgdG93YXJk
cw0KPiBvbmdvaW5nIGNvbnNpZGVyYXRpb24gZm9yIHBlcmZvcm1hbmNlIG9yIGJlbmNobWFya2lu
Zywgb3ZlciBkaXNwYXJhdGUNCj4gaW1wbGVtZW50YXRpb25zLCBhcyBhc3BlY3RzIG9mIHRoZSBw
cm90b2NvbCBldm9sdmUgb3IgY2hhbmdlLg0KPg0KPg0KPg0KPiBUaGUgcHJvcG9zYWwgdG8gZG8g
SFRUUCAwLjkgR0VULCBkaXNjdXNzZWQgaW4gUHJhZ3VlLCBhZGRyZXNzZXMgbXkgY29uY2VybnMu
DQo+DQo+DQo+DQo+IEx1Y2FzDQo+DQo+DQoNCg0K

--_000_MWHPR21MB0141E6CD40B97385610701E887BB0MWHPR21MB0141namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1z
b0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJw
bGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25v
cm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21z
by1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5z
LXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxl
LXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0K
QHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAx
LjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24x
O30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRz
IHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtp
ZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1h
cCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRp
Zl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVy
cGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5J
4oCZZCBmb2xsb3cgcHJlY2VkZW50IOKAkyBodHRwLzEuMSBpcyBhbHJlYWR5IGRlZmluZWQsIHNv
IHdoeSBub3QgaHR0cC8wLjk/PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPknigJlkIGFsc28gbGlr
ZSB0byBtZW50aW9uIHRoYXQgbXkgd2lmZSBpcyBwYXJ0aWN1bGFybHkgZm9uZCBvZiB0aGUgcGFp
bnQgY29sb3Ig4oCcUmhpbm/igJ0gZm9yIHRoZSBhc3NvY2lhdGVkIGJpa2VzaGVkLiZuYnNwOw0K
PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1NlZ29lIFVJIEVtb2ppJnF1b3Q7LHNhbnMt
c2VyaWYiPiYjMTI4NTIxOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8
L2I+IFFVSUMgW21haWx0bzpxdWljLWJvdW5jZXNAaWV0Zi5vcmddIDxiPk9uIEJlaGFsZiBPZg0K
PC9iPlBhdHJpY2sgTWNNYW51czxicj4NCjxiPlNlbnQ6PC9iPiBGcmlkYXksIEp1bHkgMjEsIDIw
MTcgMzo1MyBBTTxicj4NCjxiPlRvOjwvYj4gRXJpYyBSZXNjb3JsYSAmbHQ7ZWtyQHJ0Zm0uY29t
Jmd0Ozxicj4NCjxiPkNjOjwvYj4gTHVjYXMgUGFyZHVlICZsdDtMdWNhcy5QYXJkdWVAYmJjLmNv
LnVrJmd0OzsgSUVURiBRVUlDIFdHICZsdDtxdWljQGlldGYub3JnJmd0OzsgTWFydGluIFRob21z
b24gJmx0O21hcnRpbi50aG9tc29uQGdtYWlsLmNvbSZndDs7IE1hcnRpbiBEdWtlICZsdDttYXJ0
aW4uaC5kdWtlQGdtYWlsLmNvbSZndDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IE5ldyBTZWNv
bmQgSW1wbGVtZW50YXRpb24gRHJhZnQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPml0
cyBhIGdvb2QgaWRlYSB0aGF0IG5lZWRzIGEgYmlrZXNoZWQuIGhxLW5vcCB3b3VsZCBiZSBteSBw
cmVmZXJlbmNlIChzdGF5IGluIHRoZSBocSBuYW1lc3BhY2UpLi4NCjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gRnJpLCBKdWwgMjEsIDIwMTcgYXQgMTI6
NDcgUE0sIEVyaWMgUmVzY29ybGEgJmx0OzxhIGhyZWY9Im1haWx0bzpla3JAcnRmbS5jb20iIHRh
cmdldD0iX2JsYW5rIj5la3JAcnRmbS5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4N
CjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0ND
IDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2lu
LXJpZ2h0OjBpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+aDA5cS0wNT8gOik8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
T24gRnJpLCBKdWwgMjEsIDIwMTcgYXQgMjoyNyBBTSwgTWFydGluIFRob21zb24gJmx0OzxhIGhy
ZWY9Im1haWx0bzptYXJ0aW4udGhvbXNvbkBnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5tYXJ0
aW4udGhvbXNvbkBnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxibG9j
a3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0
O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0
OjBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5EbyB3ZSBuZWVkIGEgcGVybWFuZW50IEFMUE4g
dG9rZW4gZm9yIHRoaXM/Jm5ic3A7IEl0IHNlZW1zIGxpa2UgYSB1c2VmdWw8YnI+DQpmYWNpbGl0
eSB0byBidWlsZCBpbnRvIHN0YWNrcyB0aGF0IGFyZSB0cmFuc3BvcnQtb25seS4mbmJzcDsgTWF5
YmUgJnF1b3Q7aDA5cSZxdW90Oy48bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij48YnI+DQpPbiAyMSBK
dWx5IDIwMTcgYXQgMTA6MDAsIEx1Y2FzIFBhcmR1ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOkx1Y2Fz
LlBhcmR1ZUBiYmMuY28udWsiIHRhcmdldD0iX2JsYW5rIj5MdWNhcy5QYXJkdWVAYmJjLmNvLnVr
PC9hPiZndDsgd3JvdGU6PGJyPg0KJmd0OyBJIGFwcHJlY2lhdGUgdGhlIGZsZXhpYmlsaXR5IGJ1
dCBoYXZlIGRpZmZpY3VsdHkgaW4gc2VlaW5nIGhvdyB0aGlzIHdvdWxkPGJyPg0KJmd0OyBmbG93
IHRocm91Z2ggdG8gaW50ZXJvcCB0ZXN0aW5nLCBob3cgZG8gd2UgbWVhc3VyZSBzdWNjZXNzPyBP
bmUgcG9zc2libGU8YnI+DQomZ3Q7IG91dGNvbWUgaXMgaW50ZXJvcCBsaW1pdGVkIHRvIHNlbGYt
dGVzdCBvZiDigJxiZXNwb2tlLXNpbXBsZS1hcHDigJ0gb3ZlciBRVUlDLDxicj4NCiZndDsgaXMg
dGhhdCBnb29kIGVub3VnaD8gTXkgcHJlZmVyZW5jZSBpcyB0byBwaWNrIGEgbWluaW1hbCBiYXNl
bGluZSAo4oCcZWNobyBhbmQ8YnI+DQomZ3Q7IGFtcGxpZnnigJ0gb3Igd2hhdGV2ZXIgZWxzZSkg
YW5kIHRoZW4gYWRkaXRpb25hbHMgYXJlIGEgYm9udXMgdGhhdCBpcyB1cCB0bzxicj4NCiZndDsg
ZXh0ZXJuYWwgY29vcmRpbmF0aW9uLiBJIHRoaW5rIHRoaXMgY29tbW9uIGJhc2VsaW5lIGNvdWxk
IGFsc28gaGVscCB0b3dhcmRzPGJyPg0KJmd0OyBvbmdvaW5nIGNvbnNpZGVyYXRpb24gZm9yIHBl
cmZvcm1hbmNlIG9yIGJlbmNobWFya2luZywgb3ZlciBkaXNwYXJhdGU8YnI+DQomZ3Q7IGltcGxl
bWVudGF0aW9ucywgYXMgYXNwZWN0cyBvZiB0aGUgcHJvdG9jb2wgZXZvbHZlIG9yIGNoYW5nZS48
YnI+DQomZ3Q7PGJyPg0KJmd0Ozxicj4NCiZndDs8YnI+DQomZ3Q7IFRoZSBwcm9wb3NhbCB0byBk
byBIVFRQIDAuOSBHRVQsIGRpc2N1c3NlZCBpbiBQcmFndWUsIGFkZHJlc3NlcyBteSBjb25jZXJu
cy48YnI+DQomZ3Q7PGJyPg0KJmd0Ozxicj4NCiZndDs8YnI+DQomZ3Q7IEx1Y2FzPGJyPg0KJmd0
Ozxicj4NCiZndDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8
L2h0bWw+DQo=

--_000_MWHPR21MB0141E6CD40B97385610701E887BB0MWHPR21MB0141namp_--


From nobody Mon Jul 24 07:02:42 2017
Return-Path: <mirja.kuehlewind@tik.ee.ethz.ch>
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 2653C1317B1 for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 07:02:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
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 KnlEG4cNztQm for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 07:02:40 -0700 (PDT)
Received: from virgo02.ee.ethz.ch (virgo02.ee.ethz.ch [129.132.72.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A67D13167B for <quic@ietf.org>; Mon, 24 Jul 2017 07:02:39 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by virgo02.ee.ethz.ch (Postfix) with ESMTP id 3xGNNt0D1fz15K8l; Mon, 24 Jul 2017 16:02:38 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at virgo02.ee.ethz.ch
Received: from virgo02.ee.ethz.ch ([127.0.0.1]) by localhost (virgo02.ee.ethz.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16osZX24TvA9; Mon, 24 Jul 2017 16:02:36 +0200 (CEST)
X-MtScore: NO score=0
Received: from [192.168.178.33] (pD9E11658.dip0.t-ipconnect.de [217.225.22.88]) by virgo02.ee.ethz.ch (Postfix) with ESMTPSA; Mon, 24 Jul 2017 16:02:36 +0200 (CEST)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: DRAFT minutes rom IETF99 (Prague)
From: =?utf-8?Q?Mirja_K=C3=BChlewind?= <mirja.kuehlewind@tik.ee.ethz.ch>
In-Reply-To: <067CF332-5289-40CD-9901-698446A6C212@mnot.net>
Date: Mon, 24 Jul 2017 16:02:35 +0200
Cc: IETF QUIC WG <quic@ietf.org>, Lars Eggert <lars@netapp.com>
Content-Transfer-Encoding: 7bit
Message-Id: <C07D43A6-6D0D-40FF-960B-33833D2C25B0@tik.ee.ethz.ch>
References: <067CF332-5289-40CD-9901-698446A6C212@mnot.net>
To: Mark Nottingham <mnot@mnot.net>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/h0g3bblCFBbh6LViOV1pcQjQn0M>
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: Mon, 24 Jul 2017 14:02:42 -0000

> Am 21.07.2017 um 15:05 schrieb Mark Nottingham <mnot@mnot.net>:
> 
> ... are at:
>  https://github.com/quicwg/wg-materials/blob/master/ietf99/minutes.md
> 
> Corrections welcome as pull requests and in e-mail.
> 
> Cheers,
> 
> 
> --
> Mark Nottingham   https://www.mnot.net/
> 
> 


From nobody Mon Jul 24 09:34:35 2017
Return-Path: <martin.h.duke@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 9206B131E9E for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 09:34:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 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, LOTS_OF_MONEY=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 QiVLgy9YgEsf for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 09:34:31 -0700 (PDT)
Received: from mail-wm0-x22a.google.com (mail-wm0-x22a.google.com [IPv6:2a00:1450:400c:c09::22a]) (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 A5D48131EA0 for <quic@ietf.org>; Mon, 24 Jul 2017 09:34:30 -0700 (PDT)
Received: by mail-wm0-x22a.google.com with SMTP id c184so30452054wmd.0 for <quic@ietf.org>; Mon, 24 Jul 2017 09:34:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:from:date:message-id:subject:to; bh=njCHv3Lcyr2OMloUiankSH3i0+NRHVxejtzEXzvsNdc=; b=fz6iJ2yr1QDtU4bxg5uG+ufLcpGDds7nA1re+BIPqBTECnQlTuJyKUTWfoKsGFq29G 0kypBgQwcHgN3teJkRI3O4iclZvAIAvimmFBz5Ze6k6I0SAxzNUIlSCWa+yptEHCBpF6 YONG8zAf/DfhVDDakp8KaJUxOyNaPTdGKoq1kLjw3uu2xbLYCCK01I9GJf/LlDUo77RN KKuSRgcYDwhX9asqPr0nU42Twyy9ETutJYb3rDVW7UyTOy8bFJSI18dDfL6D1ayQqeSM 4O2jcM5BnL2LPqeD3ELMzTNEnsrr++OsBEu/VcgR8nALvnOlY2n+rDetnHJe5LtwJIQu 1nJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=njCHv3Lcyr2OMloUiankSH3i0+NRHVxejtzEXzvsNdc=; b=eYzket43UpS3FKQ7+2uItvGuDP2g7XE/K+5WzABX+hSierBzX3HzHwS9fUiRRej0lT WBCJ/C1DmqqF/S+y8ds8L+YGDYsapRXa1jsfzGAH9AkgCtoD67v8uqyxp50vDDx43zi7 11F0nUi3vE9cFnBEbDFhd8ZeOHpGacY/LJyb9aKHACNSOj7AmAF6OM75PYOABDdAIeDz EN6DJLZQ9Ll+d3AjhOWOzuosvDfpTSVTgl58GBvXEJH9WD5S8gwd4XO7SEd0na4T3lRE ta9sbQ8yYs7kbSc4B+ZeIP1/H1fFmCBTuJKTKtVAnLJhibBPzU9kYoIblrsSjy3Zr2mU gkRw==
X-Gm-Message-State: AIVw110bDkSlTc1ztnWn8ntYiKCXd8uCyOhu3RPAcI6IB4LH6+3S5c/o VMFIyKJmL4cQ5O/gt6TtXQv6RhgqqEGXGEo=
X-Received: by 10.28.45.10 with SMTP id t10mr5722691wmt.105.1500914068844; Mon, 24 Jul 2017 09:34:28 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.152.119 with HTTP; Mon, 24 Jul 2017 09:34:28 -0700 (PDT)
From: Martin Duke <martin.h.duke@gmail.com>
Date: Mon, 24 Jul 2017 09:34:28 -0700
Message-ID: <CAM4esxTpnc3Tth-0H1tP5RXjpiEQPFAbcWCbCt+DMUgFnB2vFQ@mail.gmail.com>
Subject: Patents on RTT marking?
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114240d6e97898055512c996"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/vAINdNe2LEZiOkmS1MByoFBiNnQ>
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: Mon, 24 Jul 2017 16:34:34 -0000

--001a114240d6e97898055512c996
Content-Type: text/plain; charset="UTF-8"

A colleague sent me this Telecom Italia patent:

https://www.google.com/patents/US9264336

This seems to be at least in the neighborhood of the preferred approach for
RTT measurement by middleboxes (option 3a in Prague). I find reading
patents to be among the least enjoyable and productive things to do, but my
reading is that this doesn't quite describe our approach here. This is
partly because the concept seems to be endpoint measurement rather than
middlebox measurement.

Anyhow, I'm putting this out there for consideration. If people smarter
than me think this covers 3a, perhaps this steers towards something like
Packet Number Echo.

Martin Duke

--001a114240d6e97898055512c996
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">A colleague sent me this Telecom Italia patent:<div><br></=
div><div><a href=3D"https://www.google.com/patents/US9264336">https://www.g=
oogle.com/patents/US9264336</a><br></div><div><br></div><div>This seems to =
be at least in the neighborhood of the preferred approach for RTT measureme=
nt by middleboxes (option 3a in Prague). I find reading patents to be among=
 the least enjoyable and productive things to do, but my reading is that th=
is doesn&#39;t quite describe our approach here. This is partly because the=
 concept seems to be endpoint measurement rather than middlebox measurement=
.</div><div><br></div><div>Anyhow, I&#39;m putting this out there for consi=
deration. If people smarter than me think this covers 3a, perhaps this stee=
rs towards something like Packet Number Echo.</div><div><br></div><div>Mart=
in Duke</div></div>

--001a114240d6e97898055512c996--


From nobody Mon Jul 24 09:51:19 2017
Return-Path: <Lucas.Pardue@bbc.co.uk>
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 B00E7131EA9 for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 09:51:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level: 
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 Itve1sgKAz1M for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 09:51:16 -0700 (PDT)
Received: from mailout0.telhc.bbc.co.uk (mailout0.telhc.bbc.co.uk [132.185.161.179]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B13E9131D21 for <quic@ietf.org>; Mon, 24 Jul 2017 09:51:15 -0700 (PDT)
Received: from BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) by mailout0.telhc.bbc.co.uk (8.15.2/8.15.2) with ESMTP id v6OGpDe7006330; Mon, 24 Jul 2017 17:51:13 +0100 (BST)
Received: from BGB01XUD1012.national.core.bbc.co.uk ([10.161.14.10]) by BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) with mapi id 14.03.0319.002; Mon, 24 Jul 2017 17:51:12 +0100
From: Lucas Pardue <Lucas.Pardue@bbc.co.uk>
To: Mike Bishop <Michael.Bishop@microsoft.com>, Martin Thomson <martin.thomson@gmail.com>, "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>
CC: Ian Swett <ianswett@google.com>, IETF QUIC WG <quic@ietf.org>, "Philipp S. Tiesel" <phils@in-panik.de>
Subject: RE: HTTP requests on one stream #692
Thread-Topic: HTTP requests on one stream #692
Thread-Index: AdMCNJiq1/jFQyapRDqdWSVpnV2UvgAUdAmMAEC1AoAAAid+AAAEKlMAAAJGowAAC2QoAAAGVf6AABBbYAAAGRWsEA==
Date: Mon, 24 Jul 2017 16:51:11 +0000
Message-ID: <7CF7F94CB496BF4FAB1676F375F9666A37749FC7@bgb01xud1012>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com> <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
In-Reply-To: <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.19.161.213]
x-exclaimer-md-config: 1cd3ac1c-62e5-43f2-8404-6b688271c769
x-tm-as-product-ver: SMEX-11.0.0.4255-8.100.1062-23214.007
x-tm-as-result: No--26.976300-0.000000-31
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
Content-Type: multipart/alternative; boundary="_000_7CF7F94CB496BF4FAB1676F375F9666A37749FC7bgb01xud1012_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/VSGyWf4lwdFaGBN-_CmjSJ5Mjfk>
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: Mon, 24 Jul 2017 16:51:18 -0000

--_000_7CF7F94CB496BF4FAB1676F375F9666A37749FC7bgb01xud1012_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

TWlrZSwNCg0KVGhhbmtzIGZvciBhbnN3ZXJpbmcgbXkgaW5pdGlhbCBxdWVzdGlvbnMuDQoNClRo
ZSBkaXNjdXNzaW9uIGhhcyBnb25lIG9mZiBvbiBhIGJpdCBvZiBhIHRhbmdlbnQgYnV0IGl0IGlz
IHZlcnkgaW50ZXJlc3RpbmcuDQoNCk1pa2UgQmlzaG9wIHdyb3RlOg0KDQpUaGUgTkFDSyBoYXMg
dGhlIHNhbWUgcHJvYmxlbSBhcyBvdmVyLWFja2luZyDigJMgeW91IGNhbuKAmXQgYWNrIGZyYW1l
cywgeW91IGFjayBwYWNrZXRzLiAgV2hpbGUgSSBzZWUgdGhlIGFyZ3VtZW50IGZvciBzYXlpbmcg
dGhhdCB1bnJlbGlhYmxlIGRlbGl2ZXJ5IGlzIGEgY2xpZW50IGNob2ljZSwgbm90IGEgc2VuZGVy
IG9uZSwgaXQgc2VlbXMgbGlrZSBzb21ldGhpbmcgd2UgY291bGQgcmVhc29uYWJsZSBleHByZXNz
IGF0IHRoZSBhcHBsaWNhdGlvbiBsYXllciBhbmQgdGhlbiBoYXZlIHRoZSBzZW5kZXIgYWN0dWFs
bHkgcGVyZm9ybS4NCg0KU2ltcGxlc3Qgb3B0aW9ucyBJIHNlZSB3b3VsZCBiZToNCg0KICAqICAg
Tm8gcmV0cmFuc21pc3Npb25zIGV2ZXIgKGxvY2FsIGNvbmZpZ3VyYXRpb24gdG8gc3RhY2ssIFJT
VF9TVFJFQU0gYWZ0ZXIgc3RyZWFtIGNvbXBsZXRpb24pDQogICogICBObyByZXRyYW5zbWlzc2lv
bnMgYWZ0ZXIgYSBjZXJ0YWluIHRpbWVvdXQgKFJTVF9TVFJFQU0gb24gYSB0aW1lciwgaWYgeW91
IGFzc3VtZSB0aGUgc3RyZWFtIGRhdGEgYWxsIGJlY29tZXMgYXZhaWxhYmxlIGF0IG9uY2UpDQoN
ClNsaWdodGx5IG1vcmUgY29tcGxleCB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZSDigJxvbmx5IHJl
dHJhbnNtaXQgYW55IGdpdmVuIHNlZ21lbnQgb25jZeKAnSBvciDigJxnaXZlIHVwIG9uIHJldHJh
bnNtaXNzaW9ucyBhZnRlciBhIHNlZ21lbnQgaXMgWCBtcyBvbGQu4oCdDQoNCk91ciBpbXBsZW1l
bnRhdGlvbiBvZiBIVFRQIG92ZXIgbXVsdGljYXN0IFFVSUM8aHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9odG1sL2RyYWZ0LXBhcmR1ZS1xdWljLWh0dHAtbWNhc3Q+IGRvZXMgc29tZXRoaW5nIHNpbWls
YXIgdG8geW91ciBmaXJzdCBvcHRpb24uIFRoZSBzZW5kZXIgKHNlcnZlcikgaXMgYSBjb250aW51
YWwgc2V0IG9mIFNlcnZlciBQdXNoZXMgYW5kIGNodXJucyBvdXQgZnJhbWVzLCBpdCBwcm9ncmVz
c2VzIHN0cmVhbSBzdGF0ZSBpbnRvIGNvbXBsZXRpb24gaXRzZWxmLiBUaGlzIHNlZW1zIHNpbWls
YXIgdG8gdGhlIGRlc2NyaXB0aW9uIElhbiBnYXZlIGluIFByYWd1ZSAod2hlbiB0YWxraW5nIGFi
b3V0IGdRVUlDIFNlcnZlciBQdXNoKSBkdXJpbmcgdGhlIHVuaWRpcmVjdGlvbmFsIHN0cmVhbXMg
ZGlzY3Vzc2lvbi4NCg0KVG8gZWNobyBUaG9tYXPigJkgdmlldyBvbiBjbGllbnQgZGVjaXNpb24g
bWFraW5nOyBpbiBvdXIgc2V0IHVwIHRoZSBRVUlDIGNvbnRleHQgaXMgZW50aXJlbHkgdW5pZGly
ZWN0aW9uYWwgYW5kIHRoZXJlIGlzIG5vIGNoYW5uZWwgZm9yIGEgY2xpZW50IHRvIGV4cHJlc3Mg
ZGVzaXJlcyBvZiBwYXJ0aWFsIHJlbGlhYmlsaXR5IG9yIHRvIE5BQ0suIEluIHRoZSBtYW55LXRv
LW9uZSByZWxhdGlvbnNoaXAgZGlmZmVyZW50IHJlY2VpdmVycyAoY2xpZW50cykgbWF5IGV4cGVy
aWVuY2UgZGlmZmVyZW50IG5ldHdvcmsgY29uZGl0aW9ucyBsZWFkaW5nIHRvIHZhcmlhbmNlIGlu
IGxvc3QgcGFja2V0cy4gV2l0aCB0aGVzZSBjb25zdHJhaW50cyB3ZSBjdXJyZW50bHkgZGVsZWdh
dGUgdGhlIGxvc3MgcmVjb3ZlcnkgdG8gYXBwbGljYXRpb24tbGF5ZXIgbWVhbnMgKEhUVFAgYnl0
ZS1yYW5nZSByZXF1ZXN0cykgb3V0c2lkZSBvZiB0aGUgUVVJQyBjb250ZXh0IChlLmcuIGJhY2sg
dG8gYSBDRE4pLiBBIHRpZ2h0ZXIgaW50ZWdyYXRpb24gaXMgc29tZXRoaW5nIHdlIGFyZSBleHBs
b3JpbmcsIGhlbmNlIHdoeSBJIGZpbmQgdGhpcyBkaXNjdXNzaW9uIGludGVyZXN0aW5nLiBJIGNh
biBzZWUgc29tZSBraW5kIG9mIGh5YnJpZCBtb2RlIGFzIGJlaW5nIHVzZWZ1bCBpLmUuIHNlcnZl
ciBkaXJlY3RlZCBwb2xpY3kgKHBlcmhhcHMgbGltaXRlZCB0byBjb25uZWN0aW9uLCBwYXRoIGV0
Yy4pIHdpdGggc3Ryb25nIGNsaWVudCBkZWNpc2lvbiBtYWtpbmcgYXNzaXN0ZWQgYnkgY2xpZW50
LXRvLXNlcnZlciBoaW50cyBmb3IgZWFjaCByZXNvdXJjZS4NCg0KTHVjYXMNCg0KDQoNCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaHR0cDovL3d3dy5iYmMuY28udWsNClRoaXMgZS1t
YWlsIChhbmQgYW55IGF0dGFjaG1lbnRzKSBpcyBjb25maWRlbnRpYWwgYW5kIG1heSBjb250YWlu
IHBlcnNvbmFsIHZpZXdzIHdoaWNoIGFyZSBub3QgdGhlIHZpZXdzIG9mIHRoZSBCQkMgdW5sZXNz
IHNwZWNpZmljYWxseSBzdGF0ZWQuDQpJZiB5b3UgaGF2ZSByZWNlaXZlZCBpdCBpbiBlcnJvciwg
cGxlYXNlIGRlbGV0ZSBpdCBmcm9tIHlvdXIgc3lzdGVtLg0KRG8gbm90IHVzZSwgY29weSBvciBk
aXNjbG9zZSB0aGUgaW5mb3JtYXRpb24gaW4gYW55IHdheSBub3IgYWN0IGluIHJlbGlhbmNlIG9u
IGl0IGFuZCBub3RpZnkgdGhlIHNlbmRlciBpbW1lZGlhdGVseS4NClBsZWFzZSBub3RlIHRoYXQg
dGhlIEJCQyBtb25pdG9ycyBlLW1haWxzIHNlbnQgb3IgcmVjZWl2ZWQuDQpGdXJ0aGVyIGNvbW11
bmljYXRpb24gd2lsbCBzaWduaWZ5IHlvdXIgY29uc2VudCB0byB0aGlzLg0KDQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCg==

--_000_7CF7F94CB496BF4FAB1676F375F9666A37749FC7bgb01xud1012_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjwhLS0gVGVtcGxhdGUgZ2VuZXJhdGVkIGJ5IEV4Y2xh
aW1lciBNYWlsIERpc2NsYWltZXJzIG9uIDA1OjUxOjEyIE1vbmRheSwgMjQgSnVseSAyMDE3IC0t
Pg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9dXRmLTgiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj5QLmI1MTA2ZDZhLTE0ZGItNGM1
ZS1iNTk0LTZhN2E0MTE3NTAzYiB7DQoJTUFSR0lOOiAwY20gMGNtIDBwdA0KfQ0KTEkuYjUxMDZk
NmEtMTRkYi00YzVlLWI1OTQtNmE3YTQxMTc1MDNiIHsNCglNQVJHSU46IDBjbSAwY20gMHB0DQp9
DQpESVYuYjUxMDZkNmEtMTRkYi00YzVlLWI1OTQtNmE3YTQxMTc1MDNiIHsNCglNQVJHSU46IDBj
bSAwY20gMHB0DQp9DQpUQUJMRS5iNTEwNmQ2YS0xNGRiLTRjNWUtYjU5NC02YTdhNDExNzUwM2JU
YWJsZSB7DQoJTUFSR0lOOiAwY20gMGNtIDBwdA0KfQ0KRElWLlNlY3Rpb24xIHsNCglwYWdlOiBT
ZWN0aW9uMQ0KfQ0KPC9zdHlsZT4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWlj
cm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxlPjwhLS0NCi8qIEZvbnQg
RGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6V2luZ2RpbmdzOw0KCXBh
bm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToi
Q2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0O30NCkBmb250LWZh
Y2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIg
NDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwg
ZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglm
b250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCmE6
bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9y
OmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNv
SHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBs
ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNvTGlzdFBhcmFncmFwaCwgbGku
TXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3JhcGgNCgl7bXNvLXN0eWxlLXByaW9y
aXR5OjM0Ow0KCW1hcmdpbi10b3A6MGNtOw0KCW1hcmdpbi1yaWdodDowY207DQoJbWFyZ2luLWJv
dHRvbTowY207DQoJbWFyZ2luLWxlZnQ6MzYuMHB0Ow0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsN
Cglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30N
CnAubXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxl
LW5hbWU6bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdo
dDowY207DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGNtOw0K
CWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0K
c3Bhbi5tNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3OTE0OTMzNzAzNTQ4NjA5M20tMjg0OTgxOTk4
Mjk3MTAyODIwNWFwcGxlLWNvbnZlcnRlZC1zcGFjZQ0KCXttc28tc3R5bGUtbmFtZTptXzc0MDg3
MjkzNjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgyMDVh
cHBsZS1jb252ZXJ0ZWQtc3BhY2U7fQ0Kc3Bhbi5tNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3OTE0
OTMzNzAzNTQ4NjA5M2hvZW56Yg0KCXttc28tc3R5bGUtbmFtZTptXzc0MDg3MjkzNjMxNTU0MjEz
NTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNob2VuemI7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjENCgl7bXNv
LXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7
DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5bGUyMw0KCXttc28tc3R5bGUtdHlw
ZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCglj
b2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9y
dC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6
NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7fQ0K
ZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQovKiBMaXN0IERlZmluaXRp
b25zICovDQpAbGlzdCBsMA0KCXttc28tbGlzdC1pZDo1MjU5NDg5NzA7DQoJbXNvLWxpc3QtdGVt
cGxhdGUtaWRzOjM5ODI0OTA3MDt9DQpAbGlzdCBsMDpsZXZlbDENCgl7bXNvLWxldmVsLXN0YXJ0
LWF0OjI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBv
c2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMDpsZXZlbDINCgl7
bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9w
OjcyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6
LTE4LjBwdDt9DQpAbGlzdCBsMQ0KCXttc28tbGlzdC1pZDo3Nzk5NTM5MDE7DQoJbXNvLWxpc3Qt
dHlwZTpoeWJyaWQ7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjU2Njc3NDEyMCA2NzY5ODY4OSA2
NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5
ODY5MSA2NzY5ODY5Mzt9DQpAbGlzdCBsMTpsZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1mb3Jt
YXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9u
ZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBw
dDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWwyDQoJe21zby1sZXZlbC1u
dW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWIt
c3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu
dDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDE6bGV2ZWwz
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBs
aXN0IGwxOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OlN5
bWJvbDt9DQpAbGlzdCBsMTpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0
Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1m
YW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMTpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJl
ci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0
b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6
LTE4LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDE6bGV2ZWw3DQoJe21z
by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNv
LWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0K
CXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxOmxl
dmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6
bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseToiQ291cmllciBOZXci
O30NCkBsaXN0IGwxOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJ
bXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZl
bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFt
aWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMg0KCXttc28tbGlzdC1pZDoxMTA4NjI1Mjk2Ow0KCW1z
by1saXN0LXRlbXBsYXRlLWlkczoxMzIxNDc5ODg0O30NCkBsaXN0IGwyOmxldmVsMQ0KCXttc28t
bGV2ZWwtc3RhcnQtYXQ6MjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MzYuMHB0Ow0KCW1zby1sZXZl
bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwy
OmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsNCgltc28tbGV2
ZWwtdGFiLXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwyOmxldmVsMw0KCXttc28tbGV2ZWwtdGFiLXN0
b3A6MTA4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LTE4LjBwdDt9DQpAbGlzdCBsMjpsZXZlbDQNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjE0NC4w
cHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4w
cHQ7fQ0KQGxpc3QgbDI6bGV2ZWw1DQoJe21zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBs
aXN0IGwyOmxldmVsNg0KCXttc28tbGV2ZWwtdGFiLXN0b3A6MjE2LjBwdDsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMjps
ZXZlbDcNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1w
b3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDI6bGV2ZWw4DQoJ
e21zby1sZXZlbC10YWItc3RvcDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwyOmxldmVsOQ0KCXttc28tbGV2
ZWwtdGFiLXN0b3A6MzI0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMw0KCXttc28tbGlzdC1pZDoxNjYyMDA3OTc0
Ow0KCW1zby1saXN0LXRlbXBsYXRlLWlkczoxMzU4ODY4NjA2O30NCkBsaXN0IGwzOmxldmVsMQ0K
CXttc28tbGV2ZWwtdGFiLXN0b3A6MzYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwzOmxldmVsMg0KCXttc28tbGV2
ZWwtdGFiLXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwzOmxldmVsMw0KCXttc28tbGV2ZWwtdGFiLXN0
b3A6MTA4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LTE4LjBwdDt9DQpAbGlzdCBsMzpsZXZlbDQNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjE0NC4w
cHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4w
cHQ7fQ0KQGxpc3QgbDM6bGV2ZWw1DQoJe21zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBs
aXN0IGwzOmxldmVsNg0KCXttc28tbGV2ZWwtdGFiLXN0b3A6MjE2LjBwdDsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsMzps
ZXZlbDcNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1w
b3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDM6bGV2ZWw4DQoJ
e21zby1sZXZlbC10YWItc3RvcDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwzOmxldmVsOQ0KCXttc28tbGV2
ZWwtdGFiLXN0b3A6MzI0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LTE4LjBwdDt9DQpAbGlzdCBsNA0KCXttc28tbGlzdC1pZDoxODU4NTQyNTE0
Ow0KCW1zby1saXN0LXRlbXBsYXRlLWlkczoxNjI1NzMyMDM2O30NCkBsaXN0IGw1DQoJe21zby1s
aXN0LWlkOjE4Njc4Njg1Nzk7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOi0xMTMyMzA3MDIwO30N
CkBsaXN0IGw1OmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv
LWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDozNi4wcHQ7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2kt
Zm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDU6bGV2ZWwy
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOjcyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0
Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsNTpsZXZlbDMNCgl7bXNvLWxldmVsLW51
bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6MTA4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1p
bmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5
OlN5bWJvbDt9DQpAbGlzdCBsNTpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs
bGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTQ0LjBwdDsN
Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsN
Cgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlz
dCBsNTpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZl
bC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTgwLjBwdDsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250
LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsNTpsZXZlbDYNCgl7
bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCglt
c28tbGV2ZWwtdGFiLXN0b3A6MjE2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0K
CWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsNTpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJl
ci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0
b3A6MjUyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5
bWJvbDt9DQpAbGlzdCBsNTpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0
Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6Mjg4LjBwdDsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglt
c28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBs
NTpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10
ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MzI0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVy
LXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNp
emU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpvbA0KCXttYXJnaW4tYm90dG9tOjBj
bTt9DQp1bA0KCXttYXJnaW4tYm90dG9tOjBjbTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1z
byA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIg
Lz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVs
YXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8
L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJF
Ti1HQiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8cCBjbGFzcz0iYjUxMDZkNmEtMTRk
Yi00YzVlLWI1OTQtNmE3YTQxMTc1MDNiIj48L3A+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEi
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj5NaWtlLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJl
YXN0LWxhbmd1YWdlOkVOLVVTIj5UaGFua3MgZm9yIGFuc3dlcmluZyBteSBpbml0aWFsIHF1ZXN0
aW9ucy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJtc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1VUyI+VGhlIGRpc2N1c3Npb24gaGFzIGdvbmUgb2ZmIG9uIGEgYml0IG9mIGEgdGFu
Z2VudCBidXQgaXQgaXMgdmVyeSBpbnRlcmVzdGluZy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4t
VVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+TWlrZSBCaXNob3Agd3JvdGU6
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+
DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3Bh
ZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiPlRoZSBOQUNLIGhhcyB0aGUgc2FtZSBwcm9ibGVtIGFzIG92ZXItYWNraW5nIOKA
kyB5b3UgY2Fu4oCZdCBhY2sgZnJhbWVzLCB5b3UgYWNrIHBhY2tldHMuJm5ic3A7IFdoaWxlIEkg
c2VlIHRoZSBhcmd1bWVudCBmb3Igc2F5aW5nIHRoYXQgdW5yZWxpYWJsZSBkZWxpdmVyeSBpcyBh
IGNsaWVudCBjaG9pY2UsIG5vdCBhIHNlbmRlciBvbmUsIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5n
IHdlIGNvdWxkDQogcmVhc29uYWJsZSBleHByZXNzIGF0IHRoZSBhcHBsaWNhdGlvbiBsYXllciBh
bmQgdGhlbiBoYXZlIHRoZSBzZW5kZXIgYWN0dWFsbHkgcGVyZm9ybS48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
VVMiPlNpbXBsZXN0IG9wdGlvbnMgSSBzZWUgd291bGQgYmU6PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHVsIHN0eWxlPSJtYXJnaW4tdG9wOjBjbSIgdHlwZT0iZGlzYyI+DQo8bGkgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjBjbTttc28tbGlzdDpsMSBsZXZlbDEgbGZvMyI+
PHNwYW4gbGFuZz0iRU4tVVMiPk5vIHJldHJhbnNtaXNzaW9ucyBldmVyIChsb2NhbCBjb25maWd1
cmF0aW9uIHRvIHN0YWNrLCBSU1RfU1RSRUFNIGFmdGVyIHN0cmVhbSBjb21wbGV0aW9uKTxvOnA+
PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm
dDowY207bXNvLWxpc3Q6bDEgbGV2ZWwxIGxmbzMiPjxzcGFuIGxhbmc9IkVOLVVTIj5ObyByZXRy
YW5zbWlzc2lvbnMgYWZ0ZXIgYSBjZXJ0YWluIHRpbWVvdXQgKFJTVF9TVFJFQU0gb24gYSB0aW1l
ciwgaWYgeW91IGFzc3VtZSB0aGUgc3RyZWFtIGRhdGEgYWxsIGJlY29tZXMgYXZhaWxhYmxlIGF0
IG9uY2UpPG86cD48L286cD48L3NwYW4+PC9saT48L3VsPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5TbGlnaHRseSBtb3JlIGNvbXBsZXggd291
bGQgYmUgc29tZXRoaW5nIGxpa2Ug4oCcb25seSByZXRyYW5zbWl0IGFueSBnaXZlbiBzZWdtZW50
IG9uY2XigJ0gb3Ig4oCcZ2l2ZSB1cCBvbiByZXRyYW5zbWlzc2lvbnMgYWZ0ZXIgYSBzZWdtZW50
IGlzIFggbXMgb2xkLuKAnTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5PdXIgaW1wbGVtZW50
YXRpb24gb2YgPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXBhcmR1
ZS1xdWljLWh0dHAtbWNhc3QiPg0KSFRUUCBvdmVyIG11bHRpY2FzdCBRVUlDPC9hPiBkb2VzIHNv
bWV0aGluZyBzaW1pbGFyIHRvIHlvdXIgZmlyc3Qgb3B0aW9uLiBUaGUgc2VuZGVyIChzZXJ2ZXIp
IGlzIGEgY29udGludWFsIHNldCBvZiBTZXJ2ZXIgUHVzaGVzIGFuZCBjaHVybnMgb3V0IGZyYW1l
cywgaXQgcHJvZ3Jlc3NlcyBzdHJlYW0gc3RhdGUgaW50byBjb21wbGV0aW9uIGl0c2VsZi4gVGhp
cyBzZWVtcyBzaW1pbGFyIHRvIHRoZSBkZXNjcmlwdGlvbiBJYW4gZ2F2ZSBpbiBQcmFndWUNCiAo
d2hlbiB0YWxraW5nIGFib3V0IGdRVUlDIFNlcnZlciBQdXNoKSBkdXJpbmcgdGhlIHVuaWRpcmVj
dGlvbmFsIHN0cmVhbXMgZGlzY3Vzc2lvbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPlRvIGVjaG8gVGhv
bWFz4oCZIHZpZXcgb24gY2xpZW50IGRlY2lzaW9uIG1ha2luZzsgaW4gb3VyIHNldCB1cCB0aGUg
UVVJQyBjb250ZXh0IGlzIGVudGlyZWx5IHVuaWRpcmVjdGlvbmFsIGFuZCB0aGVyZSBpcyBubyBj
aGFubmVsIGZvciBhIGNsaWVudCB0byBleHByZXNzIGRlc2lyZXMgb2YgcGFydGlhbCByZWxpYWJp
bGl0eSBvciB0byBOQUNLLiBJbiB0aGUgbWFueS10by1vbmUgcmVsYXRpb25zaGlwDQogZGlmZmVy
ZW50IHJlY2VpdmVycyAoY2xpZW50cykgbWF5IGV4cGVyaWVuY2UgZGlmZmVyZW50IG5ldHdvcmsg
Y29uZGl0aW9ucyBsZWFkaW5nIHRvIHZhcmlhbmNlIGluIGxvc3QgcGFja2V0cy4gV2l0aCB0aGVz
ZSBjb25zdHJhaW50cyB3ZSBjdXJyZW50bHkgZGVsZWdhdGUgdGhlIGxvc3MgcmVjb3ZlcnkgdG8g
YXBwbGljYXRpb24tbGF5ZXIgbWVhbnMgKEhUVFAgYnl0ZS1yYW5nZSByZXF1ZXN0cykgb3V0c2lk
ZSBvZiB0aGUgUVVJQyBjb250ZXh0DQogKGUuZy4gYmFjayB0byBhIENETikuIEEgdGlnaHRlciBp
bnRlZ3JhdGlvbiBpcyBzb21ldGhpbmcgd2UgYXJlIGV4cGxvcmluZywgaGVuY2Ugd2h5IEkgZmlu
ZCB0aGlzIGRpc2N1c3Npb24gaW50ZXJlc3RpbmcuIEkgY2FuIHNlZSBzb21lIGtpbmQgb2YgaHli
cmlkIG1vZGUgYXMgYmVpbmcgdXNlZnVsIGkuZS4gc2VydmVyIGRpcmVjdGVkIHBvbGljeSAocGVy
aGFwcyBsaW1pdGVkIHRvIGNvbm5lY3Rpb24sIHBhdGggZXRjLikgd2l0aCBzdHJvbmcgY2xpZW50
DQogZGVjaXNpb24gbWFraW5nIGFzc2lzdGVkIGJ5IGNsaWVudC10by1zZXJ2ZXIgaGludHMgZm9y
IGVhY2ggcmVzb3VyY2UuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5MdWNhczxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPHA+PC9wPg0KPHAgY2xhc3M9ImI1MTA2ZDZhLTE0ZGItNGM1ZS1iNTk0
LTZhN2E0MTE3NTAzYiI+Jm5ic3A7PC9wPg0KPHAgY2xhc3M9ImI1MTA2ZDZhLTE0ZGItNGM1ZS1i
NTk0LTZhN2E0MTE3NTAzYiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4NCjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGlt
ZXMgTmV3IFJvbWFuIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxicj4N
Cjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PGEgaHJlZj0iaHR0cDovL3d3
dy5iYmMuY28udWsiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LjxzcGFuIGNsYXNzPSJpbCI+
YmJjPC9zcGFuPi48c3BhbiBjbGFzcz0iaWwiPmNvPC9zcGFuPi48c3BhbiBjbGFzcz0iaWwiPnVr
PC9zcGFuPjwvYT48YnI+DQpUaGlzIGUtbWFpbCAoYW5kIGFueSBhdHRhY2htZW50cykgaXMgY29u
ZmlkZW50aWFsIGFuZCBtYXkgY29udGFpbiBwZXJzb25hbCB2aWV3cyB3aGljaCBhcmUgbm90IHRo
ZSB2aWV3cyBvZiB0aGUNCjxzcGFuIGNsYXNzPSJpbCI+QkJDPC9zcGFuPiB1bmxlc3Mgc3BlY2lm
aWNhbGx5IHN0YXRlZC48YnI+DQpJZiB5b3UgaGF2ZSByZWNlaXZlZCBpdCBpbiBlcnJvciwgcGxl
YXNlIGRlbGV0ZSBpdCBmcm9tIHlvdXIgc3lzdGVtLjxicj4NCkRvIG5vdCB1c2UsIGNvcHkgb3Ig
ZGlzY2xvc2UgdGhlIGluZm9ybWF0aW9uIGluIGFueSB3YXkgbm9yIGFjdCBpbiByZWxpYW5jZSBv
biBpdCBhbmQgbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkuPGJyPg0KUGxlYXNlIG5vdGUg
dGhhdCB0aGUgPHNwYW4gY2xhc3M9ImlsIj5CQkM8L3NwYW4+IG1vbml0b3JzIGUtbWFpbHMgc2Vu
dCBvciByZWNlaXZlZC48YnI+DQpGdXJ0aGVyIGNvbW11bmljYXRpb24gd2lsbCBzaWduaWZ5IHlv
dXIgY29uc2VudCB0byB0aGlzLjwvZm9udD48L2ZvbnQ+PC9mb250PjwvZm9udD48L3A+DQo8cCBj
bGFzcz0iYjUxMDZkNmEtMTRkYi00YzVlLWI1OTQtNmE3YTQxMTc1MDNiIj4tLS0tLS0tLS0tLS0t
LS0tLS0tLS08L3A+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_7CF7F94CB496BF4FAB1676F375F9666A37749FC7bgb01xud1012_--


From nobody Mon Jul 24 10:08:08 2017
Return-Path: <Michael.Bishop@microsoft.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 6139A126C0F for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 10:08:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.811
X-Spam-Level: 
X-Spam-Status: No, score=-2.811 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, LOTS_OF_MONEY=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 wWmHtV6_7j3o for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 10:08:04 -0700 (PDT)
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0129.outbound.protection.outlook.com [104.47.37.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ABAFE1241FC for <quic@ietf.org>; Mon, 24 Jul 2017 10:08:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3KC5oywixnUOlzWMUz+WAi9vQQIAMy/3X8cwjq34kD8=; b=SkDSjomUbBceWEkPoI1nKQurg58DAnuUQYmrmhTFC9ZGZP8VmR3CriveepqSUAdk1S+YbntsRlmZgc+J4q27krDAOPO/9QQ1xsajo6t5TBcodK++L/Q9AH/6Ozn6XUX2PiD9FjL4MdutH4vCjPc5+yNY++ZDIFO8UDiLOQO/Cg0=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0159.namprd21.prod.outlook.com (10.173.52.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.2; Mon, 24 Jul 2017 17:08:03 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1282.008; Mon, 24 Jul 2017 17:08:03 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Patents on RTT marking?
Thread-Topic: Patents on RTT marking?
Thread-Index: AQHTBJq/902MDnRznU+DQU4IMuTT86JjNS+Q
Date: Mon, 24 Jul 2017 17:08:03 +0000
Message-ID: <MWHPR21MB0141A81BB6DE600EC37D125C87BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CAM4esxTpnc3Tth-0H1tP5RXjpiEQPFAbcWCbCt+DMUgFnB2vFQ@mail.gmail.com>
In-Reply-To: <CAM4esxTpnc3Tth-0H1tP5RXjpiEQPFAbcWCbCt+DMUgFnB2vFQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
x-originating-ip: [2001:4898:80e8:a::6d4]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0159; 7:y8p6spzgh6ZErPbOUBBIuvKmhTfN2MvbHIaqWB6rYg+Xcsw8x0Lg8F22zfaklCHqSsVnfLrPEwllj8P+qCpEax+ZH8/+Tyj4o47Zgsgrk9m6xqD1SCeSkRVlvJ3QOdtONMSxAl43z7kyK1yb2taL4FGqPpA2ZdggK9uSG3UNyOuaZBPO/koGZqDcDEGhgTn1E1oUf+vpx1kvrbPrObNufm7WbTbQ11bNrw3mOQD7x9IeP4dc2z8JeOOIzEZ3iq2yWVttTszgaqzOnEiySvh9uJZtOyCyMDppOLv3Zh4NjI6/9+RsTjtTNYXsfbP8IoxCkuuRnAQNo9hQKPkvmjy4xH3qE11grwDS53ScHOzPGJ1QvbxVAEbij1yOcSk3cHJKwhB9B5SLfkgw1JPy8lJ9ldfCPn41ppLiDZxfPnc/Ujri5GgdPBCu/8Dlmp9JNhh5vpp2FTBE9mtzgj/VyRVm9+Hrgw3Vi9JLJ99rUWyop4LFj4VFbxN7P+3MjUtXZDN0LloK4kYj6KAYIQ8Itoznaw65/RJTHVKIFhFX/az2TJwPXDJ8B7PbI2y2UsHkXISwzMcaHLyeVkJtGbiVrhUJL2cqZSXfEsMWFDAXyFTVRJwtZnwrOOGm6rysC7bWVhOhi2CGvSAKKiJHeqP3NaichhTTczjU2d4Wm3wLr6htCJk1oKKOgPhcZ1w2A+9coOGogeGtwafilgNMOyLO0DvvsFfviJIZGk7GUVTmW989DoCX50FSlS4ajv/UZAdmxJxO4ll6MD5AFueo+AezK/RYM1N8ty8RE/6yrdBbfoMXjieuD9Uj3mhFzGgW8TQlVWHd
x-ms-office365-filtering-correlation-id: 98e9e105-a34c-45a9-f23e-08d4d2b68bbc
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0159; 
x-ms-traffictypediagnostic: MWHPR21MB0159:
x-exchange-antispam-report-test: UriScan:(189930954265078)(73312121905874)(211936372134217)(219752817060721)(21748063052155);
x-microsoft-antispam-prvs: <MWHPR21MB01597C2B753D9059AF8FD19687BB0@MWHPR21MB0159.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(920507026)(6055026)(61426038)(61427038)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123560025)(20161123558100)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0159; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0159; 
x-forefront-prvs: 0378F1E47A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39840400002)(39860400002)(39410400002)(39400400002)(39850400002)(39450400003)(47760400005)(377454003)(189002)(199003)(3480700004)(55016002)(54356999)(5005710100001)(8936002)(2950100002)(102836003)(6436002)(19609705001)(8676002)(53936002)(99286003)(7696004)(606006)(39060400002)(81156014)(33656002)(53546010)(966005)(478600001)(81166006)(25786009)(7736002)(38730400002)(50986999)(97736004)(76176999)(790700001)(6116002)(106356001)(10290500003)(6246003)(68736007)(236005)(34040400001)(101416001)(189998001)(229853002)(6306002)(9686003)(14454004)(105586002)(77096006)(3660700001)(6506006)(54896002)(2900100001)(86612001)(3280700002)(8990500004)(2906002)(86362001)(10090500001)(5660300001)(72206003)(74316002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0159; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB0141A81BB6DE600EC37D125C87BB0MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2017 17:08:03.3879 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0159
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/mr2dJ3C8tYgD1tE7OMRdfPcCS5c>
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: Mon, 24 Jul 2017 17:08:07 -0000

--_000_MWHPR21MB0141A81BB6DE600EC37D125C87BB0MWHPR21MB0141namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SSBsZWF2ZSBwYXRlbnQgcmVhZGluZyB0byB0aGUgbGF3eWVycy4gIExldOKAmXMgc3RhcnQgYnkg
ZGVzaWduaW5nIHRoZSBiZXN0IHNvbHV0aW9uIHdlIGNhbiwgYW5kIGZpZ3VyZSBvdXQgYW55IGlt
cGFjdGVkIElQIG9uY2Ugd2Uga25vdyB3aGF0IHdlIHdhbnQuDQoNCkZyb206IFFVSUMgW21haWx0
bzpxdWljLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBNYXJ0aW4gRHVrZQ0KU2VudDog
TW9uZGF5LCBKdWx5IDI0LCAyMDE3IDk6MzQgQU0NClRvOiBJRVRGIFFVSUMgV0cgPHF1aWNAaWV0
Zi5vcmc+DQpTdWJqZWN0OiBQYXRlbnRzIG9uIFJUVCBtYXJraW5nPw0KDQpBIGNvbGxlYWd1ZSBz
ZW50IG1lIHRoaXMgVGVsZWNvbSBJdGFsaWEgcGF0ZW50Og0KDQpodHRwczovL3d3dy5nb29nbGUu
Y29tL3BhdGVudHMvVVM5MjY0MzM2PGh0dHBzOi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5v
dXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGd3d3Lmdvb2dsZS5jb20lMkZwYXRlbnRzJTJG
VVM5MjY0MzM2JmRhdGE9MDIlN0MwMSU3Q21pY2hhZWwuYmlzaG9wJTQwbWljcm9zb2Z0LmNvbSU3
Qzg4YTMxMTQxZGNlZDQzZmUzNWZjMDhkNGQyYjFlMGNmJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIy
ZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzNjM2NTEwODgwODMyNjIwNSZzZGF0YT1CcXdlTDVaNlJU
QmhrZUhYaUpCUjdYV2FQakx2QXBNNSUyRkphNkUwNGJGQTAlM0QmcmVzZXJ2ZWQ9MD4NCg0KVGhp
cyBzZWVtcyB0byBiZSBhdCBsZWFzdCBpbiB0aGUgbmVpZ2hib3Job29kIG9mIHRoZSBwcmVmZXJy
ZWQgYXBwcm9hY2ggZm9yIFJUVCBtZWFzdXJlbWVudCBieSBtaWRkbGVib3hlcyAob3B0aW9uIDNh
IGluIFByYWd1ZSkuIEkgZmluZCByZWFkaW5nIHBhdGVudHMgdG8gYmUgYW1vbmcgdGhlIGxlYXN0
IGVuam95YWJsZSBhbmQgcHJvZHVjdGl2ZSB0aGluZ3MgdG8gZG8sIGJ1dCBteSByZWFkaW5nIGlz
IHRoYXQgdGhpcyBkb2Vzbid0IHF1aXRlIGRlc2NyaWJlIG91ciBhcHByb2FjaCBoZXJlLiBUaGlz
IGlzIHBhcnRseSBiZWNhdXNlIHRoZSBjb25jZXB0IHNlZW1zIHRvIGJlIGVuZHBvaW50IG1lYXN1
cmVtZW50IHJhdGhlciB0aGFuIG1pZGRsZWJveCBtZWFzdXJlbWVudC4NCg0KQW55aG93LCBJJ20g
cHV0dGluZyB0aGlzIG91dCB0aGVyZSBmb3IgY29uc2lkZXJhdGlvbi4gSWYgcGVvcGxlIHNtYXJ0
ZXIgdGhhbiBtZSB0aGluayB0aGlzIGNvdmVycyAzYSwgcGVyaGFwcyB0aGlzIHN0ZWVycyB0b3dh
cmRzIHNvbWV0aGluZyBsaWtlIFBhY2tldCBOdW1iZXIgRWNoby4NCg0KTWFydGluIER1a2UNCg==

--_000_MWHPR21MB0141A81BB6DE600EC37D125C87BB0MWHPR21MB0141namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1z
b0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJw
bGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25v
cm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21z
by1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5z
LXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxl
LXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0K
QHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAx
LjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24x
O30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRz
IHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtp
ZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1h
cCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRp
Zl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVy
cGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5J
IGxlYXZlIHBhdGVudCByZWFkaW5nIHRvIHRoZSBsYXd5ZXJzLiZuYnNwOyBMZXTigJlzIHN0YXJ0
IGJ5IGRlc2lnbmluZyB0aGUgYmVzdCBzb2x1dGlvbiB3ZSBjYW4sIGFuZCBmaWd1cmUgb3V0IGFu
eSBpbXBhY3RlZCBJUCBvbmNlIHdlIGtub3cgd2hhdCB3ZSB3YW50LjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Yj5Gcm9tOjwvYj4gUVVJQyBbbWFpbHRvOnF1aWMtYm91bmNlc0BpZXRmLm9yZ10g
PGI+T24gQmVoYWxmIE9mDQo8L2I+TWFydGluIER1a2U8YnI+DQo8Yj5TZW50OjwvYj4gTW9uZGF5
LCBKdWx5IDI0LCAyMDE3IDk6MzQgQU08YnI+DQo8Yj5Ubzo8L2I+IElFVEYgUVVJQyBXRyAmbHQ7
cXVpY0BpZXRmLm9yZyZndDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUGF0ZW50cyBvbiBSVFQgbWFy
a2luZz88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkEgY29sbGVhZ3VlIHNlbnQgbWUg
dGhpcyBUZWxlY29tIEl0YWxpYSBwYXRlbnQ6PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48YSBocmVmPSJodHRwczovL25hMDEuc2FmZWxpbmtzLnByb3RlY3Rp
b24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRnd3dy5nb29nbGUuY29tJTJGcGF0ZW50
cyUyRlVTOTI2NDMzNiZhbXA7ZGF0YT0wMiU3QzAxJTdDbWljaGFlbC5iaXNob3AlNDBtaWNyb3Nv
ZnQuY29tJTdDODhhMzExNDFkY2VkNDNmZTM1ZmMwOGQ0ZDJiMWUwY2YlN0M3MmY5ODhiZjg2ZjE0
MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM2MzY1MTA4ODA4MzI2MjA1JmFtcDtzZGF0
YT1CcXdlTDVaNlJUQmhrZUhYaUpCUjdYV2FQakx2QXBNNSUyRkphNkUwNGJGQTAlM0QmYW1wO3Jl
c2VydmVkPTAiPmh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcGF0ZW50cy9VUzkyNjQzMzY8L2E+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoaXMg
c2VlbXMgdG8gYmUgYXQgbGVhc3QgaW4gdGhlIG5laWdoYm9yaG9vZCBvZiB0aGUgcHJlZmVycmVk
IGFwcHJvYWNoIGZvciBSVFQgbWVhc3VyZW1lbnQgYnkgbWlkZGxlYm94ZXMgKG9wdGlvbiAzYSBp
biBQcmFndWUpLiBJIGZpbmQgcmVhZGluZyBwYXRlbnRzIHRvIGJlIGFtb25nIHRoZSBsZWFzdCBl
bmpveWFibGUgYW5kIHByb2R1Y3RpdmUgdGhpbmdzIHRvIGRvLCBidXQgbXkgcmVhZGluZyBpcyB0
aGF0DQogdGhpcyBkb2Vzbid0IHF1aXRlIGRlc2NyaWJlIG91ciBhcHByb2FjaCBoZXJlLiBUaGlz
IGlzIHBhcnRseSBiZWNhdXNlIHRoZSBjb25jZXB0IHNlZW1zIHRvIGJlIGVuZHBvaW50IG1lYXN1
cmVtZW50IHJhdGhlciB0aGFuIG1pZGRsZWJveCBtZWFzdXJlbWVudC48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QW55aG93LCBJJ20gcHV0dGlu
ZyB0aGlzIG91dCB0aGVyZSBmb3IgY29uc2lkZXJhdGlvbi4gSWYgcGVvcGxlIHNtYXJ0ZXIgdGhh
biBtZSB0aGluayB0aGlzIGNvdmVycyAzYSwgcGVyaGFwcyB0aGlzIHN0ZWVycyB0b3dhcmRzIHNv
bWV0aGluZyBsaWtlIFBhY2tldCBOdW1iZXIgRWNoby48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+TWFydGluIER1a2U8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_MWHPR21MB0141A81BB6DE600EC37D125C87BB0MWHPR21MB0141namp_--


From nobody Mon Jul 24 10:11:32 2017
Return-Path: <Michael.Bishop@microsoft.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 17248126C0F for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 10:11:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.399
X-Spam-Level: 
X-Spam-Status: No, score=-0.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URI_HEX=1.122, URI_NOVOWEL=0.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 tyTZlUWx-1ku for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 10:11:27 -0700 (PDT)
Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0109.outbound.protection.outlook.com [104.47.41.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4995F1241FC for <quic@ietf.org>; Mon, 24 Jul 2017 10:11:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=QRe5TUCmFM4tj1cddu4dRTWyZDG6ggQtz02lbaG9vcI=; b=lsfUHzaBZ57XYvekGTp4UytwX5GesKecHGGCbhbLQPU0oWFhFFcOwIYEHn7Rz+ncWzHYgpKZMMmH6mwCS3Kuq1sbZ7SfmPVBtmi7I8BBP3hFO1g5v8u3O/gIF7vGr2NLRcVic7yNz5de63PMpGxY0RTa/8dMAwkl+5FL4G8PqXg=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0509.namprd21.prod.outlook.com (10.172.95.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1304.7; Mon, 24 Jul 2017 17:11:24 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1282.008; Mon, 24 Jul 2017 17:11:24 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Martin Thomson <martin.thomson@gmail.com>, "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>
CC: "Philipp S. Tiesel" <phils@in-panik.de>, Ian Swett <ianswett@google.com>,  IETF QUIC WG <quic@ietf.org>
Subject: RE: HTTP requests on one stream #692
Thread-Topic: HTTP requests on one stream #692
Thread-Index: AdMCNJiq1/jFQyapRDqdWSVpnV2UvgAUdAmMAELNc4AAAid+AAAA+mRQAAV2kgAAANuvsAAQ3neAABAmcHAAGGK7gAAAnvEQ
Date: Mon, 24 Jul 2017 17:11:24 +0000
Message-ID: <MWHPR21MB0141CA1D9639DB4EA462223787BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com> <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com> <7CF7F94CB496BF4FAB1676F375F9666A37749FC7@bgb01xud1012>
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A37749FC7@bgb01xud1012>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
x-originating-ip: [2001:4898:80e8:a::6d4]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0509; 7:em8xcPwuxb9uOI5g7TU9ClOmx78Gkagv7boD5Tr2N45bd6485G6AI1uqPNCudAooQ19F/ZjN13K9RvHVzRh5aymYQvF+NeQH6EsuqNvYo4CDM7+WFRiw1Vcnjc+tFLKybhpb+4vtMTU6ryM3K4MLV1gjwR6JS0bzeHBd2QUDFaKA5QjAT5GBY4ClCX1b2qa8HA5qADlBEZ/DDnmwmqT4y/4dGJW3+2Ah3V/b4EXMRVimfzWMSFH/wHrg4z+J5veznfoAzOaiFnH1dv9SJtWQteA067cBNzzwQ6Nd8LULJD3l6Y8SdbN1pazyMh1/5FyeqxFATxR219AfTfb5XzuHZZXReqqRTIdRN/+HjdpyD/1Ezu+X5eVJdp9pKlcQG4Nkyh7V36Xn0s2q0OK7Hf1uHRSlTfMWGLXd9Ka9PpUQyyfWVTAGlIiUJHxhuXMIMj6bLRahCI6khz/MT2r+Kbkexsq9z8ZAfpx4b69IJ4uZ9Cy0CT3uwCpS0xgfYkDLZB3PhFCaCRokfq6cffq+TaQ6a77INfOiNe9fhK9ZRz9bgguyyGWTrOiG0Ztx1EBu9Cr+G4TLw8DOLhtZWqPhuSkYAz0Vk3yrebYJC0Bj9H/sKYKBo7UMF3cto1WYROVvtCfUPFuUMqdeb2bEzE0Kb04xQfr8mrWa3OE1HgZz1yjVM1OCJZRSNuVvZ5Thid7UAqleXB7G2Ib2XEgWVTw8M368qSwsoKMZqcJ66W4vgVr7emTHWyc3vKKEq+JaAwbwREaIN/0Uga+USsenVm3qfZB57sU6VVlPVUcqO8E/3IE5Czei8qAc2wbMXF1sQbm4f/pa
x-ms-office365-filtering-correlation-id: 0f3e2988-b37a-42ce-3b90-08d4d2b703bd
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0509; 
x-ms-traffictypediagnostic: MWHPR21MB0509:
x-exchange-antispam-report-test: UriScan:(158342451672863)(204407124797145)(89211679590171)(189930954265078)(82608151540597)(211936372134217)(153496737603132)(219752817060721)(127952516941037)(21748063052155);
x-microsoft-antispam-prvs: <MWHPR21MB0509D1B1939BD1C8809292CE87BB0@MWHPR21MB0509.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(920507026)(6055026)(61426038)(61427038)(6041248)(20161123558100)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0509; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0509; 
x-forefront-prvs: 0378F1E47A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(39450400003)(39840400002)(39850400002)(39410400002)(39400400002)(47760400005)(377454003)(189002)(24454002)(199003)(4326008)(189998001)(86362001)(68736007)(86612001)(53936002)(99286003)(8990500004)(55016002)(5005710100001)(54906002)(105586002)(2906002)(236005)(5660300001)(3280700002)(9686003)(2950100002)(2900100001)(790700001)(106356001)(10090500001)(93886004)(6436002)(74316002)(34040400001)(54896002)(102836003)(6116002)(3660700001)(606006)(19609705001)(10290500003)(478600001)(6246003)(50986999)(5890100001)(6506006)(76176999)(54356999)(97736004)(39060400002)(6306002)(101416001)(8676002)(14454004)(8936002)(81166006)(81156014)(53546010)(38730400002)(77096006)(966005)(7736002)(25786009)(72206003)(33656002)(229853002)(7696004); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0509; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB0141CA1D9639DB4EA462223787BB0MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2017 17:11:24.7163 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0509
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/PrYxWwykJD05_cdWKsUzZxnWdlo>
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: Mon, 24 Jul 2017 17:11:30 -0000

--_000_MWHPR21MB0141CA1D9639DB4EA462223787BB0MWHPR21MB0141namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

V2hpY2ggd291bGQgc2VlbSB0byBsZW5kIGl0c2VsZiBhZ2FpbiB0byB0aGUgaWRlYSB0aGF0IHRo
ZSBzZW5kZXIgb2YgZGF0YSBkZWNpZGVzIGFuZCBjYXJyaWVzIG91dCB3aGF0IHJlbGlhYmlsaXR5
IHBvbGljeSBpdCB3YW50cy4gIChUaG91Z2ggb2YgY291cnNlLCB3aGVuIHlvdeKAmXJlIGRlYWxp
bmcgd2l0aCBtdWx0aWNhc3QsIGFsbCBsb3NzIHJlY292ZXJ5IGlzIG91dCBpbiB0aGUgd2VlZHMu
KQ0KDQpGcm9tOiBRVUlDIFttYWlsdG86cXVpYy1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhhbGYg
T2YgTHVjYXMgUGFyZHVlDQpTZW50OiBNb25kYXksIEp1bHkgMjQsIDIwMTcgOTo1MSBBTQ0KVG86
IE1pa2UgQmlzaG9wIDxNaWNoYWVsLkJpc2hvcEBtaWNyb3NvZnQuY29tPjsgTWFydGluIFRob21z
b24gPG1hcnRpbi50aG9tc29uQGdtYWlsLmNvbT47IFN3aW5kZWxscywgVGhvbWFzIChOb2tpYSAt
IEdCKSA8dGhvbWFzLnN3aW5kZWxsc0Bub2tpYS5jb20+DQpDYzogUGhpbGlwcCBTLiBUaWVzZWwg
PHBoaWxzQGluLXBhbmlrLmRlPjsgSWFuIFN3ZXR0IDxpYW5zd2V0dEBnb29nbGUuY29tPjsgSUVU
RiBRVUlDIFdHIDxxdWljQGlldGYub3JnPg0KU3ViamVjdDogUkU6IEhUVFAgcmVxdWVzdHMgb24g
b25lIHN0cmVhbSAjNjkyDQoNCk1pa2UsDQoNClRoYW5rcyBmb3IgYW5zd2VyaW5nIG15IGluaXRp
YWwgcXVlc3Rpb25zLg0KDQpUaGUgZGlzY3Vzc2lvbiBoYXMgZ29uZSBvZmYgb24gYSBiaXQgb2Yg
YSB0YW5nZW50IGJ1dCBpdCBpcyB2ZXJ5IGludGVyZXN0aW5nLg0KDQpNaWtlIEJpc2hvcCB3cm90
ZToNCg0KVGhlIE5BQ0sgaGFzIHRoZSBzYW1lIHByb2JsZW0gYXMgb3Zlci1hY2tpbmcg4oCTIHlv
dSBjYW7igJl0IGFjayBmcmFtZXMsIHlvdSBhY2sgcGFja2V0cy4gIFdoaWxlIEkgc2VlIHRoZSBh
cmd1bWVudCBmb3Igc2F5aW5nIHRoYXQgdW5yZWxpYWJsZSBkZWxpdmVyeSBpcyBhIGNsaWVudCBj
aG9pY2UsIG5vdCBhIHNlbmRlciBvbmUsIGl0IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHdlIGNvdWxk
IHJlYXNvbmFibGUgZXhwcmVzcyBhdCB0aGUgYXBwbGljYXRpb24gbGF5ZXIgYW5kIHRoZW4gaGF2
ZSB0aGUgc2VuZGVyIGFjdHVhbGx5IHBlcmZvcm0uDQoNClNpbXBsZXN0IG9wdGlvbnMgSSBzZWUg
d291bGQgYmU6DQoNCiAgKiAgIE5vIHJldHJhbnNtaXNzaW9ucyBldmVyIChsb2NhbCBjb25maWd1
cmF0aW9uIHRvIHN0YWNrLCBSU1RfU1RSRUFNIGFmdGVyIHN0cmVhbSBjb21wbGV0aW9uKQ0KICAq
ICAgTm8gcmV0cmFuc21pc3Npb25zIGFmdGVyIGEgY2VydGFpbiB0aW1lb3V0IChSU1RfU1RSRUFN
IG9uIGEgdGltZXIsIGlmIHlvdSBhc3N1bWUgdGhlIHN0cmVhbSBkYXRhIGFsbCBiZWNvbWVzIGF2
YWlsYWJsZSBhdCBvbmNlKQ0KDQpTbGlnaHRseSBtb3JlIGNvbXBsZXggd291bGQgYmUgc29tZXRo
aW5nIGxpa2Ug4oCcb25seSByZXRyYW5zbWl0IGFueSBnaXZlbiBzZWdtZW50IG9uY2XigJ0gb3Ig
4oCcZ2l2ZSB1cCBvbiByZXRyYW5zbWlzc2lvbnMgYWZ0ZXIgYSBzZWdtZW50IGlzIFggbXMgb2xk
LuKAnQ0KDQpPdXIgaW1wbGVtZW50YXRpb24gb2YgSFRUUCBvdmVyIG11bHRpY2FzdCBRVUlDPGh0
dHBzOi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNB
JTJGJTJGdG9vbHMuaWV0Zi5vcmclMkZodG1sJTJGZHJhZnQtcGFyZHVlLXF1aWMtaHR0cC1tY2Fz
dCZkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jvc29mdC5jb20lN0NhMTVjM2Y3
MTZhMTI0MTdlOTRlMDA4ZDRkMmI0Mzc2NiU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFk
YjQ3JTdDMSU3QzAlN0M2MzYzNjUxMTg4NjA2MDcxNTAmc2RhdGE9N1hXS2pvaEJxZ0JKdHA4Yldq
RXdndDhKWEt5UG10eE91NzlwVlVlVGliZyUzRCZyZXNlcnZlZD0wPiBkb2VzIHNvbWV0aGluZyBz
aW1pbGFyIHRvIHlvdXIgZmlyc3Qgb3B0aW9uLiBUaGUgc2VuZGVyIChzZXJ2ZXIpIGlzIGEgY29u
dGludWFsIHNldCBvZiBTZXJ2ZXIgUHVzaGVzIGFuZCBjaHVybnMgb3V0IGZyYW1lcywgaXQgcHJv
Z3Jlc3NlcyBzdHJlYW0gc3RhdGUgaW50byBjb21wbGV0aW9uIGl0c2VsZi4gVGhpcyBzZWVtcyBz
aW1pbGFyIHRvIHRoZSBkZXNjcmlwdGlvbiBJYW4gZ2F2ZSBpbiBQcmFndWUgKHdoZW4gdGFsa2lu
ZyBhYm91dCBnUVVJQyBTZXJ2ZXIgUHVzaCkgZHVyaW5nIHRoZSB1bmlkaXJlY3Rpb25hbCBzdHJl
YW1zIGRpc2N1c3Npb24uDQoNClRvIGVjaG8gVGhvbWFz4oCZIHZpZXcgb24gY2xpZW50IGRlY2lz
aW9uIG1ha2luZzsgaW4gb3VyIHNldCB1cCB0aGUgUVVJQyBjb250ZXh0IGlzIGVudGlyZWx5IHVu
aWRpcmVjdGlvbmFsIGFuZCB0aGVyZSBpcyBubyBjaGFubmVsIGZvciBhIGNsaWVudCB0byBleHBy
ZXNzIGRlc2lyZXMgb2YgcGFydGlhbCByZWxpYWJpbGl0eSBvciB0byBOQUNLLiBJbiB0aGUgbWFu
eS10by1vbmUgcmVsYXRpb25zaGlwIGRpZmZlcmVudCByZWNlaXZlcnMgKGNsaWVudHMpIG1heSBl
eHBlcmllbmNlIGRpZmZlcmVudCBuZXR3b3JrIGNvbmRpdGlvbnMgbGVhZGluZyB0byB2YXJpYW5j
ZSBpbiBsb3N0IHBhY2tldHMuIFdpdGggdGhlc2UgY29uc3RyYWludHMgd2UgY3VycmVudGx5IGRl
bGVnYXRlIHRoZSBsb3NzIHJlY292ZXJ5IHRvIGFwcGxpY2F0aW9uLWxheWVyIG1lYW5zIChIVFRQ
IGJ5dGUtcmFuZ2UgcmVxdWVzdHMpIG91dHNpZGUgb2YgdGhlIFFVSUMgY29udGV4dCAoZS5nLiBi
YWNrIHRvIGEgQ0ROKS4gQSB0aWdodGVyIGludGVncmF0aW9uIGlzIHNvbWV0aGluZyB3ZSBhcmUg
ZXhwbG9yaW5nLCBoZW5jZSB3aHkgSSBmaW5kIHRoaXMgZGlzY3Vzc2lvbiBpbnRlcmVzdGluZy4g
SSBjYW4gc2VlIHNvbWUga2luZCBvZiBoeWJyaWQgbW9kZSBhcyBiZWluZyB1c2VmdWwgaS5lLiBz
ZXJ2ZXIgZGlyZWN0ZWQgcG9saWN5IChwZXJoYXBzIGxpbWl0ZWQgdG8gY29ubmVjdGlvbiwgcGF0
aCBldGMuKSB3aXRoIHN0cm9uZyBjbGllbnQgZGVjaXNpb24gbWFraW5nIGFzc2lzdGVkIGJ5IGNs
aWVudC10by1zZXJ2ZXIgaGludHMgZm9yIGVhY2ggcmVzb3VyY2UuDQoNCkx1Y2FzDQoNCg0KDQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrPGh0dHBz
Oi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYl
MkZ3d3cuYmJjLmNvLnVrJmRhdGE9MDIlN0MwMSU3Q21pY2hhZWwuYmlzaG9wJTQwbWljcm9zb2Z0
LmNvbSU3Q2ExNWMzZjcxNmExMjQxN2U5NGUwMDhkNGQyYjQzNzY2JTdDNzJmOTg4YmY4NmYxNDFh
ZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzNjM2NTExODg2MDYwNzE1MCZzZGF0YT1FTmFZ
bkdpZmdoSXVqbXNoclI3cmM0N0RhSTJYR3ZyWENFdHJmU2dGcUZRJTNEJnJlc2VydmVkPTA+DQpU
aGlzIGUtbWFpbCAoYW5kIGFueSBhdHRhY2htZW50cykgaXMgY29uZmlkZW50aWFsIGFuZCBtYXkg
Y29udGFpbiBwZXJzb25hbCB2aWV3cyB3aGljaCBhcmUgbm90IHRoZSB2aWV3cyBvZiB0aGUgQkJD
IHVubGVzcyBzcGVjaWZpY2FsbHkgc3RhdGVkLg0KSWYgeW91IGhhdmUgcmVjZWl2ZWQgaXQgaW4g
ZXJyb3IsIHBsZWFzZSBkZWxldGUgaXQgZnJvbSB5b3VyIHN5c3RlbS4NCkRvIG5vdCB1c2UsIGNv
cHkgb3IgZGlzY2xvc2UgdGhlIGluZm9ybWF0aW9uIGluIGFueSB3YXkgbm9yIGFjdCBpbiByZWxp
YW5jZSBvbiBpdCBhbmQgbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkuDQpQbGVhc2Ugbm90
ZSB0aGF0IHRoZSBCQkMgbW9uaXRvcnMgZS1tYWlscyBzZW50IG9yIHJlY2VpdmVkLg0KRnVydGhl
ciBjb21tdW5pY2F0aW9uIHdpbGwgc2lnbmlmeSB5b3VyIGNvbnNlbnQgdG8gdGhpcy4NCg0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQo=

--_000_MWHPR21MB0141CA1D9639DB4EA462223787BB0MWHPR21MB0141namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMg
MiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1
IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWws
IGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNvTGlz
dFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3JhcGgNCgl7
bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGluOw0KCW1hcmdpbi1yaWdodDow
aW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6LjVpbjsNCgltYXJnaW4tYm90
dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs
c2Fucy1zZXJpZjt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWww
DQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsN
CgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdp
bi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmO30NCnAuYjUxMDZkNmEtMTRkYi00YzVlLWI1OTQtNmE3YTQxMTc1MDNiLCBsaS5i
NTEwNmQ2YS0xNGRiLTRjNWUtYjU5NC02YTdhNDExNzUwM2IsIGRpdi5iNTEwNmQ2YS0xNGRiLTRj
NWUtYjU5NC02YTdhNDExNzUwM2INCgl7bXNvLXN0eWxlLW5hbWU6YjUxMDZkNmEtMTRkYi00YzVl
LWI1OTQtNmE3YTQxMTc1MDNiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0
Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7
fQ0Kc3Bhbi5tNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3OTE0OTMzNzAzNTQ4NjA5M20tMjg0OTgx
OTk4Mjk3MTAyODIwNWFwcGxlLWNvbnZlcnRlZC1zcGFjZQ0KCXttc28tc3R5bGUtbmFtZTptXzc0
MDg3MjkzNjMxNTU0MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNtLTI4NDk4MTk5ODI5NzEwMjgy
MDVhcHBsZS1jb252ZXJ0ZWQtc3BhY2U7fQ0Kc3Bhbi5tNzQwODcyOTM2MzE1NTQyMTM1M20tMjQ3
OTE0OTMzNzAzNTQ4NjA5M2hvZW56Yg0KCXttc28tc3R5bGUtbmFtZTptXzc0MDg3MjkzNjMxNTU0
MjEzNTNtLTI0NzkxNDkzMzcwMzU0ODYwOTNob2VuemI7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjINCgl7
bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2Vy
aWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5bGUyMw0KCXttc28tc3R5bGUt
dHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xv
cjp3aW5kb3d0ZXh0O30NCnNwYW4uaWwNCgl7bXNvLXN0eWxlLW5hbWU6aWw7fQ0Kc3Bhbi5FbWFp
bFN0eWxlMjYNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6
IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQouTXNvQ2hwRGVmYXVs
dA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAuMHB0O30NCkBw
YWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4w
aW4gMS4waW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9
DQovKiBMaXN0IERlZmluaXRpb25zICovDQpAbGlzdCBsMA0KCXttc28tbGlzdC1pZDo3Nzk5NTM5
MDE7DQoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjU2Njc3
NDEyMCA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5
MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5Mzt9DQpAbGlzdCBsMDpsZXZlbDENCgl7bXNvLWxl
dmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2
ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4
dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDIN
Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJ
bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0
Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBs
aXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2lu
Z2RpbmdzO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxs
ZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9u
dC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9u
ZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWlu
Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWw2DQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2
ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrv
grc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv
bjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxp
c3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXIt
cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJp
ZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs
bGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZv
bnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMQ0KCXttc28tbGlzdC1pZDoxOTkzODI4OTYw
Ow0KCW1zby1saXN0LXRlbXBsYXRlLWlkczoxNzc4Njg2OTgyO30NCkBsaXN0IGwxOmxldmVsMQ0K
CXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0K
CW1zby1sZXZlbC10YWItc3RvcDouNWluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglm
b250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9w
OjEuMGluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot
LjI1aW47DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7
fQ0KQGxpc3QgbDE6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCglt
c28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjEuNWluOw0KCW1zby1sZXZl
bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJbXNvLWFuc2kt
Zm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw0
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOjIuMGluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsN
Cglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1i
ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1z
dG9wOjIuNWluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu
dDotLjI1aW47DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1i
b2w7fQ0KQGxpc3QgbDE6bGV2ZWw2DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsN
Cgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjMuMGluOw0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJbXNvLWFu
c2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2
ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrv
grc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjMuNWluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp
b246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBw
dDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw4DQoJe21zby1sZXZlbC1u
dW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRh
Yi1zdG9wOjQuMGluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWlu
ZGVudDotLjI1aW47DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpT
eW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl
dDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjQuNWluOw0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJbXNv
LWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0Kb2wNCgl7bWFy
Z2luLWJvdHRvbTowaW47fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KLS0+PC9zdHlsZT48
IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNw
aWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHht
bD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBk
YXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0K
PGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFz
cz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldoaWNoIHdvdWxkIHNlZW0g
dG8gbGVuZCBpdHNlbGYgYWdhaW4gdG8gdGhlIGlkZWEgdGhhdCB0aGUgc2VuZGVyIG9mIGRhdGEg
ZGVjaWRlcyBhbmQgY2FycmllcyBvdXQgd2hhdCByZWxpYWJpbGl0eSBwb2xpY3kgaXQgd2FudHMu
Jm5ic3A7IChUaG91Z2ggb2YgY291cnNlLCB3aGVuIHlvdeKAmXJlIGRlYWxpbmcgd2l0aCBtdWx0
aWNhc3QsDQo8aT5hbGw8L2k+IGxvc3MgcmVjb3ZlcnkgaXMgb3V0IGluIHRoZSB3ZWVkcy4pPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEg
MS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Yj5Gcm9tOjwvYj4gUVVJQyBbbWFpbHRvOnF1aWMtYm91bmNlc0BpZXRmLm9yZ10gPGI+T24gQmVo
YWxmIE9mDQo8L2I+THVjYXMgUGFyZHVlPGJyPg0KPGI+U2VudDo8L2I+IE1vbmRheSwgSnVseSAy
NCwgMjAxNyA5OjUxIEFNPGJyPg0KPGI+VG86PC9iPiBNaWtlIEJpc2hvcCAmbHQ7TWljaGFlbC5C
aXNob3BAbWljcm9zb2Z0LmNvbSZndDs7IE1hcnRpbiBUaG9tc29uICZsdDttYXJ0aW4udGhvbXNv
bkBnbWFpbC5jb20mZ3Q7OyBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQikgJmx0O3Rob21h
cy5zd2luZGVsbHNAbm9raWEuY29tJmd0Ozxicj4NCjxiPkNjOjwvYj4gUGhpbGlwcCBTLiBUaWVz
ZWwgJmx0O3BoaWxzQGluLXBhbmlrLmRlJmd0OzsgSWFuIFN3ZXR0ICZsdDtpYW5zd2V0dEBnb29n
bGUuY29tJmd0OzsgSUVURiBRVUlDIFdHICZsdDtxdWljQGlldGYub3JnJmd0Ozxicj4NCjxiPlN1
YmplY3Q6PC9iPiBSRTogSFRUUCByZXF1ZXN0cyBvbiBvbmUgc3RyZWFtICM2OTI8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIj5NaWtlLDxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LUdCIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1HQiI+VGhhbmtzIGZvciBhbnN3ZXJpbmcgbXkgaW5pdGlhbCBxdWVzdGlv
bnMuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tR0IiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLUdCIj5UaGUgZGlzY3Vzc2lvbiBoYXMgZ29uZSBvZmYgb24gYSBi
aXQgb2YgYSB0YW5nZW50IGJ1dCBpdCBpcyB2ZXJ5IGludGVyZXN0aW5nLjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF
Ti1HQiI+TWlrZSBCaXNob3Agd3JvdGU6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
cD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7
cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUgTkFD
SyBoYXMgdGhlIHNhbWUgcHJvYmxlbSBhcyBvdmVyLWFja2luZyDigJMgeW91IGNhbuKAmXQgYWNr
IGZyYW1lcywgeW91IGFjayBwYWNrZXRzLiZuYnNwOyBXaGlsZSBJIHNlZSB0aGUgYXJndW1lbnQg
Zm9yIHNheWluZyB0aGF0IHVucmVsaWFibGUgZGVsaXZlcnkgaXMgYSBjbGllbnQgY2hvaWNlLCBu
b3QgYSBzZW5kZXIgb25lLCBpdCBzZWVtcyBsaWtlIHNvbWV0aGluZyB3ZSBjb3VsZCByZWFzb25h
YmxlIGV4cHJlc3MNCiBhdCB0aGUgYXBwbGljYXRpb24gbGF5ZXIgYW5kIHRoZW4gaGF2ZSB0aGUg
c2VuZGVyIGFjdHVhbGx5IHBlcmZvcm0uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlNpbXBsZXN0
IG9wdGlvbnMgSSBzZWUgd291bGQgYmU6PG86cD48L286cD48L3A+DQo8dWwgc3R5bGU9Im1hcmdp
bi10b3A6MGluIiB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFy
Z2luLWxlZnQ6MGluO21zby1saXN0OmwwIGxldmVsMSBsZm8zIj5ObyByZXRyYW5zbWlzc2lvbnMg
ZXZlciAobG9jYWwgY29uZmlndXJhdGlvbiB0byBzdGFjaywgUlNUX1NUUkVBTSBhZnRlciBzdHJl
YW0gY29tcGxldGlvbik8bzpwPjwvbzpwPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtYXJnaW4tbGVmdDowaW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzMiPk5vIHJldHJhbnNtaXNz
aW9ucyBhZnRlciBhIGNlcnRhaW4gdGltZW91dCAoUlNUX1NUUkVBTSBvbiBhIHRpbWVyLCBpZiB5
b3UgYXNzdW1lIHRoZSBzdHJlYW0gZGF0YSBhbGwgYmVjb21lcyBhdmFpbGFibGUgYXQgb25jZSk8
bzpwPjwvbzpwPjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+U2xpZ2h0bHkgbW9yZSBjb21wbGV4IHdvdWxk
IGJlIHNvbWV0aGluZyBsaWtlIOKAnG9ubHkgcmV0cmFuc21pdCBhbnkgZ2l2ZW4gc2VnbWVudCBv
bmNl4oCdIG9yIOKAnGdpdmUgdXAgb24gcmV0cmFuc21pc3Npb25zIGFmdGVyIGEgc2VnbWVudCBp
cyBYIG1zIG9sZC7igJ08bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PdXIgaW1wbGVt
ZW50YXRpb24gb2YgPGEgaHJlZj0iaHR0cHM6Ly9uYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91
dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZ0b29scy5pZXRmLm9yZyUyRmh0bWwlMkZkcmFm
dC1wYXJkdWUtcXVpYy1odHRwLW1jYXN0JmFtcDtkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hv
cCU0MG1pY3Jvc29mdC5jb20lN0NhMTVjM2Y3MTZhMTI0MTdlOTRlMDA4ZDRkMmI0Mzc2NiU3Qzcy
Zjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjUxMTg4NjA2MDcx
NTAmYW1wO3NkYXRhPTdYV0tqb2hCcWdCSnRwOGJXakV3Z3Q4SlhLeVBtdHhPdTc5cFZVZVRpYmcl
M0QmYW1wO3Jlc2VydmVkPTAiPg0KSFRUUCBvdmVyIG11bHRpY2FzdCBRVUlDPC9hPiBkb2VzIHNv
bWV0aGluZyBzaW1pbGFyIHRvIHlvdXIgZmlyc3Qgb3B0aW9uLiBUaGUgc2VuZGVyIChzZXJ2ZXIp
IGlzIGEgY29udGludWFsIHNldCBvZiBTZXJ2ZXIgUHVzaGVzIGFuZCBjaHVybnMgb3V0IGZyYW1l
cywgaXQgcHJvZ3Jlc3NlcyBzdHJlYW0gc3RhdGUgaW50byBjb21wbGV0aW9uIGl0c2VsZi4gVGhp
cyBzZWVtcyBzaW1pbGFyIHRvIHRoZSBkZXNjcmlwdGlvbiBJYW4gZ2F2ZSBpbiBQcmFndWUNCiAo
d2hlbiB0YWxraW5nIGFib3V0IGdRVUlDIFNlcnZlciBQdXNoKSBkdXJpbmcgdGhlIHVuaWRpcmVj
dGlvbmFsIHN0cmVhbXMgZGlzY3Vzc2lvbi48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VG8gZWNo
byBUaG9tYXPigJkgdmlldyBvbiBjbGllbnQgZGVjaXNpb24gbWFraW5nOyBpbiBvdXIgc2V0IHVw
IHRoZSBRVUlDIGNvbnRleHQgaXMgZW50aXJlbHkgdW5pZGlyZWN0aW9uYWwgYW5kIHRoZXJlIGlz
IG5vIGNoYW5uZWwgZm9yIGEgY2xpZW50IHRvIGV4cHJlc3MgZGVzaXJlcyBvZiBwYXJ0aWFsIHJl
bGlhYmlsaXR5IG9yIHRvIE5BQ0suIEluIHRoZSBtYW55LXRvLW9uZSByZWxhdGlvbnNoaXAgZGlm
ZmVyZW50DQogcmVjZWl2ZXJzIChjbGllbnRzKSBtYXkgZXhwZXJpZW5jZSBkaWZmZXJlbnQgbmV0
d29yayBjb25kaXRpb25zIGxlYWRpbmcgdG8gdmFyaWFuY2UgaW4gbG9zdCBwYWNrZXRzLiBXaXRo
IHRoZXNlIGNvbnN0cmFpbnRzIHdlIGN1cnJlbnRseSBkZWxlZ2F0ZSB0aGUgbG9zcyByZWNvdmVy
eSB0byBhcHBsaWNhdGlvbi1sYXllciBtZWFucyAoSFRUUCBieXRlLXJhbmdlIHJlcXVlc3RzKSBv
dXRzaWRlIG9mIHRoZSBRVUlDIGNvbnRleHQgKGUuZy4gYmFjaw0KIHRvIGEgQ0ROKS4gQSB0aWdo
dGVyIGludGVncmF0aW9uIGlzIHNvbWV0aGluZyB3ZSBhcmUgZXhwbG9yaW5nLCBoZW5jZSB3aHkg
SSBmaW5kIHRoaXMgZGlzY3Vzc2lvbiBpbnRlcmVzdGluZy4gSSBjYW4gc2VlIHNvbWUga2luZCBv
ZiBoeWJyaWQgbW9kZSBhcyBiZWluZyB1c2VmdWwgaS5lLiBzZXJ2ZXIgZGlyZWN0ZWQgcG9saWN5
IChwZXJoYXBzIGxpbWl0ZWQgdG8gY29ubmVjdGlvbiwgcGF0aCBldGMuKSB3aXRoIHN0cm9uZyBj
bGllbnQgZGVjaXNpb24NCiBtYWtpbmcgYXNzaXN0ZWQgYnkgY2xpZW50LXRvLXNlcnZlciBoaW50
cyBmb3IgZWFjaCByZXNvdXJjZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+THVjYXM8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJiNTEwNmQ2YS0xNGRiLTRjNWUtYjU5NC02YTdhNDExNzUwM2Ii
PjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iYjUxMDZkNmEtMTRkYi00YzVlLWI1OTQtNmE3YTQxMTc1MDNiIj48c3BhbiBsYW5nPSJFTi1H
QiI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4NCjwvc3Bhbj48c3BhbiBsYW5nPSJF
Ti1HQiIgc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3
IFJvbWFuJnF1b3Q7LHNlcmlmIj48YnI+DQo8YSBocmVmPSJodHRwczovL25hMDEuc2FmZWxpbmtz
LnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGd3d3LmJiYy5jby51ayZh
bXA7ZGF0YT0wMiU3QzAxJTdDbWljaGFlbC5iaXNob3AlNDBtaWNyb3NvZnQuY29tJTdDYTE1YzNm
NzE2YTEyNDE3ZTk0ZTAwOGQ0ZDJiNDM3NjYlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDEx
ZGI0NyU3QzElN0MwJTdDNjM2MzY1MTE4ODYwNjA3MTUwJmFtcDtzZGF0YT1FTmFZbkdpZmdoSXVq
bXNoclI3cmM0N0RhSTJYR3ZyWENFdHJmU2dGcUZRJTNEJmFtcDtyZXNlcnZlZD0wIiB0YXJnZXQ9
Il9ibGFuayI+aHR0cDovL3d3dy48c3BhbiBjbGFzcz0iaWwiPmJiYzwvc3Bhbj4uPHNwYW4gY2xh
c3M9ImlsIj5jbzwvc3Bhbj4uPHNwYW4gY2xhc3M9ImlsIj51azwvc3Bhbj48L2E+PGJyPg0KVGhp
cyBlLW1haWwgKGFuZCBhbnkgYXR0YWNobWVudHMpIGlzIGNvbmZpZGVudGlhbCBhbmQgbWF5IGNv
bnRhaW4gcGVyc29uYWwgdmlld3Mgd2hpY2ggYXJlIG5vdCB0aGUgdmlld3Mgb2YgdGhlDQo8c3Bh
biBjbGFzcz0iaWwiPkJCQzwvc3Bhbj4gdW5sZXNzIHNwZWNpZmljYWxseSBzdGF0ZWQuPGJyPg0K
SWYgeW91IGhhdmUgcmVjZWl2ZWQgaXQgaW4gZXJyb3IsIHBsZWFzZSBkZWxldGUgaXQgZnJvbSB5
b3VyIHN5c3RlbS48YnI+DQpEbyBub3QgdXNlLCBjb3B5IG9yIGRpc2Nsb3NlIHRoZSBpbmZvcm1h
dGlvbiBpbiBhbnkgd2F5IG5vciBhY3QgaW4gcmVsaWFuY2Ugb24gaXQgYW5kIG5vdGlmeSB0aGUg
c2VuZGVyIGltbWVkaWF0ZWx5Ljxicj4NClBsZWFzZSBub3RlIHRoYXQgdGhlIDxzcGFuIGNsYXNz
PSJpbCI+QkJDPC9zcGFuPiBtb25pdG9ycyBlLW1haWxzIHNlbnQgb3IgcmVjZWl2ZWQuPGJyPg0K
RnVydGhlciBjb21tdW5pY2F0aW9uIHdpbGwgc2lnbmlmeSB5b3VyIGNvbnNlbnQgdG8gdGhpcy48
L3NwYW4+PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJiNTEwNmQ2YS0xNGRiLTRjNWUtYjU5NC02YTdhNDExNzUwM2IiPjxzcGFuIGxhbmc9IkVOLUdC
Ij4tLS0tLS0tLS0tLS0tLS0tLS0tLS08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwv
Ym9keT4NCjwvaHRtbD4NCg==

--_000_MWHPR21MB0141CA1D9639DB4EA462223787BB0MWHPR21MB0141namp_--


From nobody Mon Jul 24 11:52:29 2017
Return-Path: <Michael.Bishop@microsoft.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 749D5131E9C for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 11:52:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.802
X-Spam-Level: 
X-Spam-Status: No, score=-2.802 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 7nUDTvIZx3Oj for <quic@ietfa.amsl.com>; Mon, 24 Jul 2017 11:52:25 -0700 (PDT)
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0116.outbound.protection.outlook.com [104.47.37.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C788D131EE7 for <quic@ietf.org>; Mon, 24 Jul 2017 11:52:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=mnSKyoJFn/R/1jvF9AVqemmtDdj3U1IkOFEzI83ckFE=; b=QPA2ofQ0FdyZ+mG6Lg2lWcordCTYMpVYHlqqm17pfVL/k+bF3hUT3rL6Zwc4WvOKBU2DfJ3In2rIMvHwnU+TIwPPtULkSez8JKuGGxJ95YE5xrgcrQzQTDIHs16U9EBr+sJQhUngOJDH7tlbJ557EzNzWSKA7hAPhImCOFnTnIQ=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0638.namprd21.prod.outlook.com (10.175.141.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.2; Mon, 24 Jul 2017 18:52:21 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1282.008; Mon, 24 Jul 2017 18:52:20 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: IETF QUIC WG <quic@ietf.org>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Subject: FW: New Version Notification for draft-bishop-httpbis-altsvc-quic-00.txt
Thread-Topic: New Version Notification for draft-bishop-httpbis-altsvc-quic-00.txt
Thread-Index: AQHTBK1dyiL63fQtrk235YezlvdytKJjUWWQ
Date: Mon, 24 Jul 2017 18:52:20 +0000
Message-ID: <MWHPR21MB0141132A1509DBED2FCE257F87BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <150092207410.31901.6837991788214025202.idtracker@ietfa.amsl.com>
In-Reply-To: <150092207410.31901.6837991788214025202.idtracker@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
x-originating-ip: [2001:4898:80e8:a::6d4]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0638; 7:84h++IocqjBXRKEJyWK7vvNpS39P7lV33073iexJHGQT8uXoVDZI98lGiFViLh2R3WfPj6514IdJUnIZVf6aIOMdjrlkpjmXTPJexagdarPlOt4pyJ0FOrtakZWo520Sf56tuX1KYysv4p6xSBVm6TmkUy041/RiHZPvqucjZoHTiFrQ62mnNoAug7lgHzEjh9+I54VCPnPCtJFP8ZQaG3ZBYzxs4ZA0TvOC6Xy80bGn9QiBJveGdw5Cl2EuhY5h59B9qPpi1fvA8Thie4+WBC6YGPo6Ym+flKJGajeBbUx3ILayg+3ywFDdphkUuD6v+/2ZCwXY2mnPwbC2CTMTwCM7NTKxKOKQrUI8O6SHk0yqL70PL8JFp5ZbJe61dksJ7r338vGN2ZHYPS+y2/S/48V520jP8Ek/UzywUQC5U+VK+MSONNduuvvfGOTpNuSPgZXOcRLkM2m242WtcQer79V0iOh8AGLmbRGEqN6ZxvLm1n2f8kRPFMhvAvwxy4slCdsBIMVB7rD7DAo5KuNUPZJh0WrzzOTxrp6nLsqnQnoVtyBCcmv4JLUl19hieu3nWpkmkoA7As5V6xJx3S8IlbOCqGw0yezUQlbr67epm5UChoULRxwy23NfC9b2xjKCH5t3NTvEjjOPdTxePnHqRYnS/MpYAsF00Ab6s72CmaLlUCbZwKQ5QJqtqhdwGE04XcUrR1f/2VM1HCHEYAfS2Z4EOVs2w8gGVbzl/CiFMd+fxMblUqRTGiRzavQb3Vm5FR5IZr3cTtIT3GLRh3Oid/QMgHI8Fl6msIlHkxWpBx+uf93zfupVyfoJ+Fvc5d4i
x-ms-office365-filtering-correlation-id: d84ccafd-fe81-45fd-a3ac-08d4d2c51d6c
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0638; 
x-ms-traffictypediagnostic: MWHPR21MB0638:
x-exchange-antispam-report-test: UriScan:(89211679590171)(166708455590820)(189930954265078)(219752817060721)(21748063052155);
x-microsoft-antispam-prvs: <MWHPR21MB063892EB4EFA68CFF4C8975A87BB0@MWHPR21MB0638.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(61426038)(61427038)(6041248)(20161123560025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0638; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0638; 
x-forefront-prvs: 0378F1E47A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39400400002)(39410400002)(39850400002)(39840400002)(39860400002)(39450400003)(47760400005)(189002)(377424004)(377454003)(13464003)(199003)(15650500001)(9686003)(478600001)(6116002)(55016002)(68736007)(236005)(14454004)(2900100001)(25786009)(6506006)(81156014)(6306002)(81166006)(53936002)(54896002)(2473003)(72206003)(86612001)(102836003)(606006)(6436002)(99286003)(575784001)(790700001)(86362001)(8676002)(54356999)(33656002)(7696004)(8936002)(5660300001)(3660700001)(106356001)(3280700002)(97736004)(10290500003)(10090500001)(50986999)(230783001)(76176999)(77096006)(7110500001)(189998001)(38730400002)(966005)(53546010)(5005710100001)(74316002)(10710500007)(101416001)(2501003)(229853002)(2906002)(2950100002)(8990500004)(2420400007)(7736002)(105586002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0638; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB0141132A1509DBED2FCE257F87BB0MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2017 18:52:20.7631 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0638
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/gGZD2eqkgP1yZzeAMnRnOp_Steg>
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: Mon, 24 Jul 2017 18:52:28 -0000

--_000_MWHPR21MB0141132A1509DBED2FCE257F87BB0MWHPR21MB0141namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

Rml4ZXMgIzM3MTxodHRwczovL2dpdGh1Yi5jb20vcXVpY3dnL2Jhc2UtZHJhZnRzL2lzc3Vlcy8z
NzE+Lg0KDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGludGVybmV0LWRy
YWZ0c0BpZXRmLm9yZyBbbWFpbHRvOmludGVybmV0LWRyYWZ0c0BpZXRmLm9yZ10NClNlbnQ6IE1v
bmRheSwgSnVseSAyNCwgMjAxNyAxMTo0OCBBTQ0KVG86IE1pa2UgQmlzaG9wIDxNaWNoYWVsLkJp
c2hvcEBtaWNyb3NvZnQuY29tPg0KU3ViamVjdDogTmV3IFZlcnNpb24gTm90aWZpY2F0aW9uIGZv
ciBkcmFmdC1iaXNob3AtaHR0cGJpcy1hbHRzdmMtcXVpYy0wMC50eHQNCg0KDQoNCg0KDQpBIG5l
dyB2ZXJzaW9uIG9mIEktRCwgZHJhZnQtYmlzaG9wLWh0dHBiaXMtYWx0c3ZjLXF1aWMtMDAudHh0
DQoNCmhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzdWJtaXR0ZWQgYnkgTWlrZSBCaXNob3AgYW5kIHBv
c3RlZCB0byB0aGUgSUVURiByZXBvc2l0b3J5Lg0KDQoNCg0KTmFtZTogICAgICAgICAgICAgICAg
ICBkcmFmdC1iaXNob3AtaHR0cGJpcy1hbHRzdmMtcXVpYw0KDQpSZXZpc2lvbjogICAgICAgICAg
ICAgIDAwDQoNClRpdGxlOiAgICAgICAgICAgICAgICAgICAgICBBTFRTVkMgRnJhbWUgaW4gSFRU
UC9RVUlDDQoNCkRvY3VtZW50IGRhdGU6ICAgICAgICAgICAgICAgMjAxNy0wNy0yNA0KDQpHcm91
cDogICAgICAgICAgICAgICAgICBJbmRpdmlkdWFsIFN1Ym1pc3Npb24NCg0KUGFnZXM6ICAgICAg
ICAgICAgICAgICAgIDMNCg0KVVJMOiAgICAgICAgICAgIGh0dHBzOi8vbmEwMS5zYWZlbGlua3Mu
cHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGd3d3LmlldGYub3JnJTJG
aW50ZXJuZXQtZHJhZnRzJTJGZHJhZnQtYmlzaG9wLWh0dHBiaXMtYWx0c3ZjLXF1aWMtMDAudHh0
JmRhdGE9MDIlN0MwMSU3Q21pY2hhZWwuYmlzaG9wJTQwbWljcm9zb2Z0LmNvbSU3Q2JiYTdhMjM2
YjE5NTQ4MTU1OTBkMDhkNGQyYzQ3ZjAxJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRi
NDclN0MxJTdDMCU3QzYzNjM2NTE4ODc2NTQxNTk4MSZzZGF0YT1xdGZyak1jcE1wZHVwWHN1azJ6
NndvTXJ2bmZFUHh0WGFBbkUwWkM3bzE0JTNEJnJlc2VydmVkPTANCg0KU3RhdHVzOiAgICAgICAg
IGh0dHBzOi8vbmEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBz
JTNBJTJGJTJGZGF0YXRyYWNrZXIuaWV0Zi5vcmclMkZkb2MlMkZkcmFmdC1iaXNob3AtaHR0cGJp
cy1hbHRzdmMtcXVpYyUyRiZkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jvc29m
dC5jb20lN0NiYmE3YTIzNmIxOTU0ODE1NTkwZDA4ZDRkMmM0N2YwMSU3QzcyZjk4OGJmODZmMTQx
YWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjUxODg3NjU0MTU5ODEmc2RhdGE9bGgy
N3duR0txQmtCcDU2bjdzWW5sRGY2RlU5dThxTnNkdk1vMnluRjFMOCUzRCZyZXNlcnZlZD0wDQoN
Ckh0bWxpemVkOiAgICAgICBodHRwczovL25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v
ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRnRvb2xzLmlldGYub3JnJTJGaHRtbCUyRmRyYWZ0LWJp
c2hvcC1odHRwYmlzLWFsdHN2Yy1xdWljLTAwJmRhdGE9MDIlN0MwMSU3Q21pY2hhZWwuYmlzaG9w
JTQwbWljcm9zb2Z0LmNvbSU3Q2JiYTdhMjM2YjE5NTQ4MTU1OTBkMDhkNGQyYzQ3ZjAxJTdDNzJm
OTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzNjM2NTE4ODc2NTQxNTk4
MSZzZGF0YT1kd1BQR2Jia0Ezam55VSUyQkhLRUtVNUlzb2hHJTJGajhtcXhCOTBCVXlIaEhodyUz
RCZyZXNlcnZlZD0wDQoNCkh0bWxpemVkOiAgICAgICBodHRwczovL25hMDEuc2FmZWxpbmtzLnBy
b3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmRhdGF0cmFja2VyLmlldGYu
b3JnJTJGZG9jJTJGaHRtbCUyRmRyYWZ0LWJpc2hvcC1odHRwYmlzLWFsdHN2Yy1xdWljLTAwJmRh
dGE9MDIlN0MwMSU3Q21pY2hhZWwuYmlzaG9wJTQwbWljcm9zb2Z0LmNvbSU3Q2JiYTdhMjM2YjE5
NTQ4MTU1OTBkMDhkNGQyYzQ3ZjAxJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDcl
N0MxJTdDMCU3QzYzNjM2NTE4ODc2NTQxNTk4MSZzZGF0YT1hWFNKbnZYMXBicEwlMkJiNXQzWnZP
RyUyRlRsR3NiTHh3VmNGJTJGdWkwS0VDJTJCNHMlM0QmcmVzZXJ2ZWQ9MA0KDQoNCg0KDQoNCkFi
c3RyYWN0Og0KDQogICBbUkZDNzgzOF0gZGVmaW5lcyB0aGUgQUxUU1ZDIGZyYW1lIGZvciBIVFRQ
LzIgW1JGQzc1NDBdLiAgVGhpcyBmcmFtZQ0KDQogICBpcyBlcXVhbGx5IGFwcGxpY2FibGUgdG8g
SFRUUC9RVUlDIChbSS1ELmlldGYtcXVpYy1odHRwXSksIGJ1dCBuZWVkcw0KDQogICB0byBiZSBz
ZXBhcmF0ZWx5IHJlZ2lzdGVyZWQuICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgQUxUU1ZD
DQoNCiAgIGZyYW1lIGZvciBIVFRQL1FVSUMuDQoNCg0KDQoNCg0KDQoNCg0KDQpQbGVhc2Ugbm90
ZSB0aGF0IGl0IG1heSB0YWtlIGEgY291cGxlIG9mIG1pbnV0ZXMgZnJvbSB0aGUgdGltZSBvZiBz
dWJtaXNzaW9uIHVudGlsIHRoZSBodG1saXplZCB2ZXJzaW9uIGFuZCBkaWZmIGFyZSBhdmFpbGFi
bGUgYXQgdG9vbHMuaWV0Zi5vcmcuDQoNCg0KDQpUaGUgSUVURiBTZWNyZXRhcmlhdA0KDQoNCg==

--_000_MWHPR21MB0141132A1509DBED2FCE257F87BB0MWHPR21MB0141namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjojMDU2M0MxOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu
Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjoj
OTU0RjcyOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29QbGFpblRleHQsIGxp
Lk1zb1BsYWluVGV4dCwgZGl2Lk1zb1BsYWluVGV4dA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7
DQoJbXNvLXN0eWxlLWxpbms6IlBsYWluIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBpbjsNCgltYXJn
aW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2Fs
aWJyaSIsc2Fucy1zZXJpZjt9DQpzcGFuLlBsYWluVGV4dENoYXINCgl7bXNvLXN0eWxlLW5hbWU6
IlBsYWluIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1s
aW5rOiJQbGFpbiBUZXh0IjsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQou
TXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LWZhbWls
eToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVp
biAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2Vj
dGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+
DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5
b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9v
OnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4t
VVMiIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIjOTU0RjcyIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0
aW9uMSI+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5GaXhlcyA8YSBocmVmPSJodHRwczovL2dp
dGh1Yi5jb20vcXVpY3dnL2Jhc2UtZHJhZnRzL2lzc3Vlcy8zNzEiPg0KIzM3MTwvYT4uPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tPGJyPg0K
RnJvbTogaW50ZXJuZXQtZHJhZnRzQGlldGYub3JnIFttYWlsdG86aW50ZXJuZXQtZHJhZnRzQGll
dGYub3JnXSA8YnI+DQpTZW50OiBNb25kYXksIEp1bHkgMjQsIDIwMTcgMTE6NDggQU08YnI+DQpU
bzogTWlrZSBCaXNob3AgJmx0O01pY2hhZWwuQmlzaG9wQG1pY3Jvc29mdC5jb20mZ3Q7PGJyPg0K
U3ViamVjdDogTmV3IFZlcnNpb24gTm90aWZpY2F0aW9uIGZvciBkcmFmdC1iaXNob3AtaHR0cGJp
cy1hbHRzdmMtcXVpYy0wMC50eHQ8L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+QSBuZXcgdmVyc2lvbiBvZiBJLUQsIGRyYWZ0
LWJpc2hvcC1odHRwYmlzLWFsdHN2Yy1xdWljLTAwLnR4dDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+aGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZCBieSBNaWtl
IEJpc2hvcCBhbmQgcG9zdGVkIHRvIHRoZSBJRVRGIHJlcG9zaXRvcnkuPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPk5hbWU6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IGRyYWZ0LWJpc2hvcC1odHRwYmlzLWFsdHN2Yy1xdWljPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5SZXZpc2lvbjombmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
MDA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPlRpdGxlOiZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyBBTFRTVkMgRnJhbWUgaW4gSFRUUC9RVUlDPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij5Eb2N1bWVudCBkYXRlOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAy
MDE3LTA3LTI0PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5Hcm91cDom
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgSW5kaXZpZHVhbCBT
dWJtaXNzaW9uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5QYWdlczom
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+VVJMOiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVm
PSJodHRwczovL25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRw
cyUzQSUyRiUyRnd3dy5pZXRmLm9yZyUyRmludGVybmV0LWRyYWZ0cyUyRmRyYWZ0LWJpc2hvcC1o
dHRwYmlzLWFsdHN2Yy1xdWljLTAwLnR4dCZhbXA7ZGF0YT0wMiU3QzAxJTdDbWljaGFlbC5iaXNo
b3AlNDBtaWNyb3NvZnQuY29tJTdDYmJhN2EyMzZiMTk1NDgxNTU5MGQwOGQ0ZDJjNDdmMDElN0M3
MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM2MzY1MTg4NzY1NDE1
OTgxJmFtcDtzZGF0YT1xdGZyak1jcE1wZHVwWHN1azJ6NndvTXJ2bmZFUHh0WGFBbkUwWkM3bzE0
JTNEJmFtcDtyZXNlcnZlZD0wIj4NCjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0O3RleHQt
ZGVjb3JhdGlvbjpub25lIj5odHRwczovL25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v
ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRnd3dy5pZXRmLm9yZyUyRmludGVybmV0LWRyYWZ0cyUy
RmRyYWZ0LWJpc2hvcC1odHRwYmlzLWFsdHN2Yy1xdWljLTAwLnR4dCZhbXA7ZGF0YT0wMiU3QzAx
JTdDbWljaGFlbC5iaXNob3AlNDBtaWNyb3NvZnQuY29tJTdDYmJhN2EyMzZiMTk1NDgxNTU5MGQw
OGQ0ZDJjNDdmMDElN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdD
NjM2MzY1MTg4NzY1NDE1OTgxJmFtcDtzZGF0YT1xdGZyak1jcE1wZHVwWHN1azJ6NndvTXJ2bmZF
UHh0WGFBbkUwWkM3bzE0JTNEJmFtcDtyZXNlcnZlZD0wPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPlN0YXR1czombmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly9uYTAxLnNhZmVsaW5r
cy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZkYXRhdHJhY2tlci5p
ZXRmLm9yZyUyRmRvYyUyRmRyYWZ0LWJpc2hvcC1odHRwYmlzLWFsdHN2Yy1xdWljJTJGJmFtcDtk
YXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jvc29mdC5jb20lN0NiYmE3YTIzNmIx
OTU0ODE1NTkwZDA4ZDRkMmM0N2YwMSU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3
JTdDMSU3QzAlN0M2MzYzNjUxODg3NjU0MTU5ODEmYW1wO3NkYXRhPWxoMjd3bkdLcUJrQnA1Nm43
c1lubERmNkZVOXU4cU5zZHZNbzJ5bkYxTDglM0QmYW1wO3Jlc2VydmVkPTAiPg0KPHNwYW4gc3R5
bGU9ImNvbG9yOndpbmRvd3RleHQ7dGV4dC1kZWNvcmF0aW9uOm5vbmUiPmh0dHBzOi8vbmEwMS5z
YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZGF0YXRy
YWNrZXIuaWV0Zi5vcmclMkZkb2MlMkZkcmFmdC1iaXNob3AtaHR0cGJpcy1hbHRzdmMtcXVpYyUy
RiZhbXA7ZGF0YT0wMiU3QzAxJTdDbWljaGFlbC5iaXNob3AlNDBtaWNyb3NvZnQuY29tJTdDYmJh
N2EyMzZiMTk1NDgxNTU5MGQwOGQ0ZDJjNDdmMDElN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2Nk
MDExZGI0NyU3QzElN0MwJTdDNjM2MzY1MTg4NzY1NDE1OTgxJmFtcDtzZGF0YT1saDI3d25HS3FC
a0JwNTZuN3NZbmxEZjZGVTl1OHFOc2R2TW8yeW5GMUw4JTNEJmFtcDtyZXNlcnZlZD0wPC9zcGFu
PjwvYT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkh0bWxpemVkOiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJodHRwczovL25hMDEu
c2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRnRvb2xz
LmlldGYub3JnJTJGaHRtbCUyRmRyYWZ0LWJpc2hvcC1odHRwYmlzLWFsdHN2Yy1xdWljLTAwJmFt
cDtkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jvc29mdC5jb20lN0NiYmE3YTIz
NmIxOTU0ODE1NTkwZDA4ZDRkMmM0N2YwMSU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFk
YjQ3JTdDMSU3QzAlN0M2MzYzNjUxODg3NjU0MTU5ODEmYW1wO3NkYXRhPWR3UFBHYmJrQTNqbnlV
JTJCSEtFS1U1SXNvaEclMkZqOG1xeEI5MEJVeUhoSGh3JTNEJmFtcDtyZXNlcnZlZD0wIj4NCjxz
cGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0O3RleHQtZGVjb3JhdGlvbjpub25lIj5odHRwczov
L25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUy
RnRvb2xzLmlldGYub3JnJTJGaHRtbCUyRmRyYWZ0LWJpc2hvcC1odHRwYmlzLWFsdHN2Yy1xdWlj
LTAwJmFtcDtkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jvc29mdC5jb20lN0Ni
YmE3YTIzNmIxOTU0ODE1NTkwZDA4ZDRkMmM0N2YwMSU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3
Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjUxODg3NjU0MTU5ODEmYW1wO3NkYXRhPWR3UFBHYmJr
QTNqbnlVJTJCSEtFS1U1SXNvaEclMkZqOG1xeEI5MEJVeUhoSGh3JTNEJmFtcDtyZXNlcnZlZD0w
PC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkh0bWxp
emVkOiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJodHRwczov
L25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUy
RmRhdGF0cmFja2VyLmlldGYub3JnJTJGZG9jJTJGaHRtbCUyRmRyYWZ0LWJpc2hvcC1odHRwYmlz
LWFsdHN2Yy1xdWljLTAwJmFtcDtkYXRhPTAyJTdDMDElN0NtaWNoYWVsLmJpc2hvcCU0MG1pY3Jv
c29mdC5jb20lN0NiYmE3YTIzNmIxOTU0ODE1NTkwZDA4ZDRkMmM0N2YwMSU3QzcyZjk4OGJmODZm
MTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzYzNjUxODg3NjU0MTU5ODEmYW1wO3Nk
YXRhPWFYU0pudlgxcGJwTCUyQmI1dDNadk9HJTJGVGxHc2JMeHdWY0YlMkZ1aTBLRUMlMkI0cyUz
RCZhbXA7cmVzZXJ2ZWQ9MCI+DQo8c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dDt0ZXh0LWRl
Y29yYXRpb246bm9uZSI+aHR0cHM6Ly9uYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su
Y29tLz91cmw9aHR0cHMlM0ElMkYlMkZkYXRhdHJhY2tlci5pZXRmLm9yZyUyRmRvYyUyRmh0bWwl
MkZkcmFmdC1iaXNob3AtaHR0cGJpcy1hbHRzdmMtcXVpYy0wMCZhbXA7ZGF0YT0wMiU3QzAxJTdD
bWljaGFlbC5iaXNob3AlNDBtaWNyb3NvZnQuY29tJTdDYmJhN2EyMzZiMTk1NDgxNTU5MGQwOGQ0
ZDJjNDdmMDElN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM2
MzY1MTg4NzY1NDE1OTgxJmFtcDtzZGF0YT1hWFNKbnZYMXBicEwlMkJiNXQzWnZPRyUyRlRsR3Ni
THh3VmNGJTJGdWkwS0VDJTJCNHMlM0QmYW1wO3Jlc2VydmVkPTA8L3NwYW4+PC9hPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPkFic3RyYWN0OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jm5ic3A7Jm5ic3A7IFtSRkM3ODM4XSBkZWZpbmVzIHRoZSBBTFRTVkMgZnJhbWUgZm9y
IEhUVFAvMiBbUkZDNzU0MF0uJm5ic3A7IFRoaXMgZnJhbWU8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZuYnNwOyZuYnNwOyBpcyBlcXVhbGx5IGFwcGxpY2FibGUgdG8g
SFRUUC9RVUlDIChbSS1ELmlldGYtcXVpYy1odHRwXSksIGJ1dCBuZWVkczxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7Jm5ic3A7IHRvIGJlIHNlcGFyYXRlbHkg
cmVnaXN0ZXJlZC4mbmJzcDsgVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIEFMVFNWQzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7Jm5ic3A7IGZyYW1lIGZv
ciBIVFRQL1FVSUMuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+UGxlYXNlIG5vdGUgdGhhdCBp
dCBtYXkgdGFrZSBhIGNvdXBsZSBvZiBtaW51dGVzIGZyb20gdGhlIHRpbWUgb2Ygc3VibWlzc2lv
biB1bnRpbCB0aGUgaHRtbGl6ZWQgdmVyc2lvbiBhbmQgZGlmZiBhcmUgYXZhaWxhYmxlIGF0IHRv
b2xzLmlldGYub3JnLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86
cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5UaGUgSUVURiBTZWNy
ZXRhcmlhdDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJz
cDs8L286cD48L3A+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_MWHPR21MB0141132A1509DBED2FCE257F87BB0MWHPR21MB0141namp_--


From nobody Tue Jul 25 00:36:24 2017
Return-Path: <mnot@mnot.net>
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 8CCBE131897 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 00:36:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level: 
X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=MIN6eil5; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=UJUV7mGr
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 8c6YLDXSxTds for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 00:36:20 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A2431127978 for <quic@ietf.org>; Tue, 25 Jul 2017 00:36:20 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 083DD208A1; Tue, 25 Jul 2017 03:36:20 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute3.internal (MEProxy); Tue, 25 Jul 2017 03:36:20 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=4mRDW16xXbuCHLg6bOiY7/HKWZgBbPepW1fukx3R8 /0=; b=MIN6eil5EqKi9wwj9SCEGFlOhehfheiJqbKpVfGl/N2NdAFgZqsisvgkk M+hgPE4enGgtFuUnVIHNG+kxkKWGudvYUBEjxwmfF8hcOEyiVNOJIVnnz+rTBhXf v4BtdjWD1sQ3JawOkZkurPnj1NrfcofST056kVQTPBKByqoVHxlQStb+wdLSaD7U s6IWw89wmBnaEzxaGbvqLyZgi6ZUiRFrDZL2ThlyQApq+KYGcDDXVBpkum+3TFQf 958vPmwq/glUXEpPwOK1WG69xR+p3g0DfsrZ8Dl22P/UJlkCuVdohOpJb1A8L337 0M9Kn6aEoVA0/5QL0Rl6cp1/AW6sw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=4mRDW16xXbuCHLg6bO iY7/HKWZgBbPepW1fukx3R8/0=; b=UJUV7mGr5u69NkhUyLPFgQzAF0eE4sO09J 3NSlBks+ipg/CBLkyeal1QSY6GCBsNvSEOjk1iQQQoQQ6fHc1xlwiRqFCau0cd5N JvcNqFt0UhZBKQZ96ZFqpt/0SNquV/xdN8BGll82qcL7pBKkwlzSgKcdoZYjuRry srTalvpiBnZY9RlrMrXRuPOPZ4083VqffKHPhZu0gfLq/0xvj8BkqakCxk3M7dAl YYhua4Rwr+pcDR3Q5jqLNSFE3F770wCO0oFRhnfux+7Sly5xXDah9AEjnFCh+Y5A SUYPdTjudXYWB1iPHMr204dLnZ6GRCfjnYYGSraNHbW+vl9Hz37g==
X-ME-Sender: <xms:8_R2WSa0V4D3KXztP83CpgYDh_at4Y1O1d01YKQKR9GDu_NddkAdrw>
X-Sasl-enc: 1sWLRHyJZexCo4lVdMeFwnmaczDbJj3aco+kPlMIcCzs 1500968179
Received: from [192.168.1.18] (cpe-124-188-19-231.hdbq1.win.bigpond.net.au [124.188.19.231]) by mail.messagingengine.com (Postfix) with ESMTPA id 0865F7E1D9; Tue, 25 Jul 2017 03:36:18 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Unidirectional Streams discussion
Message-Id: <DC07C1DA-39A6-42BF-B246-D059C625F170@mnot.net>
Date: Tue, 25 Jul 2017 17:36:15 +1000
Cc: Lars Eggert <lars@netapp.com>
To: IETF QUIC WG <quic@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/1W2kN9RDrDoXfdAgB_RfHm8Rd2E>
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: Tue, 25 Jul 2017 07:36:24 -0000

Everyone,

In Prague, we discussed Unidirectional Streams.

  Issue: https://github.com/quicwg/base-drafts/issues/175
  Draft minutes: =
https://github.com/quicwg/wg-materials/blob/master/ietf99/minutes.md#unidi=
rectional-streams

The outcome of that discussion was that Martin would continue to work on =
his proposal, and EKR would experiment with unidirectional streams in a =
branch of his implementation, to gain experience with them and help =
judge the amount of complexity they save or add.

We'll take a look at their work at the October interim meeting.

In the meantime, our approach remains bidirectional streams (including =
for the purposes of Implementation Draft 2)*.

Please refrain from discussing unidirectional streams on-list; if Martin =
and EKR have questions to help guide their exploration, they should ask =
the group, but otherwise we shouldn't be spending additional time on =
this until we have their results.

Thanks,


* Editors / Martin Duke -- please clarify that ID2 will be using =
bidirectional streams as necessary.

--
Mark Nottingham   https://www.mnot.net/


From nobody Tue Jul 25 03:05:00 2017
Return-Path: <thomas.swindells@nokia.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 05BEE12EACC for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 03:04:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 HW9cY_3BqKQN for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 03:04:55 -0700 (PDT)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on071c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::71c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5F9A0126DEE for <quic@ietf.org>; Tue, 25 Jul 2017 03:04:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=UJkHIAKe3Akv0s/FoYV01hkb+SG/ae5PSxWl3Wh2S9c=; b=VEiQMsIjhjnV/lO+Y0dFg4d0nhvTJ5liBFSwjOQVv5UhuKgFLM10q4IvWwB9/cfOY+Bf9oOrhM1qmS8G6n/7xQ3Ts9lYL6jfKtdf6G+/rlXaAWAdtrtFYkUaVJLJ2ur5XbUEgdPqJWPnkwJ5T96ziYFCsDN9tVBWqUcttk4Bg/g=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB1063.eurprd07.prod.outlook.com (10.163.103.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.10; Tue, 25 Jul 2017 10:04:53 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.014; Tue, 25 Jul 2017 10:04:52 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>, =?iso-8859-1?Q?Mikkel_Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>
CC: Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Idea for packet numbers
Thread-Topic: Idea for packet numbers
Thread-Index: AQHTAT74Pm6HB4E+oUyHojrh9ct+26JcjwOAgAF4cgCAA8bLAA==
Date: Tue, 25 Jul 2017 10:04:52 +0000
Message-ID: <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri>
In-Reply-To: <20170721093732.GA31705@ubuntu-dmitri>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [82.69.101.84]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB1063; 7:N5OcyqfBaRKvzjDGJ26ml2C2WqQU4WW7IajfMvGFy342wN1TqoB/1O7MdajJnc7sFHnD8Sdu6uRsL3jOhJETbZityHF2KCWyyffOulp1LnkIxZi6MWW/s9VuMEMgqAHwwR6qLBux28o1Dzvy5DmI69o2Kp7uWLgtMZZnBRdqkMYfO6ipFEv1fWubGexMu/0FyKojcim7WkcCCzuYVInSAItgS1qP/lwngVul579z9gZmGWNQPAHiL2869dAspcflDMPGPhY/eOeTsx39TyD6CnQs0CZLa+iosH1R+HmPPjRg8DHmkm2F6UNhhoQZ+c7jEyq0Hxtv+/7k13DXZ/4QnpRqFkeZW8YMPYdp20G9Hm9W/V6tLeCvOj3upLrucBZURQ0ac58eVFcV0pkbWiFsrlSCAucYGiPqF7qv4uB9ue93gLiOoPkxGjUgUCfHWGJput8M3os4CyHE5Kc3KSRzAnL1q6Ly1wlQ3nTRWL1Qkx7wFNiRovPEStzeWhQ/Sas4Kfc9RuTDpZ9zL53NLCWB8eW7cUogLAhfDHTNsvBVs5ed+pSzEt6557w1YBnfx11yBMX8Skeko7dyOa6UKYYrTOq4wjEyjZ+5D4QTwvTqaNXvxUuxkzK/ojfK/kgh3W/8qlbx74ePnvvW+ptEN8Ie5+k2XUGJM5+JOQQwoY3nCmMwao1vuwptJZxWaYVsgXBdgyPv/BbUHhYkwZCgrjkkESMJmLi4mKLcbUSvt7dxp8+zfVyz+yim/yq3HFOV8HOUMXXlUlYVw+8OLLfcvymvsUgdtMoZ0KMAlDb/D5KpCP0=
x-ms-office365-filtering-correlation-id: e2fab474-355b-4264-424d-08d4d344981e
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB1063; 
x-ms-traffictypediagnostic: DB5PR07MB1063:
x-exchange-antispam-report-test: UriScan:(37575265505322)(158342451672863);
x-microsoft-antispam-prvs: <DB5PR07MB10638F60B9C3DBED8A09D5EA84B80@DB5PR07MB1063.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123555025)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB1063; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB1063; 
x-forefront-prvs: 03793408BA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39840400002)(39860400002)(39410400002)(39850400002)(39400400002)(39450400003)(199003)(13464003)(189002)(24454002)(53546010)(3480700004)(229853002)(8936002)(2950100002)(9686003)(5250100002)(5890100001)(39060400002)(68736007)(53936002)(478600001)(86362001)(38730400002)(6506006)(7736002)(305945005)(101416001)(14454004)(81156014)(81166006)(76176999)(50986999)(54356999)(6246003)(6436002)(54906002)(99286003)(55016002)(33656002)(8676002)(105586002)(189998001)(66066001)(106356001)(97736004)(74316002)(25786009)(5660300001)(6116002)(7696004)(3660700001)(102836003)(3280700002)(3846002)(2900100001)(4326008)(2906002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB1063; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2017 10:04:52.7347 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1063
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/m-RHuhqVvHYrjmFkhXn_KzgW4Y0>
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: Tue, 25 Jul 2017 10:04:59 -0000

I've been thinking about packet numbers and what it is safe to reason about=
 them.

With regards to packet numbers the key parts of the spec appear to be:
a)  The packet number for sending MUST increase by at least one after sendi=
ng any packet, unless otherwise specified
b) A QUIC endpoint MUST NOT reuse a packet number within the same connectio=
n
c) The sender MUST use a packet number size able to represent more than twi=
ce as large a range than the difference between the largest acknowledged pa=
cket and packet number being sent.
d) An endpoint SHOULD retain old keys for a short period to allow it to dec=
rypt packets with smaller packet numbers than the packet that triggered the=
 key update. This allows an endpoint to consume packets that are reordered =
around the transition between keys. Packets with higher packet numbers alwa=
ys use the updated keys and MUST NOT be decrypted with old keys.

>From a receivers point of view we actively ignore a and assume that there m=
ay be packet reordering and packet loss in the network.=20
Packet reordering means that packet numbers won't appear in order. Packet l=
oss and the subsequent retransmission with a new packet number means that (=
retransmitted) lower offset stream data may arrive with a higher packet num=
ber. The receiver is expected to deal with these as part of normal operatio=
n.

>From the senders perspective the process it goes through is:
1. Get data to send
2. Get packet number
3. encrypt packet
4. queue packet on NIC
5. NIC sends packet.

On a single threaded single stream application an implementation written to=
 spec would sequentially create packets in order, encrypt them and the nic =
should then send them out in order onto the network.
However on a multi-cpu server sending multiple streams in the same connecti=
ons things get much harder to reason about. We can assume that each stream =
is likely being generated by a different application thread (to avoid serve=
r side head of line blocking etc) and so be producing packets concurrently.
One option is to serialise the sending, so that after step 1 the request en=
ters a synchronized serialized process and proceeds with strict ordering al=
lowing requirement a to be met.
This option isn't however efficient or desirable for a performance optimize=
d solution.
On a multi-cpu system, for optimal performance you want to take advantage o=
f data locality (it is expensive to shuffle data between CPU cores when you=
 don't have to). The obvious design would be to have an atomic counter for =
the packet number and do steps 1-4 within the thread (or at least CPU) that=
 is generating the data. With multiple streams being generated on multiple =
cpu cores there is no guarantee that the order the packet numbers are assig=
ned for the packets will match the order that the packets are queued on the=
 NIC. The higher numbered packet may get encrypted quicker and so enqueued =
and sent ahead of the earlier packet number. At the wire level this would g=
ive an egress pattern where the packet numbers weren't increasing after eve=
ry packet, only over the longer run.
If the server has multiple NICS then the problem has potential of occurring=
 even if steps 1-4 had been serialized via a cross cpu semaphore/lock. Diff=
erent NICS will be attached to different CPU cores and an efficient OS coul=
d try to avoid cross CPU communication by queuing the packet on a NIC conne=
cted to the same CPU as the thread that generated the packet. If different =
threads are generating the packets on different cores then potentially the =
packets could be queued on different NICS and therefore be sent out of orde=
r even if they were queued in order.

Obviously we have established that a receiver should be designed to expect =
and handle packet re-ordering and it is unknown to the receiver whether it =
is in the network or host where the re-ordering occurs. From an end to end =
point of view a multi-threaded implementation would work. If the multi-thre=
aded implementation strictly complies with a then I'm unsure, it depends wh=
at part of the process is defined as 'sending' and where the measurement to=
 validate it should be taken (e.g. the point the packets appear on the netw=
ork vs the point the intention to create a packet to send is actioned).

To complicate matters further, an implementer may not want to allocated pac=
ket numbers one by one. If they know they have 32 packets worth of data to =
send then perhaps it is more efficient to request 32 packet numbers in a si=
ngle atomic operation and then encrypt and enqueue the packets in turn. If =
another thread on a less loaded cpu is also generating stream data then pac=
ket number re-ordering may occur to an even greater extend. Again (within l=
imits) the receiver should cope with this level of packet re-ordering - as =
long as the packet number size constraints aren't violated and the packets =
arrive in a timely manner. However it does break the assumption that you ca=
n generally rely on the low order bits of packet numbers to be generally se=
nt in order.

The packet re-ordering issue also impact requirements around streams ids be=
ing created sequentially in order as the same set of race conditions can oc=
cur.

I think it may be worthwhile clarifying what the packet number behaviour is=
 expected to look like from an external observers perspective. Is there act=
ually a desire to attempt to force the sender to serialize packet sending? =
That is, does quic require that the egress from the host is strictly in ord=
er and only the network can introduce re-ordering? Whilst keeping within th=
e constraints of b-d, is/should it be acceptable that an implementation all=
ocates blocks of contiguous packet numbers for each stream? If probably wou=
ld mean you end up with gaps in packet numbers when a stream doesn't use al=
l of its allocation in time (e.g a key change requires it to move to a new =
allocation). If it isn't acceptable then what are the constraints the sende=
r should keep within?

Thomas


> -----Original Message-----
> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Dmitri Tikhonov
> Sent: 21 July 2017 10:38
> To: Mikkel Fahn=F8e J=F8rgensen <mikkelfj@gmail.com>
> Cc: Magnus Westerlund <magnus.westerlund@ericsson.com>; IETF QUIC WG
> <quic@ietf.org>
> Subject: Re: Idea for packet numbers
>=20
> On Thu, Jul 20, 2017 at 07:10:11AM -0400, Mikkel Fahn=F8e J=F8rgensen wro=
te:
> > For other reasons I would like the packet numbers to be close,
> > preferably without gaps except during connection migration.
> >
> > This relates to storing interval maps as groups of bitmaps instead of
> > binary trees to track already received packets. This both provides are
> > more efficient implementation, and it reduces some modes of DoS where
> > an attacker can create a lot of small intervals which cause the data
> > structure to inflate.
>=20
> The receive history gets truncated automatically, and so the receiver doe=
s not
> have to worry about a lot of data to keep track of.  From [draft-ietf-qui=
c-
> transport] 8.13:
>=20
>  " To limit ACK blocks to those that have not yet been received  " by the
> sender, the receiver SHOULD track which ACK frames  " have been
> acknowledged by its peer.  Once an ACK frame has  " been acknowledged, th=
e
> packets it acknowledges SHOULD not be  " acknowledged again.
>=20
> Send history is another matter.  Ibid., 8.13:
>=20
>  " The sender SHOULD close the connection if an unsent packet  " number i=
s
> acknowledged.
>=20
> (Previous versions of the draft had a MUST instead of a SHOULD.)
>=20
> Thus it is in the interest of the sender either to create few gaps or to =
create
> them in a manner that does not blow up its own send history data structur=
es if
> it wants to check whether an unsent packet is ACKed.
>=20
>   - Dmitri.


From nobody Tue Jul 25 05:12:35 2017
Return-Path: <phils@in-panik.de>
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 1355A129A92 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:12:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 X5MAcWsXc5aZ for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:12:31 -0700 (PDT)
Received: from einhorn-mail.in-berlin.de (einhorn-mail.in-berlin.de [217.197.80.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7FB9512EB9B for <quic@ietf.org>; Tue, 25 Jul 2017 05:12:30 -0700 (PDT)
X-Envelope-From: phils@in-panik.de
Received: from x-berg.in-berlin.de (x-change.in-berlin.de [217.197.86.40]) by einhorn.in-berlin.de (8.14.4/8.14.4/Debian-8+deb8u2) with ESMTP id v6PCBPWt028356 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);  Tue, 25 Jul 2017 14:11:25 +0200
Received: from [193.173.217.30] (helo=[100.124.166.161]) by x-berg.in-berlin.de with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <phils@in-panik.de>) id 1dZygF-0002iK-Vz; Tue, 25 Jul 2017 14:11:16 +0200
From: "Philipp S. Tiesel" <phils@in-panik.de>
Message-Id: <9914D466-6293-447C-B3FC-839CFFF9298B@in-panik.de>
Content-Type: multipart/alternative; boundary="Apple-Mail=_75740E02-D204-4807-BF9E-186009D52212"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Unreliable Stream (was: Re: HTTP requests on one stream #692)
Date: Tue, 25 Jul 2017 14:11:23 +0200
In-Reply-To: <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
Cc: Martin Thomson <martin.thomson@gmail.com>, "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>
To: Mike Bishop <Michael.Bishop@microsoft.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com> <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/W1i4qMqI1ourIqdUMrIocDtMr3c>
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: Tue, 25 Jul 2017 12:12:34 -0000

--Apple-Mail=_75740E02-D204-4807-BF9E-186009D52212
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi,

as the discussion is still hot, here the basic ideas we wanted to push =
for unreliable streams.

> On 24. Jul 2017, at 07:18, Mike Bishop <Michael.Bishop@microsoft.com =
<mailto:Michael.Bishop@microsoft.com>> wrote:
>=20
> While I see the argument for saying that unreliable delivery is a =
client choice, not a sender one, it seems like something we could =
reasonable express at the application layer and then have the sender =
actually perform.

For the case of HTTP =E2=80=93 Full ACK.
> =20
> Simplest options I see would be:
> No retransmissions ever (local configuration to stack, RST_STREAM =
after stream completion)
> No retransmissions after a certain timeout (RST_STREAM on a timer, if =
you assume the stream data all becomes available at once)
> =20
> Slightly more complex would be something like =E2=80=9Conly retransmit =
any given segment once=E2=80=9D or =E2=80=9Cgive up on retransmissions =
after a segment is X ms old.=E2=80=9D


In case of HTTP, all three options could be requested via an HTTP =
request header.=20
Optional, in case the server does not support unreliable streams, =
fallback to reliable transmission.

An open question is question is how to present a stream with =E2=80=9Chole=
s=E2=80=9D to the application.


On the QUIC layer, as it is much easier to implement, unreliable =
transmission is driven by the sender. Retransmissions can then be done =
depending on the applications choice.

Depending on other open discussion, the sender tells the receiver about=20=

unreliable transmission by ether a flag bit in the stream frame or in
the START_STREA frame. The receiver must set a RST_STREM, if it can=E2=80=99=
t handle=20
unreliable streams.


AVE!
  Philipp S. Tiesel / phils=E2=80=A6
--=20
   {phils}--->---(phils@in-panik.de =
<mailto:phils@in-panik.de>)--->---(http://phils.in-panik.de =
<http://phils.in-panik.de/>)----,
      wenn w eine   aube ist dn      man au dran dre en                  =
 |
           o     Schr        an muss     hc         h   (Kurt =
Schwitters) |
:wq!  <----(phone: +49-179-6737439)---<---(jabber: phils@in-panik.de =
<mailto:phils@in-panik.de>)----'


--Apple-Mail=_75740E02-D204-4807-BF9E-186009D52212
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Hi,<div class=3D""><br class=3D""></div><div class=3D"">as =
the discussion is still hot, here the basic ideas we wanted to push for =
unreliable streams.</div><div class=3D""><br class=3D""><div><blockquote =
type=3D"cite" class=3D""><div class=3D"">On 24. Jul 2017, at 07:18, Mike =
Bishop &lt;<a href=3D"mailto:Michael.Bishop@microsoft.com" =
class=3D"">Michael.Bishop@microsoft.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">While I see the argument for saying that unreliable delivery =
is a client choice, not a sender one, it seems like something we could =
reasonable express at the application layer and then have the sender =
actually perform.</div></div></div></blockquote><div><br =
class=3D""></div>For the case of HTTP =E2=80=93 Full ACK.<br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Simplest options I see would be:<o:p class=3D""></o:p></div><ul=
 type=3D"disc" style=3D"margin-bottom: 0in; margin-top: 0in;" =
class=3D""><li class=3D"MsoListParagraph" style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">No =
retransmissions ever (local configuration to stack, RST_STREAM after =
stream completion)<o:p class=3D""></o:p></li><li =
class=3D"MsoListParagraph" style=3D"margin: 0in 0in 0.0001pt; font-size: =
11pt; font-family: Calibri, sans-serif;">No retransmissions after a =
certain timeout (RST_STREAM on a timer, if you assume the stream data =
all becomes available at once)<o:p class=3D""></o:p></li></ul><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">Slightly more complex would be =
something like =E2=80=9Conly retransmit any given segment once=E2=80=9D =
or =E2=80=9Cgive up on retransmissions after a segment is X ms =
old.=E2=80=9D<o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""></div></div></div></blockquote><div><br =
class=3D""></div><div><br class=3D""></div><div>In case of HTTP, all =
three options could be requested via an HTTP request =
header.&nbsp;</div><div>Optional, in case the server does not support =
unreliable streams, fallback to reliable transmission.</div><div><br =
class=3D""></div><div>An open question is question is how to present a =
stream with =E2=80=9Choles=E2=80=9D to the application.</div><div><br =
class=3D""></div><div><br class=3D""></div><div>On the QUIC layer, as it =
is much easier to implement, unreliable transmission is driven by the =
sender. Retransmissions can then be done depending on the applications =
choice.</div><div><br class=3D""></div><div>Depending on other open =
discussion, the sender tells the receiver =
about&nbsp;</div><div>unreliable transmission by ether a flag bit in the =
stream frame or in</div><div>the START_STREA frame. The receiver must =
set a RST_STREM, if it can=E2=80=99t handle&nbsp;</div><div>unreliable =
streams.</div></div><div class=3D""><br class=3D""></div><br =
class=3D""><div class=3D"">
<div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; orphans: =
auto; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">AVE!<br class=3D"">&nbsp; Philipp S. Tiesel / phils=E2=80=A6<br=
 class=3D"">--&nbsp;<br class=3D"">&nbsp; &nbsp;{phils}---&gt;---(<a =
href=3D"mailto:phils@in-panik.de" =
class=3D"">phils@in-panik.de</a>)---&gt;---(<a =
href=3D"http://phils.in-panik.de" =
class=3D"">http://phils.in-panik.de</a>)----,<br class=3D"">&nbsp; =
&nbsp; &nbsp; wenn w eine &nbsp; aube ist dn &nbsp; &nbsp; &nbsp;man au =
dran dre en &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; |<br class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;o &nbsp; =
&nbsp; Schr &nbsp; &nbsp; &nbsp; &nbsp;an muss &nbsp; &nbsp; hc &nbsp; =
&nbsp; &nbsp; &nbsp; h &nbsp; (Kurt Schwitters) |<br class=3D"">:wq! =
&nbsp;&lt;----(phone: +49-179-6737439)---&lt;---(jabber: <a =
href=3D"mailto:phils@in-panik.de" =
class=3D"">phils@in-panik.de</a>)----'</div></div>
</div>
<br class=3D""></div></body></html>=

--Apple-Mail=_75740E02-D204-4807-BF9E-186009D52212--


From nobody Tue Jul 25 05:25:13 2017
Return-Path: <ianswett@google.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 CAA53131C89 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:25:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 IZaidkbfI3cR for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:25:08 -0700 (PDT)
Received: from mail-yw0-x22c.google.com (mail-yw0-x22c.google.com [IPv6:2607:f8b0:4002:c05::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 B2419120721 for <quic@ietf.org>; Tue, 25 Jul 2017 05:25:08 -0700 (PDT)
Received: by mail-yw0-x22c.google.com with SMTP id x125so67760197ywa.0 for <quic@ietf.org>; Tue, 25 Jul 2017 05:25:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=TAshmQKzU7AugubU3S5crw0gQAUevSFBImJ++saox1A=; b=eaLco0iMZctHt7wXnHheYlmar2DcA29x+L0e3EGRgH9YmtK9drMxVwV9woWj7EJ4Iy Efa9ccJFflh+/NihxfCOpBhjhu7pUpAe9qtcc028tYGqCKWoChs/qGQNNLMscGk8rBn1 XO2EO2y8+DwsmwDicKYW/3go5oFVXbyprH140/zl4gnqMEpc7qhKKr/nrYAW1tM6J8pE DvCIXgata9a9Zb6cNQTmiCSsuFbT3oJbMfgWMIg26VNSYsWJH1X/kGzf+isUEQrzQRGY 6Wa3J2BVNUwrPHYHni3xEc6SCeJMXWndAk+s9qTz9cIfSPFeL+o2l5nufEPrfP55xPr3 /05g==
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=TAshmQKzU7AugubU3S5crw0gQAUevSFBImJ++saox1A=; b=M5vNys2OW5RAm5kubeq+axl6giX3qe/17rEBEWgEBVlAnkLqxnwQ5mK2sZ4eG/fLDW QYsdS1BFF64v2s2ks9IfJJoO5Wy+AJq+zdQoj9tZ0LVUMVf4/ewRYZvOG2Jw0Rb1z0/L XB+ShfyyXjTynhhwo9Rk8g0r12AXT5gRSqOloBQb9/9oiynxzaQpdvD5bhCfmebkxDDB /bOe7SVovo5Lsn16+gC36CrD6Uam+uT48aEwvGpu6VGrJcuA1Q+ZiyzR8WR19+OTRhS+ QiiFxwCwEEaj9SsG6a8acEL2vnx+Uzt2c2qsqf3/uO1INlr/p2xW4c7eD1jSqz29yDAF 2NnQ==
X-Gm-Message-State: AIVw112+APPQrijUVsy/YaRBA65O595TNMrYT5TOv4fPUafqp9XMaZUd JU1s0XviuQxxmVUYbQwzQYe6fQAxk9UW
X-Received: by 10.129.51.67 with SMTP id z64mr16001817ywz.370.1500985507690; Tue, 25 Jul 2017 05:25:07 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.163.130 with HTTP; Tue, 25 Jul 2017 05:24:47 -0700 (PDT)
In-Reply-To: <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
From: Ian Swett <ianswett@google.com>
Date: Tue, 25 Jul 2017 08:24:47 -0400
Message-ID: <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Cc: Dmitri Tikhonov <dtikhonov@litespeedtech.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a1141519600314c0555236c2e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/nPF3Yy7L_hFbhEm0upmxCeNuu9s>
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: Tue, 25 Jul 2017 12:25:12 -0000

--001a1141519600314c0555236c2e
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Some thoughts.

1) Sending packet numbers in order is not required, but the farther out of
order packets get, the more acks the receiver is going to send, the larger
they'll be, and the more complex loss detection is.  In particular, you
won't be able to rely on QUIC's packet numbers being in time order.  TLDR;
It's easier to send packets in order than it is to correctly deal with the
implications of sending them out of order.

2) I don't think there's a compelling reason to use multiple CPUs for a
single QUIC connection in any circumstances I've encountered.  And if it is
necessary, it'd be much simpler and faster to avoid any locking and use
multiple QUIC connections(or possibly multipath if it existed).  This also
has the benefit of sending the packet numbers sequentially for a given
connection ID.

3) I'm happy to treat reordering in the NIC as a form of network
reordering, since it's not something the QUIC implementation may be able to
control.


On Tue, Jul 25, 2017 at 6:04 AM, Swindells, Thomas (Nokia - GB/Cambridge,
UK) <thomas.swindells@nokia.com> wrote:

> I've been thinking about packet numbers and what it is safe to reason
> about them.
>
> With regards to packet numbers the key parts of the spec appear to be:
> a)  The packet number for sending MUST increase by at least one after
> sending any packet, unless otherwise specified
> b) A QUIC endpoint MUST NOT reuse a packet number within the same
> connection
> c) The sender MUST use a packet number size able to represent more than
> twice as large a range than the difference between the largest acknowledg=
ed
> packet and packet number being sent.
> d) An endpoint SHOULD retain old keys for a short period to allow it to
> decrypt packets with smaller packet numbers than the packet that triggere=
d
> the key update. This allows an endpoint to consume packets that are
> reordered around the transition between keys. Packets with higher packet
> numbers always use the updated keys and MUST NOT be decrypted with old ke=
ys.
>
> >From a receivers point of view we actively ignore a and assume that ther=
e
> may be packet reordering and packet loss in the network.
> Packet reordering means that packet numbers won't appear in order. Packet
> loss and the subsequent retransmission with a new packet number means tha=
t
> (retransmitted) lower offset stream data may arrive with a higher packet
> number. The receiver is expected to deal with these as part of normal
> operation.
>
> >From the senders perspective the process it goes through is:
> 1. Get data to send
> 2. Get packet number
> 3. encrypt packet
> 4. queue packet on NIC
> 5. NIC sends packet.
>
> On a single threaded single stream application an implementation written
> to spec would sequentially create packets in order, encrypt them and the
> nic should then send them out in order onto the network.
> However on a multi-cpu server sending multiple streams in the same
> connections things get much harder to reason about. We can assume that ea=
ch
> stream is likely being generated by a different application thread (to
> avoid server side head of line blocking etc) and so be producing packets
> concurrently.
> One option is to serialise the sending, so that after step 1 the request
> enters a synchronized serialized process and proceeds with strict orderin=
g
> allowing requirement a to be met.
> This option isn't however efficient or desirable for a performance
> optimized solution.
> On a multi-cpu system, for optimal performance you want to take advantage
> of data locality (it is expensive to shuffle data between CPU cores when
> you don't have to). The obvious design would be to have an atomic counter
> for the packet number and do steps 1-4 within the thread (or at least CPU=
)
> that is generating the data. With multiple streams being generated on
> multiple cpu cores there is no guarantee that the order the packet number=
s
> are assigned for the packets will match the order that the packets are
> queued on the NIC. The higher numbered packet may get encrypted quicker a=
nd
> so enqueued and sent ahead of the earlier packet number. At the wire leve=
l
> this would give an egress pattern where the packet numbers weren't
> increasing after every packet, only over the longer run.
> If the server has multiple NICS then the problem has potential of
> occurring even if steps 1-4 had been serialized via a cross cpu
> semaphore/lock. Different NICS will be attached to different CPU cores an=
d
> an efficient OS could try to avoid cross CPU communication by queuing the
> packet on a NIC connected to the same CPU as the thread that generated th=
e
> packet. If different threads are generating the packets on different core=
s
> then potentially the packets could be queued on different NICS and
> therefore be sent out of order even if they were queued in order.
>
> Obviously we have established that a receiver should be designed to expec=
t
> and handle packet re-ordering and it is unknown to the receiver whether i=
t
> is in the network or host where the re-ordering occurs. From an end to en=
d
> point of view a multi-threaded implementation would work. If the
> multi-threaded implementation strictly complies with a then I'm unsure, i=
t
> depends what part of the process is defined as 'sending' and where the
> measurement to validate it should be taken (e.g. the point the packets
> appear on the network vs the point the intention to create a packet to se=
nd
> is actioned).
>
> To complicate matters further, an implementer may not want to allocated
> packet numbers one by one. If they know they have 32 packets worth of dat=
a
> to send then perhaps it is more efficient to request 32 packet numbers in=
 a
> single atomic operation and then encrypt and enqueue the packets in turn.
> If another thread on a less loaded cpu is also generating stream data the=
n
> packet number re-ordering may occur to an even greater extend. Again
> (within limits) the receiver should cope with this level of packet
> re-ordering - as long as the packet number size constraints aren't violat=
ed
> and the packets arrive in a timely manner. However it does break the
> assumption that you can generally rely on the low order bits of packet
> numbers to be generally sent in order.
>
> The packet re-ordering issue also impact requirements around streams ids
> being created sequentially in order as the same set of race conditions ca=
n
> occur.
>
> I think it may be worthwhile clarifying what the packet number behaviour
> is expected to look like from an external observers perspective. Is there
> actually a desire to attempt to force the sender to serialize packet
> sending? That is, does quic require that the egress from the host is
> strictly in order and only the network can introduce re-ordering? Whilst
> keeping within the constraints of b-d, is/should it be acceptable that an
> implementation allocates blocks of contiguous packet numbers for each
> stream? If probably would mean you end up with gaps in packet numbers whe=
n
> a stream doesn't use all of its allocation in time (e.g a key change
> requires it to move to a new allocation). If it isn't acceptable then wha=
t
> are the constraints the sender should keep within?
>
> Thomas
>
>
> > -----Original Message-----
> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Dmitri Tikhonov
> > Sent: 21 July 2017 10:38
> > To: Mikkel Fahn=C3=B8e J=C3=B8rgensen <mikkelfj@gmail.com>
> > Cc: Magnus Westerlund <magnus.westerlund@ericsson.com>; IETF QUIC WG
> > <quic@ietf.org>
> > Subject: Re: Idea for packet numbers
> >
> > On Thu, Jul 20, 2017 at 07:10:11AM -0400, Mikkel Fahn=C3=B8e J=C3=B8rge=
nsen wrote:
> > > For other reasons I would like the packet numbers to be close,
> > > preferably without gaps except during connection migration.
> > >
> > > This relates to storing interval maps as groups of bitmaps instead of
> > > binary trees to track already received packets. This both provides ar=
e
> > > more efficient implementation, and it reduces some modes of DoS where
> > > an attacker can create a lot of small intervals which cause the data
> > > structure to inflate.
> >
> > The receive history gets truncated automatically, and so the receiver
> does not
> > have to worry about a lot of data to keep track of.  From
> [draft-ietf-quic-
> > transport] 8.13:
> >
> >  " To limit ACK blocks to those that have not yet been received  " by t=
he
> > sender, the receiver SHOULD track which ACK frames  " have been
> > acknowledged by its peer.  Once an ACK frame has  " been acknowledged,
> the
> > packets it acknowledges SHOULD not be  " acknowledged again.
> >
> > Send history is another matter.  Ibid., 8.13:
> >
> >  " The sender SHOULD close the connection if an unsent packet  " number
> is
> > acknowledged.
> >
> > (Previous versions of the draft had a MUST instead of a SHOULD.)
> >
> > Thus it is in the interest of the sender either to create few gaps or t=
o
> create
> > them in a manner that does not blow up its own send history data
> structures if
> > it wants to check whether an unsent packet is ACKed.
> >
> >   - Dmitri.
>
>

--001a1141519600314c0555236c2e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Some thoughts.<div><br></div><div>1) Sending packet number=
s in order is not required, but the farther out of order packets get, the m=
ore acks the receiver is going to send, the larger they&#39;ll be, and the =
more complex loss detection is.=C2=A0 In particular, you won&#39;t be able =
to rely on QUIC&#39;s packet numbers being in time order.=C2=A0 TLDR; It&#3=
9;s easier to send packets in order than it is to correctly deal with the i=
mplications of sending them out of order.=C2=A0=C2=A0</div><div><br></div><=
div>2) I don&#39;t think there&#39;s a compelling reason to use multiple CP=
Us for a single QUIC connection in any circumstances I&#39;ve encountered.=
=C2=A0 And if it is necessary, it&#39;d be much simpler and faster to avoid=
 any locking and use multiple QUIC connections(or possibly multipath if it =
existed).=C2=A0 This also has the benefit of sending the packet numbers seq=
uentially for a given connection ID.</div><div><br></div><div>3) I&#39;m ha=
ppy to treat reordering in the NIC as a form of network reordering, since i=
t&#39;s not something the QUIC implementation may be able to control.</div>=
<div><br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jul 25, 2017 at 6:04 AM, Swindells, Thomas (Nokia - GB/Cambridg=
e, UK) <span dir=3D"ltr">&lt;<a href=3D"mailto:thomas.swindells@nokia.com" =
target=3D"_blank">thomas.swindells@nokia.com</a>&gt;</span> wrote:<br><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex">I&#39;ve been thinking about packet numbers and w=
hat it is safe to reason about them.<br>
<br>
With regards to packet numbers the key parts of the spec appear to be:<br>
a)=C2=A0 The packet number for sending MUST increase by at least one after =
sending any packet, unless otherwise specified<br>
b) A QUIC endpoint MUST NOT reuse a packet number within the same connectio=
n<br>
c) The sender MUST use a packet number size able to represent more than twi=
ce as large a range than the difference between the largest acknowledged pa=
cket and packet number being sent.<br>
d) An endpoint SHOULD retain old keys for a short period to allow it to dec=
rypt packets with smaller packet numbers than the packet that triggered the=
 key update. This allows an endpoint to consume packets that are reordered =
around the transition between keys. Packets with higher packet numbers alwa=
ys use the updated keys and MUST NOT be decrypted with old keys.<br>
<br>
&gt;From a receivers point of view we actively ignore a and assume that the=
re may be packet reordering and packet loss in the network.<br>
Packet reordering means that packet numbers won&#39;t appear in order. Pack=
et loss and the subsequent retransmission with a new packet number means th=
at (retransmitted) lower offset stream data may arrive with a higher packet=
 number. The receiver is expected to deal with these as part of normal oper=
ation.<br>
<br>
&gt;From the senders perspective the process it goes through is:<br>
1. Get data to send<br>
2. Get packet number<br>
3. encrypt packet<br>
4. queue packet on NIC<br>
5. NIC sends packet.<br>
<br>
On a single threaded single stream application an implementation written to=
 spec would sequentially create packets in order, encrypt them and the nic =
should then send them out in order onto the network.<br>
However on a multi-cpu server sending multiple streams in the same connecti=
ons things get much harder to reason about. We can assume that each stream =
is likely being generated by a different application thread (to avoid serve=
r side head of line blocking etc) and so be producing packets concurrently.=
<br>
One option is to serialise the sending, so that after step 1 the request en=
ters a synchronized serialized process and proceeds with strict ordering al=
lowing requirement a to be met.<br>
This option isn&#39;t however efficient or desirable for a performance opti=
mized solution.<br>
On a multi-cpu system, for optimal performance you want to take advantage o=
f data locality (it is expensive to shuffle data between CPU cores when you=
 don&#39;t have to). The obvious design would be to have an atomic counter =
for the packet number and do steps 1-4 within the thread (or at least CPU) =
that is generating the data. With multiple streams being generated on multi=
ple cpu cores there is no guarantee that the order the packet numbers are a=
ssigned for the packets will match the order that the packets are queued on=
 the NIC. The higher numbered packet may get encrypted quicker and so enque=
ued and sent ahead of the earlier packet number. At the wire level this wou=
ld give an egress pattern where the packet numbers weren&#39;t increasing a=
fter every packet, only over the longer run.<br>
If the server has multiple NICS then the problem has potential of occurring=
 even if steps 1-4 had been serialized via a cross cpu semaphore/lock. Diff=
erent NICS will be attached to different CPU cores and an efficient OS coul=
d try to avoid cross CPU communication by queuing the packet on a NIC conne=
cted to the same CPU as the thread that generated the packet. If different =
threads are generating the packets on different cores then potentially the =
packets could be queued on different NICS and therefore be sent out of orde=
r even if they were queued in order.<br>
<br>
Obviously we have established that a receiver should be designed to expect =
and handle packet re-ordering and it is unknown to the receiver whether it =
is in the network or host where the re-ordering occurs. From an end to end =
point of view a multi-threaded implementation would work. If the multi-thre=
aded implementation strictly complies with a then I&#39;m unsure, it depend=
s what part of the process is defined as &#39;sending&#39; and where the me=
asurement to validate it should be taken (e.g. the point the packets appear=
 on the network vs the point the intention to create a packet to send is ac=
tioned).<br>
<br>
To complicate matters further, an implementer may not want to allocated pac=
ket numbers one by one. If they know they have 32 packets worth of data to =
send then perhaps it is more efficient to request 32 packet numbers in a si=
ngle atomic operation and then encrypt and enqueue the packets in turn. If =
another thread on a less loaded cpu is also generating stream data then pac=
ket number re-ordering may occur to an even greater extend. Again (within l=
imits) the receiver should cope with this level of packet re-ordering - as =
long as the packet number size constraints aren&#39;t violated and the pack=
ets arrive in a timely manner. However it does break the assumption that yo=
u can generally rely on the low order bits of packet numbers to be generall=
y sent in order.<br>
<br>
The packet re-ordering issue also impact requirements around streams ids be=
ing created sequentially in order as the same set of race conditions can oc=
cur.<br>
<br>
I think it may be worthwhile clarifying what the packet number behaviour is=
 expected to look like from an external observers perspective. Is there act=
ually a desire to attempt to force the sender to serialize packet sending? =
That is, does quic require that the egress from the host is strictly in ord=
er and only the network can introduce re-ordering? Whilst keeping within th=
e constraints of b-d, is/should it be acceptable that an implementation all=
ocates blocks of contiguous packet numbers for each stream? If probably wou=
ld mean you end up with gaps in packet numbers when a stream doesn&#39;t us=
e all of its allocation in time (e.g a key change requires it to move to a =
new allocation). If it isn&#39;t acceptable then what are the constraints t=
he sender should keep within?<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
Thomas<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
&gt; -----Original Message-----<br>
&gt; From: QUIC [mailto:<a href=3D"mailto:quic-bounces@ietf.org">quic-bounc=
es@ietf.org</a>] On Behalf Of Dmitri Tikhonov<br>
&gt; Sent: 21 July 2017 10:38<br>
&gt; To: Mikkel Fahn=C3=B8e J=C3=B8rgensen &lt;<a href=3D"mailto:mikkelfj@g=
mail.com">mikkelfj@gmail.com</a>&gt;<br>
&gt; Cc: Magnus Westerlund &lt;<a href=3D"mailto:magnus.westerlund@ericsson=
.com">magnus.westerlund@ericsson.<wbr>com</a>&gt;; IETF QUIC WG<br>
&gt; &lt;<a href=3D"mailto:quic@ietf.org">quic@ietf.org</a>&gt;<br>
&gt; Subject: Re: Idea for packet numbers<br>
&gt;<br>
&gt; On Thu, Jul 20, 2017 at 07:10:11AM -0400, Mikkel Fahn=C3=B8e J=C3=B8rg=
ensen wrote:<br>
&gt; &gt; For other reasons I would like the packet numbers to be close,<br=
>
&gt; &gt; preferably without gaps except during connection migration.<br>
&gt; &gt;<br>
&gt; &gt; This relates to storing interval maps as groups of bitmaps instea=
d of<br>
&gt; &gt; binary trees to track already received packets. This both provide=
s are<br>
&gt; &gt; more efficient implementation, and it reduces some modes of DoS w=
here<br>
&gt; &gt; an attacker can create a lot of small intervals which cause the d=
ata<br>
&gt; &gt; structure to inflate.<br>
&gt;<br>
&gt; The receive history gets truncated automatically, and so the receiver =
does not<br>
&gt; have to worry about a lot of data to keep track of.=C2=A0 From [draft-=
ietf-quic-<br>
&gt; transport] 8.13:<br>
&gt;<br>
&gt;=C2=A0 &quot; To limit ACK blocks to those that have not yet been recei=
ved=C2=A0 &quot; by the<br>
&gt; sender, the receiver SHOULD track which ACK frames=C2=A0 &quot; have b=
een<br>
&gt; acknowledged by its peer.=C2=A0 Once an ACK frame has=C2=A0 &quot; bee=
n acknowledged, the<br>
&gt; packets it acknowledges SHOULD not be=C2=A0 &quot; acknowledged again.=
<br>
&gt;<br>
&gt; Send history is another matter.=C2=A0 Ibid., 8.13:<br>
&gt;<br>
&gt;=C2=A0 &quot; The sender SHOULD close the connection if an unsent packe=
t=C2=A0 &quot; number is<br>
&gt; acknowledged.<br>
&gt;<br>
&gt; (Previous versions of the draft had a MUST instead of a SHOULD.)<br>
&gt;<br>
&gt; Thus it is in the interest of the sender either to create few gaps or =
to create<br>
&gt; them in a manner that does not blow up its own send history data struc=
tures if<br>
&gt; it wants to check whether an unsent packet is ACKed.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0- Dmitri.<br>
<br>
</div></div></blockquote></div><br></div>

--001a1141519600314c0555236c2e--


From nobody Tue Jul 25 05:34:55 2017
Return-Path: <mikkelfj@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 E19E8129AB2 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:34:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 aBxUJDUG-hV1 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:34:50 -0700 (PDT)
Received: from mail-ua0-x236.google.com (mail-ua0-x236.google.com [IPv6:2607:f8b0:400c:c08::236]) (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 C6C26131C96 for <quic@ietf.org>; Tue, 25 Jul 2017 05:34:49 -0700 (PDT)
Received: by mail-ua0-x236.google.com with SMTP id 80so101490603uas.0 for <quic@ietf.org>; Tue, 25 Jul 2017 05:34:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=O8y1x9Ih7YM3bDwF2ntr2+oDz7LXhnOXS0JXptAYkWI=; b=XHihd87vXeTrl9XgaKH8HU5tiiFxFh/THdEcMBATkdvzhmeYD0AOUctxxowkYmaKos RBVpqEGgGz9b97VotBBQYruml53tZnBT8y1UpbsfkEK3eTQ1AZrOw0WYWtPDMbNvP7b3 TuUPhIQM1kWmIm6yddhXuh7smEaaC/P2OGNEN9mo8ZjNmNfL3KhBemmT8EFYgvkDD6iY nwx3umCapPR+SOYUHeMGm8vlxQsuXz1Q2WXwNIYcJ9/ZOWsnyOLKWeWZq0oMSlxTjNuX sMjq1ma3lgQEyZB+ehXz/cGMoKkutTljti84CAEJ6nD9kAGBEU1SmI2VI7rxxJzto920 qGdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=O8y1x9Ih7YM3bDwF2ntr2+oDz7LXhnOXS0JXptAYkWI=; b=XjJxRUiAjg38EY6B2NZjVVTvHxgBFkjdYepHBIo3KXuyF2SL+07H+LnigEIwquFfKM MZ/N6BG637bwWTSICNTmB5PaC/TWwpTMqFgl4iWuMvs4tZLos5WlbpaGUq0hlAboNvUN Lm051NvNT2azrPssT2RfnovdEDd+KqOt9XykzscBObLG9wdCc/WvDTop//BC3rVltrGI a/GItIenVrxcjdcg9OZ9mrrxDkQ28CuBScFy32X7aBrxDP2i+7KCuGoia6EsG7fPA19L H2DudY5/nfyrZ6+nWvtuR06ysOt2f19Ddft38c9KDo/AVFzx/wwOTPj6LM1CXskJszMB txOg==
X-Gm-Message-State: AIVw112aVDFxERn6N98l6bzdxGXHpIaI8F9TxXhkaGIBuGY61BLWuKzj HV87xC15UWC6QW17e6iUQeNRjx2T4A==
X-Received: by 10.31.186.130 with SMTP id k124mr8686174vkf.124.1500986088853;  Tue, 25 Jul 2017 05:34:48 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Tue, 25 Jul 2017 14:34:48 +0200
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Tue, 25 Jul 2017 14:34:48 +0200
Message-ID: <CAN1APdcbVsDpb304dzCmO-Y2ReJ1pZtLL-TQ6pXhg0g4UA=Abg@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>
Cc: Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>,  Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Content-Type: multipart/alternative; boundary="001a11441096a39f2f0555238eab"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/SQYa7_ej3NoE9IGBrtp0OLQNNkE>
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: Tue, 25 Jul 2017 12:34:54 -0000

--001a11441096a39f2f0555238eab
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

3) I'm happy to treat reordering in the NIC as a form of network
reordering, since it's not something the QUIC implementation may be able to
control.


Wrt. complexity of loss control, I don=E2=80=99t think reordering within sh=
ort time
intervals is a major concern because you would expect to fill the gaps
eventually. If receiver side assumptions are not met, it could be assumed
to be poor line quality or malicious intent, thus warranting dropping the
connection, or at least a larger transmission block. The problem is when
you don=E2=80=99t know if a packet gap is due to valid deliberate omission =
or
failure / delay.

Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 25 July 2017 at 14.25.08, Ian Swett (ianswett@google.com) wrote:

Some thoughts.

1) Sending packet numbers in order is not required, but the farther out of
order packets get, the more acks the receiver is going to send, the larger
they'll be, and the more complex loss detection is.  In particular, you
won't be able to rely on QUIC's packet numbers being in time order.  TLDR;
It's easier to send packets in order than it is to correctly deal with the
implications of sending them out of order.

2) I don't think there's a compelling reason to use multiple CPUs for a
single QUIC connection in any circumstances I've encountered.  And if it is
necessary, it'd be much simpler and faster to avoid any locking and use
multiple QUIC connections(or possibly multipath if it existed).  This also
has the benefit of sending the packet numbers sequentially for a given
connection ID.

3) I'm happy to treat reordering in the NIC as a form of network
reordering, since it's not something the QUIC implementation may be able to
control.


On Tue, Jul 25, 2017 at 6:04 AM, Swindells, Thomas (Nokia - GB/Cambridge,
UK) <thomas.swindells@nokia.com> wrote:

> I've been thinking about packet numbers and what it is safe to reason
> about them.
>
> With regards to packet numbers the key parts of the spec appear to be:
> a)  The packet number for sending MUST increase by at least one after
> sending any packet, unless otherwise specified
> b) A QUIC endpoint MUST NOT reuse a packet number within the same
> connection
> c) The sender MUST use a packet number size able to represent more than
> twice as large a range than the difference between the largest acknowledg=
ed
> packet and packet number being sent.
> d) An endpoint SHOULD retain old keys for a short period to allow it to
> decrypt packets with smaller packet numbers than the packet that triggere=
d
> the key update. This allows an endpoint to consume packets that are
> reordered around the transition between keys. Packets with higher packet
> numbers always use the updated keys and MUST NOT be decrypted with old ke=
ys.
>
> >From a receivers point of view we actively ignore a and assume that ther=
e
> may be packet reordering and packet loss in the network.
> Packet reordering means that packet numbers won't appear in order. Packet
> loss and the subsequent retransmission with a new packet number means tha=
t
> (retransmitted) lower offset stream data may arrive with a higher packet
> number. The receiver is expected to deal with these as part of normal
> operation.
>
> >From the senders perspective the process it goes through is:
> 1. Get data to send
> 2. Get packet number
> 3. encrypt packet
> 4. queue packet on NIC
> 5. NIC sends packet.
>
> On a single threaded single stream application an implementation written
> to spec would sequentially create packets in order, encrypt them and the
> nic should then send them out in order onto the network.
> However on a multi-cpu server sending multiple streams in the same
> connections things get much harder to reason about. We can assume that ea=
ch
> stream is likely being generated by a different application thread (to
> avoid server side head of line blocking etc) and so be producing packets
> concurrently.
> One option is to serialise the sending, so that after step 1 the request
> enters a synchronized serialized process and proceeds with strict orderin=
g
> allowing requirement a to be met.
> This option isn't however efficient or desirable for a performance
> optimized solution.
> On a multi-cpu system, for optimal performance you want to take advantage
> of data locality (it is expensive to shuffle data between CPU cores when
> you don't have to). The obvious design would be to have an atomic counter
> for the packet number and do steps 1-4 within the thread (or at least CPU=
)
> that is generating the data. With multiple streams being generated on
> multiple cpu cores there is no guarantee that the order the packet number=
s
> are assigned for the packets will match the order that the packets are
> queued on the NIC. The higher numbered packet may get encrypted quicker a=
nd
> so enqueued and sent ahead of the earlier packet number. At the wire leve=
l
> this would give an egress pattern where the packet numbers weren't
> increasing after every packet, only over the longer run.
> If the server has multiple NICS then the problem has potential of
> occurring even if steps 1-4 had been serialized via a cross cpu
> semaphore/lock. Different NICS will be attached to different CPU cores an=
d
> an efficient OS could try to avoid cross CPU communication by queuing the
> packet on a NIC connected to the same CPU as the thread that generated th=
e
> packet. If different threads are generating the packets on different core=
s
> then potentially the packets could be queued on different NICS and
> therefore be sent out of order even if they were queued in order.
>
> Obviously we have established that a receiver should be designed to expec=
t
> and handle packet re-ordering and it is unknown to the receiver whether i=
t
> is in the network or host where the re-ordering occurs. From an end to en=
d
> point of view a multi-threaded implementation would work. If the
> multi-threaded implementation strictly complies with a then I'm unsure, i=
t
> depends what part of the process is defined as 'sending' and where the
> measurement to validate it should be taken (e.g. the point the packets
> appear on the network vs the point the intention to create a packet to se=
nd
> is actioned).
>
> To complicate matters further, an implementer may not want to allocated
> packet numbers one by one. If they know they have 32 packets worth of dat=
a
> to send then perhaps it is more efficient to request 32 packet numbers in=
 a
> single atomic operation and then encrypt and enqueue the packets in turn.
> If another thread on a less loaded cpu is also generating stream data the=
n
> packet number re-ordering may occur to an even greater extend. Again
> (within limits) the receiver should cope with this level of packet
> re-ordering - as long as the packet number size constraints aren't violat=
ed
> and the packets arrive in a timely manner. However it does break the
> assumption that you can generally rely on the low order bits of packet
> numbers to be generally sent in order.
>
> The packet re-ordering issue also impact requirements around streams ids
> being created sequentially in order as the same set of race conditions ca=
n
> occur.
>
> I think it may be worthwhile clarifying what the packet number behaviour
> is expected to look like from an external observers perspective. Is there
> actually a desire to attempt to force the sender to serialize packet
> sending? That is, does quic require that the egress from the host is
> strictly in order and only the network can introduce re-ordering? Whilst
> keeping within the constraints of b-d, is/should it be acceptable that an
> implementation allocates blocks of contiguous packet numbers for each
> stream? If probably would mean you end up with gaps in packet numbers whe=
n
> a stream doesn't use all of its allocation in time (e.g a key change
> requires it to move to a new allocation). If it isn't acceptable then wha=
t
> are the constraints the sender should keep within?
>
> Thomas
>
>
> > -----Original Message-----
> > From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Dmitri Tikhonov
> > Sent: 21 July 2017 10:38
> > To: Mikkel Fahn=C3=B8e J=C3=B8rgensen <mikkelfj@gmail.com>
> > Cc: Magnus Westerlund <magnus.westerlund@ericsson.com>; IETF QUIC WG
> > <quic@ietf.org>
> > Subject: Re: Idea for packet numbers
> >
> > On Thu, Jul 20, 2017 at 07:10:11AM -0400, Mikkel Fahn=C3=B8e J=C3=B8rge=
nsen wrote:
> > > For other reasons I would like the packet numbers to be close,
> > > preferably without gaps except during connection migration.
> > >
> > > This relates to storing interval maps as groups of bitmaps instead of
> > > binary trees to track already received packets. This both provides ar=
e
> > > more efficient implementation, and it reduces some modes of DoS where
> > > an attacker can create a lot of small intervals which cause the data
> > > structure to inflate.
> >
> > The receive history gets truncated automatically, and so the receiver
> does not
> > have to worry about a lot of data to keep track of.  From
> [draft-ietf-quic-
> > transport] 8.13:
> >
> >  " To limit ACK blocks to those that have not yet been received  " by t=
he
> > sender, the receiver SHOULD track which ACK frames  " have been
> > acknowledged by its peer.  Once an ACK frame has  " been acknowledged,
> the
> > packets it acknowledges SHOULD not be  " acknowledged again.
> >
> > Send history is another matter.  Ibid., 8.13:
> >
> >  " The sender SHOULD close the connection if an unsent packet  " number
> is
> > acknowledged.
> >
> > (Previous versions of the draft had a MUST instead of a SHOULD.)
> >
> > Thus it is in the interest of the sender either to create few gaps or t=
o
> create
> > them in a manner that does not blow up its own send history data
> structures if
> > it wants to check whether an unsent packet is ACKed.
> >
> >   - Dmitri.
>
>

--001a11441096a39f2f0555238eab
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto"><br></div><div id=3D"bloop_customfont" style=3D"f=
ont-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;=
line-height:auto"><blockquote type=3D"cite" class=3D"clean_bq"><div dir=3D"=
ltr">3) I&#39;m happy to treat reordering in the NIC as a form of network r=
eordering, since it&#39;s not something the QUIC implementation may be able=
 to control.</div></blockquote></div> <div><br></div><div>Wrt. complexity o=
f loss control, I don=E2=80=99t think reordering within short time interval=
s is a major concern because you would expect to fill the gaps eventually. =
If receiver side assumptions are not met, it could be assumed to be poor li=
ne quality or malicious intent, thus warranting dropping the connection, or=
 at least a larger transmission block. The problem is when you don=E2=80=99=
t know if a packet gap is due to valid deliberate omission or failure / del=
ay.</div><br> <div id=3D"bloop_sign_1500985604451708160" class=3D"bloop_sig=
n"><div style=3D"font-family:helvetica,arial;font-size:13px">Kind Regards,<=
/div><div style=3D"font-family:helvetica,arial;font-size:13px">Mikkel Fahn=
=C3=B8e J=C3=B8rgensen<br><br></div></div> <br><p class=3D"airmail_on">On 2=
5 July 2017 at 14.25.08, Ian Swett (<a href=3D"mailto:ianswett@google.com">=
ianswett@google.com</a>) wrote:</p> <blockquote type=3D"cite" class=3D"clea=
n_bq"><span><div><div></div><div>


<title></title>


<div dir=3D"ltr">Some thoughts.
<div><br></div>
<div>1) Sending packet numbers in order is not required, but the
farther out of order packets get, the more acks the receiver is
going to send, the larger they&#39;ll be, and the more complex loss
detection is.=C2=A0 In particular, you won&#39;t be able to rely on
QUIC&#39;s packet numbers being in time order.=C2=A0 TLDR; It&#39;s easier
to send packets in order than it is to correctly deal with the
implications of sending them out of order.=C2=A0=C2=A0</div>
<div><br></div>
<div>2) I don&#39;t think there&#39;s a compelling reason to use multiple
CPUs for a single QUIC connection in any circumstances I&#39;ve
encountered.=C2=A0 And if it is necessary, it&#39;d be much simpler and
faster to avoid any locking and use multiple QUIC connections(or
possibly multipath if it existed).=C2=A0 This also has the benefit
of sending the packet numbers sequentially for a given connection
ID.</div>
<div><br></div>
<div>3) I&#39;m happy to treat reordering in the NIC as a form of
network reordering, since it&#39;s not something the QUIC
implementation may be able to control.</div>
<div><br></div>
</div>
<div class=3D"gmail_extra"><br>
<div class=3D"gmail_quote">On Tue, Jul 25, 2017 at 6:04 AM,
Swindells, Thomas (Nokia - GB/Cambridge, UK) <span dir=3D"ltr">&lt;<a href=
=3D"mailto:thomas.swindells@nokia.com" target=3D"_blank">thomas.swindells@n=
okia.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
I&#39;ve been thinking about packet numbers and what it is safe to
reason about them.<br>
<br>
With regards to packet numbers the key parts of the spec appear to
be:<br>
a)=C2=A0 The packet number for sending MUST increase by at least
one after sending any packet, unless otherwise specified<br>
b) A QUIC endpoint MUST NOT reuse a packet number within the same
connection<br>
c) The sender MUST use a packet number size able to represent more
than twice as large a range than the difference between the largest
acknowledged packet and packet number being sent.<br>
d) An endpoint SHOULD retain old keys for a short period to allow
it to decrypt packets with smaller packet numbers than the packet
that triggered the key update. This allows an endpoint to consume
packets that are reordered around the transition between keys.
Packets with higher packet numbers always use the updated keys and
MUST NOT be decrypted with old keys.<br>
<br>
&gt;From a receivers point of view we actively ignore a and assume
that there may be packet reordering and packet loss in the
network.<br>
Packet reordering means that packet numbers won&#39;t appear in order.
Packet loss and the subsequent retransmission with a new packet
number means that (retransmitted) lower offset stream data may
arrive with a higher packet number. The receiver is expected to
deal with these as part of normal operation.<br>
<br>
&gt;From the senders perspective the process it goes through
is:<br>
1. Get data to send<br>
2. Get packet number<br>
3. encrypt packet<br>
4. queue packet on NIC<br>
5. NIC sends packet.<br>
<br>
On a single threaded single stream application an implementation
written to spec would sequentially create packets in order, encrypt
them and the nic should then send them out in order onto the
network.<br>
However on a multi-cpu server sending multiple streams in the same
connections things get much harder to reason about. We can assume
that each stream is likely being generated by a different
application thread (to avoid server side head of line blocking etc)
and so be producing packets concurrently.<br>
One option is to serialise the sending, so that after step 1 the
request enters a synchronized serialized process and proceeds with
strict ordering allowing requirement a to be met.<br>
This option isn&#39;t however efficient or desirable for a performance
optimized solution.<br>
On a multi-cpu system, for optimal performance you want to take
advantage of data locality (it is expensive to shuffle data between
CPU cores when you don&#39;t have to). The obvious design would be to
have an atomic counter for the packet number and do steps 1-4
within the thread (or at least CPU) that is generating the data.
With multiple streams being generated on multiple cpu cores there
is no guarantee that the order the packet numbers are assigned for
the packets will match the order that the packets are queued on the
NIC. The higher numbered packet may get encrypted quicker and so
enqueued and sent ahead of the earlier packet number. At the wire
level this would give an egress pattern where the packet numbers
weren&#39;t increasing after every packet, only over the longer
run.<br>
If the server has multiple NICS then the problem has potential of
occurring even if steps 1-4 had been serialized via a cross cpu
semaphore/lock. Different NICS will be attached to different CPU
cores and an efficient OS could try to avoid cross CPU
communication by queuing the packet on a NIC connected to the same
CPU as the thread that generated the packet. If different threads
are generating the packets on different cores then potentially the
packets could be queued on different NICS and therefore be sent out
of order even if they were queued in order.<br>
<br>
Obviously we have established that a receiver should be designed to
expect and handle packet re-ordering and it is unknown to the
receiver whether it is in the network or host where the re-ordering
occurs. From an end to end point of view a multi-threaded
implementation would work. If the multi-threaded implementation
strictly complies with a then I&#39;m unsure, it depends what part of
the process is defined as &#39;sending&#39; and where the measurement to
validate it should be taken (e.g. the point the packets appear on
the network vs the point the intention to create a packet to send
is actioned).<br>
<br>
To complicate matters further, an implementer may not want to
allocated packet numbers one by one. If they know they have 32
packets worth of data to send then perhaps it is more efficient to
request 32 packet numbers in a single atomic operation and then
encrypt and enqueue the packets in turn. If another thread on a
less loaded cpu is also generating stream data then packet number
re-ordering may occur to an even greater extend. Again (within
limits) the receiver should cope with this level of packet
re-ordering - as long as the packet number size constraints aren&#39;t
violated and the packets arrive in a timely manner. However it does
break the assumption that you can generally rely on the low order
bits of packet numbers to be generally sent in order.<br>
<br>
The packet re-ordering issue also impact requirements around
streams ids being created sequentially in order as the same set of
race conditions can occur.<br>
<br>
I think it may be worthwhile clarifying what the packet number
behaviour is expected to look like from an external observers
perspective. Is there actually a desire to attempt to force the
sender to serialize packet sending? That is, does quic require that
the egress from the host is strictly in order and only the network
can introduce re-ordering? Whilst keeping within the constraints of
b-d, is/should it be acceptable that an implementation allocates
blocks of contiguous packet numbers for each stream? If probably
would mean you end up with gaps in packet numbers when a stream
doesn&#39;t use all of its allocation in time (e.g a key change
requires it to move to a new allocation). If it isn&#39;t acceptable
then what are the constraints the sender should keep within?<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
Thomas<br></font></span>
<div class=3D"HOEnZb">
<div class=3D"h5"><br>
<br>
&gt; -----Original Message-----<br>
&gt; From: QUIC [mailto:<a href=3D"mailto:quic-bounces@ietf.org">quic-bounc=
es@ietf.org</a>] On Behalf
Of Dmitri Tikhonov<br>
&gt; Sent: 21 July 2017 10:38<br>
&gt; To: Mikkel Fahn=C3=B8e J=C3=B8rgensen &lt;<a href=3D"mailto:mikkelfj@g=
mail.com">mikkelfj@gmail.com</a>&gt;<br>
&gt; Cc: Magnus Westerlund &lt;<a href=3D"mailto:magnus.westerlund@ericsson=
.com">magnus.westerlund@ericsson.<wbr>com</a>&gt;;
IETF QUIC WG<br>
&gt; &lt;<a href=3D"mailto:quic@ietf.org">quic@ietf.org</a>&gt;<br>
&gt; Subject: Re: Idea for packet numbers<br>
&gt;<br>
&gt; On Thu, Jul 20, 2017 at 07:10:11AM -0400, Mikkel Fahn=C3=B8e
J=C3=B8rgensen wrote:<br>
&gt; &gt; For other reasons I would like the packet numbers to be
close,<br>
&gt; &gt; preferably without gaps except during connection
migration.<br>
&gt; &gt;<br>
&gt; &gt; This relates to storing interval maps as groups of
bitmaps instead of<br>
&gt; &gt; binary trees to track already received packets. This both
provides are<br>
&gt; &gt; more efficient implementation, and it reduces some modes
of DoS where<br>
&gt; &gt; an attacker can create a lot of small intervals which
cause the data<br>
&gt; &gt; structure to inflate.<br>
&gt;<br>
&gt; The receive history gets truncated automatically, and so the
receiver does not<br>
&gt; have to worry about a lot of data to keep track of.=C2=A0 From
[draft-ietf-quic-<br>
&gt; transport] 8.13:<br>
&gt;<br>
&gt;=C2=A0 &quot; To limit ACK blocks to those that have not yet been
received=C2=A0 &quot; by the<br>
&gt; sender, the receiver SHOULD track which ACK frames=C2=A0 &quot;
have been<br>
&gt; acknowledged by its peer.=C2=A0 Once an ACK frame has=C2=A0 &quot;
been acknowledged, the<br>
&gt; packets it acknowledges SHOULD not be=C2=A0 &quot; acknowledged
again.<br>
&gt;<br>
&gt; Send history is another matter.=C2=A0 Ibid., 8.13:<br>
&gt;<br>
&gt;=C2=A0 &quot; The sender SHOULD close the connection if an unsent
packet=C2=A0 &quot; number is<br>
&gt; acknowledged.<br>
&gt;<br>
&gt; (Previous versions of the draft had a MUST instead of a
SHOULD.)<br>
&gt;<br>
&gt; Thus it is in the interest of the sender either to create few
gaps or to create<br>
&gt; them in a manner that does not blow up its own send history
data structures if<br>
&gt; it wants to check whether an unsent packet is ACKed.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0- Dmitri.<br>
<br></div>
</div>
</blockquote>
</div>
<br></div>


</div></div></span></blockquote></body></html>

--001a11441096a39f2f0555238eab--


From nobody Tue Jul 25 05:36:23 2017
Return-Path: <thomas.swindells@nokia.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 3702A129AB2 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:36:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.91
X-Spam-Level: 
X-Spam-Status: No, score=-2.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 FQ49VBP1SNbP for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:36:18 -0700 (PDT)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0113.outbound.protection.outlook.com [104.47.2.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 14233131C39 for <quic@ietf.org>; Tue, 25 Jul 2017 05:36:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=586pERe7/EF8r229EZ7NTsNHtmhWjUSorECJk6BrevQ=; b=PldyF1tC9/bQv7o1jXde1yE+ETXN5AtdgCX87Xbysr3BdtTZQNKcSdKnqwp6XoXV87qQuErBwvUjNL/6efloD+NgFFK+h25EjnfZ8Q9woboicyxxkgUt4GIOcJMdZfGX98wmFggHTvmsHGLdev4S4gdv1OStYznqB2wpGCBxcC8=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB0872.eurprd07.prod.outlook.com (10.161.196.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.10; Tue, 25 Jul 2017 12:36:15 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.014; Tue, 25 Jul 2017 12:36:15 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: Ian Swett <ianswett@google.com>
CC: Dmitri Tikhonov <dtikhonov@litespeedtech.com>, =?utf-8?B?TWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbg==?= <mikkelfj@gmail.com>, "Magnus Westerlund" <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Idea for packet numbers
Thread-Topic: Idea for packet numbers
Thread-Index: AQHTAT74Pm6HB4E+oUyHojrh9ct+26JcjwOAgAF4cgCAA8bLAIACsUOAgAAAb2A=
Date: Tue, 25 Jul 2017 12:36:14 +0000
Message-ID: <DB5PR07MB123729774C9302FA783031DC84B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com>
In-Reply-To: <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [82.69.101.84]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB0872; 7:7jWbwboZhsJGFRYzdY6AyQPVD4lJx1E9xPzivY4bKiSgSMl2FthvXmySxNCr1mu4Fy7tmxciAyFC8MyCRtuzpGDxm/6TVDBTQJ2HtDjLOM3dMBLNJYHEoKMHV9pzHdOiBDHDhQyJeZ9zWMTIFuh9THiFA8Alo9jYqKckrogjQfgj6xIqBvZmCqI6S3B6M3m5SmM/j7/2EITYe26bX1eCv/jRz/3mEV3sWpoO/FSg3GtK/cRKEBRO6D4YHiyhEgP8hStuYFvhxFqK5wvYgkX5poPx2pa2fO3jwkUeTyhvuezhXjJ7br+i88jplZTlNkOe4W5d4u0mcurBBn4KQUhjBBNxXZCVT508Miyzp9gQjGK5PUiOm4JB7Jrvfq9pUE5bBaZllRK94+jfpU+RuwE1uY8nxAIShAI4f1lebmqDlLQibO1S8lpEHH1UMbul/Ie52F6yPdblnStNSBramtr5vus2xnwdk+UHzApm9kA2f/q1d3tD9Y8kM3++rCbBwmihKI172XKag3CrEtE5+fJEkZvHgLcIHzygJl8tKRgniWuTv3+bgnpWSOibPkSRsR2WljXXSyXWRuDqk2EHHqdcE7vfdr1XyzcEPZc3xtrpf+zMZxolYvBNF89B4ChNp1w6pnl2HjWLOw3Gynzken3SJY2XBxFtzk9k7NAhTdOlhguqPxOLBI8V01KaJpKHP5zLhR7jZD9DfwqcyO9n+4/3x3077sE9LPBmt/ouRCuDoFXAlwAOC7x4x3Xxw8NvUp3bxs26QSrdO9UoWzSFvsT+IpM2A1s5P8sif0yonqKTiow=
x-ms-office365-filtering-correlation-id: 523d3331-4ed7-41d1-3d37-08d4d359bd80
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB0872; 
x-ms-traffictypediagnostic: DB5PR07MB0872:
x-exchange-antispam-report-test: UriScan:(37575265505322)(158342451672863)(82608151540597)(211936372134217)(21748063052155);
x-microsoft-antispam-prvs: <DB5PR07MB0872844C6A4BC04371602E7884B80@DB5PR07MB0872.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(920507026)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB0872; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB0872; 
x-forefront-prvs: 03793408BA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39450400003)(39840400002)(39410400002)(39400400002)(39860400002)(39850400002)(13464003)(24454002)(199003)(377454003)(189002)(6116002)(54356999)(54906002)(14454004)(6306002)(106356001)(25786009)(54896002)(9686003)(7696004)(99286003)(6506006)(229853002)(68736007)(66066001)(6246003)(478600001)(6436002)(38730400002)(39060400002)(2900100001)(5660300001)(105586002)(55016002)(50986999)(53936002)(236005)(110136004)(101416001)(74316002)(93886004)(8676002)(8936002)(34040400001)(81156014)(86362001)(3480700004)(189998001)(76176999)(53546010)(790700001)(102836003)(97736004)(2950100002)(5890100001)(6916009)(7736002)(2906002)(3280700002)(5250100002)(3846002)(81166006)(33656002)(4326008)(3660700001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB0872; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_DB5PR07MB123729774C9302FA783031DC84B80DB5PR07MB1237eurp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2017 12:36:14.9849 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB0872
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/xipP40UTpGkBoK2C3zZ2-PEHzVQ>
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: Tue, 25 Jul 2017 12:36:22 -0000

--_000_DB5PR07MB123729774C9302FA783031DC84B80DB5PR07MB1237eurp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQoNCkZyb206IElhbiBTd2V0dCBbbWFpbHRvOmlhbnN3ZXR0QGdvb2dsZS5jb21dDQpTZW50OiAy
NSBKdWx5IDIwMTcgMTM6MjUNClRvOiBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1i
cmlkZ2UsIFVLKSA8dGhvbWFzLnN3aW5kZWxsc0Bub2tpYS5jb20+DQpDYzogRG1pdHJpIFRpa2hv
bm92IDxkdGlraG9ub3ZAbGl0ZXNwZWVkdGVjaC5jb20+OyBNaWtrZWwgRmFobsO4ZSBKw7hyZ2Vu
c2VuIDxtaWtrZWxmakBnbWFpbC5jb20+OyBNYWdudXMgV2VzdGVybHVuZCA8bWFnbnVzLndlc3Rl
cmx1bmRAZXJpY3Nzb24uY29tPjsgSUVURiBRVUlDIFdHIDxxdWljQGlldGYub3JnPg0KU3ViamVj
dDogUmU6IElkZWEgZm9yIHBhY2tldCBudW1iZXJzDQoNClNvbWUgdGhvdWdodHMuDQoNCjEpIFNl
bmRpbmcgcGFja2V0IG51bWJlcnMgaW4gb3JkZXIgaXMgbm90IHJlcXVpcmVkLCBidXQgdGhlIGZh
cnRoZXIgb3V0IG9mIG9yZGVyIHBhY2tldHMgZ2V0LCB0aGUgbW9yZSBhY2tzIHRoZSByZWNlaXZl
ciBpcyBnb2luZyB0byBzZW5kLCB0aGUgbGFyZ2VyIHRoZXknbGwgYmUsIGFuZCB0aGUgbW9yZSBj
b21wbGV4IGxvc3MgZGV0ZWN0aW9uIGlzLiAgSW4gcGFydGljdWxhciwgeW91IHdvbid0IGJlIGFi
bGUgdG8gcmVseSBvbiBRVUlDJ3MgcGFja2V0IG51bWJlcnMgYmVpbmcgaW4gdGltZSBvcmRlci4g
IFRMRFI7IEl0J3MgZWFzaWVyIHRvIHNlbmQgcGFja2V0cyBpbiBvcmRlciB0aGFuIGl0IGlzIHRv
IGNvcnJlY3RseSBkZWFsIHdpdGggdGhlIGltcGxpY2F0aW9ucyBvZiBzZW5kaW5nIHRoZW0gb3V0
IG9mIG9yZGVyLg0KDQoyKSBJIGRvbid0IHRoaW5rIHRoZXJlJ3MgYSBjb21wZWxsaW5nIHJlYXNv
biB0byB1c2UgbXVsdGlwbGUgQ1BVcyBmb3IgYSBzaW5nbGUgUVVJQyBjb25uZWN0aW9uIGluIGFu
eSBjaXJjdW1zdGFuY2VzIEkndmUgZW5jb3VudGVyZWQuICBBbmQgaWYgaXQgaXMgbmVjZXNzYXJ5
LCBpdCdkIGJlIG11Y2ggc2ltcGxlciBhbmQgZmFzdGVyIHRvIGF2b2lkIGFueSBsb2NraW5nIGFu
ZCB1c2UgbXVsdGlwbGUgUVVJQyBjb25uZWN0aW9ucyhvciBwb3NzaWJseSBtdWx0aXBhdGggaWYg
aXQgZXhpc3RlZCkuICBUaGlzIGFsc28gaGFzIHRoZSBiZW5lZml0IG9mIHNlbmRpbmcgdGhlIHBh
Y2tldCBudW1iZXJzIHNlcXVlbnRpYWxseSBmb3IgYSBnaXZlbiBjb25uZWN0aW9uIElELg0KW1Ro
b21hcyBTd2luZGVsbHNdIFBlcmZvcm1hbmNlIHNlZW1zIHRvIG1lIHRvIGJlIGEgY29tcGVsbGlu
ZyByZWFzb24uIEZpcnN0bHkgaWYgeW91IGhhdmUgZGlmZmVyZW50IGFzc2V0cy9kYXRhIGluIG1l
bW9yeSAocGFydGljdWxhcmx5IENQVSBjYWNoZSkgdG8gZ2V0IHRoZSBtb3N0IG91dCBvZiBhIHN5
c3RlbSB5b3Ugd2FudCB0byBrZWVwIHRoZSBkYXRhIHByb2Nlc3NpbmcgbG9jYWwgdG8gdGhlIGNw
dS4gU2Vjb25kbHkgZW5jcnlwdGlvbiBpcyBzdGlsbCBhIHJlbGF0aXZlbHkgZXhwZW5zaXZlIG9w
ZXJhdGlvbiwgQ1BVcyBoYXZlIGFjY2VsZXJhdGlvbiB0byBoZWxwIHNvIHlvdSBhcmUgZ29pbmcg
dG8gd2FudCB0byBkbyB3b3JrIGluIHBhcmFsbGVsIOKAkyBwYXJ0aWN1bGFybHkgd2hlbiBkZWxp
dmVyaW5nIG11bHRpcGxlIHN0cmVhbXMuIFRoZXNlIGNhbiBtYWtlIGEgc2lnbmlmaWNhbnQgaW1w
YWN0IG9uIGEgc2VydmVyIGRlbGl2ZXJpbmcgODBHYnBzIG9mIGxpdmUgdmlkZW8gdHJhZmZpYy4g
T25lIG9mIHRoZSBiaWcgYWR2ZXJ0aXNlZCBiZW5lZml0cyBvZiBRVUlDIGlzIGl0cyBzdXBwb3J0
IGZvciBzdHJlYW0gbXVsdGlwbGV4aW5nIGFuZCBpdCBpcyBtb3N0bHkgdXAgdG8gdGhlIGNsaWVu
dCByYXRoZXIgdGhhbiB0aGUgc2VydmVyIGFib3V0IHdoZXRoZXIgdG8gdXNlIGl0LCBJIGRvbuKA
mXQgdGhpbmsgaXRzIHZpYWJsZSB0byBzYXkganVzdCBkb27igJl0IHVzZSBpdD8NCg0KMykgSSdt
IGhhcHB5IHRvIHRyZWF0IHJlb3JkZXJpbmcgaW4gdGhlIE5JQyBhcyBhIGZvcm0gb2YgbmV0d29y
ayByZW9yZGVyaW5nLCBzaW5jZSBpdCdzIG5vdCBzb21ldGhpbmcgdGhlIFFVSUMgaW1wbGVtZW50
YXRpb24gbWF5IGJlIGFibGUgdG8gY29udHJvbC4NCg0KDQpPbiBUdWUsIEp1bCAyNSwgMjAxNyBh
dCA2OjA0IEFNLCBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlkZ2UsIFVLKSA8
dGhvbWFzLnN3aW5kZWxsc0Bub2tpYS5jb208bWFpbHRvOnRob21hcy5zd2luZGVsbHNAbm9raWEu
Y29tPj4gd3JvdGU6DQpJJ3ZlIGJlZW4gdGhpbmtpbmcgYWJvdXQgcGFja2V0IG51bWJlcnMgYW5k
IHdoYXQgaXQgaXMgc2FmZSB0byByZWFzb24gYWJvdXQgdGhlbS4NCg0KV2l0aCByZWdhcmRzIHRv
IHBhY2tldCBudW1iZXJzIHRoZSBrZXkgcGFydHMgb2YgdGhlIHNwZWMgYXBwZWFyIHRvIGJlOg0K
YSkgIFRoZSBwYWNrZXQgbnVtYmVyIGZvciBzZW5kaW5nIE1VU1QgaW5jcmVhc2UgYnkgYXQgbGVh
c3Qgb25lIGFmdGVyIHNlbmRpbmcgYW55IHBhY2tldCwgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZp
ZWQNCmIpIEEgUVVJQyBlbmRwb2ludCBNVVNUIE5PVCByZXVzZSBhIHBhY2tldCBudW1iZXIgd2l0
aGluIHRoZSBzYW1lIGNvbm5lY3Rpb24NCmMpIFRoZSBzZW5kZXIgTVVTVCB1c2UgYSBwYWNrZXQg
bnVtYmVyIHNpemUgYWJsZSB0byByZXByZXNlbnQgbW9yZSB0aGFuIHR3aWNlIGFzIGxhcmdlIGEg
cmFuZ2UgdGhhbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBsYXJnZXN0IGFja25vd2xlZGdl
ZCBwYWNrZXQgYW5kIHBhY2tldCBudW1iZXIgYmVpbmcgc2VudC4NCmQpIEFuIGVuZHBvaW50IFNI
T1VMRCByZXRhaW4gb2xkIGtleXMgZm9yIGEgc2hvcnQgcGVyaW9kIHRvIGFsbG93IGl0IHRvIGRl
Y3J5cHQgcGFja2V0cyB3aXRoIHNtYWxsZXIgcGFja2V0IG51bWJlcnMgdGhhbiB0aGUgcGFja2V0
IHRoYXQgdHJpZ2dlcmVkIHRoZSBrZXkgdXBkYXRlLiBUaGlzIGFsbG93cyBhbiBlbmRwb2ludCB0
byBjb25zdW1lIHBhY2tldHMgdGhhdCBhcmUgcmVvcmRlcmVkIGFyb3VuZCB0aGUgdHJhbnNpdGlv
biBiZXR3ZWVuIGtleXMuIFBhY2tldHMgd2l0aCBoaWdoZXIgcGFja2V0IG51bWJlcnMgYWx3YXlz
IHVzZSB0aGUgdXBkYXRlZCBrZXlzIGFuZCBNVVNUIE5PVCBiZSBkZWNyeXB0ZWQgd2l0aCBvbGQg
a2V5cy4NCg0KPkZyb20gYSByZWNlaXZlcnMgcG9pbnQgb2YgdmlldyB3ZSBhY3RpdmVseSBpZ25v
cmUgYSBhbmQgYXNzdW1lIHRoYXQgdGhlcmUgbWF5IGJlIHBhY2tldCByZW9yZGVyaW5nIGFuZCBw
YWNrZXQgbG9zcyBpbiB0aGUgbmV0d29yay4NClBhY2tldCByZW9yZGVyaW5nIG1lYW5zIHRoYXQg
cGFja2V0IG51bWJlcnMgd29uJ3QgYXBwZWFyIGluIG9yZGVyLiBQYWNrZXQgbG9zcyBhbmQgdGhl
IHN1YnNlcXVlbnQgcmV0cmFuc21pc3Npb24gd2l0aCBhIG5ldyBwYWNrZXQgbnVtYmVyIG1lYW5z
IHRoYXQgKHJldHJhbnNtaXR0ZWQpIGxvd2VyIG9mZnNldCBzdHJlYW0gZGF0YSBtYXkgYXJyaXZl
IHdpdGggYSBoaWdoZXIgcGFja2V0IG51bWJlci4gVGhlIHJlY2VpdmVyIGlzIGV4cGVjdGVkIHRv
IGRlYWwgd2l0aCB0aGVzZSBhcyBwYXJ0IG9mIG5vcm1hbCBvcGVyYXRpb24uDQoNCj5Gcm9tIHRo
ZSBzZW5kZXJzIHBlcnNwZWN0aXZlIHRoZSBwcm9jZXNzIGl0IGdvZXMgdGhyb3VnaCBpczoNCjEu
IEdldCBkYXRhIHRvIHNlbmQNCjIuIEdldCBwYWNrZXQgbnVtYmVyDQozLiBlbmNyeXB0IHBhY2tl
dA0KNC4gcXVldWUgcGFja2V0IG9uIE5JQw0KNS4gTklDIHNlbmRzIHBhY2tldC4NCg0KT24gYSBz
aW5nbGUgdGhyZWFkZWQgc2luZ2xlIHN0cmVhbSBhcHBsaWNhdGlvbiBhbiBpbXBsZW1lbnRhdGlv
biB3cml0dGVuIHRvIHNwZWMgd291bGQgc2VxdWVudGlhbGx5IGNyZWF0ZSBwYWNrZXRzIGluIG9y
ZGVyLCBlbmNyeXB0IHRoZW0gYW5kIHRoZSBuaWMgc2hvdWxkIHRoZW4gc2VuZCB0aGVtIG91dCBp
biBvcmRlciBvbnRvIHRoZSBuZXR3b3JrLg0KSG93ZXZlciBvbiBhIG11bHRpLWNwdSBzZXJ2ZXIg
c2VuZGluZyBtdWx0aXBsZSBzdHJlYW1zIGluIHRoZSBzYW1lIGNvbm5lY3Rpb25zIHRoaW5ncyBn
ZXQgbXVjaCBoYXJkZXIgdG8gcmVhc29uIGFib3V0LiBXZSBjYW4gYXNzdW1lIHRoYXQgZWFjaCBz
dHJlYW0gaXMgbGlrZWx5IGJlaW5nIGdlbmVyYXRlZCBieSBhIGRpZmZlcmVudCBhcHBsaWNhdGlv
biB0aHJlYWQgKHRvIGF2b2lkIHNlcnZlciBzaWRlIGhlYWQgb2YgbGluZSBibG9ja2luZyBldGMp
IGFuZCBzbyBiZSBwcm9kdWNpbmcgcGFja2V0cyBjb25jdXJyZW50bHkuDQpPbmUgb3B0aW9uIGlz
IHRvIHNlcmlhbGlzZSB0aGUgc2VuZGluZywgc28gdGhhdCBhZnRlciBzdGVwIDEgdGhlIHJlcXVl
c3QgZW50ZXJzIGEgc3luY2hyb25pemVkIHNlcmlhbGl6ZWQgcHJvY2VzcyBhbmQgcHJvY2VlZHMg
d2l0aCBzdHJpY3Qgb3JkZXJpbmcgYWxsb3dpbmcgcmVxdWlyZW1lbnQgYSB0byBiZSBtZXQuDQpU
aGlzIG9wdGlvbiBpc24ndCBob3dldmVyIGVmZmljaWVudCBvciBkZXNpcmFibGUgZm9yIGEgcGVy
Zm9ybWFuY2Ugb3B0aW1pemVkIHNvbHV0aW9uLg0KT24gYSBtdWx0aS1jcHUgc3lzdGVtLCBmb3Ig
b3B0aW1hbCBwZXJmb3JtYW5jZSB5b3Ugd2FudCB0byB0YWtlIGFkdmFudGFnZSBvZiBkYXRhIGxv
Y2FsaXR5IChpdCBpcyBleHBlbnNpdmUgdG8gc2h1ZmZsZSBkYXRhIGJldHdlZW4gQ1BVIGNvcmVz
IHdoZW4geW91IGRvbid0IGhhdmUgdG8pLiBUaGUgb2J2aW91cyBkZXNpZ24gd291bGQgYmUgdG8g
aGF2ZSBhbiBhdG9taWMgY291bnRlciBmb3IgdGhlIHBhY2tldCBudW1iZXIgYW5kIGRvIHN0ZXBz
IDEtNCB3aXRoaW4gdGhlIHRocmVhZCAob3IgYXQgbGVhc3QgQ1BVKSB0aGF0IGlzIGdlbmVyYXRp
bmcgdGhlIGRhdGEuIFdpdGggbXVsdGlwbGUgc3RyZWFtcyBiZWluZyBnZW5lcmF0ZWQgb24gbXVs
dGlwbGUgY3B1IGNvcmVzIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBvcmRlciB0aGUg
cGFja2V0IG51bWJlcnMgYXJlIGFzc2lnbmVkIGZvciB0aGUgcGFja2V0cyB3aWxsIG1hdGNoIHRo
ZSBvcmRlciB0aGF0IHRoZSBwYWNrZXRzIGFyZSBxdWV1ZWQgb24gdGhlIE5JQy4gVGhlIGhpZ2hl
ciBudW1iZXJlZCBwYWNrZXQgbWF5IGdldCBlbmNyeXB0ZWQgcXVpY2tlciBhbmQgc28gZW5xdWV1
ZWQgYW5kIHNlbnQgYWhlYWQgb2YgdGhlIGVhcmxpZXIgcGFja2V0IG51bWJlci4gQXQgdGhlIHdp
cmUgbGV2ZWwgdGhpcyB3b3VsZCBnaXZlIGFuIGVncmVzcyBwYXR0ZXJuIHdoZXJlIHRoZSBwYWNr
ZXQgbnVtYmVycyB3ZXJlbid0IGluY3JlYXNpbmcgYWZ0ZXIgZXZlcnkgcGFja2V0LCBvbmx5IG92
ZXIgdGhlIGxvbmdlciBydW4uDQpJZiB0aGUgc2VydmVyIGhhcyBtdWx0aXBsZSBOSUNTIHRoZW4g
dGhlIHByb2JsZW0gaGFzIHBvdGVudGlhbCBvZiBvY2N1cnJpbmcgZXZlbiBpZiBzdGVwcyAxLTQg
aGFkIGJlZW4gc2VyaWFsaXplZCB2aWEgYSBjcm9zcyBjcHUgc2VtYXBob3JlL2xvY2suIERpZmZl
cmVudCBOSUNTIHdpbGwgYmUgYXR0YWNoZWQgdG8gZGlmZmVyZW50IENQVSBjb3JlcyBhbmQgYW4g
ZWZmaWNpZW50IE9TIGNvdWxkIHRyeSB0byBhdm9pZCBjcm9zcyBDUFUgY29tbXVuaWNhdGlvbiBi
eSBxdWV1aW5nIHRoZSBwYWNrZXQgb24gYSBOSUMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIENQVSBh
cyB0aGUgdGhyZWFkIHRoYXQgZ2VuZXJhdGVkIHRoZSBwYWNrZXQuIElmIGRpZmZlcmVudCB0aHJl
YWRzIGFyZSBnZW5lcmF0aW5nIHRoZSBwYWNrZXRzIG9uIGRpZmZlcmVudCBjb3JlcyB0aGVuIHBv
dGVudGlhbGx5IHRoZSBwYWNrZXRzIGNvdWxkIGJlIHF1ZXVlZCBvbiBkaWZmZXJlbnQgTklDUyBh
bmQgdGhlcmVmb3JlIGJlIHNlbnQgb3V0IG9mIG9yZGVyIGV2ZW4gaWYgdGhleSB3ZXJlIHF1ZXVl
ZCBpbiBvcmRlci4NCg0KT2J2aW91c2x5IHdlIGhhdmUgZXN0YWJsaXNoZWQgdGhhdCBhIHJlY2Vp
dmVyIHNob3VsZCBiZSBkZXNpZ25lZCB0byBleHBlY3QgYW5kIGhhbmRsZSBwYWNrZXQgcmUtb3Jk
ZXJpbmcgYW5kIGl0IGlzIHVua25vd24gdG8gdGhlIHJlY2VpdmVyIHdoZXRoZXIgaXQgaXMgaW4g
dGhlIG5ldHdvcmsgb3IgaG9zdCB3aGVyZSB0aGUgcmUtb3JkZXJpbmcgb2NjdXJzLiBGcm9tIGFu
IGVuZCB0byBlbmQgcG9pbnQgb2YgdmlldyBhIG11bHRpLXRocmVhZGVkIGltcGxlbWVudGF0aW9u
IHdvdWxkIHdvcmsuIElmIHRoZSBtdWx0aS10aHJlYWRlZCBpbXBsZW1lbnRhdGlvbiBzdHJpY3Rs
eSBjb21wbGllcyB3aXRoIGEgdGhlbiBJJ20gdW5zdXJlLCBpdCBkZXBlbmRzIHdoYXQgcGFydCBv
ZiB0aGUgcHJvY2VzcyBpcyBkZWZpbmVkIGFzICdzZW5kaW5nJyBhbmQgd2hlcmUgdGhlIG1lYXN1
cmVtZW50IHRvIHZhbGlkYXRlIGl0IHNob3VsZCBiZSB0YWtlbiAoZS5nLiB0aGUgcG9pbnQgdGhl
IHBhY2tldHMgYXBwZWFyIG9uIHRoZSBuZXR3b3JrIHZzIHRoZSBwb2ludCB0aGUgaW50ZW50aW9u
IHRvIGNyZWF0ZSBhIHBhY2tldCB0byBzZW5kIGlzIGFjdGlvbmVkKS4NCg0KVG8gY29tcGxpY2F0
ZSBtYXR0ZXJzIGZ1cnRoZXIsIGFuIGltcGxlbWVudGVyIG1heSBub3Qgd2FudCB0byBhbGxvY2F0
ZWQgcGFja2V0IG51bWJlcnMgb25lIGJ5IG9uZS4gSWYgdGhleSBrbm93IHRoZXkgaGF2ZSAzMiBw
YWNrZXRzIHdvcnRoIG9mIGRhdGEgdG8gc2VuZCB0aGVuIHBlcmhhcHMgaXQgaXMgbW9yZSBlZmZp
Y2llbnQgdG8gcmVxdWVzdCAzMiBwYWNrZXQgbnVtYmVycyBpbiBhIHNpbmdsZSBhdG9taWMgb3Bl
cmF0aW9uIGFuZCB0aGVuIGVuY3J5cHQgYW5kIGVucXVldWUgdGhlIHBhY2tldHMgaW4gdHVybi4g
SWYgYW5vdGhlciB0aHJlYWQgb24gYSBsZXNzIGxvYWRlZCBjcHUgaXMgYWxzbyBnZW5lcmF0aW5n
IHN0cmVhbSBkYXRhIHRoZW4gcGFja2V0IG51bWJlciByZS1vcmRlcmluZyBtYXkgb2NjdXIgdG8g
YW4gZXZlbiBncmVhdGVyIGV4dGVuZC4gQWdhaW4gKHdpdGhpbiBsaW1pdHMpIHRoZSByZWNlaXZl
ciBzaG91bGQgY29wZSB3aXRoIHRoaXMgbGV2ZWwgb2YgcGFja2V0IHJlLW9yZGVyaW5nIC0gYXMg
bG9uZyBhcyB0aGUgcGFja2V0IG51bWJlciBzaXplIGNvbnN0cmFpbnRzIGFyZW4ndCB2aW9sYXRl
ZCBhbmQgdGhlIHBhY2tldHMgYXJyaXZlIGluIGEgdGltZWx5IG1hbm5lci4gSG93ZXZlciBpdCBk
b2VzIGJyZWFrIHRoZSBhc3N1bXB0aW9uIHRoYXQgeW91IGNhbiBnZW5lcmFsbHkgcmVseSBvbiB0
aGUgbG93IG9yZGVyIGJpdHMgb2YgcGFja2V0IG51bWJlcnMgdG8gYmUgZ2VuZXJhbGx5IHNlbnQg
aW4gb3JkZXIuDQoNClRoZSBwYWNrZXQgcmUtb3JkZXJpbmcgaXNzdWUgYWxzbyBpbXBhY3QgcmVx
dWlyZW1lbnRzIGFyb3VuZCBzdHJlYW1zIGlkcyBiZWluZyBjcmVhdGVkIHNlcXVlbnRpYWxseSBp
biBvcmRlciBhcyB0aGUgc2FtZSBzZXQgb2YgcmFjZSBjb25kaXRpb25zIGNhbiBvY2N1ci4NCg0K
SSB0aGluayBpdCBtYXkgYmUgd29ydGh3aGlsZSBjbGFyaWZ5aW5nIHdoYXQgdGhlIHBhY2tldCBu
dW1iZXIgYmVoYXZpb3VyIGlzIGV4cGVjdGVkIHRvIGxvb2sgbGlrZSBmcm9tIGFuIGV4dGVybmFs
IG9ic2VydmVycyBwZXJzcGVjdGl2ZS4gSXMgdGhlcmUgYWN0dWFsbHkgYSBkZXNpcmUgdG8gYXR0
ZW1wdCB0byBmb3JjZSB0aGUgc2VuZGVyIHRvIHNlcmlhbGl6ZSBwYWNrZXQgc2VuZGluZz8gVGhh
dCBpcywgZG9lcyBxdWljIHJlcXVpcmUgdGhhdCB0aGUgZWdyZXNzIGZyb20gdGhlIGhvc3QgaXMg
c3RyaWN0bHkgaW4gb3JkZXIgYW5kIG9ubHkgdGhlIG5ldHdvcmsgY2FuIGludHJvZHVjZSByZS1v
cmRlcmluZz8gV2hpbHN0IGtlZXBpbmcgd2l0aGluIHRoZSBjb25zdHJhaW50cyBvZiBiLWQsIGlz
L3Nob3VsZCBpdCBiZSBhY2NlcHRhYmxlIHRoYXQgYW4gaW1wbGVtZW50YXRpb24gYWxsb2NhdGVz
IGJsb2NrcyBvZiBjb250aWd1b3VzIHBhY2tldCBudW1iZXJzIGZvciBlYWNoIHN0cmVhbT8gSWYg
cHJvYmFibHkgd291bGQgbWVhbiB5b3UgZW5kIHVwIHdpdGggZ2FwcyBpbiBwYWNrZXQgbnVtYmVy
cyB3aGVuIGEgc3RyZWFtIGRvZXNuJ3QgdXNlIGFsbCBvZiBpdHMgYWxsb2NhdGlvbiBpbiB0aW1l
IChlLmcgYSBrZXkgY2hhbmdlIHJlcXVpcmVzIGl0IHRvIG1vdmUgdG8gYSBuZXcgYWxsb2NhdGlv
bikuIElmIGl0IGlzbid0IGFjY2VwdGFibGUgdGhlbiB3aGF0IGFyZSB0aGUgY29uc3RyYWludHMg
dGhlIHNlbmRlciBzaG91bGQga2VlcCB3aXRoaW4/DQoNClRob21hcw0KDQoNCj4gLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUVVJQyBbbWFpbHRvOnF1aWMtYm91bmNlc0BpZXRm
Lm9yZzxtYWlsdG86cXVpYy1ib3VuY2VzQGlldGYub3JnPl0gT24gQmVoYWxmIE9mIERtaXRyaSBU
aWtob25vdg0KPiBTZW50OiAyMSBKdWx5IDIwMTcgMTA6MzgNCj4gVG86IE1pa2tlbCBGYWhuw7hl
IErDuHJnZW5zZW4gPG1pa2tlbGZqQGdtYWlsLmNvbTxtYWlsdG86bWlra2VsZmpAZ21haWwuY29t
Pj4NCj4gQ2M6IE1hZ251cyBXZXN0ZXJsdW5kIDxtYWdudXMud2VzdGVybHVuZEBlcmljc3Nvbi5j
b208bWFpbHRvOm1hZ251cy53ZXN0ZXJsdW5kQGVyaWNzc29uLmNvbT4+OyBJRVRGIFFVSUMgV0cN
Cj4gPHF1aWNAaWV0Zi5vcmc8bWFpbHRvOnF1aWNAaWV0Zi5vcmc+Pg0KPiBTdWJqZWN0OiBSZTog
SWRlYSBmb3IgcGFja2V0IG51bWJlcnMNCj4NCj4gT24gVGh1LCBKdWwgMjAsIDIwMTcgYXQgMDc6
MTA6MTFBTSAtMDQwMCwgTWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbiB3cm90ZToNCj4gPiBGb3Ig
b3RoZXIgcmVhc29ucyBJIHdvdWxkIGxpa2UgdGhlIHBhY2tldCBudW1iZXJzIHRvIGJlIGNsb3Nl
LA0KPiA+IHByZWZlcmFibHkgd2l0aG91dCBnYXBzIGV4Y2VwdCBkdXJpbmcgY29ubmVjdGlvbiBt
aWdyYXRpb24uDQo+ID4NCj4gPiBUaGlzIHJlbGF0ZXMgdG8gc3RvcmluZyBpbnRlcnZhbCBtYXBz
IGFzIGdyb3VwcyBvZiBiaXRtYXBzIGluc3RlYWQgb2YNCj4gPiBiaW5hcnkgdHJlZXMgdG8gdHJh
Y2sgYWxyZWFkeSByZWNlaXZlZCBwYWNrZXRzLiBUaGlzIGJvdGggcHJvdmlkZXMgYXJlDQo+ID4g
bW9yZSBlZmZpY2llbnQgaW1wbGVtZW50YXRpb24sIGFuZCBpdCByZWR1Y2VzIHNvbWUgbW9kZXMg
b2YgRG9TIHdoZXJlDQo+ID4gYW4gYXR0YWNrZXIgY2FuIGNyZWF0ZSBhIGxvdCBvZiBzbWFsbCBp
bnRlcnZhbHMgd2hpY2ggY2F1c2UgdGhlIGRhdGENCj4gPiBzdHJ1Y3R1cmUgdG8gaW5mbGF0ZS4N
Cj4NCj4gVGhlIHJlY2VpdmUgaGlzdG9yeSBnZXRzIHRydW5jYXRlZCBhdXRvbWF0aWNhbGx5LCBh
bmQgc28gdGhlIHJlY2VpdmVyIGRvZXMgbm90DQo+IGhhdmUgdG8gd29ycnkgYWJvdXQgYSBsb3Qg
b2YgZGF0YSB0byBrZWVwIHRyYWNrIG9mLiAgRnJvbSBbZHJhZnQtaWV0Zi1xdWljLQ0KPiB0cmFu
c3BvcnRdIDguMTM6DQo+DQo+ICAiIFRvIGxpbWl0IEFDSyBibG9ja3MgdG8gdGhvc2UgdGhhdCBo
YXZlIG5vdCB5ZXQgYmVlbiByZWNlaXZlZCAgIiBieSB0aGUNCj4gc2VuZGVyLCB0aGUgcmVjZWl2
ZXIgU0hPVUxEIHRyYWNrIHdoaWNoIEFDSyBmcmFtZXMgICIgaGF2ZSBiZWVuDQo+IGFja25vd2xl
ZGdlZCBieSBpdHMgcGVlci4gIE9uY2UgYW4gQUNLIGZyYW1lIGhhcyAgIiBiZWVuIGFja25vd2xl
ZGdlZCwgdGhlDQo+IHBhY2tldHMgaXQgYWNrbm93bGVkZ2VzIFNIT1VMRCBub3QgYmUgICIgYWNr
bm93bGVkZ2VkIGFnYWluLg0KPg0KPiBTZW5kIGhpc3RvcnkgaXMgYW5vdGhlciBtYXR0ZXIuICBJ
YmlkLiwgOC4xMzoNCj4NCj4gICIgVGhlIHNlbmRlciBTSE9VTEQgY2xvc2UgdGhlIGNvbm5lY3Rp
b24gaWYgYW4gdW5zZW50IHBhY2tldCAgIiBudW1iZXIgaXMNCj4gYWNrbm93bGVkZ2VkLg0KPg0K
PiAoUHJldmlvdXMgdmVyc2lvbnMgb2YgdGhlIGRyYWZ0IGhhZCBhIE1VU1QgaW5zdGVhZCBvZiBh
IFNIT1VMRC4pDQo+DQo+IFRodXMgaXQgaXMgaW4gdGhlIGludGVyZXN0IG9mIHRoZSBzZW5kZXIg
ZWl0aGVyIHRvIGNyZWF0ZSBmZXcgZ2FwcyBvciB0byBjcmVhdGUNCj4gdGhlbSBpbiBhIG1hbm5l
ciB0aGF0IGRvZXMgbm90IGJsb3cgdXAgaXRzIG93biBzZW5kIGhpc3RvcnkgZGF0YSBzdHJ1Y3R1
cmVzIGlmDQo+IGl0IHdhbnRzIHRvIGNoZWNrIHdoZXRoZXIgYW4gdW5zZW50IHBhY2tldCBpcyBB
Q0tlZC4NCj4NCj4gICAtIERtaXRyaS4NCg0K

--_000_DB5PR07MB123729774C9302FA783031DC84B80DB5PR07MB1237eurp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9
DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCglj
b2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu
Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpw
dXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1z
b25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCglt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBjbTsNCglmb250LXNpemU6MTIuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCnNwYW4uaG9lbnpiDQoJe21z
by1zdHlsZS1uYW1lOmhvZW56Yjt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXttc28tc3R5bGUtdHlw
ZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCglj
b2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9y
dC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCW1zby1mYXJlYXN0
LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzky
LjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30NCmRpdi5Xb3JkU2Vj
dGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+
DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5
b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9v
OnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4t
R0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVm
dDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxk
aXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRk
aW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIGxh
bmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkZyb206PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj4gSWFuIFN3ZXR0IFttYWlsdG86aWFuc3dldHRAZ29vZ2xlLmNvbV0NCjxicj4N
CjxiPlNlbnQ6PC9iPiAyNSBKdWx5IDIwMTcgMTM6MjU8YnI+DQo8Yj5Ubzo8L2I+IFN3aW5kZWxs
cywgVGhvbWFzIChOb2tpYSAtIEdCL0NhbWJyaWRnZSwgVUspICZsdDt0aG9tYXMuc3dpbmRlbGxz
QG5va2lhLmNvbSZndDs8YnI+DQo8Yj5DYzo8L2I+IERtaXRyaSBUaWtob25vdiAmbHQ7ZHRpa2hv
bm92QGxpdGVzcGVlZHRlY2guY29tJmd0OzsgTWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbiAmbHQ7
bWlra2VsZmpAZ21haWwuY29tJmd0OzsgTWFnbnVzIFdlc3Rlcmx1bmQgJmx0O21hZ251cy53ZXN0
ZXJsdW5kQGVyaWNzc29uLmNvbSZndDs7IElFVEYgUVVJQyBXRyAmbHQ7cXVpY0BpZXRmLm9yZyZn
dDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IElkZWEgZm9yIHBhY2tldCBudW1iZXJzPG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlNvbWUgdGhv
dWdodHMuPG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m
bmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4xKSBT
ZW5kaW5nIHBhY2tldCBudW1iZXJzIGluIG9yZGVyIGlzIG5vdCByZXF1aXJlZCwgYnV0IHRoZSBm
YXJ0aGVyIG91dCBvZiBvcmRlciBwYWNrZXRzIGdldCwgdGhlIG1vcmUgYWNrcyB0aGUgcmVjZWl2
ZXIgaXMgZ29pbmcgdG8gc2VuZCwgdGhlIGxhcmdlciB0aGV5J2xsIGJlLCBhbmQgdGhlIG1vcmUg
Y29tcGxleCBsb3NzIGRldGVjdGlvbiBpcy4mbmJzcDsgSW4gcGFydGljdWxhciwgeW91IHdvbid0
IGJlIGFibGUNCiB0byByZWx5IG9uIFFVSUMncyBwYWNrZXQgbnVtYmVycyBiZWluZyBpbiB0aW1l
IG9yZGVyLiZuYnNwOyBUTERSOyBJdCdzIGVhc2llciB0byBzZW5kIHBhY2tldHMgaW4gb3JkZXIg
dGhhbiBpdCBpcyB0byBjb3JyZWN0bHkgZGVhbCB3aXRoIHRoZSBpbXBsaWNhdGlvbnMgb2Ygc2Vu
ZGluZyB0aGVtIG91dCBvZiBvcmRlci4mbmJzcDsmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MikgSSBkb24ndCB0aGluayB0aGVyZSdz
IGEgY29tcGVsbGluZyByZWFzb24gdG8gdXNlIG11bHRpcGxlIENQVXMgZm9yIGEgc2luZ2xlIFFV
SUMgY29ubmVjdGlvbiBpbiBhbnkgY2lyY3Vtc3RhbmNlcyBJJ3ZlIGVuY291bnRlcmVkLiZuYnNw
OyBBbmQgaWYgaXQgaXMgbmVjZXNzYXJ5LCBpdCdkIGJlIG11Y2ggc2ltcGxlciBhbmQgZmFzdGVy
IHRvIGF2b2lkIGFueSBsb2NraW5nIGFuZCB1c2UgbXVsdGlwbGUgUVVJQyBjb25uZWN0aW9ucyhv
cg0KIHBvc3NpYmx5IG11bHRpcGF0aCBpZiBpdCBleGlzdGVkKS4mbmJzcDsgVGhpcyBhbHNvIGhh
cyB0aGUgYmVuZWZpdCBvZiBzZW5kaW5nIHRoZSBwYWNrZXQgbnVtYmVycyBzZXF1ZW50aWFsbHkg
Zm9yIGEgZ2l2ZW4gY29ubmVjdGlvbiBJRC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+W1Rob21hcyBTd2luZGVsbHNdIFBlcmZvcm1h
bmNlIHNlZW1zIHRvIG1lIHRvIGJlIGEgY29tcGVsbGluZyByZWFzb24uIEZpcnN0bHkgaWYgeW91
IGhhdmUgZGlmZmVyZW50IGFzc2V0cy9kYXRhIGluIG1lbW9yeSAocGFydGljdWxhcmx5IENQVSBj
YWNoZSkgdG8gZ2V0IHRoZSBtb3N0IG91dA0KIG9mIGEgc3lzdGVtIHlvdSB3YW50IHRvIGtlZXAg
dGhlIGRhdGEgcHJvY2Vzc2luZyBsb2NhbCB0byB0aGUgY3B1LiBTZWNvbmRseSBlbmNyeXB0aW9u
IGlzIHN0aWxsIGEgcmVsYXRpdmVseSBleHBlbnNpdmUgb3BlcmF0aW9uLCBDUFVzIGhhdmUgYWNj
ZWxlcmF0aW9uIHRvIGhlbHAgc28geW91IGFyZSBnb2luZyB0byB3YW50IHRvIGRvIHdvcmsgaW4g
cGFyYWxsZWwg4oCTIHBhcnRpY3VsYXJseSB3aGVuIGRlbGl2ZXJpbmcgbXVsdGlwbGUgc3RyZWFt
cy4NCiBUaGVzZSBjYW4gbWFrZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBhIHNlcnZlciBkZWxp
dmVyaW5nIDgwR2JwcyBvZiBsaXZlIHZpZGVvIHRyYWZmaWMuIE9uZSBvZiB0aGUgYmlnIGFkdmVy
dGlzZWQgYmVuZWZpdHMgb2YgUVVJQyBpcyBpdHMgc3VwcG9ydCBmb3Igc3RyZWFtIG11bHRpcGxl
eGluZyBhbmQgaXQgaXMgbW9zdGx5IHVwIHRvIHRoZSBjbGllbnQgcmF0aGVyIHRoYW4gdGhlIHNl
cnZlciBhYm91dCB3aGV0aGVyIHRvIHVzZSBpdCwgSSBkb27igJl0DQogdGhpbmsgaXRzIHZpYWJs
ZSB0byBzYXkganVzdCBkb27igJl0IHVzZSBpdD88L3NwYW4+PC9pPjwvYj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+MykgSSdtIGhhcHB5IHRvIHRyZWF0IHJlb3JkZXJpbmcgaW4gdGhlIE5JQyBhcyBh
IGZvcm0gb2YgbmV0d29yayByZW9yZGVyaW5nLCBzaW5jZSBpdCdzIG5vdCBzb21ldGhpbmcgdGhl
IFFVSUMgaW1wbGVtZW50YXRpb24gbWF5IGJlIGFibGUgdG8gY29udHJvbC48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiBUdWUsIEp1bCAy
NSwgMjAxNyBhdCA2OjA0IEFNLCBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlk
Z2UsIFVLKSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnRob21hcy5zd2luZGVsbHNAbm9raWEuY29tIiB0
YXJnZXQ9Il9ibGFuayI+dGhvbWFzLnN3aW5kZWxsc0Bub2tpYS5jb208L2E+Jmd0OyB3cm90ZTo8
bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVm
dDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2luLWxl
ZnQ6NC44cHQ7bWFyZ2luLXJpZ2h0OjBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JJ3ZlIGJl
ZW4gdGhpbmtpbmcgYWJvdXQgcGFja2V0IG51bWJlcnMgYW5kIHdoYXQgaXQgaXMgc2FmZSB0byBy
ZWFzb24gYWJvdXQgdGhlbS48YnI+DQo8YnI+DQpXaXRoIHJlZ2FyZHMgdG8gcGFja2V0IG51bWJl
cnMgdGhlIGtleSBwYXJ0cyBvZiB0aGUgc3BlYyBhcHBlYXIgdG8gYmU6PGJyPg0KYSkmbmJzcDsg
VGhlIHBhY2tldCBudW1iZXIgZm9yIHNlbmRpbmcgTVVTVCBpbmNyZWFzZSBieSBhdCBsZWFzdCBv
bmUgYWZ0ZXIgc2VuZGluZyBhbnkgcGFja2V0LCB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZDxi
cj4NCmIpIEEgUVVJQyBlbmRwb2ludCBNVVNUIE5PVCByZXVzZSBhIHBhY2tldCBudW1iZXIgd2l0
aGluIHRoZSBzYW1lIGNvbm5lY3Rpb248YnI+DQpjKSBUaGUgc2VuZGVyIE1VU1QgdXNlIGEgcGFj
a2V0IG51bWJlciBzaXplIGFibGUgdG8gcmVwcmVzZW50IG1vcmUgdGhhbiB0d2ljZSBhcyBsYXJn
ZSBhIHJhbmdlIHRoYW4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbGFyZ2VzdCBhY2tub3ds
ZWRnZWQgcGFja2V0IGFuZCBwYWNrZXQgbnVtYmVyIGJlaW5nIHNlbnQuPGJyPg0KZCkgQW4gZW5k
cG9pbnQgU0hPVUxEIHJldGFpbiBvbGQga2V5cyBmb3IgYSBzaG9ydCBwZXJpb2QgdG8gYWxsb3cg
aXQgdG8gZGVjcnlwdCBwYWNrZXRzIHdpdGggc21hbGxlciBwYWNrZXQgbnVtYmVycyB0aGFuIHRo
ZSBwYWNrZXQgdGhhdCB0cmlnZ2VyZWQgdGhlIGtleSB1cGRhdGUuIFRoaXMgYWxsb3dzIGFuIGVu
ZHBvaW50IHRvIGNvbnN1bWUgcGFja2V0cyB0aGF0IGFyZSByZW9yZGVyZWQgYXJvdW5kIHRoZSB0
cmFuc2l0aW9uIGJldHdlZW4ga2V5cy4NCiBQYWNrZXRzIHdpdGggaGlnaGVyIHBhY2tldCBudW1i
ZXJzIGFsd2F5cyB1c2UgdGhlIHVwZGF0ZWQga2V5cyBhbmQgTVVTVCBOT1QgYmUgZGVjcnlwdGVk
IHdpdGggb2xkIGtleXMuPGJyPg0KPGJyPg0KJmd0O0Zyb20gYSByZWNlaXZlcnMgcG9pbnQgb2Yg
dmlldyB3ZSBhY3RpdmVseSBpZ25vcmUgYSBhbmQgYXNzdW1lIHRoYXQgdGhlcmUgbWF5IGJlIHBh
Y2tldCByZW9yZGVyaW5nIGFuZCBwYWNrZXQgbG9zcyBpbiB0aGUgbmV0d29yay48YnI+DQpQYWNr
ZXQgcmVvcmRlcmluZyBtZWFucyB0aGF0IHBhY2tldCBudW1iZXJzIHdvbid0IGFwcGVhciBpbiBv
cmRlci4gUGFja2V0IGxvc3MgYW5kIHRoZSBzdWJzZXF1ZW50IHJldHJhbnNtaXNzaW9uIHdpdGgg
YSBuZXcgcGFja2V0IG51bWJlciBtZWFucyB0aGF0IChyZXRyYW5zbWl0dGVkKSBsb3dlciBvZmZz
ZXQgc3RyZWFtIGRhdGEgbWF5IGFycml2ZSB3aXRoIGEgaGlnaGVyIHBhY2tldCBudW1iZXIuIFRo
ZSByZWNlaXZlciBpcyBleHBlY3RlZCB0bw0KIGRlYWwgd2l0aCB0aGVzZSBhcyBwYXJ0IG9mIG5v
cm1hbCBvcGVyYXRpb24uPGJyPg0KPGJyPg0KJmd0O0Zyb20gdGhlIHNlbmRlcnMgcGVyc3BlY3Rp
dmUgdGhlIHByb2Nlc3MgaXQgZ29lcyB0aHJvdWdoIGlzOjxicj4NCjEuIEdldCBkYXRhIHRvIHNl
bmQ8YnI+DQoyLiBHZXQgcGFja2V0IG51bWJlcjxicj4NCjMuIGVuY3J5cHQgcGFja2V0PGJyPg0K
NC4gcXVldWUgcGFja2V0IG9uIE5JQzxicj4NCjUuIE5JQyBzZW5kcyBwYWNrZXQuPGJyPg0KPGJy
Pg0KT24gYSBzaW5nbGUgdGhyZWFkZWQgc2luZ2xlIHN0cmVhbSBhcHBsaWNhdGlvbiBhbiBpbXBs
ZW1lbnRhdGlvbiB3cml0dGVuIHRvIHNwZWMgd291bGQgc2VxdWVudGlhbGx5IGNyZWF0ZSBwYWNr
ZXRzIGluIG9yZGVyLCBlbmNyeXB0IHRoZW0gYW5kIHRoZSBuaWMgc2hvdWxkIHRoZW4gc2VuZCB0
aGVtIG91dCBpbiBvcmRlciBvbnRvIHRoZSBuZXR3b3JrLjxicj4NCkhvd2V2ZXIgb24gYSBtdWx0
aS1jcHUgc2VydmVyIHNlbmRpbmcgbXVsdGlwbGUgc3RyZWFtcyBpbiB0aGUgc2FtZSBjb25uZWN0
aW9ucyB0aGluZ3MgZ2V0IG11Y2ggaGFyZGVyIHRvIHJlYXNvbiBhYm91dC4gV2UgY2FuIGFzc3Vt
ZSB0aGF0IGVhY2ggc3RyZWFtIGlzIGxpa2VseSBiZWluZyBnZW5lcmF0ZWQgYnkgYSBkaWZmZXJl
bnQgYXBwbGljYXRpb24gdGhyZWFkICh0byBhdm9pZCBzZXJ2ZXIgc2lkZSBoZWFkIG9mIGxpbmUg
YmxvY2tpbmcgZXRjKQ0KIGFuZCBzbyBiZSBwcm9kdWNpbmcgcGFja2V0cyBjb25jdXJyZW50bHku
PGJyPg0KT25lIG9wdGlvbiBpcyB0byBzZXJpYWxpc2UgdGhlIHNlbmRpbmcsIHNvIHRoYXQgYWZ0
ZXIgc3RlcCAxIHRoZSByZXF1ZXN0IGVudGVycyBhIHN5bmNocm9uaXplZCBzZXJpYWxpemVkIHBy
b2Nlc3MgYW5kIHByb2NlZWRzIHdpdGggc3RyaWN0IG9yZGVyaW5nIGFsbG93aW5nIHJlcXVpcmVt
ZW50IGEgdG8gYmUgbWV0Ljxicj4NClRoaXMgb3B0aW9uIGlzbid0IGhvd2V2ZXIgZWZmaWNpZW50
IG9yIGRlc2lyYWJsZSBmb3IgYSBwZXJmb3JtYW5jZSBvcHRpbWl6ZWQgc29sdXRpb24uPGJyPg0K
T24gYSBtdWx0aS1jcHUgc3lzdGVtLCBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSB5b3Ugd2FudCB0
byB0YWtlIGFkdmFudGFnZSBvZiBkYXRhIGxvY2FsaXR5IChpdCBpcyBleHBlbnNpdmUgdG8gc2h1
ZmZsZSBkYXRhIGJldHdlZW4gQ1BVIGNvcmVzIHdoZW4geW91IGRvbid0IGhhdmUgdG8pLiBUaGUg
b2J2aW91cyBkZXNpZ24gd291bGQgYmUgdG8gaGF2ZSBhbiBhdG9taWMgY291bnRlciBmb3IgdGhl
IHBhY2tldCBudW1iZXIgYW5kIGRvIHN0ZXBzIDEtNA0KIHdpdGhpbiB0aGUgdGhyZWFkIChvciBh
dCBsZWFzdCBDUFUpIHRoYXQgaXMgZ2VuZXJhdGluZyB0aGUgZGF0YS4gV2l0aCBtdWx0aXBsZSBz
dHJlYW1zIGJlaW5nIGdlbmVyYXRlZCBvbiBtdWx0aXBsZSBjcHUgY29yZXMgdGhlcmUgaXMgbm8g
Z3VhcmFudGVlIHRoYXQgdGhlIG9yZGVyIHRoZSBwYWNrZXQgbnVtYmVycyBhcmUgYXNzaWduZWQg
Zm9yIHRoZSBwYWNrZXRzIHdpbGwgbWF0Y2ggdGhlIG9yZGVyIHRoYXQgdGhlIHBhY2tldHMgYXJl
IHF1ZXVlZA0KIG9uIHRoZSBOSUMuIFRoZSBoaWdoZXIgbnVtYmVyZWQgcGFja2V0IG1heSBnZXQg
ZW5jcnlwdGVkIHF1aWNrZXIgYW5kIHNvIGVucXVldWVkIGFuZCBzZW50IGFoZWFkIG9mIHRoZSBl
YXJsaWVyIHBhY2tldCBudW1iZXIuIEF0IHRoZSB3aXJlIGxldmVsIHRoaXMgd291bGQgZ2l2ZSBh
biBlZ3Jlc3MgcGF0dGVybiB3aGVyZSB0aGUgcGFja2V0IG51bWJlcnMgd2VyZW4ndCBpbmNyZWFz
aW5nIGFmdGVyIGV2ZXJ5IHBhY2tldCwgb25seSBvdmVyIHRoZQ0KIGxvbmdlciBydW4uPGJyPg0K
SWYgdGhlIHNlcnZlciBoYXMgbXVsdGlwbGUgTklDUyB0aGVuIHRoZSBwcm9ibGVtIGhhcyBwb3Rl
bnRpYWwgb2Ygb2NjdXJyaW5nIGV2ZW4gaWYgc3RlcHMgMS00IGhhZCBiZWVuIHNlcmlhbGl6ZWQg
dmlhIGEgY3Jvc3MgY3B1IHNlbWFwaG9yZS9sb2NrLiBEaWZmZXJlbnQgTklDUyB3aWxsIGJlIGF0
dGFjaGVkIHRvIGRpZmZlcmVudCBDUFUgY29yZXMgYW5kIGFuIGVmZmljaWVudCBPUyBjb3VsZCB0
cnkgdG8gYXZvaWQgY3Jvc3MgQ1BVIGNvbW11bmljYXRpb24NCiBieSBxdWV1aW5nIHRoZSBwYWNr
ZXQgb24gYSBOSUMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIENQVSBhcyB0aGUgdGhyZWFkIHRoYXQg
Z2VuZXJhdGVkIHRoZSBwYWNrZXQuIElmIGRpZmZlcmVudCB0aHJlYWRzIGFyZSBnZW5lcmF0aW5n
IHRoZSBwYWNrZXRzIG9uIGRpZmZlcmVudCBjb3JlcyB0aGVuIHBvdGVudGlhbGx5IHRoZSBwYWNr
ZXRzIGNvdWxkIGJlIHF1ZXVlZCBvbiBkaWZmZXJlbnQgTklDUyBhbmQgdGhlcmVmb3JlIGJlIHNl
bnQgb3V0IG9mDQogb3JkZXIgZXZlbiBpZiB0aGV5IHdlcmUgcXVldWVkIGluIG9yZGVyLjxicj4N
Cjxicj4NCk9idmlvdXNseSB3ZSBoYXZlIGVzdGFibGlzaGVkIHRoYXQgYSByZWNlaXZlciBzaG91
bGQgYmUgZGVzaWduZWQgdG8gZXhwZWN0IGFuZCBoYW5kbGUgcGFja2V0IHJlLW9yZGVyaW5nIGFu
ZCBpdCBpcyB1bmtub3duIHRvIHRoZSByZWNlaXZlciB3aGV0aGVyIGl0IGlzIGluIHRoZSBuZXR3
b3JrIG9yIGhvc3Qgd2hlcmUgdGhlIHJlLW9yZGVyaW5nIG9jY3Vycy4gRnJvbSBhbiBlbmQgdG8g
ZW5kIHBvaW50IG9mIHZpZXcgYSBtdWx0aS10aHJlYWRlZCBpbXBsZW1lbnRhdGlvbg0KIHdvdWxk
IHdvcmsuIElmIHRoZSBtdWx0aS10aHJlYWRlZCBpbXBsZW1lbnRhdGlvbiBzdHJpY3RseSBjb21w
bGllcyB3aXRoIGEgdGhlbiBJJ20gdW5zdXJlLCBpdCBkZXBlbmRzIHdoYXQgcGFydCBvZiB0aGUg
cHJvY2VzcyBpcyBkZWZpbmVkIGFzICdzZW5kaW5nJyBhbmQgd2hlcmUgdGhlIG1lYXN1cmVtZW50
IHRvIHZhbGlkYXRlIGl0IHNob3VsZCBiZSB0YWtlbiAoZS5nLiB0aGUgcG9pbnQgdGhlIHBhY2tl
dHMgYXBwZWFyIG9uIHRoZSBuZXR3b3JrDQogdnMgdGhlIHBvaW50IHRoZSBpbnRlbnRpb24gdG8g
Y3JlYXRlIGEgcGFja2V0IHRvIHNlbmQgaXMgYWN0aW9uZWQpLjxicj4NCjxicj4NClRvIGNvbXBs
aWNhdGUgbWF0dGVycyBmdXJ0aGVyLCBhbiBpbXBsZW1lbnRlciBtYXkgbm90IHdhbnQgdG8gYWxs
b2NhdGVkIHBhY2tldCBudW1iZXJzIG9uZSBieSBvbmUuIElmIHRoZXkga25vdyB0aGV5IGhhdmUg
MzIgcGFja2V0cyB3b3J0aCBvZiBkYXRhIHRvIHNlbmQgdGhlbiBwZXJoYXBzIGl0IGlzIG1vcmUg
ZWZmaWNpZW50IHRvIHJlcXVlc3QgMzIgcGFja2V0IG51bWJlcnMgaW4gYSBzaW5nbGUgYXRvbWlj
IG9wZXJhdGlvbiBhbmQgdGhlbiBlbmNyeXB0DQogYW5kIGVucXVldWUgdGhlIHBhY2tldHMgaW4g
dHVybi4gSWYgYW5vdGhlciB0aHJlYWQgb24gYSBsZXNzIGxvYWRlZCBjcHUgaXMgYWxzbyBnZW5l
cmF0aW5nIHN0cmVhbSBkYXRhIHRoZW4gcGFja2V0IG51bWJlciByZS1vcmRlcmluZyBtYXkgb2Nj
dXIgdG8gYW4gZXZlbiBncmVhdGVyIGV4dGVuZC4gQWdhaW4gKHdpdGhpbiBsaW1pdHMpIHRoZSBy
ZWNlaXZlciBzaG91bGQgY29wZSB3aXRoIHRoaXMgbGV2ZWwgb2YgcGFja2V0IHJlLW9yZGVyaW5n
DQogLSBhcyBsb25nIGFzIHRoZSBwYWNrZXQgbnVtYmVyIHNpemUgY29uc3RyYWludHMgYXJlbid0
IHZpb2xhdGVkIGFuZCB0aGUgcGFja2V0cyBhcnJpdmUgaW4gYSB0aW1lbHkgbWFubmVyLiBIb3dl
dmVyIGl0IGRvZXMgYnJlYWsgdGhlIGFzc3VtcHRpb24gdGhhdCB5b3UgY2FuIGdlbmVyYWxseSBy
ZWx5IG9uIHRoZSBsb3cgb3JkZXIgYml0cyBvZiBwYWNrZXQgbnVtYmVycyB0byBiZSBnZW5lcmFs
bHkgc2VudCBpbiBvcmRlci48YnI+DQo8YnI+DQpUaGUgcGFja2V0IHJlLW9yZGVyaW5nIGlzc3Vl
IGFsc28gaW1wYWN0IHJlcXVpcmVtZW50cyBhcm91bmQgc3RyZWFtcyBpZHMgYmVpbmcgY3JlYXRl
ZCBzZXF1ZW50aWFsbHkgaW4gb3JkZXIgYXMgdGhlIHNhbWUgc2V0IG9mIHJhY2UgY29uZGl0aW9u
cyBjYW4gb2NjdXIuPGJyPg0KPGJyPg0KSSB0aGluayBpdCBtYXkgYmUgd29ydGh3aGlsZSBjbGFy
aWZ5aW5nIHdoYXQgdGhlIHBhY2tldCBudW1iZXIgYmVoYXZpb3VyIGlzIGV4cGVjdGVkIHRvIGxv
b2sgbGlrZSBmcm9tIGFuIGV4dGVybmFsIG9ic2VydmVycyBwZXJzcGVjdGl2ZS4gSXMgdGhlcmUg
YWN0dWFsbHkgYSBkZXNpcmUgdG8gYXR0ZW1wdCB0byBmb3JjZSB0aGUgc2VuZGVyIHRvIHNlcmlh
bGl6ZSBwYWNrZXQgc2VuZGluZz8gVGhhdCBpcywgZG9lcyBxdWljIHJlcXVpcmUgdGhhdA0KIHRo
ZSBlZ3Jlc3MgZnJvbSB0aGUgaG9zdCBpcyBzdHJpY3RseSBpbiBvcmRlciBhbmQgb25seSB0aGUg
bmV0d29yayBjYW4gaW50cm9kdWNlIHJlLW9yZGVyaW5nPyBXaGlsc3Qga2VlcGluZyB3aXRoaW4g
dGhlIGNvbnN0cmFpbnRzIG9mIGItZCwgaXMvc2hvdWxkIGl0IGJlIGFjY2VwdGFibGUgdGhhdCBh
biBpbXBsZW1lbnRhdGlvbiBhbGxvY2F0ZXMgYmxvY2tzIG9mIGNvbnRpZ3VvdXMgcGFja2V0IG51
bWJlcnMgZm9yIGVhY2ggc3RyZWFtPyBJZg0KIHByb2JhYmx5IHdvdWxkIG1lYW4geW91IGVuZCB1
cCB3aXRoIGdhcHMgaW4gcGFja2V0IG51bWJlcnMgd2hlbiBhIHN0cmVhbSBkb2Vzbid0IHVzZSBh
bGwgb2YgaXRzIGFsbG9jYXRpb24gaW4gdGltZSAoZS5nIGEga2V5IGNoYW5nZSByZXF1aXJlcyBp
dCB0byBtb3ZlIHRvIGEgbmV3IGFsbG9jYXRpb24pLiBJZiBpdCBpc24ndCBhY2NlcHRhYmxlIHRo
ZW4gd2hhdCBhcmUgdGhlIGNvbnN0cmFpbnRzIHRoZSBzZW5kZXIgc2hvdWxkIGtlZXAgd2l0aGlu
Pzxicj4NCjxzcGFuIHN0eWxlPSJjb2xvcjojODg4ODg4Ij48YnI+DQo8c3BhbiBjbGFzcz0iaG9l
bnpiIj5UaG9tYXM8L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxicj4NCjxi
cj4NCiZndDsgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS08YnI+DQomZ3Q7IEZyb206IFFVSUMg
W21haWx0bzo8YSBocmVmPSJtYWlsdG86cXVpYy1ib3VuY2VzQGlldGYub3JnIj5xdWljLWJvdW5j
ZXNAaWV0Zi5vcmc8L2E+XSBPbiBCZWhhbGYgT2YgRG1pdHJpIFRpa2hvbm92PGJyPg0KJmd0OyBT
ZW50OiAyMSBKdWx5IDIwMTcgMTA6Mzg8YnI+DQomZ3Q7IFRvOiBNaWtrZWwgRmFobsO4ZSBKw7hy
Z2Vuc2VuICZsdDs8YSBocmVmPSJtYWlsdG86bWlra2VsZmpAZ21haWwuY29tIj5taWtrZWxmakBn
bWFpbC5jb208L2E+Jmd0Ozxicj4NCiZndDsgQ2M6IE1hZ251cyBXZXN0ZXJsdW5kICZsdDs8YSBo
cmVmPSJtYWlsdG86bWFnbnVzLndlc3Rlcmx1bmRAZXJpY3Nzb24uY29tIj5tYWdudXMud2VzdGVy
bHVuZEBlcmljc3Nvbi5jb208L2E+Jmd0OzsgSUVURiBRVUlDIFdHPGJyPg0KJmd0OyAmbHQ7PGEg
aHJlZj0ibWFpbHRvOnF1aWNAaWV0Zi5vcmciPnF1aWNAaWV0Zi5vcmc8L2E+Jmd0Ozxicj4NCiZn
dDsgU3ViamVjdDogUmU6IElkZWEgZm9yIHBhY2tldCBudW1iZXJzPGJyPg0KJmd0Ozxicj4NCiZn
dDsgT24gVGh1LCBKdWwgMjAsIDIwMTcgYXQgMDc6MTA6MTFBTSAtMDQwMCwgTWlra2VsIEZhaG7D
uGUgSsO4cmdlbnNlbiB3cm90ZTo8YnI+DQomZ3Q7ICZndDsgRm9yIG90aGVyIHJlYXNvbnMgSSB3
b3VsZCBsaWtlIHRoZSBwYWNrZXQgbnVtYmVycyB0byBiZSBjbG9zZSw8YnI+DQomZ3Q7ICZndDsg
cHJlZmVyYWJseSB3aXRob3V0IGdhcHMgZXhjZXB0IGR1cmluZyBjb25uZWN0aW9uIG1pZ3JhdGlv
bi48YnI+DQomZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsgVGhpcyByZWxhdGVzIHRvIHN0b3Jpbmcg
aW50ZXJ2YWwgbWFwcyBhcyBncm91cHMgb2YgYml0bWFwcyBpbnN0ZWFkIG9mPGJyPg0KJmd0OyAm
Z3Q7IGJpbmFyeSB0cmVlcyB0byB0cmFjayBhbHJlYWR5IHJlY2VpdmVkIHBhY2tldHMuIFRoaXMg
Ym90aCBwcm92aWRlcyBhcmU8YnI+DQomZ3Q7ICZndDsgbW9yZSBlZmZpY2llbnQgaW1wbGVtZW50
YXRpb24sIGFuZCBpdCByZWR1Y2VzIHNvbWUgbW9kZXMgb2YgRG9TIHdoZXJlPGJyPg0KJmd0OyAm
Z3Q7IGFuIGF0dGFja2VyIGNhbiBjcmVhdGUgYSBsb3Qgb2Ygc21hbGwgaW50ZXJ2YWxzIHdoaWNo
IGNhdXNlIHRoZSBkYXRhPGJyPg0KJmd0OyAmZ3Q7IHN0cnVjdHVyZSB0byBpbmZsYXRlLjxicj4N
CiZndDs8YnI+DQomZ3Q7IFRoZSByZWNlaXZlIGhpc3RvcnkgZ2V0cyB0cnVuY2F0ZWQgYXV0b21h
dGljYWxseSwgYW5kIHNvIHRoZSByZWNlaXZlciBkb2VzIG5vdDxicj4NCiZndDsgaGF2ZSB0byB3
b3JyeSBhYm91dCBhIGxvdCBvZiBkYXRhIHRvIGtlZXAgdHJhY2sgb2YuJm5ic3A7IEZyb20gW2Ry
YWZ0LWlldGYtcXVpYy08YnI+DQomZ3Q7IHRyYW5zcG9ydF0gOC4xMzo8YnI+DQomZ3Q7PGJyPg0K
Jmd0OyZuYnNwOyAmcXVvdDsgVG8gbGltaXQgQUNLIGJsb2NrcyB0byB0aG9zZSB0aGF0IGhhdmUg
bm90IHlldCBiZWVuIHJlY2VpdmVkJm5ic3A7ICZxdW90OyBieSB0aGU8YnI+DQomZ3Q7IHNlbmRl
ciwgdGhlIHJlY2VpdmVyIFNIT1VMRCB0cmFjayB3aGljaCBBQ0sgZnJhbWVzJm5ic3A7ICZxdW90
OyBoYXZlIGJlZW48YnI+DQomZ3Q7IGFja25vd2xlZGdlZCBieSBpdHMgcGVlci4mbmJzcDsgT25j
ZSBhbiBBQ0sgZnJhbWUgaGFzJm5ic3A7ICZxdW90OyBiZWVuIGFja25vd2xlZGdlZCwgdGhlPGJy
Pg0KJmd0OyBwYWNrZXRzIGl0IGFja25vd2xlZGdlcyBTSE9VTEQgbm90IGJlJm5ic3A7ICZxdW90
OyBhY2tub3dsZWRnZWQgYWdhaW4uPGJyPg0KJmd0Ozxicj4NCiZndDsgU2VuZCBoaXN0b3J5IGlz
IGFub3RoZXIgbWF0dGVyLiZuYnNwOyBJYmlkLiwgOC4xMzo8YnI+DQomZ3Q7PGJyPg0KJmd0OyZu
YnNwOyAmcXVvdDsgVGhlIHNlbmRlciBTSE9VTEQgY2xvc2UgdGhlIGNvbm5lY3Rpb24gaWYgYW4g
dW5zZW50IHBhY2tldCZuYnNwOyAmcXVvdDsgbnVtYmVyIGlzPGJyPg0KJmd0OyBhY2tub3dsZWRn
ZWQuPGJyPg0KJmd0Ozxicj4NCiZndDsgKFByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBkcmFmdCBo
YWQgYSBNVVNUIGluc3RlYWQgb2YgYSBTSE9VTEQuKTxicj4NCiZndDs8YnI+DQomZ3Q7IFRodXMg
aXQgaXMgaW4gdGhlIGludGVyZXN0IG9mIHRoZSBzZW5kZXIgZWl0aGVyIHRvIGNyZWF0ZSBmZXcg
Z2FwcyBvciB0byBjcmVhdGU8YnI+DQomZ3Q7IHRoZW0gaW4gYSBtYW5uZXIgdGhhdCBkb2VzIG5v
dCBibG93IHVwIGl0cyBvd24gc2VuZCBoaXN0b3J5IGRhdGEgc3RydWN0dXJlcyBpZjxicj4NCiZn
dDsgaXQgd2FudHMgdG8gY2hlY2sgd2hldGhlciBhbiB1bnNlbnQgcGFja2V0IGlzIEFDS2VkLjxi
cj4NCiZndDs8YnI+DQomZ3Q7Jm5ic3A7ICZuYnNwOy0gRG1pdHJpLjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+
DQo8L2h0bWw+DQo=

--_000_DB5PR07MB123729774C9302FA783031DC84B80DB5PR07MB1237eurp_--


From nobody Tue Jul 25 05:41:22 2017
Return-Path: <dtikhonov@litespeedtech.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 4E30C129B35 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:41:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=litespeedtech-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 yB_GlHiSEmBJ for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 05:41:19 -0700 (PDT)
Received: from mail-qt0-x229.google.com (mail-qt0-x229.google.com [IPv6:2607:f8b0:400d:c0d::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 BC13F129AAD for <quic@ietf.org>; Tue, 25 Jul 2017 05:41:19 -0700 (PDT)
Received: by mail-qt0-x229.google.com with SMTP id p3so25482560qtg.2 for <quic@ietf.org>; Tue, 25 Jul 2017 05:41:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=aTCPb/ON6quwCBCckIKO9mGJbb7wH1norPWEEZOiI2Y=; b=m8Ix5Io6NvqCbK2/owWiRG8yKXaasZt91otvZPO7CrtZdgkzogkHvg1XSTLDimNhJ5 cXmmfk+897XTbWMI1yywD06QWEY84xFlCNB4xxV9d5nypK/DrVj1HMnrXUA0BQgsgEts mLHITs5xj2wr/ziiARuWfaiXtnWJ6r1D0IgXdziuomYSUPVaRj8eAa5TXcKzeZCe+xvF J6nwlCJTAQm2BOF0buqolYg+ASNo4bGEqJnsT1OLFH3Pel2nxsmln54FllFvFNV5eAqD 14fkklHI7MvInFO99elAHW1YwHWULlv99VdqY7HrdQ1WPzYBhB82RigjV0X53qkNoq94 AxxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=aTCPb/ON6quwCBCckIKO9mGJbb7wH1norPWEEZOiI2Y=; b=aXaCmLURyOqbifk0289ZQVicoJe06vnqd23C1unqab/hXAhk1uJNCgXKMUZ6whyrsM 7xYjSRDmbHMdMeZwiQKikKOkHkfoiEj3t/SjlSFp5MpZ/AEFWH9YaK+IsxPJEE86+mEp V5v6QUU+72V7JCaSht9pOXbqcJPRbnHmfjYzM4RXeBIC4KR9GMcj1ict25tp1db7hggE +3WTGYPNRbm03GTE87QcHYp55A99YXwtSdpx0KbpQrlyfhm5C2hvouN9p6bylTUb+MQX ObhKqmzaKEDrNWeJg56KTA67efwN6Vh/Z8cOx0cmVNrZDRzDqAZceipqzveZ1wzJj3Yn MsyQ==
X-Gm-Message-State: AIVw112LHHRb7luFGKHLZjA4C3Q3BH5XyUclfziudQZqWuNPvHx95mwq mFcoCncu4sVyuPQW
X-Received: by 10.200.48.105 with SMTP id g38mr15800862qte.125.1500986478776;  Tue, 25 Jul 2017 05:41:18 -0700 (PDT)
Received: from ubuntu-dmitri (ool-2f1636b6.static.optonline.net. [47.22.54.182]) by smtp.gmail.com with ESMTPSA id o20sm10489662qtc.23.2017.07.25.05.41.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Jul 2017 05:41:18 -0700 (PDT)
Date: Tue, 25 Jul 2017 08:41:09 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Cc: Mikkel =?iso-8859-1?Q?Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>, Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: Re: Idea for packet numbers
Message-ID: <20170725124109.GA1764@ubuntu-dmitri>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/2TB2u4-7whskkj0U9Seqy6OnZjY>
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: Tue, 25 Jul 2017 12:41:21 -0000

On Tue, Jul 25, 2017 at 10:04:52AM +0000, Swindells, Thomas (Nokia - GB/Cambridge, UK) wrote:
> From the senders perspective the process it goes through is:
> 1. Get data to send
> 2. Get packet number
> 3. encrypt packet
> 4. queue packet on NIC
> 5. NIC sends packet.

I think this model needs to account for the OS.

A normal application does not write to NIC directly: it goes through
the kernel.  A socket's send buffer may get full and queueing a packet
may fail.  Let's assume that happens and the application waits to queue
a packet.  (If instead you just throw this packet out and pretend that
you queued it, then it is conceptually the same as the "write to NIC
directly" model above, but I don't think many people are ready to take
that route.)  While the application waits for the socket to become
writeable, an ACK alarm may go off or new packets may arrive for this
connection: generating and sending an ACK is in order.  Since we want
to send the ACK first, the buffered, not-yet-sent packet may need to be
renumbered, have its contents changed, or both:

    - Either the packet does not contain an ACK, in which case the
      new ACK frame is put into a new packet and the buffered packet
      gets a new packet number; or
    - The packet contains an ACK which can be replaced with the new
      ACK (if there is room), in which case the packet gets to keep
      the number, but the packet contents change.

Another scenario where butchering unsent packets is required is when
RST_STREAM comes in: application must then drop outgoing STREAM frames
for that stream.

The process is, then:

    1. Get data to send
    2. Get packet number
    3. Encrypt packet
    4. Try enqueuing packet
        a) If successful, "commit" packet number and go to (1)
        b) If unsuccessful, wait and do something smart later,
           depending on circumstances

Just my $.02,

  - Dmitri.


From nobody Tue Jul 25 06:26:19 2017
Return-Path: <krose@krose.org>
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 9A563129789 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 06:26:17 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=krose.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 bnr4MGeuKnjO for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 06:26:13 -0700 (PDT)
Received: from mail-qk0-x235.google.com (mail-qk0-x235.google.com [IPv6:2607:f8b0:400d:c09::235]) (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 2DA9B131C33 for <quic@ietf.org>; Tue, 25 Jul 2017 06:26:13 -0700 (PDT)
Received: by mail-qk0-x235.google.com with SMTP id q130so27761333qka.4 for <quic@ietf.org>; Tue, 25 Jul 2017 06:26:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=krose.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=pKAzWkpZIEarTLsK6NSSsO6Ev5X6vjR8nJZQTpsN/PU=; b=geX+1q4x1a/s6AwYUC4vI/GpycGt2onpRnabAWk/l6mC0HRQhZsvWVWxRV/i2xHjh4 0yTTr/PV4v1fsRICOuTJCR4HrXwuLeAQZarE8A9WhE1eqbM/4pfPcJBblID3Zq/cECgC jRwhaR5vrTSOTZt5TrWmQLp1tkd/e2HEn0/7w=
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=pKAzWkpZIEarTLsK6NSSsO6Ev5X6vjR8nJZQTpsN/PU=; b=mIZ1S3hBO7Jm3vCFQzENUjHr0dQHUrdjoBHNiajKl4kVBC4SNFDgXU0p6QoSO/kH// mwFaOvsqvQzb5CeAi9h7Yy1zJIvQm4CwS1zDmfAp7fZLxrHmoScFbDcFLpIJx3P/Cwio 2n7eL6ivCV6UqF6w64TjGp4G6Uih0ppKpou6+qHqu8baXbzOve6YaOzN9sSJIxfMAfnB 0VZ41ucf4VZXryKxj1WaeedCxFOr0vOHGcemb5u5kYgXB2LpQEt8WernosKGehsP8WgD ztybUas1NMyRAeTZBL6IMVSoPm05GfR16qCzTMBt1T0ViTMutso26IBzU2eoDAQH6h/k j7MA==
X-Gm-Message-State: AIVw111W7NSIX+n0fYOyJ+NdoyGdhJGPbYOG19r2ipvsyuFrAriqqh3B bX0NkzxxmUna/EnvsuTRvap2YZcAED4z
X-Received: by 10.55.131.65 with SMTP id f62mr22990538qkd.290.1500989172047; Tue, 25 Jul 2017 06:26:12 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.55.128.194 with HTTP; Tue, 25 Jul 2017 06:26:11 -0700 (PDT)
X-Originating-IP: [2607:fb90:edd:e418:74a8:300a:fb36:b806]
Received: by 10.55.128.194 with HTTP; Tue, 25 Jul 2017 06:26:11 -0700 (PDT)
In-Reply-To: <DB5PR07MB123729774C9302FA783031DC84B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com> <DB5PR07MB123729774C9302FA783031DC84B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
From: Kyle Rose <krose@krose.org>
Date: Tue, 25 Jul 2017 09:26:11 -0400
Message-ID: <CAJU8_nXNPEJwwEqJuVy1nrfdtRXX-=EchTAQpr2Waa8m1Ksceg@mail.gmail.com>
Subject: RE: Idea for packet numbers
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Cc: Ian Swett <ianswett@google.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  IETF QUIC WG <quic@ietf.org>, Magnus Westerlund <magnus.westerlund@ericsson.com>
Content-Type: multipart/alternative; boundary="94eb2c0702726999e1055524460f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/gEeq_eOlaTrXgyH30D_m9VV1bDM>
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: Tue, 25 Jul 2017 13:26:18 -0000

--94eb2c0702726999e1055524460f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Jul 25, 2017 8:36 AM, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <
thomas.swindells@nokia.com> wrote:

* encryption is still a relatively expensive operation, CPUs have
acceleration to help so you are going to want to do work in parallel =E2=80=
=93
particularly when delivering multiple streams. These can make a significant
impact on a server delivering 80Gbps of live video traffic. One of the big
advertised benefits of QUIC is its support for stream multiplexing and it
is mostly up to the client rather than the server about whether to use it,
I don=E2=80=99t think its viable to say just don=E2=80=99t use it?*

Are you planning to serve 80 Gb/s on a single connection? If yes, then I
assume that's an infrastructure connection (e.g., cache to cache). I'm
skeptical of the comparative advantage of one connection vs. N for N CPUs
when compared to the complexity/cost of supporting parallel senders that
need to share at least some state.

Kyle

--94eb2c0702726999e1055524460f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><div class=3D"gmail_extra"><div class=3D"gmail_quote=
">On Jul 25, 2017 8:36 AM, &quot;Swindells, Thomas (Nokia - GB/Cambridge, U=
K)&quot; &lt;<a href=3D"mailto:thomas.swindells@nokia.com">thomas.swindells=
@nokia.com</a>&gt; wrote:</div></div></div><div dir=3D"auto"><div class=3D"=
gmail_extra"><div class=3D"gmail_quote"><blockquote class=3D"quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lan=
g=3D"EN-GB" link=3D"blue" vlink=3D"purple"><div class=3D"m_4430913705959815=
62WordSection1"><div style=3D"border:none;border-left:solid blue 1.5pt;padd=
ing:0cm 0cm 0cm 4.0pt"><div><div><p class=3D"MsoNormal"><b><i><span style=
=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">=C2=A0encr=
yption is still a relatively expensive operation, CPUs have acceleration to=
 help so you are going to want to do work in parallel =E2=80=93 particularl=
y when delivering multiple streams.
 These can make a significant impact on a server delivering 80Gbps of live =
video traffic. One of the big advertised benefits of QUIC is its support fo=
r stream multiplexing and it is mostly up to the client rather than the ser=
ver about whether to use it, I don=E2=80=99t
 think its viable to say just don=E2=80=99t use it?</span></i></b></p></div=
></div></div></div></div></blockquote></div></div></div><div dir=3D"auto">A=
re you planning to serve 80 Gb/s on a single connection? If yes, then I ass=
ume that&#39;s an infrastructure connection (e.g., cache to cache). I&#39;m=
 skeptical of the comparative advantage of one connection vs. N for N CPUs =
when compared to the complexity/cost of supporting parallel senders that ne=
ed to share at least some state.</div><div dir=3D"auto"><br></div><div dir=
=3D"auto">Kyle</div></div>

--94eb2c0702726999e1055524460f--


From nobody Tue Jul 25 07:29:00 2017
Return-Path: <thomas.swindells@nokia.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 8794F12EB5D for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:28:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 vNlj-FlLCaAk for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:28:56 -0700 (PDT)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0725.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe1e::725]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC061131CD0 for <quic@ietf.org>; Tue, 25 Jul 2017 07:28:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=EsdaG7RokIkJW0iICIkx5Rh+Ue6+Vz/AnvVgrVdT9CY=; b=cWPjnK/R3dYPGypOAq6wz45v6d8HlQ47vw54Lk4oNUk02k2iR7+B69nqMLaJBzGXPJjvm1f4QcU2aoUM8AqmRGAqUjFmT/D23oDNVcMHlvbpOfUMX78+fCh+zjH/u7exNds805+Xt1CSj3r6LhBsY70zMAPr2q+ej2KFvXFG9pM=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB1271.eurprd07.prod.outlook.com (10.164.41.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.10; Tue, 25 Jul 2017 14:28:52 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.014; Tue, 25 Jul 2017 14:28:52 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
CC: =?iso-8859-1?Q?Mikkel_Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>, "Magnus Westerlund" <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Idea for packet numbers
Thread-Topic: Idea for packet numbers
Thread-Index: AQHTAT74Pm6HB4E+oUyHojrh9ct+26JcjwOAgAF4cgCAA8bLAIACtdaAgAAAveA=
Date: Tue, 25 Jul 2017 14:28:52 +0000
Message-ID: <DB5PR07MB1237128AE49E9EC81EC0A43984B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <20170725124109.GA1764@ubuntu-dmitri>
In-Reply-To: <20170725124109.GA1764@ubuntu-dmitri>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [82.69.101.84]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB1271; 7:VB18DC48AExXBF267lDaRApLaY4N+gVsYGW/awdiTV9amI7gy1NASTgrlD6GHlr3fb64J4RB6gTITgu7D/n07PSfPHVokQX7XCHJe/nWQC3gQw+bKzzRUqxWXdAWVuWx8CYxmgiVtZZ2yg1Q8ctBWjsY8qNgZF5X9gXu4HXiw/8fBY7JZB5fBoU7xlKhNnHKdOzi4g4By93JMf2Q+/WNqhReJr1DWwRQE8eNtcP//9Cdw/6giv1SeO9pN2aKftpsxWO3TYFg54R7rMQbJEzcVdSMbx5oEGQJI8FrEQuaIp6v9e1Q/zJOALfhLnSmf7hN0cB6ui7y6erP3Lp8MakY5Yx6fNtyrC3cZmhdGqXD/PdC/x1c9gqKzYiJl6Y2Jj/NNGDIVjp4viFXMEgRb9LjkansoM+pmygIrap8BF3D6W1bhn3zgYBRb3hQ5VctB/VjKsKrLU1715NqPdM7zCuoOnKI+H9ZcIR3fFaaN6WIQq62nnlBFGHxdeyUirDRjDWBsP2lIVVwpNBrcItkw9qb1CYmy4s3AVmxpL3mL9n1eVY8UIVI5sNZvvP5/k+7G0yVT+TrBfUfflFBD5n7rvLUJrq0qDM5or2VK0gMAAIiL/yiRNGBDR3Qi0diCG6bgz6x20bkNWYtPEUDq2oBlPMZIbx+xeXUn7PHDn0lY+W1Ay2Pcsk65w0qZ3vPkgOnd1ujhTvYl8OgPG1RbME8REP4M+uX5aDhLTRIJu1O8b+864nc8HAvF32HIEhI8Xz19y0TFeVN+VO3df5hPmFJm5O/guvuVfXIGpCAy7/DAbamF/w=
x-ms-office365-filtering-correlation-id: 1e8f37e9-64dd-48c0-2e69-08d4d369796b
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB1271; 
x-ms-traffictypediagnostic: DB5PR07MB1271:
x-exchange-antispam-report-test: UriScan:(37575265505322)(82608151540597);
x-microsoft-antispam-prvs: <DB5PR07MB1271145727A1E8C2361000AC84B80@DB5PR07MB1271.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB1271; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB1271; 
x-forefront-prvs: 03793408BA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39860400002)(39450400003)(39840400002)(39400400002)(39850400002)(13464003)(189002)(24454002)(199003)(99286003)(7696004)(305945005)(5660300001)(54906002)(6246003)(55016002)(106356001)(3280700002)(8936002)(53936002)(110136004)(101416001)(3660700001)(74316002)(38730400002)(9686003)(54356999)(105586002)(25786009)(14454004)(3480700004)(68736007)(93886004)(86362001)(5250100002)(76176999)(50986999)(6506006)(33656002)(189998001)(66066001)(4326008)(53546010)(8676002)(7736002)(2900100001)(6436002)(229853002)(81166006)(81156014)(2950100002)(478600001)(6916009)(102836003)(2906002)(3846002)(6116002)(39060400002)(97736004); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB1271; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2017 14:28:52.6204 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1271
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/_V5Vh3BHT780HoZ3LcqU5Ut5DDE>
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: Tue, 25 Jul 2017 14:28:58 -0000

4 wasn't meant to imply how you queue the packet on the NIC - I was assumin=
g via a kernel API call into normal udp send buffers, but both methods are =
valid.
You are right though there is the potential for the queuing operation to be=
 blocked/rejected.
As I understand it the packet number is used in the encryption process, so =
changing a packets number is a non-trivial operation.=20
A fast path route for queuing acks makes sense, again however the only real=
 way to do that would be to give the ack packet a higher packet number but =
then send it before lower marked packets - even potentially if they do also=
 contain ack frames.
For RST_STREAM I think it is permitted that currently queued packets are st=
ill sent, but if they only contain that streams packets then it is a benefi=
cial optimization if they weren't sent (leaving packet number gaps).

Thomas

> -----Original Message-----
> From: Dmitri Tikhonov [mailto:dtikhonov@litespeedtech.com]
> Sent: 25 July 2017 13:41
> To: Swindells, Thomas (Nokia - GB/Cambridge, UK)
> <thomas.swindells@nokia.com>
> Cc: Mikkel Fahn=F8e J=F8rgensen <mikkelfj@gmail.com>; Magnus Westerlund
> <magnus.westerlund@ericsson.com>; IETF QUIC WG <quic@ietf.org>
> Subject: Re: Idea for packet numbers
>=20
> On Tue, Jul 25, 2017 at 10:04:52AM +0000, Swindells, Thomas (Nokia -
> GB/Cambridge, UK) wrote:
> > From the senders perspective the process it goes through is:
> > 1. Get data to send
> > 2. Get packet number
> > 3. encrypt packet
> > 4. queue packet on NIC
> > 5. NIC sends packet.
>=20
> I think this model needs to account for the OS.
>=20
> A normal application does not write to NIC directly: it goes through the =
kernel.
> A socket's send buffer may get full and queueing a packet may fail.  Let'=
s
> assume that happens and the application waits to queue a packet.  (If ins=
tead
> you just throw this packet out and pretend that you queued it, then it is
> conceptually the same as the "write to NIC directly" model above, but I d=
on't
> think many people are ready to take that route.)  While the application w=
aits
> for the socket to become writeable, an ACK alarm may go off or new packet=
s
> may arrive for this
> connection: generating and sending an ACK is in order.  Since we want to
> send the ACK first, the buffered, not-yet-sent packet may need to be
> renumbered, have its contents changed, or both:
>=20
>     - Either the packet does not contain an ACK, in which case the
>       new ACK frame is put into a new packet and the buffered packet
>       gets a new packet number; or
>     - The packet contains an ACK which can be replaced with the new
>       ACK (if there is room), in which case the packet gets to keep
>       the number, but the packet contents change.
>=20
> Another scenario where butchering unsent packets is required is when
> RST_STREAM comes in: application must then drop outgoing STREAM frames
> for that stream.
>=20
> The process is, then:
>=20
>     1. Get data to send
>     2. Get packet number
>     3. Encrypt packet
>     4. Try enqueuing packet
>         a) If successful, "commit" packet number and go to (1)
>         b) If unsuccessful, wait and do something smart later,
>            depending on circumstances
>=20
> Just my $.02,
>=20
>   - Dmitri.


From nobody Tue Jul 25 07:34:28 2017
Return-Path: <acmorton@att.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 29FE1131CDC for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:34:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.62
X-Spam-Level: 
X-Spam-Status: No, score=-2.62 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 3jqE9CKADLcd for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:34:23 -0700 (PDT)
Received: from mx0a-00191d01.pphosted.com (mx0a-00191d01.pphosted.com [67.231.149.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A667E131CD4 for <quic@ietf.org>; Tue, 25 Jul 2017 07:34:23 -0700 (PDT)
Received: from pps.filterd (m0049297.ppops.net [127.0.0.1]) by m0049297.ppops.net-00191d01. (8.16.0.17/8.16.0.17) with SMTP id v6PEPq8f047362; Tue, 25 Jul 2017 10:34:17 -0400
Received: from tlpd255.enaf.dadc.sbc.com (sbcsmtp3.sbc.com [144.160.112.28]) by m0049297.ppops.net-00191d01. with ESMTP id 2bx7959553-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 25 Jul 2017 10:34:17 -0400
Received: from enaf.dadc.sbc.com (localhost [127.0.0.1]) by tlpd255.enaf.dadc.sbc.com (8.14.5/8.14.5) with ESMTP id v6PEYGTN011977; Tue, 25 Jul 2017 09:34:16 -0500
Received: from dalint02.pst.cso.att.com (dalint02.pst.cso.att.com [135.31.133.160]) by tlpd255.enaf.dadc.sbc.com (8.14.5/8.14.5) with ESMTP id v6PEY7Ke011882 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 25 Jul 2017 09:34:08 -0500
Received: from clpi183.sldc.sbc.com (clpi183.sldc.sbc.com [135.41.1.46]) by dalint02.pst.cso.att.com (RSA Interceptor); Tue, 25 Jul 2017 14:33:54 GMT
Received: from sldc.sbc.com (localhost [127.0.0.1]) by clpi183.sldc.sbc.com (8.14.5/8.14.5) with ESMTP id v6PEXsqM011731; Tue, 25 Jul 2017 09:33:54 -0500
Received: from mail-blue.research.att.com (mail-blue.research.att.com [135.207.178.11]) by clpi183.sldc.sbc.com (8.14.5/8.14.5) with ESMTP id v6PEXhcD010847; Tue, 25 Jul 2017 09:33:43 -0500
Received: from exchange.research.att.com (njmtcas2.research.att.com [135.207.255.47]) by mail-blue.research.att.com (Postfix) with ESMTP id DDDA6F05B9; Tue, 25 Jul 2017 10:33:42 -0400 (EDT)
Received: from njmtexg4.research.att.com ([fe80::8cd:baa3:219e:5bd4]) by njmtcas2.research.att.com ([fe80::d550:ec84:f872:cad9%15]) with mapi id 14.03.0361.001; Tue, 25 Jul 2017 10:33:42 -0400
From: "MORTON, ALFRED C (AL)" <acmorton@att.com>
To: Ian Swett <ianswett@google.com>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
CC: Magnus Westerlund <magnus.westerlund@ericsson.com>, =?utf-8?B?TWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbg==?= <mikkelfj@gmail.com>, "IETF QUIC WG" <quic@ietf.org>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Subject: RE: Idea for packet numbers
Thread-Topic: Idea for packet numbers
Thread-Index: AQHTAT74Pm6HB4E+oUyHojrh9ct+26JcjwOAgAF4cgCAA8bLAIAC9FKA///aNiA=
Date: Tue, 25 Jul 2017 14:33:42 +0000
Message-ID: <4D7F4AD313D3FC43A053B309F97543CF46BC67BC@njmtexg4.research.att.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com>
In-Reply-To: <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.16.251.241]
Content-Type: multipart/alternative; boundary="_000_4D7F4AD313D3FC43A053B309F97543CF46BC67BCnjmtexg4researc_"
MIME-Version: 1.0
X-RSA-Inspected: yes
X-RSA-Classifications: public
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-25_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1706020000 definitions=main-1707250229
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/_HKqLd335qIo6H1g5xWVE6VMYmI>
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: Tue, 25 Jul 2017 14:34:26 -0000

--_000_4D7F4AD313D3FC43A053B309F97543CF46BC67BCnjmtexg4researc_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgSWFuLCBUaG9tYXMsDQoNCkZyb206IFFVSUMgW21haWx0bzpxdWljLWJvdW5jZXNAaWV0Zi5v
cmddIE9uIEJlaGFsZiBPZiBJYW4gU3dldHQNClNlbnQ6IFR1ZXNkYXksIEp1bHkgMjUsIDIwMTcg
ODoyNSBBTQ0KVG86IFN3aW5kZWxscywgVGhvbWFzIChOb2tpYSAtIEdCL0NhbWJyaWRnZSwgVUsp
DQpDYzogTWFnbnVzIFdlc3Rlcmx1bmQ7IE1pa2tlbCBGYWhuw7hlIErDuHJnZW5zZW47IElFVEYg
UVVJQyBXRzsgRG1pdHJpIFRpa2hvbm92DQpTdWJqZWN0OiBSZTogSWRlYSBmb3IgcGFja2V0IG51
bWJlcnMNCg0KU29tZSB0aG91Z2h0cy4NCg0KMSkgU2VuZGluZyBwYWNrZXQgbnVtYmVycyBpbiBv
cmRlciBpcyBub3QgcmVxdWlyZWQsIGJ1dCB0aGUgZmFydGhlciBvdXQgb2Ygb3JkZXIgcGFja2V0
cyBnZXQsIHRoZSBtb3JlIGFja3MgdGhlIHJlY2VpdmVyIGlzIGdvaW5nIHRvIHNlbmQsIHRoZSBs
YXJnZXIgdGhleSdsbCBiZSwgYW5kIHRoZSBtb3JlIGNvbXBsZXggbG9zcyBkZXRlY3Rpb24gaXMu
ICBJbiBwYXJ0aWN1bGFyLCB5b3Ugd29uJ3QgYmUgYWJsZSB0byByZWx5IG9uIFFVSUMncyBwYWNr
ZXQgbnVtYmVycyBiZWluZyBpbiB0aW1lIG9yZGVyLiAgVExEUjsgSXQncyBlYXNpZXIgdG8gc2Vu
ZCBwYWNrZXRzIGluIG9yZGVyIHRoYW4gaXQgaXMgdG8gY29ycmVjdGx5IGRlYWwgd2l0aCB0aGUg
aW1wbGljYXRpb25zIG9mIHNlbmRpbmcgdGhlbSBvdXQgb2Ygb3JkZXIuDQo8c25pcD4NCltBQ01d
DQpBbHRob3VnaCB0aGlzIHRocmVhZCBpcyBvbiBsb25nZXIgcGFja2V0IG51bWJlcnMsDQpJIHRo
aW5rIGl04oCZcyB3b3J0aCBwb2ludGluZyBvdXQgdGhhdA0Kcm91dGluZSByZW9yZGVyaW5nIGF0
IHRoZSBTZW5kZXIgd291bGQgaGF2ZQ0KaW1wbGljYXRpb25zIGZvciB0aGUgc2luZ2xlLWJpdCBh
bHRlcm5hdGUgbWFya2luZw0KKFNwaW4tYml0KSBhcHByb2FjaC4gVGhlIGJvdW5kYXJ5IGJldHdl
ZW4NCnBhY2tldHMgbWFya2VkIOKAnDDigJ0gYW5kIOKAnDHigJ0gd291bGQgbm90IGJlIHJlbGlh
YmxlOw0KdGhlcmUgd291bGQgYXBwZWFyIHRvIGJlIHZlcnkgc2hvcnQgUlRUcyBhbG9uZyB3aXRo
IGxvbmdlciBSVFRzOg0KDQogIC4uLiAwIDAgMCAxIDEgMCAxIDEgMSAxIDEgLi4uDQogICAgICAg
ICAgICBeIF4NCiAgIF4gPSByZW9yZGVyZWQNClRoZSBzaW5nbGUgYml0IGRvZXNu4oCZdCBoYXZl
IGVub3VnaCBpbmZvIHRvDQpyZXN0b3JlIG9yZGVyLiBBdm9pZCByZW9yZGVyaW5nIGlmIHBvc3Np
YmxlLg0KDQpBbA0KDQoNCg==

--_000_4D7F4AD313D3FC43A053B309F97543CF46BC67BCnjmtexg4researc_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJ
e2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQov
KiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1z
b05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNp
emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7fQ0KYTps
aW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6
Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29I
eXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxl
Ow0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0Kc3Bhbi5ob2VuemINCgl7bXNvLXN0eWxl
LW5hbWU6aG9lbnpiO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNv
bmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyIsInNlcmlmIjsNCgljb2xvcjpi
bGFjazt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglm
b250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0K
CXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQ0K
ZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1b
aWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1h
eD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0K
PG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9
IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9k
eSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJX
b3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDssJnF1b3Q7c2VyaWYm
cXVvdDs7Y29sb3I6YmxhY2siPkhpIElhbiwgVGhvbWFzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJs
YWNrIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9u
ZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQi
Pg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRE
RiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9t
YSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDsiPiBRVUlDIFttYWlsdG86cXVpYy1ib3VuY2VzQGlldGYub3JnXQ0K
PGI+T24gQmVoYWxmIE9mIDwvYj5JYW4gU3dldHQ8YnI+DQo8Yj5TZW50OjwvYj4gVHVlc2RheSwg
SnVseSAyNSwgMjAxNyA4OjI1IEFNPGJyPg0KPGI+VG86PC9iPiBTd2luZGVsbHMsIFRob21hcyAo
Tm9raWEgLSBHQi9DYW1icmlkZ2UsIFVLKTxicj4NCjxiPkNjOjwvYj4gTWFnbnVzIFdlc3Rlcmx1
bmQ7IE1pa2tlbCBGYWhuw7hlIErDuHJnZW5zZW47IElFVEYgUVVJQyBXRzsgRG1pdHJpIFRpa2hv
bm92PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBJZGVhIGZvciBwYWNrZXQgbnVtYmVyczxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Tb21lIHRo
b3VnaHRzLjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MSkg
U2VuZGluZyBwYWNrZXQgbnVtYmVycyBpbiBvcmRlciBpcyBub3QgcmVxdWlyZWQsIGJ1dCB0aGUg
ZmFydGhlciBvdXQgb2Ygb3JkZXIgcGFja2V0cyBnZXQsIHRoZSBtb3JlIGFja3MgdGhlIHJlY2Vp
dmVyIGlzIGdvaW5nIHRvIHNlbmQsIHRoZSBsYXJnZXIgdGhleSdsbCBiZSwgYW5kIHRoZSBtb3Jl
IGNvbXBsZXggbG9zcyBkZXRlY3Rpb24gaXMuJm5ic3A7IEluIHBhcnRpY3VsYXIsIHlvdSB3b24n
dCBiZSBhYmxlDQogdG8gcmVseSBvbiBRVUlDJ3MgcGFja2V0IG51bWJlcnMgYmVpbmcgaW4gdGlt
ZSBvcmRlci4mbmJzcDsgVExEUjsgSXQncyBlYXNpZXIgdG8gc2VuZCBwYWNrZXRzIGluIG9yZGVy
IHRoYW4gaXQgaXMgdG8gY29ycmVjdGx5IGRlYWwgd2l0aCB0aGUgaW1wbGljYXRpb25zIG9mIHNl
bmRpbmcgdGhlbSBvdXQgb2Ygb3JkZXIuJm5ic3A7Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+PC9zcGFuPjwvaT48L2I+PHNwYW4g
c3R5bGU9ImNvbG9yOmJsYWNrIj4mbHQ7c25pcCZndDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDssJnF1b3Q7c2Vy
aWYmcXVvdDs7Y29sb3I6YmxhY2siPg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q291cmllciBOZXcmcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPltBQ01d
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDssJnF1
b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPkFsdGhvdWdoIHRoaXMgdGhyZWFkIGlzIG9uIGxv
bmdlciBwYWNrZXQgbnVtYmVycywNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NvdXJpZXIgTmV3JnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj5JIHRoaW5r
IGl04oCZcyB3b3J0aCBwb2ludGluZyBvdXQgdGhhdA0KPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6Ymxh
Y2siPnJvdXRpbmUgcmVvcmRlcmluZyBhdCB0aGUgU2VuZGVyIHdvdWxkIGhhdmU8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OywmcXVvdDtzZXJpZiZx
dW90Oztjb2xvcjpibGFjayI+aW1wbGljYXRpb25zIGZvciB0aGUgc2luZ2xlLWJpdCBhbHRlcm5h
dGUgbWFya2luZzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3
JnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj4oU3Bpbi1iaXQpIGFwcHJvYWNo
LiBUaGUgYm91bmRhcnkgYmV0d2Vlbg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q291cmllciBOZXcmcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPnBhY2tl
dHMgbWFya2VkIOKAnDDigJ0gYW5kIOKAnDHigJ0gd291bGQgbm90IGJlIHJlbGlhYmxlOzxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCZxdW90O3Nl
cmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj50aGVyZSB3b3VsZCBhcHBlYXIgdG8gYmUgdmVyeSBzaG9y
dCBSVFRzIGFsb25nIHdpdGggbG9uZ2VyIFJUVHM6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2si
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1
b3Q7LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj4mbmJzcDsgLi4uIDAgMCAwIDEgMSAw
IDEgMSAxIDEgMSAuLi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVy
IE5ldyZxdW90OywmcXVvdDtzZXJpZiZxdW90Oztjb2xvcjpibGFjayI+Jm5ic3A7Jm5ic3A7ICZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO14gXjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCZxdW90
O3NlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj4mbmJzcDsmbmJzcDsgXiA9IHJlb3JkZXJlZDxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCZxdW90O3Nl
cmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj5UaGUgc2luZ2xlIGJpdCBkb2VzbuKAmXQgaGF2ZSBlbm91
Z2ggaW5mbyB0bw0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBO
ZXcmcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPnJlc3RvcmUgb3JkZXIuIEF2
b2lkIHJlb3JkZXJpbmcgaWYgcG9zc2libGUuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q291cmllciBOZXcmcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7
LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj5BbDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJs
YWNrIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_4D7F4AD313D3FC43A053B309F97543CF46BC67BCnjmtexg4researc_--


From nobody Tue Jul 25 07:40:24 2017
Return-Path: <ianswett@google.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 3CA2C131CDC for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:40:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 WmYeW4cO2O2R for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:40:21 -0700 (PDT)
Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (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 83A46131CF2 for <quic@ietf.org>; Tue, 25 Jul 2017 07:40:18 -0700 (PDT)
Received: by mail-yw0-x236.google.com with SMTP id i6so36543835ywb.1 for <quic@ietf.org>; Tue, 25 Jul 2017 07:40:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ioMgzWWbTe+68Z7OxEEN+Qe1WJVoZP4Kky6UvLmwyNA=; b=vlmTMiLY7sT9V2c5Pvh3T6cccvcriKGMhq3hBKVD5ukJY2U4csTXEK19KBwgSf/ipL oRmLzcuqp7sgT1dKI34BEM3gamotlevRZ87FL7LGI02VAyYS49sTAM2dkBVktp/SZEYY JgWwIzqZzqOJ9jes6ilUvmmfaSgUyRUZVwDQEq5LVKI+OjHac5BVjcXK3ZYqegxN8txe uayQrGThZUoLO3zgWbLjN4UqgpshAoYaf5H0jj/duJ9mEcAcqZkuau1eDdHazwHVWEao jLLC67HxfK+pXHVvwLHrK6XpoIvpf/Khw/Bu3hBIzfMoWvQfxHvvLD5ceMrnz3U8FNsK GMYw==
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=ioMgzWWbTe+68Z7OxEEN+Qe1WJVoZP4Kky6UvLmwyNA=; b=OQy6Nfo1P+4hl2maAZpyaBKqHwicBOtEYLKMR9oguuABPWb1FxKYv6qpgtu9XEwqwd GhaFSzl0x1tPXeAPBaiTpNNluySO33ej8EeTYOaNOn+brC2bj7qVhaXv6Mzo4fIL4Qf8 yWIAV4ZLvu+kxJIMRrCIPDO36Coo0RiqqN3MI5d/yImAO0QTkc1tAAJVvwMjby9PWmWb WsUU6nfXseJpnK7CY24K7Q9tIOJvGFMdqTKQlLeBQmASjTihhtSf67YBTLpiGtE53knD 9FQKPZXOUO+0uFNJXuBDgzYpHwV8a0sMQL69y6/tVVSGMbb8YYdezI07mw+BRa3ojawD Evrg==
X-Gm-Message-State: AIVw113I+43lRRmftWp/h/DD72QGODr8io7Uj4rn+T2xvR6nlxn3Iz9H ZsrH6Mq6lntRjN6kZIkc8gYufCePIdSw
X-Received: by 10.129.92.3 with SMTP id q3mr16273699ywb.298.1500993616565; Tue, 25 Jul 2017 07:40:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.217.137 with HTTP; Tue, 25 Jul 2017 07:39:55 -0700 (PDT)
In-Reply-To: <4D7F4AD313D3FC43A053B309F97543CF46BC67BC@njmtexg4.research.att.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com> <4D7F4AD313D3FC43A053B309F97543CF46BC67BC@njmtexg4.research.att.com>
From: Ian Swett <ianswett@google.com>
Date: Tue, 25 Jul 2017 10:39:55 -0400
Message-ID: <CAKcm_gO0QDaREM-RQfDOOf3eHhFC5WRxAvJQcbieHT2sBy6zWg@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: "MORTON, ALFRED C (AL)" <acmorton@att.com>
Cc: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Magnus Westerlund <magnus.westerlund@ericsson.com>,  =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>,  IETF QUIC WG <quic@ietf.org>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Content-Type: multipart/alternative; boundary="001a114d6f0254b0070555254fe4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/xcZe0lEL25OY6ArvppgYbAPa88I>
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: Tue, 25 Jul 2017 14:40:23 -0000

--001a114d6f0254b0070555254fe4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Agreed Al, but as long as the packet number(or a portion of it) is exposed,
the middlebox can easily detect the reordering and realize where the real
edge is.  If it wasn't exposed, it has to use some heuristics and do some
filtering(ie: it seems unlikely the RTT decreased from 40 milliseconds to
100 microseconds) to filter out false edges.

On Tue, Jul 25, 2017 at 10:33 AM, MORTON, ALFRED C (AL) <acmorton@att.com>
wrote:

> Hi Ian, Thomas,
>
>
>
> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Ian Swett
> *Sent:* Tuesday, July 25, 2017 8:25 AM
> *To:* Swindells, Thomas (Nokia - GB/Cambridge, UK)
> *Cc:* Magnus Westerlund; Mikkel Fahn=C3=B8e J=C3=B8rgensen; IETF QUIC WG;=
 Dmitri
> Tikhonov
> *Subject:* Re: Idea for packet numbers
>
>
>
> Some thoughts.
>
>
>
> 1) Sending packet numbers in order is not required, but the farther out o=
f
> order packets get, the more acks the receiver is going to send, the large=
r
> they'll be, and the more complex loss detection is.  In particular, you
> won't be able to rely on QUIC's packet numbers being in time order.  TLDR=
;
> It's easier to send packets in order than it is to correctly deal with th=
e
> implications of sending them out of order.
>
> <snip>
>
> [ACM]
>
> Although this thread is on longer packet numbers,
>
> I think it=E2=80=99s worth pointing out that
>
> routine reordering at the Sender would have
>
> implications for the single-bit alternate marking
>
> (Spin-bit) approach. The boundary between
>
> packets marked =E2=80=9C0=E2=80=9D and =E2=80=9C1=E2=80=9D would not be r=
eliable;
>
> there would appear to be very short RTTs along with longer RTTs:
>
>
>
>   ... 0 0 0 1 1 0 1 1 1 1 1 ...
>
>             ^ ^
>
>    ^ =3D reordered
>
> The single bit doesn=E2=80=99t have enough info to
>
> restore order. Avoid reordering if possible.
>
>
>
> Al
>
>
>
>
>

--001a114d6f0254b0070555254fe4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Agreed Al, but as long as the packet number(or a portion o=
f it) is exposed, the middlebox can easily detect the reordering and realiz=
e where the real edge is.=C2=A0 If it wasn&#39;t exposed, it has to use som=
e heuristics and do some filtering(ie: it seems unlikely the RTT decreased =
from 40 milliseconds to 100 microseconds) to filter out false edges.</div><=
div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Tue, Jul 25, 20=
17 at 10:33 AM, MORTON, ALFRED C (AL) <span dir=3D"ltr">&lt;<a href=3D"mail=
to:acmorton@att.com" target=3D"_blank">acmorton@att.com</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"m_1735822930376630833WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">Hi Ian, Thomas,<u></u><u></u=
></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black"><u></u>=C2=A0<u></u></span><=
/p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> QUIC [ma=
ilto:<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">quic-bounce=
s@ietf.org</a>]
<b>On Behalf Of </b>Ian Swett<br>
<b>Sent:</b> Tuesday, July 25, 2017 8:25 AM<br>
<b>To:</b> Swindells, Thomas (Nokia - GB/Cambridge, UK)<br>
<b>Cc:</b> Magnus Westerlund; Mikkel Fahn=C3=B8e J=C3=B8rgensen; IETF QUIC =
WG; Dmitri Tikhonov<span class=3D""><br>
<b>Subject:</b> Re: Idea for packet numbers<u></u><u></u></span></span></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">Some thoughts.<u></u><u></u></p><span class=3D"">
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">1) Sending packet numbers in order is not required, =
but the farther out of order packets get, the more acks the receiver is goi=
ng to send, the larger they&#39;ll be, and the more complex loss detection =
is.=C2=A0 In particular, you won&#39;t be able
 to rely on QUIC&#39;s packet numbers being in time order.=C2=A0 TLDR; It&#=
39;s easier to send packets in order than it is to correctly deal with the =
implications of sending them out of order.=C2=A0=C2=A0<u></u><u></u></p>
</div>
</span></div>
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><b><i><span style=3D"color:black"></span></i></b><sp=
an style=3D"color:black">&lt;snip&gt;</span><span style=3D"font-size:11.0pt=
;font-family:&quot;Courier New&quot;,&quot;serif&quot;;color:black">
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">[ACM]<u></u><u></u></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">Although this thread is on l=
onger packet numbers,
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">I think it=E2=80=99s worth p=
ointing out that
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">routine reordering at the Se=
nder would have<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">implications for the single-=
bit alternate marking<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">(Spin-bit) approach. The bou=
ndary between
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">packets marked =E2=80=9C0=E2=
=80=9D and =E2=80=9C1=E2=80=9D would not be reliable;<u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">there would appear to be ver=
y short RTTs along with longer RTTs:<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black"><u></u>=C2=A0<u></u></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">=C2=A0 ... 0 0 0 1 1 0 1 1 1=
 1 1 ...<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0^ ^<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">=C2=A0=C2=A0 ^ =3D reordered=
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">The single bit doesn=E2=80=
=99t have enough info to
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">restore order. Avoid reorder=
ing if possible.<span class=3D"HOEnZb"><font color=3D"#888888"><u></u><u></=
u></font></span></span></p><span class=3D"HOEnZb"><font color=3D"#888888">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black"><u></u>=C2=A0<u></u></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black">Al<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Co=
urier New&quot;,&quot;serif&quot;;color:black"><u></u>=C2=A0<u></u></span><=
/p>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span style=3D"color:=
black"><u></u>=C2=A0<u></u></span></p>
</font></span></div>
</div>
</div>
</div>
</div>
</div>
</div>

</blockquote></div><br></div>

--001a114d6f0254b0070555254fe4--


From nobody Tue Jul 25 07:46:36 2017
Return-Path: <thomas.swindells@nokia.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 8CC71131CE7 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:46:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.92
X-Spam-Level: 
X-Spam-Status: No, score=-1.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 X0340vNEyvgB for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 07:46:31 -0700 (PDT)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0133.outbound.protection.outlook.com [104.47.1.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1F3DD131CD0 for <quic@ietf.org>; Tue, 25 Jul 2017 07:46:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=hgDcT95fozCTTC5aBxsdDvhDZylxqfyWdfQK0B5h128=; b=RZA2Q6+N72abYbseCwmdj5US40smedI+DuVbvyiEKfnMgFApzsGjgANn7EATLV4sw7/MiwxlazfD3Ko/PNZ3lXvetqRWL9teGFQe3Jws+Hw8pYyd3OzXM9fFQ0sOuN3KYG2Y7JfRk2IboEM+5u7PJc9zJnUe7Oe/e3woe1AuM3A=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB0997.eurprd07.prod.outlook.com (10.161.200.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.10; Tue, 25 Jul 2017 14:46:27 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.014; Tue, 25 Jul 2017 14:46:27 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: "MORTON, ALFRED C (AL)" <acmorton@att.com>, Ian Swett <ianswett@google.com>
CC: Magnus Westerlund <magnus.westerlund@ericsson.com>, =?utf-8?B?TWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbg==?= <mikkelfj@gmail.com>, "IETF QUIC WG" <quic@ietf.org>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Subject: RE: Idea for packet numbers
Thread-Topic: Idea for packet numbers
Thread-Index: AQHTAT74Pm6HB4E+oUyHojrh9ct+26JcjwOAgAF4cgCAA8bLAIACsUOAgAAkBQCAAABhMA==
Date: Tue, 25 Jul 2017 14:46:27 +0000
Message-ID: <DB5PR07MB1237AD0D4933D12BC04749CB84B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gNNPC9eUMoBynXuz0p_YZHRsbK6ToaqoT7+u5NGAwf9sw@mail.gmail.com> <4D7F4AD313D3FC43A053B309F97543CF46BC67BC@njmtexg4.research.att.com>
In-Reply-To: <4D7F4AD313D3FC43A053B309F97543CF46BC67BC@njmtexg4.research.att.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [82.69.101.84]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB0997; 7:B3jrv/WYTWEZAnLnK8wYHapR/rcH1uWnjQiSLtn5XD7Cw2jOYjg/OZqr40uk5mreKqbdAMtE4PHAXF9F9U486LFyHmCvs1YBP9w2STMh5BzPT/33rIm1fcEFFiQXz2Ku0nfYKlJcUpAGvV2uO1WeygQsabTi7q3BfmTehHLQVEXX6xarwp3iVfU/xFsUdNpwXLKaSnX/BdOCuOYlD+JBcfo6BMuBqS2QwSlKcsszn/YH3XEqnSQ5STcfI+6pS/I/N22V8DNCg3gxfOZoDyX7wgiBIiMfqlbTk4LrcbpMAcW7OGDzE5R/T8fNIrqj0DV1HQEqaI7Qsk+n8Iz9hYSZUb3tgJvusmw0gCUm/Xxwyc6HtVE93xUkpqvX7rMEX4TpAD8VmR0YvpyNyN+uwj+fNB17k2u0h+gQS0WJ+IWjojBK0BxdkiK83Lp0HY2yApiPfeJJLa0qIM7r68xC4PqovJLeSCkSMzGhRevMWsA42IeH6WG1vPG2EoQ+05WVIRSFGBmSy5WrhMDTjIOnkdmYwoWd79hz5Ncx8lZod4uJq1pXP+Mou0v0uWYG1WyTuzdbqrrwHOy58u8uN3r5IFYiHkONXXRcbGf77+xZkODoqtyFQV2OkgPSJZwQ88W6xgl6ZtnxkFsk9QBeD59Z5Qom/qjMjmaLLSU+IjclWfl94jNDX7TYxNHZvwEbFq9FZA7TIztElk4hm3Z/oQMbYbpSbg0emBkMcAHlK2fu3iEeGsuX2f+sskv+AUJcRBCcoJ23lTKYSfDVtCRlYc3jfJ8V4RBZYeRXGJ93OTUqLOGh6sQ=
x-ms-office365-filtering-correlation-id: 6d2e2bb5-0ad7-4ddc-cda6-08d4d36bedf6
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB0997; 
x-ms-traffictypediagnostic: DB5PR07MB0997:
x-exchange-antispam-report-test: UriScan:(37575265505322)(82608151540597)(97927398514766)(211936372134217)(153496737603132)(21748063052155);
x-microsoft-antispam-prvs: <DB5PR07MB099746048C66B2E8E35DF49E84B80@DB5PR07MB0997.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(920507026)(6055026)(6041248)(20161123560025)(20161123558100)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB0997; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB0997; 
x-forefront-prvs: 03793408BA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39840400002)(39450400003)(39410400002)(39860400002)(39850400002)(39400400002)(377454003)(199003)(189002)(6436002)(53936002)(3480700004)(8936002)(93886004)(39060400002)(66066001)(33656002)(55016002)(81156014)(99286003)(68736007)(86362001)(81166006)(236005)(6246003)(478600001)(2950100002)(14454004)(54896002)(38730400002)(4326008)(54906002)(9686003)(97736004)(2906002)(3280700002)(3660700001)(25786009)(53546010)(105586002)(5250100002)(6506006)(74316002)(2900100001)(7736002)(34040400001)(101416001)(229853002)(106356001)(76176999)(189998001)(5660300001)(50986999)(8676002)(790700001)(6306002)(6116002)(102836003)(3846002)(7696004)(54356999); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB0997; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_DB5PR07MB1237AD0D4933D12BC04749CB84B80DB5PR07MB1237eurp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2017 14:46:27.1446 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB0997
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/eBZRUQXwgzyYqLkE5HVHQomTXeo>
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: Tue, 25 Jul 2017 14:46:35 -0000

--_000_DB5PR07MB1237AD0D4933D12BC04749CB84B80DB5PR07MB1237eurp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGhhdCBpcyBwYXJ0bHkgbXkgY29uY2VybiwgaWYgaW1wbGVtZW50YXRpb25zL21lY2hhbmlzbXMg
YXJlIGFzc3VtaW5nIGEgbG93IGxldmVsIG9mIHJlb3JkZXJpbmcgKHN1Y2ggYXMgbWlkZGxlIGJv
eGVzIHVzaW5nIGEgc3BpbiBiaXQpIGhvdyBjb25maWRlbnQgYXJlIHdlIHRoYXQgdGhvc2UgYXNz
dW1wdGlvbnMgYXJlIGFjY3VyYXRlIGFuZCBhIGdvb2QgdGhpbmcgdG8gb3NzaWZ5Pw0KV2l0aCBh
IG11bHRpLXRocmVhZGVkIG11bHRpLW5pYyBzeXN0ZW0gSeKAmW0gbm90IGNlcnRhaW4gaXQgaXMg
YWN0dWFsbHkgdGhhdCBpdCBpcyBuZWNlc3NhcmlseSBlYXN5IHRvIChwZXJmb3JtYW50bHkpIGF2
b2lkIHJlLW9yZGVyaW5nIC0gZXZlbiBpZiB0aGUgaW1wbGVtZW50YXRpb24gZG9lc27igJl0IGRl
bGliZXJhdGVseSBpbnRlbmQgdG8gaW50cm9kdWNlIGl0Lg0KDQpPbmUgc29sdXRpb24gaXMgdG8g
ZGVjaWRlIHRoYXQgc3BpbiBiaXQgYW5kIGxlc3MgY29tcGxleCBsb3N0IHBhY2tldCB0cmFja2lu
ZyAoYW5kIHdoYXRldmVyIGVsc2UgYmVuZWZpdHMgZnJvbSBsb3cgYW1vdW50cyBvZiBwYWNrZXQg
cmVvcmRlcmluZykgYXJlIHdvcnRod2hpbGUgcHJvcGVydGllcyBhbmQgc28gbWFuZGF0ZSBjbGVh
cmx5IHRoYXQgcGFja2V0IGdlbmVyYXRpb24gbXVzdCBiZSBzZXJpYWxpc2VkIGFuZCB0aGUgZWdy
ZXNzIG9mIHRoZSBwYWNrZXRzIHN0cmljdGx5IG9yZGVyZWQgYXMgbXVjaCBhcyBwb3NzaWJsZSAo
ZS5nLiBlYWNoIGNvbm5lY3Rpb24gaXMgbG9ja2VkIHRvIGEgbmljIHdpdGggdGhlIHBhY2tldHMg
c2VudCBpbiB0aGUgY29ycmVjdCBvcmRlcikuIEnigJl2ZSBubyBpZGVhIGlmIHRoaXMgaXMgYSBw
cm9wZXJ0eSBjdXJyZW50IGltcGxlbWVudGF0aW9ucyBhY3R1YWxseSBoYXZlIHRvZGF5IG9yIGlm
IG11bHRpcGxlIHN0cmVhbXMgYXJlIGVuY3J5cHRlZCBvbiBkaWZmZXJlbnQgdGhyZWFkcyB3aXRo
IGp1c3QgdGhlIGltcGxpY2l0IGFzc3VtcHRpb24gdGhlIG91dHB1dCB3aWxsIGVuZCB1cCBpbiB0
aGUgcmlnaHQgb3JkZXIuDQoNClRob21hcw0KDQpGcm9tOiBNT1JUT04sIEFMRlJFRCBDIChBTCkg
W21haWx0bzphY21vcnRvbkBhdHQuY29tXQ0KU2VudDogMjUgSnVseSAyMDE3IDE1OjM0DQpUbzog
SWFuIFN3ZXR0IDxpYW5zd2V0dEBnb29nbGUuY29tPjsgU3dpbmRlbGxzLCBUaG9tYXMgKE5va2lh
IC0gR0IvQ2FtYnJpZGdlLCBVSykgPHRob21hcy5zd2luZGVsbHNAbm9raWEuY29tPg0KQ2M6IE1h
Z251cyBXZXN0ZXJsdW5kIDxtYWdudXMud2VzdGVybHVuZEBlcmljc3Nvbi5jb20+OyBNaWtrZWwg
RmFobsO4ZSBKw7hyZ2Vuc2VuIDxtaWtrZWxmakBnbWFpbC5jb20+OyBJRVRGIFFVSUMgV0cgPHF1
aWNAaWV0Zi5vcmc+OyBEbWl0cmkgVGlraG9ub3YgPGR0aWtob25vdkBsaXRlc3BlZWR0ZWNoLmNv
bT4NClN1YmplY3Q6IFJFOiBJZGVhIGZvciBwYWNrZXQgbnVtYmVycw0KDQpIaSBJYW4sIFRob21h
cywNCg0KRnJvbTogUVVJQyBbbWFpbHRvOnF1aWMtYm91bmNlc0BpZXRmLm9yZ10gT24gQmVoYWxm
IE9mIElhbiBTd2V0dA0KU2VudDogVHVlc2RheSwgSnVseSAyNSwgMjAxNyA4OjI1IEFNDQpUbzog
U3dpbmRlbGxzLCBUaG9tYXMgKE5va2lhIC0gR0IvQ2FtYnJpZGdlLCBVSykNCkNjOiBNYWdudXMg
V2VzdGVybHVuZDsgTWlra2VsIEZhaG7DuGUgSsO4cmdlbnNlbjsgSUVURiBRVUlDIFdHOyBEbWl0
cmkgVGlraG9ub3YNClN1YmplY3Q6IFJlOiBJZGVhIGZvciBwYWNrZXQgbnVtYmVycw0KDQpTb21l
IHRob3VnaHRzLg0KDQoxKSBTZW5kaW5nIHBhY2tldCBudW1iZXJzIGluIG9yZGVyIGlzIG5vdCBy
ZXF1aXJlZCwgYnV0IHRoZSBmYXJ0aGVyIG91dCBvZiBvcmRlciBwYWNrZXRzIGdldCwgdGhlIG1v
cmUgYWNrcyB0aGUgcmVjZWl2ZXIgaXMgZ29pbmcgdG8gc2VuZCwgdGhlIGxhcmdlciB0aGV5J2xs
IGJlLCBhbmQgdGhlIG1vcmUgY29tcGxleCBsb3NzIGRldGVjdGlvbiBpcy4gIEluIHBhcnRpY3Vs
YXIsIHlvdSB3b24ndCBiZSBhYmxlIHRvIHJlbHkgb24gUVVJQydzIHBhY2tldCBudW1iZXJzIGJl
aW5nIGluIHRpbWUgb3JkZXIuICBUTERSOyBJdCdzIGVhc2llciB0byBzZW5kIHBhY2tldHMgaW4g
b3JkZXIgdGhhbiBpdCBpcyB0byBjb3JyZWN0bHkgZGVhbCB3aXRoIHRoZSBpbXBsaWNhdGlvbnMg
b2Ygc2VuZGluZyB0aGVtIG91dCBvZiBvcmRlci4NCjxzbmlwPg0KW0FDTV0NCkFsdGhvdWdoIHRo
aXMgdGhyZWFkIGlzIG9uIGxvbmdlciBwYWNrZXQgbnVtYmVycywNCkkgdGhpbmsgaXTigJlzIHdv
cnRoIHBvaW50aW5nIG91dCB0aGF0DQpyb3V0aW5lIHJlb3JkZXJpbmcgYXQgdGhlIFNlbmRlciB3
b3VsZCBoYXZlDQppbXBsaWNhdGlvbnMgZm9yIHRoZSBzaW5nbGUtYml0IGFsdGVybmF0ZSBtYXJr
aW5nDQooU3Bpbi1iaXQpIGFwcHJvYWNoLiBUaGUgYm91bmRhcnkgYmV0d2Vlbg0KcGFja2V0cyBt
YXJrZWQg4oCcMOKAnSBhbmQg4oCcMeKAnSB3b3VsZCBub3QgYmUgcmVsaWFibGU7DQp0aGVyZSB3
b3VsZCBhcHBlYXIgdG8gYmUgdmVyeSBzaG9ydCBSVFRzIGFsb25nIHdpdGggbG9uZ2VyIFJUVHM6
DQoNCiAgLi4uIDAgMCAwIDEgMSAwIDEgMSAxIDEgMSAuLi4NCiAgICAgICAgICAgIF4gXg0KICAg
XiA9IHJlb3JkZXJlZA0KVGhlIHNpbmdsZSBiaXQgZG9lc27igJl0IGhhdmUgZW5vdWdoIGluZm8g
dG8NCnJlc3RvcmUgb3JkZXIuIEF2b2lkIHJlb3JkZXJpbmcgaWYgcG9zc2libGUuDQoNCkFsDQoN
Cg0K

--_000_DB5PR07MB1237AD0D4933D12BC04749CB84B80DB5PR07MB1237eurp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2
IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBs
aS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9t
Oi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJv
bWFuIixzZXJpZjt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlv
cml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2
aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5
OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25v
cm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1z
b25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGNtOw0K
CW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBjbTsNCglmb250LXNp
emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCnNwYW4u
aG9lbnpiDQoJe21zby1zdHlsZS1uYW1lOmhvZW56Yjt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXtt
c28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCWNv
bG9yOmJsYWNrO30NCnNwYW4uRW1haWxTdHlsZTIxDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFs
LXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRv
d3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJ
Zm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5
Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYuV29yZFNl
Y3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNv
IDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAv
Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxh
eW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwv
bzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVO
LUdCIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9u
MSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPlRoYXQgaXMgcGFydGx5IG15IGNvbmNlcm4sIGlmIGltcGxlbWVudGF0aW9u
cy9tZWNoYW5pc21zIGFyZSBhc3N1bWluZyBhIGxvdyBsZXZlbCBvZiByZW9yZGVyaW5nIChzdWNo
IGFzIG1pZGRsZSBib3hlcyB1c2luZyBhIHNwaW4gYml0KSBob3cgY29uZmlkZW50DQogYXJlIHdl
IHRoYXQgdGhvc2UgYXNzdW1wdGlvbnMgYXJlIGFjY3VyYXRlIGFuZCBhIGdvb2QgdGhpbmcgdG8g
b3NzaWZ5PzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+V2l0aCBhIG11bHRpLXRocmVh
ZGVkIG11bHRpLW5pYyBzeXN0ZW0gSeKAmW0gbm90IGNlcnRhaW4gaXQgaXMgYWN0dWFsbHkgdGhh
dCBpdCBpcyBuZWNlc3NhcmlseSBlYXN5IHRvIChwZXJmb3JtYW50bHkpIGF2b2lkIHJlLW9yZGVy
aW5nIC0gZXZlbiBpZiB0aGUNCiBpbXBsZW1lbnRhdGlvbiBkb2VzbuKAmXQgZGVsaWJlcmF0ZWx5
IGludGVuZCB0byBpbnRyb2R1Y2UgaXQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPk9uZSBzb2x1dGlvbiBpcyB0byBk
ZWNpZGUgdGhhdCBzcGluIGJpdCBhbmQgbGVzcyBjb21wbGV4IGxvc3QgcGFja2V0IHRyYWNraW5n
IChhbmQgd2hhdGV2ZXIgZWxzZSBiZW5lZml0cyBmcm9tIGxvdyBhbW91bnRzIG9mIHBhY2tldCBy
ZW9yZGVyaW5nKQ0KIGFyZSB3b3J0aHdoaWxlIHByb3BlcnRpZXMgYW5kIHNvIG1hbmRhdGUgY2xl
YXJseSB0aGF0IHBhY2tldCBnZW5lcmF0aW9uIG11c3QgYmUgc2VyaWFsaXNlZCBhbmQgdGhlIGVn
cmVzcyBvZiB0aGUgcGFja2V0cyBzdHJpY3RseSBvcmRlcmVkIGFzIG11Y2ggYXMgcG9zc2libGUg
KGUuZy4gZWFjaCBjb25uZWN0aW9uIGlzIGxvY2tlZCB0byBhIG5pYyB3aXRoIHRoZSBwYWNrZXRz
IHNlbnQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIpLiBJ4oCZdmUgbm8gaWRlYQ0KIGlmIHRoaXMgaXMg
YSBwcm9wZXJ0eSBjdXJyZW50IGltcGxlbWVudGF0aW9ucyBhY3R1YWxseSBoYXZlIHRvZGF5IG9y
IGlmIG11bHRpcGxlIHN0cmVhbXMgYXJlIGVuY3J5cHRlZCBvbiBkaWZmZXJlbnQgdGhyZWFkcyB3
aXRoIGp1c3QgdGhlIGltcGxpY2l0IGFzc3VtcHRpb24gdGhlIG91dHB1dCB3aWxsIGVuZCB1cCBp
biB0aGUgcmlnaHQgb3JkZXIuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRob21hczxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9y
ZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNt
IDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlk
ICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+
PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IE1PUlRPTiwgQUxGUkVEIEMgKEFMKSBbbWFp
bHRvOmFjbW9ydG9uQGF0dC5jb21dDQo8YnI+DQo8Yj5TZW50OjwvYj4gMjUgSnVseSAyMDE3IDE1
OjM0PGJyPg0KPGI+VG86PC9iPiBJYW4gU3dldHQgJmx0O2lhbnN3ZXR0QGdvb2dsZS5jb20mZ3Q7
OyBTd2luZGVsbHMsIFRob21hcyAoTm9raWEgLSBHQi9DYW1icmlkZ2UsIFVLKSAmbHQ7dGhvbWFz
LnN3aW5kZWxsc0Bub2tpYS5jb20mZ3Q7PGJyPg0KPGI+Q2M6PC9iPiBNYWdudXMgV2VzdGVybHVu
ZCAmbHQ7bWFnbnVzLndlc3Rlcmx1bmRAZXJpY3Nzb24uY29tJmd0OzsgTWlra2VsIEZhaG7DuGUg
SsO4cmdlbnNlbiAmbHQ7bWlra2VsZmpAZ21haWwuY29tJmd0OzsgSUVURiBRVUlDIFdHICZsdDtx
dWljQGlldGYub3JnJmd0OzsgRG1pdHJpIFRpa2hvbm92ICZsdDtkdGlraG9ub3ZAbGl0ZXNwZWVk
dGVjaC5jb20mZ3Q7PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJFOiBJZGVhIGZvciBwYWNrZXQgbnVt
YmVyczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
b3VyaWVyIE5ldyZxdW90Oztjb2xvcjpibGFjayI+SGkgSWFuLCBUaG9tYXMsPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7O2Nv
bG9yOmJsYWNrIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2IHN0eWxlPSJib3Jk
ZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAwY20g
NC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQg
I0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250
LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxz
cGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVv
dDtUYWhvbWEmcXVvdDssc2Fucy1zZXJpZiI+IFFVSUMgWzxhIGhyZWY9Im1haWx0bzpxdWljLWJv
dW5jZXNAaWV0Zi5vcmciPm1haWx0bzpxdWljLWJvdW5jZXNAaWV0Zi5vcmc8L2E+XQ0KPGI+T24g
QmVoYWxmIE9mIDwvYj5JYW4gU3dldHQ8YnI+DQo8Yj5TZW50OjwvYj4gVHVlc2RheSwgSnVseSAy
NSwgMjAxNyA4OjI1IEFNPGJyPg0KPGI+VG86PC9iPiBTd2luZGVsbHMsIFRob21hcyAoTm9raWEg
LSBHQi9DYW1icmlkZ2UsIFVLKTxicj4NCjxiPkNjOjwvYj4gTWFnbnVzIFdlc3Rlcmx1bmQ7IE1p
a2tlbCBGYWhuw7hlIErDuHJnZW5zZW47IElFVEYgUVVJQyBXRzsgRG1pdHJpIFRpa2hvbm92PGJy
Pg0KPGI+U3ViamVjdDo8L2I+IFJlOiBJZGVhIGZvciBwYWNrZXQgbnVtYmVyczxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5Tb21lIHRob3VnaHRzLjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V
UyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjEpIFNlbmRpbmcgcGFja2V0IG51bWJlcnMg
aW4gb3JkZXIgaXMgbm90IHJlcXVpcmVkLCBidXQgdGhlIGZhcnRoZXIgb3V0IG9mIG9yZGVyIHBh
Y2tldHMgZ2V0LCB0aGUgbW9yZSBhY2tzIHRoZSByZWNlaXZlciBpcyBnb2luZyB0byBzZW5kLCB0
aGUgbGFyZ2VyIHRoZXknbGwgYmUsIGFuZCB0aGUgbW9yZSBjb21wbGV4IGxvc3MgZGV0ZWN0aW9u
IGlzLiZuYnNwOyBJbiBwYXJ0aWN1bGFyLA0KIHlvdSB3b24ndCBiZSBhYmxlIHRvIHJlbHkgb24g
UVVJQydzIHBhY2tldCBudW1iZXJzIGJlaW5nIGluIHRpbWUgb3JkZXIuJm5ic3A7IFRMRFI7IEl0
J3MgZWFzaWVyIHRvIHNlbmQgcGFja2V0cyBpbiBvcmRlciB0aGFuIGl0IGlzIHRvIGNvcnJlY3Rs
eSBkZWFsIHdpdGggdGhlIGltcGxpY2F0aW9ucyBvZiBzZW5kaW5nIHRoZW0gb3V0IG9mIG9yZGVy
LiZuYnNwOyZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i
RU4tVVMiIHN0eWxlPSJjb2xvcjpibGFjayI+Jmx0O3NuaXAmZ3Q7PC9zcGFuPjxzcGFuIGxhbmc9
IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVy
IE5ldyZxdW90Oztjb2xvcjpibGFjayI+DQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDs7Y29sb3I6YmxhY2siPltBQ01dPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
VVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3
JnF1b3Q7O2NvbG9yOmJsYWNrIj5BbHRob3VnaCB0aGlzIHRocmVhZCBpcyBvbiBsb25nZXIgcGFj
a2V0IG51bWJlcnMsDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q291cmllciBOZXcmcXVvdDs7Y29sb3I6YmxhY2siPkkgdGhpbmsgaXTigJlzIHdvcnRo
IHBvaW50aW5nIG91dCB0aGF0DQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDs7Y29sb3I6YmxhY2siPnJvdXRpbmUgcmVvcmRl
cmluZyBhdCB0aGUgU2VuZGVyIHdvdWxkIGhhdmU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDs7Y29sb3I6YmxhY2siPmltcGxp
Y2F0aW9ucyBmb3IgdGhlIHNpbmdsZS1iaXQgYWx0ZXJuYXRlIG1hcmtpbmc8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDs7Y29s
b3I6YmxhY2siPihTcGluLWJpdCkgYXBwcm9hY2guIFRoZSBib3VuZGFyeSBiZXR3ZWVuDQo8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V
UyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcm
cXVvdDs7Y29sb3I6YmxhY2siPnBhY2tldHMgbWFya2VkIOKAnDDigJ0gYW5kIOKAnDHigJ0gd291
bGQgbm90IGJlIHJlbGlhYmxlOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90Oztjb2xvcjpibGFjayI+dGhlcmUgd291bGQgYXBw
ZWFyIHRvIGJlIHZlcnkgc2hvcnQgUlRUcyBhbG9uZyB3aXRoIGxvbmdlciBSVFRzOjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90
Oztjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7O2NvbG9yOmJsYWNrIj4mbmJzcDsgLi4uIDAg
MCAwIDEgMSAwIDEgMSAxIDEgMSAuLi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDs7Y29sb3I6YmxhY2siPiZuYnNwOyZuYnNw
OyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDte
IF48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmll
ciBOZXcmcXVvdDs7Y29sb3I6YmxhY2siPiZuYnNwOyZuYnNwOyBeID0gcmVvcmRlcmVkPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1
b3Q7O2NvbG9yOmJsYWNrIj5UaGUgc2luZ2xlIGJpdCBkb2VzbuKAmXQgaGF2ZSBlbm91Z2ggaW5m
byB0bw0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nv
dXJpZXIgTmV3JnF1b3Q7O2NvbG9yOmJsYWNrIj5yZXN0b3JlIG9yZGVyLiBBdm9pZCByZW9yZGVy
aW5nIGlmIHBvc3NpYmxlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDb3VyaWVyIE5ldyZxdW90Oztjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7O2Nv
bG9yOmJsYWNrIj5BbDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDb3VyaWVyIE5ldyZxdW90Oztjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0
Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImNvbG9yOmJsYWNrIj48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_DB5PR07MB1237AD0D4933D12BC04749CB84B80DB5PR07MB1237eurp_--


From nobody Tue Jul 25 09:27:15 2017
Return-Path: <dtikhonov@litespeedtech.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 36FC5131D1D for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 09:27:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, 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=litespeedtech-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 P2d66jHxYayK for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 09:27:12 -0700 (PDT)
Received: from mail-qk0-x236.google.com (mail-qk0-x236.google.com [IPv6:2607:f8b0:400d:c09::236]) (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 684D9131D18 for <quic@ietf.org>; Tue, 25 Jul 2017 09:27:12 -0700 (PDT)
Received: by mail-qk0-x236.google.com with SMTP id d145so65246085qkc.2 for <quic@ietf.org>; Tue, 25 Jul 2017 09:27:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=aHegjIQx5ijg32UUzKx+uFq1Ti7v2y1IeEDlbCMpqUQ=; b=2IlQussujDdAm2xroikslTokm/Rzj+28J0kd6GWYhAqLSqIoXUuA9uuqxGJrS4zq9g Yj3kPbZiv+kcdC+GH12fV+VOLYUWFccJhhts5Xxi/s4iXWEWbASd8UCGSf2fDDvB3fXY CXWWidZN3SaeICVLk1onRKfPBgeCqjiMleiOq72V4YpVQcry93n8JRvE6v/Lr+ShZYys GUto4iML6RI7yTN2n8qwJramM7zxER2WQPGRFfT+kPbDBFCQwdnvkrntBF7ELlyvlEwv FlnCqnijAHjn8SxlT8M1jSnc0ep90FWi2/CUJPtjguN3iim84MU5hwAMbBHBl3w8RKd3 06/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=aHegjIQx5ijg32UUzKx+uFq1Ti7v2y1IeEDlbCMpqUQ=; b=U8oXSR9RBgBN4PLgdZj4uMkNYxHapg9Kv4NnG+FvlIGDrS271x9buqfrdK9K45u2tH QjhRLdJ3O0sCNifs8pBy9fD7zymhdWYXovcSdYO7MxsZ0AWa25d/9ITp5GFdRnKDGhJA +JKl+7E2ooUMbfOM+tBtE1TuFyv9MDtigK36AhrZbnM7pjncCH8RcviHGlICfkbsnK7P FYRrvexlZOY41JSK4Q1efLu/hRGhlWEHOkqYkKSA3wGwb1Km8kxm/kWhhvCNOvtIw4hh RC6OXcnmG65Rb+m6z/lpUU1ZYFQo1w1S93D9vprBk7vUAOyeC4mJTYV2trHHPUNIX3Q3 gY1g==
X-Gm-Message-State: AIVw111CZxEeQaMmAT1Wr45Mi/JwoQy0doCUtPqqHriUGD7bV752Y0vP JmwHnmRUIk/NxVsz
X-Received: by 10.55.33.195 with SMTP id f64mr26421802qki.208.1501000031477; Tue, 25 Jul 2017 09:27:11 -0700 (PDT)
Received: from ubuntu-dmitri (ool-2f1636b6.static.optonline.net. [47.22.54.182]) by smtp.gmail.com with ESMTPSA id e32sm10115263qtb.63.2017.07.25.09.27.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Jul 2017 09:27:10 -0700 (PDT)
Date: Tue, 25 Jul 2017 12:27:01 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Cc: Mikkel =?iso-8859-1?Q?Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>, Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: Re: Idea for packet numbers
Message-ID: <20170725162701.GA4414@ubuntu-dmitri>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <20170725124109.GA1764@ubuntu-dmitri> <DB5PR07MB1237128AE49E9EC81EC0A43984B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <DB5PR07MB1237128AE49E9EC81EC0A43984B80@DB5PR07MB1237.eurprd07.prod.outlook.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/7Kfe0tz3vERlT3rtfQfxTka4PSM>
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: Tue, 25 Jul 2017 16:27:14 -0000

On Tue, Jul 25, 2017 at 02:28:52PM +0000, Swindells, Thomas (Nokia - GB/Cambridge, UK) wrote:
> 4 wasn't meant to imply how you queue the packet on the NIC - I was
> assuming via a kernel API call into normal udp send buffers, but both
> methods are valid.  You are right though there is the potential for the
> queuing operation to be blocked/rejected.

Since we were talking about implementation, I wanted to point out that
packet number allocation is more complicated in practice.  I realize
this is not what you meant. :)

> As I understand it the packet number is used in the encryption process,
> so changing a packets number is a non-trivial operation.  A fast path
> route for queuing acks makes sense, again however the only real way
                                                        ^^^^^^^^^^^^^

By this, do you mean "without encrypting data twice?"

> to do that would be to give the ack packet a higher packet number but
> then send it before lower marked packets - even potentially if they
> do also contain ack frames.

That is a good approach if it does not break packet number derivation.
I am not sure whether it can...  The draft says:

  " A packet number is decoded by finding the packet number
  " value that is closest to the next expected packet.

Thus, after receiving ACK packet with large gap, which is the next
expected packet number from the point of view of the peer?

> For RST_STREAM I think it is permitted that currently queued packets
> are still sent, but if they only contain that streams packets then
> it is a beneficial optimization if they weren't sent (leaving packet
> number gaps).

Current draft says:

  " An endpoint that receives a RST_STREAM frame (and which
  " has not sent a FIN or a RST_STREAM) MUST immediately
  " respond with a RST_STREAM frame, and MUST NOT send any
  " more data on the stream.

I suppose one could interpret "send" to mean "enqueue," but I would
err on the side of caution.

  - Dmitri.


From nobody Tue Jul 25 11:17:28 2017
Return-Path: <fkastenholz@google.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 03C22131E88 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 11:17:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 DEvuvgdYd9Ad for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 11:17:25 -0700 (PDT)
Received: from mail-qt0-x22a.google.com (mail-qt0-x22a.google.com [IPv6:2607:f8b0:400d:c0d::22a]) (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 CA0E312EC13 for <quic@ietf.org>; Tue, 25 Jul 2017 11:17:24 -0700 (PDT)
Received: by mail-qt0-x22a.google.com with SMTP id s6so43579037qtc.1 for <quic@ietf.org>; Tue, 25 Jul 2017 11:17:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=G5sDPFsMt17NbtwxobMTdSj1vTSNbf+d6r4N+m8YdIE=; b=XtTG4m4wtRxLxGmDwkdARTGkTrUKPF2hU21d5r/Cuye3Nj4Ec2idhlAkFHmQueRVW3 BH2u6Fm4bWayFx7N03MvBTnuM2silCirO4M8JsvkPd1m+hA5GdtjTqz6gdvGAkhbKUMi rKQwKFBLmPebs5MakQzt5p5HCt5C302QFpd69CUJsFH2L4hyh+oHAlwCHixAvtbBUA5V A9kWkzhp99E/VeyHQaXuHSPsdznJqCignIoqdC4hpqr/WBj8i+Ugq+dqn2JGOVB2jeUt NuQnuDdu+mWZsb8PSDT/I5wSWGKmc/UAwjb81UQPRYb48/43lw3cp81Ri8RSXpwnHzzM pR7Q==
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=G5sDPFsMt17NbtwxobMTdSj1vTSNbf+d6r4N+m8YdIE=; b=OMlz685ojEDnwQa+vOeXepPI3JvZ0naaRVKwFHVCCOO/yQkTq8v9mL+Y/71Q6nHl/v tploYnj3RVtmi4pPI80ArMkEkqP/WSHnpq0kGMpebqDn5tWjNVXY9b0a3LW1JFO22Xj5 Q+8GYvA5mt7wNJ/n39Ng3tLmgZwAly8GI8WKJJpr7YM25LBxyKs/xDxbIhLaJIM3nlty EtasbGBMdtjZ0tIKCWY7DBoLTpdZ+pntpSVEpBtR7cSfo9fa+usALNFtoMQtBDZlpDdS dWbhSom4usExAXDZsd1hZEvvNaJgXbMdSEG0iZrAJCL+5/ENdq9OyBaW9XM9L44P2isY cB9w==
X-Gm-Message-State: AIVw112xfFenID8xULNo+HGES8ZPv1ePM/353RUiSvqx9PFkafVYSbqA 9CNAbYtDk93pUBZ10hM+y4Fk4gXKpErP
X-Received: by 10.237.37.45 with SMTP id v42mr28569932qtc.333.1501006643765; Tue, 25 Jul 2017 11:17:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.176.117 with HTTP; Tue, 25 Jul 2017 11:17:03 -0700 (PDT)
In-Reply-To: <9914D466-6293-447C-B3FC-839CFFF9298B@in-panik.de>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com> <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com> <9914D466-6293-447C-B3FC-839CFFF9298B@in-panik.de>
From: Frank Kastenholz <fkastenholz@google.com>
Date: Tue, 25 Jul 2017 14:17:03 -0400
Message-ID: <CAD3dRjqACu+oK=jhECsKHd27HEbHgjJkgNtQp3tdwnjo1QvjFQ@mail.gmail.com>
Subject: Re: Unreliable Stream (was: Re: HTTP requests on one stream #692)
To: "Philipp S. Tiesel" <phils@in-panik.de>
Cc: Mike Bishop <Michael.Bishop@microsoft.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>, IETF QUIC WG <quic@ietf.org>,  Martin Thomson <martin.thomson@gmail.com>, Ian Swett <ianswett@google.com>
Content-Type: multipart/alternative; boundary="001a113e5f16cf46eb0555285788"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/t0vREuJWHg01RIljDlkiGOE_eBI>
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: Tue, 25 Jul 2017 18:17:27 -0000

--001a113e5f16cf46eb0555285788
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 25, 2017 at 8:11 AM, Philipp S. Tiesel <phils@in-panik.de>
wrote:
...

> In case of HTTP, all three options could be requested via an HTTP request
> header.
> Optional, in case the server does not support unreliable streams, fallbac=
k
> to reliable transmission.
>
> An open question is question is how to present a stream with =E2=80=9Chol=
es=E2=80=9D to
> the application.
>

Hi

At a previous job I implemented a protocol that had some similarities to
QUIC and
one of the protocol's features was that a stream could be declared to be
unreliable.
We had two not-incompatible views. First is the simple approach --- a part
of the API
included the QUIC sequence number -- the app can then use this to make the
needed
decisions.  The assumption here is that the sequence numbers increase by a
knowable
amount. Alternatively, we felt that such streams tended to consist of
fairly small (fit in one
packet) independent messages that contained their own identification (or
didn't need it).  In
this case, the application could figure out the holes, etc, on its own.  An
example might be
something like a periodic status report from some kind of sensor that
contains a time stamp.
The time stamp tells the app all it needs to know.

Neither of these are protocol issues --- presenting the seq. num. is an API
matter, and assuming
that the app and its protocol can sort it out is, well, an app matter.

On the QUIC layer, as it is much easier to implement, unreliable
> transmission is driven by the sender. Retransmissions can then be done
> depending on the applications choice.
>

In the work I did previously, we found instances where either sender or
receiver might wish
to assert reliability (or unreliability).  Continuing with the sensor I
mentioned above, a
receiver that is a logger may want every sensor reading. A receiver that
just is showing
the current value will not need reliability. So the sender (the node with
the sensor) might
wish to assert one mode, the receiver however wants the other -- and vice
versa.

This ignores the question of what to do when the receiver wants one mode
and the sender the other ... I don't have a quick answer ... we didn't have
funding at the previous gig to go into these levels of protocol
development...  Probably would have done some kind of negotiation,
with the connection failing if the parties can't agree (maybe ala the old
Telnet will/wont/do/dont
technique).

Thanks
Frank Kastenholz

--001a113e5f16cf46eb0555285788
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jul 25, 2017 at 8:11 AM, Philipp S. Tiesel <span dir=3D"ltr">&l=
t;<a href=3D"mailto:phils@in-panik.de" target=3D"_blank">phils@in-panik.de<=
/a>&gt;</span> wrote:<div>...=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v style=3D"word-wrap:break-word"><div><div><div>In case of HTTP, all three =
options could be requested via an HTTP request header.=C2=A0</div><div>Opti=
onal, in case the server does not support unreliable streams, fallback to r=
eliable transmission.</div><div><br></div><div>An open question is question=
 is how to present a stream with =E2=80=9Choles=E2=80=9D to the application=
.</div></div></div></div></blockquote><div><br></div><div>Hi</div><div><br>=
</div><div>At a previous job I implemented a protocol that had some similar=
ities to QUIC and=C2=A0</div><div>one of the protocol&#39;s features was th=
at a stream could be declared to be unreliable.</div><div>We had two not-in=
compatible views. First is the simple approach --- a part of the API</div><=
div>included the QUIC sequence number -- the app can then use this to make =
the needed</div><div>decisions.=C2=A0 The assumption here is that the seque=
nce numbers increase by a knowable</div><div>amount. Alternatively, we felt=
 that such streams tended to consist of fairly small (fit in one</div><div>=
packet) independent messages that contained their own identification (or di=
dn&#39;t need it).=C2=A0 In=C2=A0</div><div>this case, the application coul=
d figure out the holes, etc, on its own.=C2=A0 An example might be</div><di=
v>something like a periodic status report from some kind of sensor that con=
tains a time stamp.</div><div>The time stamp tells the app all it needs to =
know.</div><div><br></div><div>Neither of these are protocol issues --- pre=
senting the seq. num. is an API matter, and assuming</div><div>that the app=
 and its protocol can sort it out is, well, an app matter.</div><div><br></=
div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div=
><div>On the QUIC layer, as it is much easier to implement, unreliable tran=
smission is driven by the sender. Retransmissions can then be done dependin=
g on the applications choice.<br></div></div></div></blockquote><div><br></=
div><div>In the work I did previously, we found instances where either send=
er or receiver might wish</div><div>to assert reliability (or unreliability=
).=C2=A0 Continuing with the sensor I mentioned above, a</div><div>receiver=
 that is a logger may want every sensor reading. A receiver that just is sh=
owing</div><div>the current value will not need reliability. So the sender =
(the node with the sensor) might</div><div>wish to assert one mode, the rec=
eiver however wants the other -- and vice versa.=C2=A0</div><div><br></div>=
<div>This ignores the question of what to do when the receiver wants one mo=
de and the sender the other ... I don&#39;t have a quick answer ... we didn=
&#39;t have funding at the previous gig to go into these levels of protocol=
 development...=C2=A0 Probably would have done some kind of negotiation,</d=
iv><div>with the connection failing if the parties can&#39;t agree (maybe a=
la the old Telnet will/wont/do/dont</div><div>technique).</div><div><br></d=
iv><div>Thanks</div><div>Frank Kastenholz</div><div><br></div></div></div><=
/div>

--001a113e5f16cf46eb0555285788--


From nobody Tue Jul 25 12:11:37 2017
Return-Path: <mikkelfj@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 9F381131CB4 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 12:11:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 jB-EFroaYYTc for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 12:11:33 -0700 (PDT)
Received: from mail-ua0-x232.google.com (mail-ua0-x232.google.com [IPv6:2607:f8b0:400c:c08::232]) (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 93D14131714 for <quic@ietf.org>; Tue, 25 Jul 2017 12:11:33 -0700 (PDT)
Received: by mail-ua0-x232.google.com with SMTP id w45so108749316uac.5 for <quic@ietf.org>; Tue, 25 Jul 2017 12:11:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=clIWrAGnz/92lyIjHA/QtLmUN+BZKCNMzbaOAsElxmo=; b=c5h89UN/9kmBoKpgzZXDZgkLq+2iRMQHJFwk8Cw5267wEnurFtFv9sPFOpxiKkSTeS 5+KazPSHxtmk4rLMAImk/XP6bD4OqZIdRjsZMKDKit/C5lWdsv3/TLd6FzRclPePoj2W ArqYrB4wwy7pSEwSPlRkkSxkvTdsP3qKNxCxEY8XU4z8C1Vid/tgeECD/UoaTWNoMDXp MQiAoAkEnUYOC98dKXwMM/Nn1O2+xVs5Z16VBUwIgo5icGK7qMIU7QiAowojZn4pl1WB iKLFaHYLvAMcjpWIIspdqfs9upJYodU89M5N3jAPbIdlRQKQvY9URwDdtTQGSNQhcuJf W8rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=clIWrAGnz/92lyIjHA/QtLmUN+BZKCNMzbaOAsElxmo=; b=HYvdZO+rNmiijUff7+AueG7rYxuQVI6XrI+jaIHlsCQIdAXEpzNcbCnnaw3n9bI6B+ b1urbINsOiJLizdtsCUSj49hp+fXdINB2X4fwSk+K6J8JpGJiqI+ZhW2DouUw0DqFfYa EXTvQQwo+WpamxAKVTKLqrs6Zx17O8XvBkK+C9T81Q2T/8df6e0i19S4++UImKFWFRGh dAm/d9NV6Deg9RXktXaffLec31vmRBpre73Y0fm/ycKW08d1mkNQMafVUN1JYXEtZhRy 4sfl2HnQDlt4tXoEnKGh2WT7N9Zv7GrCDwiEMMIqk0lz7OKLBUHpB6lfJlCgsNq3XSdt tKZA==
X-Gm-Message-State: AIVw112n6xIyyz1iDCq0LSl86qd5R9jgJ31QLaMgRHAvxPhlGL3lQK68 gHbclPn01A7nZ+Gjmu/mp8jlfFl5PQ==
X-Received: by 10.176.91.19 with SMTP id u19mr13497492uae.152.1501009892717; Tue, 25 Jul 2017 12:11:32 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Tue, 25 Jul 2017 21:11:31 +0200
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <CAD3dRjqACu+oK=jhECsKHd27HEbHgjJkgNtQp3tdwnjo1QvjFQ@mail.gmail.com>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com> <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com> <9914D466-6293-447C-B3FC-839CFFF9298B@in-panik.de> <CAD3dRjqACu+oK=jhECsKHd27HEbHgjJkgNtQp3tdwnjo1QvjFQ@mail.gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Tue, 25 Jul 2017 21:11:31 +0200
Message-ID: <CAN1APdd+1O6BigtMqt+YuGVHd_LOLDCgSqQupLZ9bv5-NzkmCQ@mail.gmail.com>
Subject: Re: Unreliable Stream (was: Re: HTTP requests on one stream #692)
To: "Philipp S. Tiesel" <phils@in-panik.de>, Frank Kastenholz <fkastenholz@google.com>
Cc: Lucas Pardue <lucas.pardue@bbc.co.uk>, Mike Bishop <michael.bishop@microsoft.com>,  IETF QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>,  Ian Swett <ianswett@google.com>,  "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>
Content-Type: multipart/alternative; boundary="f403045f8b7475b9820555291922"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/9vnzXQNQyO6b65bN5lz3vmdeQCg>
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: Tue, 25 Jul 2017 19:11:35 -0000

--f403045f8b7475b9820555291922
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I believe Franks description suits the view if unreliable streams being
very small unidirectional streams.

As to Phillips question:

An open question is question is how to present a stream with =E2=80=9Choles=
=E2=80=9D to the
application.

The size of holes may be tricky unless, but presenting logical streams with
holes is easy:

For reliable (logical) streams you have one transport stream with many
messages and no holes. These messages must be on the stream to ensure
ordering, and you therefore need an application level message frame.

For unreliable (logical) streams you only send one message in each QUIC
transport stream. Instead of a message frame you store a logical stream id.
The transport stream id will always increase so even if unreliable, you
still know about ordering. An internal sequence number could be added if
more details are needed.

Unreliable streams may be short so there can be many in a single UDP
packet. This can drain the stream ID space.

A sending application can easily tell QUIC transport to not retransmit
frames of unreliable streams (or have some timeout etc.).

The receiving QUIC transport might struggle with seeing only the second
half of an unreliable stream. The receiving application has not easy way to
tell transport to stop waiting even if both sending and receiving
applications have negotiated what they want. To solve this problem, QUIC
transport could have a flag on frames that mark them as unreliable -
perhaps two bits for different classes / timeouts etc. The application can
the tell transport how to manage such streams.

By and large, reliable and unreliable streams work exactly the same at the
transport layer.


Note that if streams are not unidirectional there is more overhead in
keeping stream state and terminating streams. With a uni-directional stream
a sender can immediately close all stream state after sending a single
frame message. At a deeper level there  may be frame retransmission, but
this is much more lightweight. Then if frames are marked unreliable they
can also bypass the retransmission queue.

So I would like unidirectional streams with a flag to mark frames as
unreliable, and longer stream identifiers (possibly compressed).

How this works at the HTTP level I have no clue because I am still not up
to speed on this part. But I can easily imagine that a single stream per
HTTP transaction will fall short of some of those can be unreliable.


Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 25 July 2017 at 20.17.34, Frank Kastenholz (fkastenholz@google.com)
wrote:

An open question is question is how to present a stream with =E2=80=9Choles=
=E2=80=9D to the
application.

--f403045f8b7475b9820555291922
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto">I believe Franks description suits the view if un=
reliable streams being very small unidirectional streams.</div><div id=3D"b=
loop_customfont" style=3D"font-family:Helvetica,Arial;font-size:13px;color:=
rgba(0,0,0,1.0);margin:0px;line-height:auto"><br></div><div id=3D"bloop_cus=
tomfont" style=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0=
,0,1.0);margin:0px;line-height:auto">As to Phillips question:</div><div id=
=3D"bloop_customfont" style=3D"font-family:Helvetica,Arial;font-size:13px;c=
olor:rgba(0,0,0,1.0);margin:0px;line-height:auto"><div><blockquote type=3D"=
cite" class=3D"clean_bq" style=3D"font-family:Helvetica,Arial;font-size:13p=
x;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spac=
ing:normal;text-align:start;text-indent:0px;text-transform:none;white-space=
:normal;word-spacing:0px"><span style=3D"font-family:&#39;normal helvetica&=
#39;,sans-serif">An open question is question is how to present a stream wi=
th =E2=80=9Choles=E2=80=9D to the application.</span></blockquote></div><p>=
The size of holes may be tricky unless, but presenting logical streams with=
 holes is easy:</p><p>For reliable (logical) streams you have one transport=
 stream with many messages and no holes. These messages must be on the stre=
am to ensure ordering, and you therefore need an application level message =
frame.</p><p>For unreliable (logical) streams you only send one message in =
each QUIC transport stream. Instead of a message frame you store a logical =
stream id. The transport stream id will always increase so even if unreliab=
le, you still know about ordering. An internal sequence number could be add=
ed if more details are needed.</p><p>Unreliable streams may be short so the=
re can be many in a single UDP packet. This can drain the stream ID space.<=
/p><p>A sending application can easily tell QUIC transport to not retransmi=
t frames of unreliable streams (or have some timeout etc.).</p><p>The recei=
ving QUIC transport might struggle with seeing only the second half of an u=
nreliable stream. The receiving application has not easy way to tell transp=
ort to stop waiting even if both sending and receiving applications have ne=
gotiated what they want. To solve this problem, QUIC transport could have a=
 flag on frames that mark them as unreliable - perhaps two bits for differe=
nt classes / timeouts etc. The application can the tell transport how to ma=
nage such streams.</p><p>By and large, reliable and unreliable streams work=
 exactly the same at the transport layer.</p><p><br></p><p>Note that if str=
eams are not unidirectional there is more overhead in keeping stream state =
and terminating streams. With a uni-directional stream a sender can immedia=
tely close all stream state after sending a single frame message. At a deep=
er level there =C2=A0may be frame retransmission, but this is much more lig=
htweight. Then if frames are marked unreliable they can also bypass the ret=
ransmission queue.</p><p>So I would like unidirectional streams with a flag=
 to mark frames as unreliable, and longer stream identifiers (possibly comp=
ressed).</p><p>How this works at the HTTP level I have no clue because I am=
 still not up to speed on this part. But I can easily imagine that a single=
 stream per HTTP transaction will fall short of some of those can be unreli=
able.</p><p><br></p></div> <div id=3D"bloop_sign_1501008245194086912" class=
=3D"bloop_sign"><div style=3D"font-family:helvetica,arial;font-size:13px">K=
ind Regards,</div><div style=3D"font-family:helvetica,arial;font-size:13px"=
>Mikkel Fahn=C3=B8e J=C3=B8rgensen<br><br></div></div> <br><p class=3D"airm=
ail_on">On 25 July 2017 at 20.17.34, Frank Kastenholz (<a href=3D"mailto:fk=
astenholz@google.com">fkastenholz@google.com</a>) wrote:</p> <blockquote ty=
pe=3D"cite" class=3D"clean_bq"><span><div><span style=3D"color:rgb(10,81,16=
1);font-family:&#39;normal helvetica&#39;,sans-serif;font-size:13px;font-st=
yle:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:norma=
l;text-align:start;text-indent:0px;text-transform:none;white-space:normal;w=
ord-spacing:0px;background-color:rgb(255,255,255);display:inline!important;=
float:none">An open question is question is how to present a stream with =
=E2=80=9Choles=E2=80=9D to the application.</span></div></span></blockquote=
></body></html>

--f403045f8b7475b9820555291922--


From nobody Tue Jul 25 13:03:31 2017
Return-Path: <Michael.Bishop@microsoft.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 B2DC8131D0B for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 13:03:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.02
X-Spam-Level: 
X-Spam-Status: No, score=-2.02 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 H1VMF1uJeqJS for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 13:03:25 -0700 (PDT)
Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0134.outbound.protection.outlook.com [104.47.36.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 68DD31317A4 for <quic@ietf.org>; Tue, 25 Jul 2017 13:03:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=AfcQFjj/cJo7ffZfxh08fNCXQqTon8zRyL0KklIkp98=; b=CBcMRhhSU9timb0EWNuyl+Kd8XamHpljz/Lq/HE6eyUFC8C3/oStVloMcULMaLIXriApHbmaHX3CG7nyOPY5hNLg8V66oVjsAz+bEhXSntMZg9+DVvBAZ2U5g7/T3O6Cpmltaf2K0E96Jq0h8JlsVhB8K23q6WEvXWw0T/B7n80=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0192.namprd21.prod.outlook.com (10.173.52.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.2; Tue, 25 Jul 2017 20:03:23 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1282.008; Tue, 25 Jul 2017 20:03:23 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Mike Bishop <Michael.Bishop@microsoft.com>, Patrick McManus <pmcmanus@mozilla.com>, Eric Rescorla <ekr@rtfm.com>
CC: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, Martin Duke <martin.h.duke@gmail.com>
Subject: RE: New Second Implementation Draft
Thread-Topic: New Second Implementation Draft
Thread-Index: AQHTAYMPsVZ1kdsT/kGX6kMckMKBMaJdcN8AgAB7CgCAABgsgIAAFmUAgAABiICABFnMUIACiRtg
Date: Tue, 25 Jul 2017 20:03:23 +0000
Message-ID: <MWHPR21MB01412439AD2FA29B1E9F648C87B80@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012> <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012> <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com> <CABcZeBNc3vWnY7Bn=KeERMHOptX16=aievVmvj61MxqwOOf61w@mail.gmail.com> <CAOdDvNph_dd1MGSAJFoA+T8KTj6=ms2T78PXjqUz_9htymqEtg@mail.gmail.com> <MWHPR21MB0141E6CD40B97385610701E887BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
In-Reply-To: <MWHPR21MB0141E6CD40B97385610701E887BB0@MWHPR21MB0141.namprd21.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [2001:4898:80e8:5::6d4]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0192; 7:TFnnUabDqoipiuj/xXDt2pdhfVIZM/paAHfXFXmG32058MfvgDFziX0N/9b128FlGQisDCd6/nXkei71bc632mkIQ3L53/Fgtiu6KM3e+f5MTXooClwBPyyXQyo/zD3OewxzgsWHN32tFcHq+HNRYKeMY3sWuYKhvQzdvCXKWzjqsaXOQdLumho6SKkYzE9lY4m4U7gBhYwoZtqswcg9xRMuUWppGse+dzJRn2A0gZw8oOVROCpNIl4730WGvSgm1E0shQQ0BwKgWIawyubqZgbQVdLkPjp6cHD3JvhHmE6v2ABvt0xfRjCtFivYIGqEbLzEfA5sD/IQOOG/yowKe8sH5+W74baPmJ4lgGvtVjuOudkufxdV88Yx+VxggCb2JY4mvBMvK95S+W32Ar5fvagMjREFUowKml4CfgPznA73eIsYK0EgAUdx3bYMLZc4RF9GHO/ucTsKpzZOkE7O24ygDoSCdUJIKrvgiee6BAu7dW0J/lOW2VEzrW4t96nNDqJG3m4Yx+rta/fDXhzKMi00de/IFfG6r6IGQE+vegwS/MtmEUNH3pa3zX3oZrMGNCCmkJtFpczTJTKJOl/6Rn5ROPQbWAcxnzz4fMFXeLNzPhPA7XIEvAVYpFfbproe1lyub8gTe6XnHV2IivEjovRBiY4/5j6Yw/CJRPsQYnClO4mLhg2BFa3gnbioWzDVW07MlcJZyQkp2F9MiBZxQ0bKW1ep1ql1Qt7GQKoVkET3aaVM0FOebbV1B1yXtcC9ePX13k7jrnURRt3h4/KlKya1OXr/QoOikP5iTRbQ6jdqesbhhrsHGHGzUCNplwBo
x-ms-office365-filtering-correlation-id: e23d0a62-2f65-4be6-a1b5-08d4d3983484
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254087)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0192; 
x-ms-traffictypediagnostic: MWHPR21MB0192:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
x-exchange-antispam-report-test: UriScan:(127952516941037)(21748063052155);
x-microsoft-antispam-prvs: <MWHPR21MB0192BD612CC04258D235A31787B80@MWHPR21MB0192.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(61426038)(61427038)(6041248)(20161123558100)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0192; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0192; 
x-forefront-prvs: 03793408BA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39840400002)(39450400003)(39850400002)(39400400002)(39860400002)(39410400002)(47760400005)(189002)(199003)(57704003)(377454003)(24454002)(3280700002)(53546010)(25786009)(74316002)(5660300001)(106356001)(19609705001)(4326008)(7696004)(86612001)(2906002)(10090500001)(105586002)(3660700001)(478600001)(10290500003)(68736007)(86362001)(14454004)(72206003)(81156014)(7736002)(81166006)(33656002)(39060400002)(54356999)(101416001)(50986999)(3480700004)(2900100001)(5005710100001)(8990500004)(102836003)(76176999)(6116002)(8676002)(790700001)(2561002)(8936002)(1511001)(38730400002)(561944003)(236005)(6246003)(97736004)(2950100002)(2421001)(99286003)(54896002)(55016002)(93886004)(229853002)(6306002)(6506006)(53936002)(77096006)(54906002)(9686003)(189998001)(6436002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0192; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB01412439AD2FA29B1E9F648C87B80MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2017 20:03:23.4429 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0192
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/nXVFgrZ5BQCYL6f5ObtOoV6vp_Y>
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: Tue, 25 Jul 2017 20:03:29 -0000

--_000_MWHPR21MB01412439AD2FA29B1E9F648C87B80MWHPR21MB0141namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SnVzdCBzbyB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2Ug4oCTIHRoaXMgc2V0IG9mIOKAnFNlY29u
ZCBJbXBsZW1lbnRhdGlvbiBEcmFmdOKAnSB0YXJnZXRzIGlzIGZvciBTZWF0dGxlPyAgT3Igc29t
ZSBmdXR1cmUgZGF0ZT8NCg0KRnJvbTogUVVJQyBbbWFpbHRvOnF1aWMtYm91bmNlc0BpZXRmLm9y
Z10gT24gQmVoYWxmIE9mIE1pa2UgQmlzaG9wDQpTZW50OiBTdW5kYXksIEp1bHkgMjMsIDIwMTcg
MTA6MjEgUE0NClRvOiBQYXRyaWNrIE1jTWFudXMgPHBtY21hbnVzQG1vemlsbGEuY29tPjsgRXJp
YyBSZXNjb3JsYSA8ZWtyQHJ0Zm0uY29tPg0KQ2M6IEx1Y2FzIFBhcmR1ZSA8THVjYXMuUGFyZHVl
QGJiYy5jby51az47IElFVEYgUVVJQyBXRyA8cXVpY0BpZXRmLm9yZz47IE1hcnRpbiBUaG9tc29u
IDxtYXJ0aW4udGhvbXNvbkBnbWFpbC5jb20+OyBNYXJ0aW4gRHVrZSA8bWFydGluLmguZHVrZUBn
bWFpbC5jb20+DQpTdWJqZWN0OiBSRTogTmV3IFNlY29uZCBJbXBsZW1lbnRhdGlvbiBEcmFmdA0K
DQpJ4oCZZCBmb2xsb3cgcHJlY2VkZW50IOKAkyBodHRwLzEuMSBpcyBhbHJlYWR5IGRlZmluZWQs
IHNvIHdoeSBub3QgaHR0cC8wLjk/DQoNCknigJlkIGFsc28gbGlrZSB0byBtZW50aW9uIHRoYXQg
bXkgd2lmZSBpcyBwYXJ0aWN1bGFybHkgZm9uZCBvZiB0aGUgcGFpbnQgY29sb3Ig4oCcUmhpbm/i
gJ0gZm9yIHRoZSBhc3NvY2lhdGVkIGJpa2VzaGVkLiAg8J+YiQ0KDQpGcm9tOiBRVUlDIFttYWls
dG86cXVpYy1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhhbGYgT2YgUGF0cmljayBNY01hbnVzDQpT
ZW50OiBGcmlkYXksIEp1bHkgMjEsIDIwMTcgMzo1MyBBTQ0KVG86IEVyaWMgUmVzY29ybGEgPGVr
ckBydGZtLmNvbTxtYWlsdG86ZWtyQHJ0Zm0uY29tPj4NCkNjOiBMdWNhcyBQYXJkdWUgPEx1Y2Fz
LlBhcmR1ZUBiYmMuY28udWs8bWFpbHRvOkx1Y2FzLlBhcmR1ZUBiYmMuY28udWs+PjsgSUVURiBR
VUlDIFdHIDxxdWljQGlldGYub3JnPG1haWx0bzpxdWljQGlldGYub3JnPj47IE1hcnRpbiBUaG9t
c29uIDxtYXJ0aW4udGhvbXNvbkBnbWFpbC5jb208bWFpbHRvOm1hcnRpbi50aG9tc29uQGdtYWls
LmNvbT4+OyBNYXJ0aW4gRHVrZSA8bWFydGluLmguZHVrZUBnbWFpbC5jb208bWFpbHRvOm1hcnRp
bi5oLmR1a2VAZ21haWwuY29tPj4NClN1YmplY3Q6IFJlOiBOZXcgU2Vjb25kIEltcGxlbWVudGF0
aW9uIERyYWZ0DQoNCml0cyBhIGdvb2QgaWRlYSB0aGF0IG5lZWRzIGEgYmlrZXNoZWQuIGhxLW5v
cCB3b3VsZCBiZSBteSBwcmVmZXJlbmNlIChzdGF5IGluIHRoZSBocSBuYW1lc3BhY2UpLi4NCg0K
T24gRnJpLCBKdWwgMjEsIDIwMTcgYXQgMTI6NDcgUE0sIEVyaWMgUmVzY29ybGEgPGVrckBydGZt
LmNvbTxtYWlsdG86ZWtyQHJ0Zm0uY29tPj4gd3JvdGU6DQpoMDlxLTA1PyA6KQ0KDQpPbiBGcmks
IEp1bCAyMSwgMjAxNyBhdCAyOjI3IEFNLCBNYXJ0aW4gVGhvbXNvbiA8bWFydGluLnRob21zb25A
Z21haWwuY29tPG1haWx0bzptYXJ0aW4udGhvbXNvbkBnbWFpbC5jb20+PiB3cm90ZToNCkRvIHdl
IG5lZWQgYSBwZXJtYW5lbnQgQUxQTiB0b2tlbiBmb3IgdGhpcz8gIEl0IHNlZW1zIGxpa2UgYSB1
c2VmdWwNCmZhY2lsaXR5IHRvIGJ1aWxkIGludG8gc3RhY2tzIHRoYXQgYXJlIHRyYW5zcG9ydC1v
bmx5LiAgTWF5YmUgImgwOXEiLg0KDQpPbiAyMSBKdWx5IDIwMTcgYXQgMTA6MDAsIEx1Y2FzIFBh
cmR1ZSA8THVjYXMuUGFyZHVlQGJiYy5jby51azxtYWlsdG86THVjYXMuUGFyZHVlQGJiYy5jby51
az4+IHdyb3RlOg0KPiBJIGFwcHJlY2lhdGUgdGhlIGZsZXhpYmlsaXR5IGJ1dCBoYXZlIGRpZmZp
Y3VsdHkgaW4gc2VlaW5nIGhvdyB0aGlzIHdvdWxkDQo+IGZsb3cgdGhyb3VnaCB0byBpbnRlcm9w
IHRlc3RpbmcsIGhvdyBkbyB3ZSBtZWFzdXJlIHN1Y2Nlc3M/IE9uZSBwb3NzaWJsZQ0KPiBvdXRj
b21lIGlzIGludGVyb3AgbGltaXRlZCB0byBzZWxmLXRlc3Qgb2Yg4oCcYmVzcG9rZS1zaW1wbGUt
YXBw4oCdIG92ZXIgUVVJQywNCj4gaXMgdGhhdCBnb29kIGVub3VnaD8gTXkgcHJlZmVyZW5jZSBp
cyB0byBwaWNrIGEgbWluaW1hbCBiYXNlbGluZSAo4oCcZWNobyBhbmQNCj4gYW1wbGlmeeKAnSBv
ciB3aGF0ZXZlciBlbHNlKSBhbmQgdGhlbiBhZGRpdGlvbmFscyBhcmUgYSBib251cyB0aGF0IGlz
IHVwIHRvDQo+IGV4dGVybmFsIGNvb3JkaW5hdGlvbi4gSSB0aGluayB0aGlzIGNvbW1vbiBiYXNl
bGluZSBjb3VsZCBhbHNvIGhlbHAgdG93YXJkcw0KPiBvbmdvaW5nIGNvbnNpZGVyYXRpb24gZm9y
IHBlcmZvcm1hbmNlIG9yIGJlbmNobWFya2luZywgb3ZlciBkaXNwYXJhdGUNCj4gaW1wbGVtZW50
YXRpb25zLCBhcyBhc3BlY3RzIG9mIHRoZSBwcm90b2NvbCBldm9sdmUgb3IgY2hhbmdlLg0KPg0K
Pg0KPg0KPiBUaGUgcHJvcG9zYWwgdG8gZG8gSFRUUCAwLjkgR0VULCBkaXNjdXNzZWQgaW4gUHJh
Z3VlLCBhZGRyZXNzZXMgbXkgY29uY2VybnMuDQo+DQo+DQo+DQo+IEx1Y2FzDQo+DQo+DQoNCg0K

--_000_MWHPR21MB01412439AD2FA29B1E9F648C87B80MWHPR21MB0141namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToiU2Vnb2UgVUkgRW1vamkiOw0KCXBhbm9z
ZS0xOjIgMTEgNSAyIDQgMiA0IDIgMiAzO30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1z
b05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowaW47DQoJbWFy
Z2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLHNhbnMtc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5
bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
O30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJp
b3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0K
cC5tc29ub3JtYWwwLCBsaS5tc29ub3JtYWwwLCBkaXYubXNvbm9ybWFsMA0KCXttc28tc3R5bGUt
bmFtZTptc29ub3JtYWw7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0
OjBpbjsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowaW47DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQpz
cGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWls
eToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4uRW1haWxT
dHlsZTIwDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJD
YWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQN
Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFn
ZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGlu
IDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0K
LS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpl
eHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0
ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6
ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0t
Pg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUi
Pg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkp1c3Qg
c28gd2XigJlyZSBvbiB0aGUgc2FtZSBwYWdlIOKAkyB0aGlzIHNldCBvZiDigJxTZWNvbmQgSW1w
bGVtZW50YXRpb24gRHJhZnTigJ0gdGFyZ2V0cyBpcyBmb3IgU2VhdHRsZT8mbmJzcDsgT3Igc29t
ZSBmdXR1cmUgZGF0ZT88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10
b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxiPkZyb206PC9iPiBRVUlDIFttYWlsdG86cXVpYy1ib3VuY2VzQGll
dGYub3JnXSA8Yj5PbiBCZWhhbGYgT2YNCjwvYj5NaWtlIEJpc2hvcDxicj4NCjxiPlNlbnQ6PC9i
PiBTdW5kYXksIEp1bHkgMjMsIDIwMTcgMTA6MjEgUE08YnI+DQo8Yj5Ubzo8L2I+IFBhdHJpY2sg
TWNNYW51cyAmbHQ7cG1jbWFudXNAbW96aWxsYS5jb20mZ3Q7OyBFcmljIFJlc2NvcmxhICZsdDtl
a3JAcnRmbS5jb20mZ3Q7PGJyPg0KPGI+Q2M6PC9iPiBMdWNhcyBQYXJkdWUgJmx0O0x1Y2FzLlBh
cmR1ZUBiYmMuY28udWsmZ3Q7OyBJRVRGIFFVSUMgV0cgJmx0O3F1aWNAaWV0Zi5vcmcmZ3Q7OyBN
YXJ0aW4gVGhvbXNvbiAmbHQ7bWFydGluLnRob21zb25AZ21haWwuY29tJmd0OzsgTWFydGluIER1
a2UgJmx0O21hcnRpbi5oLmR1a2VAZ21haWwuY29tJmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBS
RTogTmV3IFNlY29uZCBJbXBsZW1lbnRhdGlvbiBEcmFmdDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+SeKAmWQgZm9sbG93IHByZWNlZGVudCDigJMgaHR0cC8xLjEgaXMg
YWxyZWFkeSBkZWZpbmVkLCBzbyB3aHkgbm90IGh0dHAvMC45PzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5J4oCZZCBhbHNvIGxpa2UgdG8gbWVudGlvbiB0aGF0IG15IHdpZmUgaXMgcGFydGljdWxh
cmx5IGZvbmQgb2YgdGhlIHBhaW50IGNvbG9yIOKAnFJoaW5v4oCdIGZvciB0aGUgYXNzb2NpYXRl
ZCBiaWtlc2hlZC4mbmJzcDsNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtTZWdvZSBV
SSBFbW9qaSZxdW90OyxzYW5zLXNlcmlmIj4mIzEyODUyMTs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxiPkZyb206PC9iPiBRVUlDIFs8YSBocmVmPSJtYWlsdG86cXVpYy1ib3VuY2Vz
QGlldGYub3JnIj5tYWlsdG86cXVpYy1ib3VuY2VzQGlldGYub3JnPC9hPl0NCjxiPk9uIEJlaGFs
ZiBPZiA8L2I+UGF0cmljayBNY01hbnVzPGJyPg0KPGI+U2VudDo8L2I+IEZyaWRheSwgSnVseSAy
MSwgMjAxNyAzOjUzIEFNPGJyPg0KPGI+VG86PC9iPiBFcmljIFJlc2NvcmxhICZsdDs8YSBocmVm
PSJtYWlsdG86ZWtyQHJ0Zm0uY29tIj5la3JAcnRmbS5jb208L2E+Jmd0Ozxicj4NCjxiPkNjOjwv
Yj4gTHVjYXMgUGFyZHVlICZsdDs8YSBocmVmPSJtYWlsdG86THVjYXMuUGFyZHVlQGJiYy5jby51
ayI+THVjYXMuUGFyZHVlQGJiYy5jby51azwvYT4mZ3Q7OyBJRVRGIFFVSUMgV0cgJmx0OzxhIGhy
ZWY9Im1haWx0bzpxdWljQGlldGYub3JnIj5xdWljQGlldGYub3JnPC9hPiZndDs7IE1hcnRpbiBU
aG9tc29uICZsdDs8YSBocmVmPSJtYWlsdG86bWFydGluLnRob21zb25AZ21haWwuY29tIj5tYXJ0
aW4udGhvbXNvbkBnbWFpbC5jb208L2E+Jmd0OzsgTWFydGluIER1a2UNCiAmbHQ7PGEgaHJlZj0i
bWFpbHRvOm1hcnRpbi5oLmR1a2VAZ21haWwuY29tIj5tYXJ0aW4uaC5kdWtlQGdtYWlsLmNvbTwv
YT4mZ3Q7PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBOZXcgU2Vjb25kIEltcGxlbWVudGF0aW9u
IERyYWZ0PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv
bzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5pdHMgYSBnb29kIGlkZWEgdGhh
dCBuZWVkcyBhIGJpa2VzaGVkLiBocS1ub3Agd291bGQgYmUgbXkgcHJlZmVyZW5jZSAoc3RheSBp
biB0aGUgaHEgbmFtZXNwYWNlKS4uDQo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPk9uIEZyaSwgSnVsIDIxLCAyMDE3IGF0IDEyOjQ3IFBNLCBFcmljIFJlc2Nv
cmxhICZsdDs8YSBocmVmPSJtYWlsdG86ZWtyQHJ0Zm0uY29tIiB0YXJnZXQ9Il9ibGFuayI+ZWty
QHJ0Zm0uY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHls
ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBp
biAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2lu
LXJpZ2h0OjBpbjttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5oMDlxLTA1PyA6KTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiBGcmksIEp1bCAyMSwgMjAxNyBhdCAyOjI3IEFNLCBNYXJ0
aW4gVGhvbXNvbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOm1hcnRpbi50aG9tc29uQGdtYWlsLmNvbSIg
dGFyZ2V0PSJfYmxhbmsiPm1hcnRpbi50aG9tc29uQGdtYWlsLmNvbTwvYT4mZ3Q7IHdyb3RlOjxv
OnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0
OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVm
dDo0LjhwdDttYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRvbTo1
LjBwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5EbyB3ZSBuZWVkIGEgcGVybWFuZW50IEFMUE4g
dG9rZW4gZm9yIHRoaXM/Jm5ic3A7IEl0IHNlZW1zIGxpa2UgYSB1c2VmdWw8YnI+DQpmYWNpbGl0
eSB0byBidWlsZCBpbnRvIHN0YWNrcyB0aGF0IGFyZSB0cmFuc3BvcnQtb25seS4mbmJzcDsgTWF5
YmUgJnF1b3Q7aDA5cSZxdW90Oy48bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij48YnI+DQpPbiAyMSBK
dWx5IDIwMTcgYXQgMTA6MDAsIEx1Y2FzIFBhcmR1ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOkx1Y2Fz
LlBhcmR1ZUBiYmMuY28udWsiIHRhcmdldD0iX2JsYW5rIj5MdWNhcy5QYXJkdWVAYmJjLmNvLnVr
PC9hPiZndDsgd3JvdGU6PGJyPg0KJmd0OyBJIGFwcHJlY2lhdGUgdGhlIGZsZXhpYmlsaXR5IGJ1
dCBoYXZlIGRpZmZpY3VsdHkgaW4gc2VlaW5nIGhvdyB0aGlzIHdvdWxkPGJyPg0KJmd0OyBmbG93
IHRocm91Z2ggdG8gaW50ZXJvcCB0ZXN0aW5nLCBob3cgZG8gd2UgbWVhc3VyZSBzdWNjZXNzPyBP
bmUgcG9zc2libGU8YnI+DQomZ3Q7IG91dGNvbWUgaXMgaW50ZXJvcCBsaW1pdGVkIHRvIHNlbGYt
dGVzdCBvZiDigJxiZXNwb2tlLXNpbXBsZS1hcHDigJ0gb3ZlciBRVUlDLDxicj4NCiZndDsgaXMg
dGhhdCBnb29kIGVub3VnaD8gTXkgcHJlZmVyZW5jZSBpcyB0byBwaWNrIGEgbWluaW1hbCBiYXNl
bGluZSAo4oCcZWNobyBhbmQ8YnI+DQomZ3Q7IGFtcGxpZnnigJ0gb3Igd2hhdGV2ZXIgZWxzZSkg
YW5kIHRoZW4gYWRkaXRpb25hbHMgYXJlIGEgYm9udXMgdGhhdCBpcyB1cCB0bzxicj4NCiZndDsg
ZXh0ZXJuYWwgY29vcmRpbmF0aW9uLiBJIHRoaW5rIHRoaXMgY29tbW9uIGJhc2VsaW5lIGNvdWxk
IGFsc28gaGVscCB0b3dhcmRzPGJyPg0KJmd0OyBvbmdvaW5nIGNvbnNpZGVyYXRpb24gZm9yIHBl
cmZvcm1hbmNlIG9yIGJlbmNobWFya2luZywgb3ZlciBkaXNwYXJhdGU8YnI+DQomZ3Q7IGltcGxl
bWVudGF0aW9ucywgYXMgYXNwZWN0cyBvZiB0aGUgcHJvdG9jb2wgZXZvbHZlIG9yIGNoYW5nZS48
YnI+DQomZ3Q7PGJyPg0KJmd0Ozxicj4NCiZndDs8YnI+DQomZ3Q7IFRoZSBwcm9wb3NhbCB0byBk
byBIVFRQIDAuOSBHRVQsIGRpc2N1c3NlZCBpbiBQcmFndWUsIGFkZHJlc3NlcyBteSBjb25jZXJu
cy48YnI+DQomZ3Q7PGJyPg0KJmd0Ozxicj4NCiZndDs8YnI+DQomZ3Q7IEx1Y2FzPGJyPg0KJmd0
Ozxicj4NCiZndDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8
L2h0bWw+DQo=

--_000_MWHPR21MB01412439AD2FA29B1E9F648C87B80MWHPR21MB0141namp_--


From nobody Tue Jul 25 13:35:26 2017
Return-Path: <ekr@rtfm.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 8CEB512420B for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 13:35:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 kp8j-8n9Yfxw for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 13:35:22 -0700 (PDT)
Received: from mail-yw0-x231.google.com (mail-yw0-x231.google.com [IPv6:2607:f8b0:4002:c05::231]) (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 22DCA1317AD for <quic@ietf.org>; Tue, 25 Jul 2017 13:35:22 -0700 (PDT)
Received: by mail-yw0-x231.google.com with SMTP id l82so17640689ywc.2 for <quic@ietf.org>; Tue, 25 Jul 2017 13:35:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=DkwjOHU3X3IZk+YxTw+6qdq24nIXOT5sSHAWCXYgnd0=; b=bw03R0KCCXlCsPgexxUmE31uV7JnB+dBvmU6aUo7qVwuSP4HRO/EgvRq1iLiOzvcci PU0fHWg3ymlYRdIltCNd1HLemy+X9KUVmAcTDQxypDFZyF00nOp/bdjrlL995P6sXlY+ E7l2YgQjtI0HxSGmrWIzGzHuzgsh0fOJ0j7V+GONkYbkJMFGCumiNw5qBuBLiQ30jy+o 8RLolcjuvp7cWvUnbm6szUdK2fUW7KRZNkmboU5iM0pOBRtpA0efWBsEA9Pg8yyc3tUW Hb8X2Q8N6dmhwoeK86o3VZGwcVYAohy6ZaFj4Eqd8lOB1XlBNVgwFTzN0CXmYKeUrwZQ WS6g==
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=DkwjOHU3X3IZk+YxTw+6qdq24nIXOT5sSHAWCXYgnd0=; b=hOIvVFOJQD7rzcrsHwMF0IFL2f6faS261N37MSIqzRVwNf6V2noitbgzVhvmAnv3ft z8ImPrYGGKexu4RwJnFM5uZs2rZK1Ud1q/6w+Q8yOrlwDFiPOZJK6PwcKRA7wPvatvl8 MU5QjSFPPDpljv9e5n5ghpe5FQnDfbOJ9Ev1HMdJtpFVagpVK9vTQzHDUinx0SR0LJH4 Kb4DuqvKWT3i8ng8mbBaZzYlNdGkNc1F5Dese0tiX2xwVR2pCn6gU2dllRiaEPaINtEC RGJYSSXRFDofWpY0eHM8npMu17Lhqvaijg4xbjCN2nGQndPI7pX6nsYauhW5st0peOrK OdSg==
X-Gm-Message-State: AIVw112uaxVieFEfHgBoPVAsW801nXLPCxhSGmw+QQ+rDN0NSb+p26s7 ZKbF7rtdcY3UGWLM0HQmSfYZRKhpNWs6
X-Received: by 10.37.160.41 with SMTP id x38mr17003837ybh.339.1501014920381; Tue, 25 Jul 2017 13:35:20 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Tue, 25 Jul 2017 13:34:39 -0700 (PDT)
In-Reply-To: <MWHPR21MB01412439AD2FA29B1E9F648C87B80@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012> <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012> <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com> <CABcZeBNc3vWnY7Bn=KeERMHOptX16=aievVmvj61MxqwOOf61w@mail.gmail.com> <CAOdDvNph_dd1MGSAJFoA+T8KTj6=ms2T78PXjqUz_9htymqEtg@mail.gmail.com> <MWHPR21MB0141E6CD40B97385610701E887BB0@MWHPR21MB0141.namprd21.prod.outlook.com> <MWHPR21MB01412439AD2FA29B1E9F648C87B80@MWHPR21MB0141.namprd21.prod.outlook.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 25 Jul 2017 13:34:39 -0700
Message-ID: <CABcZeBNB5RFXYWOXa8-_nO5LYoTmXzprzAHNh1XqdESOo_b-ng@mail.gmail.com>
Subject: Re: New Second Implementation Draft
To: Mike Bishop <Michael.Bishop@microsoft.com>
Cc: Patrick McManus <pmcmanus@mozilla.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>,  IETF QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>,  Martin Duke <martin.h.duke@gmail.com>
Content-Type: multipart/alternative; boundary="94eb2c1a0650220e9205552a4511"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/o2rqc-efhZISRffBQo4ZF4FMvAY>
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: Tue, 25 Jul 2017 20:35:25 -0000

--94eb2c1a0650220e9205552a4511
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 25, 2017 at 1:03 PM, Mike Bishop <Michael.Bishop@microsoft.com>
wrote:

> Just so we=E2=80=99re on the same page =E2=80=93 this set of =E2=80=9CSec=
ond Implementation Draft=E2=80=9D
> targets is for Seattle?  Or some future date?
>

I had previously understood ID2 to be for Singapore. Given the somewhat
rickety state of the implementations I saw in PRG, I think it might be
better to get them solid in SEA rather than rickety but more full
featured...

-Ekr


>
> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Mike Bishop
> *Sent:* Sunday, July 23, 2017 10:21 PM
> *To:* Patrick McManus <pmcmanus@mozilla.com>; Eric Rescorla <ekr@rtfm.com=
>
> *Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; IETF QUIC WG <quic@ietf.org>=
;
> Martin Thomson <martin.thomson@gmail.com>; Martin Duke <
> martin.h.duke@gmail.com>
> *Subject:* RE: New Second Implementation Draft
>
>
>
> I=E2=80=99d follow precedent =E2=80=93 http/1.1 is already defined, so wh=
y not http/0.9?
>
>
>
> I=E2=80=99d also like to mention that my wife is particularly fond of the=
 paint
> color =E2=80=9CRhino=E2=80=9D for the associated bikeshed.  =F0=9F=98=89
>
>
>
> *From:* QUIC [mailto:quic-bounces@ietf.org <quic-bounces@ietf.org>] *On
> Behalf Of *Patrick McManus
> *Sent:* Friday, July 21, 2017 3:53 AM
> *To:* Eric Rescorla <ekr@rtfm.com>
> *Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; IETF QUIC WG <quic@ietf.org>=
;
> Martin Thomson <martin.thomson@gmail.com>; Martin Duke <
> martin.h.duke@gmail.com>
> *Subject:* Re: New Second Implementation Draft
>
>
>
> its a good idea that needs a bikeshed. hq-nop would be my preference (sta=
y
> in the hq namespace)..
>
>
>
> On Fri, Jul 21, 2017 at 12:47 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>
> h09q-05? :)
>
>
>
> On Fri, Jul 21, 2017 at 2:27 AM, Martin Thomson <martin.thomson@gmail.com=
>
> wrote:
>
> Do we need a permanent ALPN token for this?  It seems like a useful
> facility to build into stacks that are transport-only.  Maybe "h09q".
>
>
> On 21 July 2017 at 10:00, Lucas Pardue <Lucas.Pardue@bbc.co.uk> wrote:
> > I appreciate the flexibility but have difficulty in seeing how this wou=
ld
> > flow through to interop testing, how do we measure success? One possibl=
e
> > outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over
> QUIC,
> > is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho
> and
> > amplify=E2=80=9D or whatever else) and then additionals are a bonus tha=
t is up to
> > external coordination. I think this common baseline could also help
> towards
> > ongoing consideration for performance or benchmarking, over disparate
> > implementations, as aspects of the protocol evolve or change.
> >
> >
> >
> > The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my
> concerns.
> >
> >
> >
> > Lucas
> >
> >
>
>
>
>
>

--94eb2c1a0650220e9205552a4511
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">=
On Tue, Jul 25, 2017 at 1:03 PM, Mike Bishop <span dir=3D"ltr">&lt;<a href=
=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_blank">Michael.Bishop@m=
icrosoft.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"m_7637594138368012530WordSection1">
<p class=3D"MsoNormal">Just so we=E2=80=99re on the same page =E2=80=93 thi=
s set of =E2=80=9CSecond Implementation Draft=E2=80=9D targets is for Seatt=
le?=C2=A0 Or some future date?</p></div></div></blockquote><div><br></div><=
div>I had previously understood ID2 to be for Singapore. Given the somewhat=
 rickety state of the implementations I saw in PRG, I think it might be bet=
ter to get them solid in SEA rather than rickety but more full featured...<=
/div><div><br></div><div>-Ekr</div><div><br></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex"><div lang=3D"EN-US" link=3D"blue" vlink=3D"purple"><div class=3D"m_76=
37594138368012530WordSection1"><p class=3D"MsoNormal"><u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> QUIC [mailto:<a href=3D"mailto:quic-bou=
nces@ietf.org" target=3D"_blank">quic-bounces@ietf.org</a>] <b>On Behalf Of
</b>Mike Bishop<br>
<b>Sent:</b> Sunday, July 23, 2017 10:21 PM<br>
<b>To:</b> Patrick McManus &lt;<a href=3D"mailto:pmcmanus@mozilla.com" targ=
et=3D"_blank">pmcmanus@mozilla.com</a>&gt;; Eric Rescorla &lt;<a href=3D"ma=
ilto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&gt;<span class=3D""><=
br>
<b>Cc:</b> Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@bbc.co.uk" targe=
t=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt;; IETF QUIC WG &lt;<a href=3D"ma=
ilto:quic@ietf.org" target=3D"_blank">quic@ietf.org</a>&gt;; Martin Thomson=
 &lt;<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">martin.t=
homson@gmail.com</a>&gt;; Martin Duke &lt;<a href=3D"mailto:martin.h.duke@g=
mail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;<br>
</span><b>Subject:</b> RE: New Second Implementation Draft<u></u><u></u></p=
>
</div>
</div><div><div class=3D"h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">I=E2=80=99d follow precedent =E2=80=93 http/1.1 is a=
lready defined, so why not http/0.9?<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">I=E2=80=99d also like to mention that my wife is par=
ticularly fond of the paint color =E2=80=9CRhino=E2=80=9D for the associate=
d bikeshed.=C2=A0
<span style=3D"font-family:&quot;Segoe UI Emoji&quot;,sans-serif">=F0=9F=98=
=89</span><u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><b>From:</b> QUIC [<a href=3D"mailto:quic-bounces@ie=
tf.org" target=3D"_blank">mailto:quic-bounces@ietf.org</a>]
<b>On Behalf Of </b>Patrick McManus<br>
<b>Sent:</b> Friday, July 21, 2017 3:53 AM<br>
<b>To:</b> Eric Rescorla &lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_bla=
nk">ekr@rtfm.com</a>&gt;<br>
<b>Cc:</b> Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@bbc.co.uk" targe=
t=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt;; IETF QUIC WG &lt;<a href=3D"ma=
ilto:quic@ietf.org" target=3D"_blank">quic@ietf.org</a>&gt;; Martin Thomson=
 &lt;<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">martin.t=
homson@gmail.com</a>&gt;; Martin Duke
 &lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.=
duke@gmail.com</a>&gt;<br>
<b>Subject:</b> Re: New Second Implementation Draft<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">its a good idea that needs a bikeshed. hq-nop would =
be my preference (stay in the hq namespace)..
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Fri, Jul 21, 2017 at 12:47 PM, Eric Rescorla &lt;=
<a href=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&gt; wrot=
e:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal">h09q-05? :)<u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Fri, Jul 21, 2017 at 2:27 AM, Martin Thomson &lt;=
<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">martin.thomso=
n@gmail.com</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-=
bottom:5.0pt">
<p class=3D"MsoNormal">Do we need a permanent ALPN token for this?=C2=A0 It=
 seems like a useful<br>
facility to build into stacks that are transport-only.=C2=A0 Maybe &quot;h0=
9q&quot;.<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
On 21 July 2017 at 10:00, Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@b=
bc.co.uk" target=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt; wrote:<br>
&gt; I appreciate the flexibility but have difficulty in seeing how this wo=
uld<br>
&gt; flow through to interop testing, how do we measure success? One possib=
le<br>
&gt; outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over QUIC,<br>
&gt; is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho and<br>
&gt; amplify=E2=80=9D or whatever else) and then additionals are a bonus th=
at is up to<br>
&gt; external coordination. I think this common baseline could also help to=
wards<br>
&gt; ongoing consideration for performance or benchmarking, over disparate<=
br>
&gt; implementations, as aspects of the protocol evolve or change.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my con=
cerns.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Lucas<br>
&gt;<br>
&gt;<u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>

</blockquote></div><br></div></div>

--94eb2c1a0650220e9205552a4511--


From nobody Tue Jul 25 15:39:15 2017
Return-Path: <martin.h.duke@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 75810131FB9 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 15:39:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 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, URIBL_BLOCKED=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 zIybSniHMKCx for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 15:39:11 -0700 (PDT)
Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) (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 E2F31131F36 for <quic@ietf.org>; Tue, 25 Jul 2017 15:39:09 -0700 (PDT)
Received: by mail-wm0-x233.google.com with SMTP id t201so57644423wmt.1 for <quic@ietf.org>; Tue, 25 Jul 2017 15:39:09 -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=ELSGvpixSZbcr2foZFyUu6yIRQGdsW8xswfBOVJ6stc=; b=d1xVrVxbCBcHGBwHI7bMEunXnwwjm6pPgE3rhQp1nrR6HFc2OKW8JN6l3ft4tyhuvz Ywsw12tXpbmS6d6ZSg6N7cWAb2BsEJxmJcd5EQvVNzRiwiXRBgu7R20Y2RtQAuLd1d8L HoQ6GFQy2EStRZjM0Z5Z3v1o2Tm2KOCxJa/mHuXhPmjo7sxbDf2ZJ51KFF9nX/elNiAJ CiAQFPXPK1R1yrNZCP7yrgSGEDvEV4wugxBnuG4FScVlSyY5d9K+wApfcwbVwm0VFe27 97BKRpFNqBxVvqippZ3ztUqO2YLUtQRjtze/MU3tpk2dYalBQ3BhzB4PzQRN+rAZLBH8 2E+g==
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=ELSGvpixSZbcr2foZFyUu6yIRQGdsW8xswfBOVJ6stc=; b=XdwPrCu67AtpXefSfWGqYw+/s9g9564vFvCuZqHQAMOanFs6EVohTiB9NKSTQUAIeI G9Sp2VimT70/8U+JeX8nl7pN1VvyJafNkXH46LhVNyWC5i/kA8BZm5G971IaKi6K7V8L Q7GKMKb6UqV0yZLkHFWliYVBURfjwe58essrnvcvnmR1/oRaA4V7dNQW/RcJuuD021CY EmwfB+fZS0aDg8aInT6zBUIzzZslp6FTYCxRtRHAKk2lTDQWr2mvMBDl29QJNqmwFfTN 7LhBFCBUcY2EEZb8RuXs1uNWFkFo+1ZMXZHaEc8ifklAFgwN8FSeXayDe+hi5B0foyDw cPig==
X-Gm-Message-State: AIVw110SBC9aHe1oXqXUibv/ISWcQJSGu4jyMua7tcDY9F6PkSghM5FA Xj1xIQ9PqdMRo429HtSRQ1E1b2XVGFtC
X-Received: by 10.28.11.212 with SMTP id 203mr9840381wml.105.1501022348400; Tue, 25 Jul 2017 15:39:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.152.119 with HTTP; Tue, 25 Jul 2017 15:39:07 -0700 (PDT)
In-Reply-To: <CABcZeBNB5RFXYWOXa8-_nO5LYoTmXzprzAHNh1XqdESOo_b-ng@mail.gmail.com>
References: <CAM4esxSYekUaQ_vr6RnmeS2ZePzPyaAwUjy201qBTZHHrpuwtA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37748A01@bgb01xud1012> <7CF7F94CB496BF4FAB1676F375F9666A37748A51@bgb01xud1012> <CABkgnnWYwd9Kc4XSB=uf2uvxRWcJEpEZfw9A7PVgmDnmXpFa9g@mail.gmail.com> <CABcZeBNc3vWnY7Bn=KeERMHOptX16=aievVmvj61MxqwOOf61w@mail.gmail.com> <CAOdDvNph_dd1MGSAJFoA+T8KTj6=ms2T78PXjqUz_9htymqEtg@mail.gmail.com> <MWHPR21MB0141E6CD40B97385610701E887BB0@MWHPR21MB0141.namprd21.prod.outlook.com> <MWHPR21MB01412439AD2FA29B1E9F648C87B80@MWHPR21MB0141.namprd21.prod.outlook.com> <CABcZeBNB5RFXYWOXa8-_nO5LYoTmXzprzAHNh1XqdESOo_b-ng@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Tue, 25 Jul 2017 15:39:07 -0700
Message-ID: <CAM4esxT3n9tKWekdHWrcfi5B+ESzw5+niHe9V0zKHVjseehJBg@mail.gmail.com>
Subject: Re: New Second Implementation Draft
To: Eric Rescorla <ekr@rtfm.com>
Cc: Mike Bishop <Michael.Bishop@microsoft.com>, Patrick McManus <pmcmanus@mozilla.com>,  Lucas Pardue <Lucas.Pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>,  Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary="001a114450cee061eb05552bffd5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/7oGtofs-A93hMtTn_51QvZfrBgk>
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: Tue, 25 Jul 2017 22:39:13 -0000

--001a114450cee061eb05552bffd5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I think the ID1 group has to reach consensus they are at the point of
diminishing returns, whenever that may be. If anyone wants to get ahead,
this is the stuff to tackle.

On Tue, Jul 25, 2017 at 1:34 PM, Eric Rescorla <ekr@rtfm.com> wrote:

>
> On Tue, Jul 25, 2017 at 1:03 PM, Mike Bishop <Michael.Bishop@microsoft.co=
m
> > wrote:
>
>> Just so we=E2=80=99re on the same page =E2=80=93 this set of =E2=80=9CSe=
cond Implementation
>> Draft=E2=80=9D targets is for Seattle?  Or some future date?
>>
>
> I had previously understood ID2 to be for Singapore. Given the somewhat
> rickety state of the implementations I saw in PRG, I think it might be
> better to get them solid in SEA rather than rickety but more full
> featured...
>
> -Ekr
>
>
>>
>> *From:* QUIC [mailto:quic-bounces@ietf.org] *On Behalf Of *Mike Bishop
>> *Sent:* Sunday, July 23, 2017 10:21 PM
>> *To:* Patrick McManus <pmcmanus@mozilla.com>; Eric Rescorla <ekr@rtfm.co=
m
>> >
>> *Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; IETF QUIC WG <quic@ietf.org=
>;
>> Martin Thomson <martin.thomson@gmail.com>; Martin Duke <
>> martin.h.duke@gmail.com>
>> *Subject:* RE: New Second Implementation Draft
>>
>>
>>
>> I=E2=80=99d follow precedent =E2=80=93 http/1.1 is already defined, so w=
hy not http/0.9?
>>
>>
>>
>> I=E2=80=99d also like to mention that my wife is particularly fond of th=
e paint
>> color =E2=80=9CRhino=E2=80=9D for the associated bikeshed.  =F0=9F=98=89
>>
>>
>>
>> *From:* QUIC [mailto:quic-bounces@ietf.org <quic-bounces@ietf.org>] *On
>> Behalf Of *Patrick McManus
>> *Sent:* Friday, July 21, 2017 3:53 AM
>> *To:* Eric Rescorla <ekr@rtfm.com>
>> *Cc:* Lucas Pardue <Lucas.Pardue@bbc.co.uk>; IETF QUIC WG <quic@ietf.org=
>;
>> Martin Thomson <martin.thomson@gmail.com>; Martin Duke <
>> martin.h.duke@gmail.com>
>> *Subject:* Re: New Second Implementation Draft
>>
>>
>>
>> its a good idea that needs a bikeshed. hq-nop would be my preference
>> (stay in the hq namespace)..
>>
>>
>>
>> On Fri, Jul 21, 2017 at 12:47 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>>
>> h09q-05? :)
>>
>>
>>
>> On Fri, Jul 21, 2017 at 2:27 AM, Martin Thomson <martin.thomson@gmail.co=
m>
>> wrote:
>>
>> Do we need a permanent ALPN token for this?  It seems like a useful
>> facility to build into stacks that are transport-only.  Maybe "h09q".
>>
>>
>> On 21 July 2017 at 10:00, Lucas Pardue <Lucas.Pardue@bbc.co.uk> wrote:
>> > I appreciate the flexibility but have difficulty in seeing how this
>> would
>> > flow through to interop testing, how do we measure success? One possib=
le
>> > outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over
>> QUIC,
>> > is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho
>> and
>> > amplify=E2=80=9D or whatever else) and then additionals are a bonus th=
at is up
>> to
>> > external coordination. I think this common baseline could also help
>> towards
>> > ongoing consideration for performance or benchmarking, over disparate
>> > implementations, as aspects of the protocol evolve or change.
>> >
>> >
>> >
>> > The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my
>> concerns.
>> >
>> >
>> >
>> > Lucas
>> >
>> >
>>
>>
>>
>>
>>
>
>

--001a114450cee061eb05552bffd5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I think the ID1 group has to reach consensus they are at t=
he point of diminishing returns, whenever that may be. If anyone wants to g=
et ahead, this is the stuff to tackle.</div><div class=3D"gmail_extra"><br>=
<div class=3D"gmail_quote">On Tue, Jul 25, 2017 at 1:34 PM, Eric Rescorla <=
span dir=3D"ltr">&lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@=
rtfm.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"ltr"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote"><span cl=
ass=3D"">On Tue, Jul 25, 2017 at 1:03 PM, Mike Bishop <span dir=3D"ltr">&lt=
;<a href=3D"mailto:Michael.Bishop@microsoft.com" target=3D"_blank">Michael.=
Bishop@microsoft.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
">





<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"m_7633417126969812307m_7637594138368012530WordSection1">
<p class=3D"MsoNormal">Just so we=E2=80=99re on the same page =E2=80=93 thi=
s set of =E2=80=9CSecond Implementation Draft=E2=80=9D targets is for Seatt=
le?=C2=A0 Or some future date?</p></div></div></blockquote><div><br></div><=
/span><div>I had previously understood ID2 to be for Singapore. Given the s=
omewhat rickety state of the implementations I saw in PRG, I think it might=
 be better to get them solid in SEA rather than rickety but more full featu=
red...</div><div><br></div><div>-Ekr</div><div><div class=3D"h5"><div><br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex"><div lang=3D"EN-US" link=3D"blue" vlink=
=3D"purple"><div class=3D"m_7633417126969812307m_7637594138368012530WordSec=
tion1"><p class=3D"MsoNormal"><u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> QUIC [mailto:<a href=3D"mailto:quic-bou=
nces@ietf.org" target=3D"_blank">quic-bounces@ietf.org</a>] <b>On Behalf Of
</b>Mike Bishop<br>
<b>Sent:</b> Sunday, July 23, 2017 10:21 PM<br>
<b>To:</b> Patrick McManus &lt;<a href=3D"mailto:pmcmanus@mozilla.com" targ=
et=3D"_blank">pmcmanus@mozilla.com</a>&gt;; Eric Rescorla &lt;<a href=3D"ma=
ilto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&gt;<span><br>
<b>Cc:</b> Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@bbc.co.uk" targe=
t=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt;; IETF QUIC WG &lt;<a href=3D"ma=
ilto:quic@ietf.org" target=3D"_blank">quic@ietf.org</a>&gt;; Martin Thomson=
 &lt;<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">martin.t=
homson@gmail.com</a>&gt;; Martin Duke &lt;<a href=3D"mailto:martin.h.duke@g=
mail.com" target=3D"_blank">martin.h.duke@gmail.com</a>&gt;<br>
</span><b>Subject:</b> RE: New Second Implementation Draft<u></u><u></u></p=
>
</div>
</div><div><div class=3D"m_7633417126969812307h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">I=E2=80=99d follow precedent =E2=80=93 http/1.1 is a=
lready defined, so why not http/0.9?<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">I=E2=80=99d also like to mention that my wife is par=
ticularly fond of the paint color =E2=80=9CRhino=E2=80=9D for the associate=
d bikeshed.=C2=A0
<span style=3D"font-family:&quot;Segoe UI Emoji&quot;,sans-serif">=F0=9F=98=
=89</span><u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><b>From:</b> QUIC [<a href=3D"mailto:quic-bounces@ie=
tf.org" target=3D"_blank">mailto:quic-bounces@ietf.org</a>]
<b>On Behalf Of </b>Patrick McManus<br>
<b>Sent:</b> Friday, July 21, 2017 3:53 AM<br>
<b>To:</b> Eric Rescorla &lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_bla=
nk">ekr@rtfm.com</a>&gt;<br>
<b>Cc:</b> Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@bbc.co.uk" targe=
t=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt;; IETF QUIC WG &lt;<a href=3D"ma=
ilto:quic@ietf.org" target=3D"_blank">quic@ietf.org</a>&gt;; Martin Thomson=
 &lt;<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">martin.t=
homson@gmail.com</a>&gt;; Martin Duke
 &lt;<a href=3D"mailto:martin.h.duke@gmail.com" target=3D"_blank">martin.h.=
duke@gmail.com</a>&gt;<br>
<b>Subject:</b> Re: New Second Implementation Draft<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">its a good idea that needs a bikeshed. hq-nop would =
be my preference (stay in the hq namespace)..
<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Fri, Jul 21, 2017 at 12:47 PM, Eric Rescorla &lt;=
<a href=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&gt; wrot=
e:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-=
bottom:5.0pt">
<div>
<p class=3D"MsoNormal">h09q-05? :)<u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Fri, Jul 21, 2017 at 2:27 AM, Martin Thomson &lt;=
<a href=3D"mailto:martin.thomson@gmail.com" target=3D"_blank">martin.thomso=
n@gmail.com</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-=
bottom:5.0pt">
<p class=3D"MsoNormal">Do we need a permanent ALPN token for this?=C2=A0 It=
 seems like a useful<br>
facility to build into stacks that are transport-only.=C2=A0 Maybe &quot;h0=
9q&quot;.<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
On 21 July 2017 at 10:00, Lucas Pardue &lt;<a href=3D"mailto:Lucas.Pardue@b=
bc.co.uk" target=3D"_blank">Lucas.Pardue@bbc.co.uk</a>&gt; wrote:<br>
&gt; I appreciate the flexibility but have difficulty in seeing how this wo=
uld<br>
&gt; flow through to interop testing, how do we measure success? One possib=
le<br>
&gt; outcome is interop limited to self-test of =E2=80=9Cbespoke-simple-app=
=E2=80=9D over QUIC,<br>
&gt; is that good enough? My preference is to pick a minimal baseline (=E2=
=80=9Cecho and<br>
&gt; amplify=E2=80=9D or whatever else) and then additionals are a bonus th=
at is up to<br>
&gt; external coordination. I think this common baseline could also help to=
wards<br>
&gt; ongoing consideration for performance or benchmarking, over disparate<=
br>
&gt; implementations, as aspects of the protocol evolve or change.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; The proposal to do HTTP 0.9 GET, discussed in Prague, addresses my con=
cerns.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Lucas<br>
&gt;<br>
&gt;<u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>

</blockquote></div></div></div><br></div></div>
</blockquote></div><br></div>

--001a114450cee061eb05552bffd5--


From nobody Tue Jul 25 15:41:31 2017
Return-Path: <martin.h.duke@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 176DA131FC8 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 15:41:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 Xb8uwnfMeCfc for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 15:41:23 -0700 (PDT)
Received: from mail-wr0-x22b.google.com (mail-wr0-x22b.google.com [IPv6:2a00:1450:400c:c0c::22b]) (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 AABEA131FBE for <quic@ietf.org>; Tue, 25 Jul 2017 15:41:22 -0700 (PDT)
Received: by mail-wr0-x22b.google.com with SMTP id k71so71112363wrc.2 for <quic@ietf.org>; Tue, 25 Jul 2017 15:41:22 -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=bZMKWomhlCPZyibG0ugIuL8sIIQeAbc+ydmfY6Z/u2k=; b=QVwsN8hvIWd8tBfagNoEHjJ3bA2JwHcic6HF+QlNXZNyJyrpzcX+z3QBCL+ITqfa0A MWo2S/TjvyoJmaeX9bQOMvu7LWeQfwHZDNEwyNkbYGgtciZEGqNM/UxunLiRHMhIgfx3 tcDS6fJraAJEdRJofuLCcjtAYsFyfVCTdeHJpZ70kd2vVgQPI73aX8/PuhtXcOomiJH+ 7RNOjoi5P4pw0piNu3LcaMqKnlJQVrOnwQdey891uyBrejphU5zuqGtc33rJIseAMV2t RnDzShhXigtb/PQHmcZafaEevd6UFqwjm4Ffqj0XRVn8PX0NacRjoos+mWTRPvLjCLDA +yMg==
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=bZMKWomhlCPZyibG0ugIuL8sIIQeAbc+ydmfY6Z/u2k=; b=YTq0k9AJfMzUeMPh14x3iHCzl6qIWN2JZy6l75GAbWgVEizW7HEbmFB4XNSlw3HFvH /3858daSj92e4FRCbHuYPe4f57KWS3NTn52EH0N4G4whO+mWFeAlolq5fzkCGQH7d3Fj n805jYJ3pEGtjj38xSM0uqKnKpurowGZ+kpTdBYa4yoVSmTRrfgc/tnzlhKFfY4CUKSE NEvIhCKmmWcOnma6BrNNH1IwdYUwN45/zX9hl+PNmAwt7jQQNtP3EuACPgqHpEs/+g4m I/uDPX72ivdmF7ZPd98KUkCPW5ktpaUzuO/pc3gWkZ1apOYNuD1947Q35I1QBndrZwLY jgIg==
X-Gm-Message-State: AIVw110yPokiKtNugFezpPbANGFOBxVjPKuB5PsTJLVdTCbAbPGnNrj1 S0YBX/MnhjHWJitHElU/vQurLyFXQyZ8
X-Received: by 10.223.171.79 with SMTP id r15mr15153510wrc.57.1501022481211; Tue, 25 Jul 2017 15:41:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.152.119 with HTTP; Tue, 25 Jul 2017 15:41:20 -0700 (PDT)
In-Reply-To: <DC07C1DA-39A6-42BF-B246-D059C625F170@mnot.net>
References: <DC07C1DA-39A6-42BF-B246-D059C625F170@mnot.net>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Tue, 25 Jul 2017 15:41:20 -0700
Message-ID: <CAM4esxRO_aAGgO_xB=zt5AiqhS0Aui_0c6DS7Yew0FLakbKqHw@mail.gmail.com>
Subject: Re: Unidirectional Streams discussion
To: Mark Nottingham <mnot@mnot.net>
Cc: IETF QUIC WG <quic@ietf.org>, Lars Eggert <lars@netapp.com>
Content-Type: multipart/alternative; boundary="94eb2c1cb818caf29e05552c07f6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/4GaYm3GRwMJd-nbaVNSpWWhl5z4>
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: Tue, 25 Jul 2017 22:41:25 -0000

--94eb2c1cb818caf29e05552c07f6
Content-Type: text/plain; charset="UTF-8"

clarification added.

On Tue, Jul 25, 2017 at 12:36 AM, Mark Nottingham <mnot@mnot.net> wrote:

> Everyone,
>
> In Prague, we discussed Unidirectional Streams.
>
>   Issue: https://github.com/quicwg/base-drafts/issues/175
>   Draft minutes: https://github.com/quicwg/wg-
> materials/blob/master/ietf99/minutes.md#unidirectional-streams
>
> The outcome of that discussion was that Martin would continue to work on
> his proposal, and EKR would experiment with unidirectional streams in a
> branch of his implementation, to gain experience with them and help judge
> the amount of complexity they save or add.
>
> We'll take a look at their work at the October interim meeting.
>
> In the meantime, our approach remains bidirectional streams (including for
> the purposes of Implementation Draft 2)*.
>
> Please refrain from discussing unidirectional streams on-list; if Martin
> and EKR have questions to help guide their exploration, they should ask the
> group, but otherwise we shouldn't be spending additional time on this until
> we have their results.
>
> Thanks,
>
>
> * Editors / Martin Duke -- please clarify that ID2 will be using
> bidirectional streams as necessary.
>
> --
> Mark Nottingham   https://www.mnot.net/
>
>

--94eb2c1cb818caf29e05552c07f6
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">clarification added.</div><div class=3D"gmail_extra"><br><=
div class=3D"gmail_quote">On Tue, Jul 25, 2017 at 12:36 AM, Mark Nottingham=
 <span dir=3D"ltr">&lt;<a href=3D"mailto:mnot@mnot.net" target=3D"_blank">m=
not@mnot.net</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Everyo=
ne,<br>
<br>
In Prague, we discussed Unidirectional Streams.<br>
<br>
=C2=A0 Issue: <a href=3D"https://github.com/quicwg/base-drafts/issues/175" =
rel=3D"noreferrer" target=3D"_blank">https://github.com/quicwg/<wbr>base-dr=
afts/issues/175</a><br>
=C2=A0 Draft minutes: <a href=3D"https://github.com/quicwg/wg-materials/blo=
b/master/ietf99/minutes.md#unidirectional-streams" rel=3D"noreferrer" targe=
t=3D"_blank">https://github.com/quicwg/wg-<wbr>materials/blob/master/ietf99=
/<wbr>minutes.md#unidirectional-<wbr>streams</a><br>
<br>
The outcome of that discussion was that Martin would continue to work on hi=
s proposal, and EKR would experiment with unidirectional streams in a branc=
h of his implementation, to gain experience with them and help judge the am=
ount of complexity they save or add.<br>
<br>
We&#39;ll take a look at their work at the October interim meeting.<br>
<br>
In the meantime, our approach remains bidirectional streams (including for =
the purposes of Implementation Draft 2)*.<br>
<br>
Please refrain from discussing unidirectional streams on-list; if Martin an=
d EKR have questions to help guide their exploration, they should ask the g=
roup, but otherwise we shouldn&#39;t be spending additional time on this un=
til we have their results.<br>
<br>
Thanks,<br>
<br>
<br>
* Editors / Martin Duke -- please clarify that ID2 will be using bidirectio=
nal streams as necessary.<br>
<br>
--<br>
Mark Nottingham=C2=A0 =C2=A0<a href=3D"https://www.mnot.net/" rel=3D"norefe=
rrer" target=3D"_blank">https://www.mnot.net/</a><br>
<br>
</blockquote></div><br></div>

--94eb2c1cb818caf29e05552c07f6--


From nobody Tue Jul 25 17:05:53 2017
Return-Path: <mnot@mnot.net>
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 1A72E132127 for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 17:05:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level: 
X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=LBSaoJrz; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=kkIfG4oe
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 akPOGcgK5U4x for <quic@ietfa.amsl.com>; Tue, 25 Jul 2017 17:05:49 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A0D613212B for <quic@ietf.org>; Tue, 25 Jul 2017 17:05:49 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 65C6C20A64; Tue, 25 Jul 2017 20:05:48 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute3.internal (MEProxy); Tue, 25 Jul 2017 20:05:48 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=i18YPKNqVskrZf2iSdoFOLfUsh+hzVxexPlBL3Aoh sU=; b=LBSaoJrzMEJIUUJ7pQAS/5ggHBdquEviN2zvpaGTnEoIv5YSsEw12k16Q tGR93gub/HldlUaDc7zfw+5lVvm8vRbfwUauy+sbOuHmAZNbBFvr+26K3l1FLmZb VTFb947PiBGuGYE7OdGU/Eov94AfgOlqX7YoiU8hby3s0rMree+up1G/78h/2uo/ 0PMDjVzzdC15KxtlOWW5FfWzV+RKXxLh9cveWK7xsiTQuXP/9rIQr+skDDXKn9TP S/nVDvlANrRAvxxsXSPeR1QzLrIDn5lgkuvm/PbLC3SNvwJ1L4bNMb+nbHCiYE2Q XVW6R7cXPYeY4izq4TULxelGBIcgQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=i18YPKNqVskrZf2iSd oFOLfUsh+hzVxexPlBL3AohsU=; b=kkIfG4oeQohW1bVflDwevvLrLsTa5w58xn zaG1PTZloIS2rBERZABgLKnB/j3L6bq66xjB9jpMLeB8b+lZmmdRlHI7zel3BM1Q e4QjCZO0aSSIYQMXhb74ZPY61ofjkzt2LIKnWVXlWbWu2BMI/wkFZT9tyjjYH5YK b8BUAcCSUWagUQQ+eGIpTIgA2IB2mi7nnix/UW/L5ES7Lsk9MKlFy/0oHEKDNiG9 +RLDH0KGKMoflPZcYZ3YrRhr/Yp45EzhjEt7faXAIIV793vCXyoi5T04M0W3bj7V fSAzmeierJzAQFis09ELXsABM0SzK/stuCOjWl3jD/eZjIu3XEvA==
X-ME-Sender: <xms:3Nx3WWzeLGHvvFhcNi2ZKREfr9xTdp28x1wVx50eGi2K60iAM-N1lQ>
X-Sasl-enc: +4jbpF3q6ZM0Qomky9I8LF2S9Jv8tvEClmWiB6QspBRO 1501027547
Received: from [192.168.1.18] (cpe-124-188-19-231.hdbq1.win.bigpond.net.au [124.188.19.231]) by mail.messagingengine.com (Postfix) with ESMTPA id 761AB7E12E; Tue, 25 Jul 2017 20:05:47 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Passive RTT Measurement / Middlebox discussion
Message-Id: <B7DB60EB-D7BD-4444-B178-34DD61C96127@mnot.net>
Date: Wed, 26 Jul 2017 10:05:43 +1000
Cc: Lars Eggert <lars@netapp.com>
To: IETF QUIC WG <quic@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/94_goZqMVnf1TJAmFWOVzNlr_OY>
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: Wed, 26 Jul 2017 00:05:51 -0000

In Prague, we discussed passive RTT measurement.

Issue: https://github.com/quicwg/base-drafts/issues/631
Draft minutes: =
https://github.com/quicwg/wg-materials/blob/master/ietf99/minutes.md#passi=
ve-rtt-measurement-in-quic---ian-swett

The outcome of that discussion was the formation of a Design Team, led =
by Ted Hardie, to review what privacy risks would be eliminated if this =
information is not available and to ascertain what network measurement =
and management options would be available if this information is not.

We expect them to report back in the Singapore meeting.

In the meantime, please refrain from discussing passive RTT measurement =
on-list. We'd also appreciate it if related issues (e.g., #632, on-path =
calculation of loss and congestion) was also deferred until we see those =
results.

We believe that the design team's membership is representative of both =
operators' needs and privacy concerns. If you'd like to contribute, =
please contact Ted, but please understand that to be successful, the =
team's size needs to be limited. Ted will post the team's membership to =
the list shortly.

See <https://www.ietf.org/iesg/statement/design-team.html> for more =
information about Design Teams in the IETF.

Thanks,


--
Mark Nottingham   https://www.mnot.net/


From nobody Wed Jul 26 02:27:29 2017
Return-Path: <thomas.swindells@nokia.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 66FA3131FE5 for <quic@ietfa.amsl.com>; Wed, 26 Jul 2017 02:27:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.702
X-Spam-Level: 
X-Spam-Status: No, score=-4.702 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 TPgCHm7T41Ca for <quic@ietfa.amsl.com>; Wed, 26 Jul 2017 02:27:25 -0700 (PDT)
Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30117.outbound.protection.outlook.com [40.107.3.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4EAED131FDC for <quic@ietf.org>; Wed, 26 Jul 2017 02:27:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=fRhY2IX934tVczhzrdRANgw3uQ7/wjBmp0L0osVG3Bw=; b=KabihteXdwtqEdm5fn7mgzN6DjsvVzjku0mn3l9HxWUe1az9neq/GVZr0HiCryEJnVLw4bRClyD3pFLBTDIm8szgOiz32n+AWbsCc1q6MU1/drMZpt3jxuAMvX+ZLCY2c+DNoW6bI5PtAX59+3P1A8QMmKYEiI5eQEJSG/xeauQ=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB0935.eurprd07.prod.outlook.com (10.161.200.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.4; Wed, 26 Jul 2017 09:27:20 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.014; Wed, 26 Jul 2017 09:27:20 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
CC: =?iso-8859-1?Q?Mikkel_Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>, "Magnus Westerlund" <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Idea for packet numbers
Thread-Topic: Idea for packet numbers
Thread-Index: AQHTAT74Pm6HB4E+oUyHojrh9ct+26JcjwOAgAF4cgCAA8bLAIACtdaAgAAAveCAAD5egIAAAIvg
Date: Wed, 26 Jul 2017 09:27:19 +0000
Message-ID: <DB5PR07MB12375F358A6DEE98A92D271984B90@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <20170725124109.GA1764@ubuntu-dmitri> <DB5PR07MB1237128AE49E9EC81EC0A43984B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <20170725162701.GA4414@ubuntu-dmitri>
In-Reply-To: <20170725162701.GA4414@ubuntu-dmitri>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [81.134.152.4]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB0935; 7:Xvk2Xve+8SvzA9yad4fIjvUiDlJy/pHLFgNEruvnq93L5tqPU9z1oEf4MbaAbEZfikX7e81AIIq0a2HewcSxkDXJhBq1/2B6ZB2pkA4UYfHLUNfGNqx+LhdGLnBpEVh6+F4E1yz5J7KFlHF3b7zNygyNQuj1dKd+1VTF0pA3oCcHLEd3i0s3L14laPLSbyVdlgsRhSfHQl6c1Ja2szolNkMj4KyGhRtoPjzds9kaGrOhYKRdUxPDXmcCf+orSXoje+UVJAkNiN14+YbO5DIz09ECCclJ30kR1NKoTb9Ic0L0rutuFHK08dY61dI4AUAWHUx+Qbj6inWbmYEZK4q9nlXuvR5aAQ81Eqpvw6XbW1c+nx1fbm9brop0FYhXLw7OHLi31J+ah3eumbYGByG1mfiSFnv9uhsv0wkbZYNL6Jb5dR5xeh9GMFfi7dCuKt+5/q6Pms/V7gR96fOgd/5QxtNhEUKfJ0rMUYkoipu1KjXvZ19+ZZkfYjr9Yjtm9rDqbju7PEse11KqtUyXQY2mZl+ecbeSmfhNI2DHDuN2Akov7UPbZW9VJawGW7xdKi0f3WzZgWwN8w34NzXVb5dAaG9gIaMsgInWXs4NyZWMAMYQU5dsWJ1EIWuQqK8beq5FObhL20FOlE0IytLZUlBrTD0ylJFVHNZsfFeTAAi7jK3rYTgo3epXHtqgMgBsarOCUuC4KQ1gE2F7euY20TTtuRAIqLxNTxUs6qDbP+yybXEQxsTFMqGKOYfzYdYs2DIP3VVTIifYnsqtO5SqXgffFWqZzOnilxdroUhVqTkMa1c=
x-ms-office365-filtering-correlation-id: 5f4376a8-75af-494e-68bf-08d4d40883c1
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB0935; 
x-ms-traffictypediagnostic: DB5PR07MB0935:
x-exchange-antispam-report-test: UriScan:(37575265505322)(82608151540597);
x-microsoft-antispam-prvs: <DB5PR07MB09350EFF1E1F26B5922258B884B90@DB5PR07MB0935.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB0935; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB0935; 
x-forefront-prvs: 038002787A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39840400002)(39450400003)(39860400002)(39400400002)(39410400002)(39850400002)(24454002)(199003)(13464003)(189002)(305945005)(53546010)(86362001)(189998001)(66066001)(97736004)(2900100001)(8676002)(4326008)(81166006)(81156014)(25786009)(68736007)(101416001)(33656002)(99286003)(8936002)(53936002)(6506006)(3480700004)(110136004)(7696004)(6246003)(54906002)(229853002)(74316002)(6436002)(93886004)(38730400002)(478600001)(106356001)(14454004)(105586002)(55016002)(39060400002)(5660300001)(2950100002)(5250100002)(50986999)(7736002)(6916009)(6116002)(54356999)(76176999)(102836003)(3846002)(3280700002)(2906002)(9686003)(3660700001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB0935; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jul 2017 09:27:19.9067 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB0935
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/-NEAP_Vnl0WmdONPBwYq2WaDACo>
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: Wed, 26 Jul 2017 09:27:27 -0000

> -----Original Message-----
> From: Dmitri Tikhonov [mailto:dtikhonov@litespeedtech.com]
> Sent: 25 July 2017 17:27
> To: Swindells, Thomas (Nokia - GB/Cambridge, UK)
> <thomas.swindells@nokia.com>
> Cc: Mikkel Fahn=F8e J=F8rgensen <mikkelfj@gmail.com>; Magnus Westerlund
> <magnus.westerlund@ericsson.com>; IETF QUIC WG <quic@ietf.org>
> Subject: Re: Idea for packet numbers
>=20
> On Tue, Jul 25, 2017 at 02:28:52PM +0000, Swindells, Thomas (Nokia -
> GB/Cambridge, UK) wrote:
> > 4 wasn't meant to imply how you queue the packet on the NIC - I was
> > assuming via a kernel API call into normal udp send buffers, but both
> > methods are valid.  You are right though there is the potential for
> > the queuing operation to be blocked/rejected.
>=20
> Since we were talking about implementation, I wanted to point out that pa=
cket
> number allocation is more complicated in practice.  I realize this is not=
 what
> you meant. :)
>=20
> > As I understand it the packet number is used in the encryption
> > process, so changing a packets number is a non-trivial operation.  A
> > fast path route for queuing acks makes sense, again however the only
> > real way
>                                                         ^^^^^^^^^^^^^
>=20
> By this, do you mean "without encrypting data twice?"
Yes - re-encrypting can't really be considered a 'trivial' operation
=20
> > to do that would be to give the ack packet a higher packet number but
> > then send it before lower marked packets - even potentially if they do
> > also contain ack frames.
>=20
> That is a good approach if it does not break packet number derivation.
> I am not sure whether it can...  The draft says:
>=20
>   " A packet number is decoded by finding the packet number
>   " value that is closest to the next expected packet.
>=20
> Thus, after receiving ACK packet with large gap, which is the next expect=
ed
> packet number from the point of view of the peer?
The spec says that you should give plenty of room in the number space, so a=
s long as you haven't reached half your number space across that period thi=
s should be extremely rare or perhaps impossible.=20
The worst case is that if you do violate it then either you may be requeste=
d to retransmit some packets, or you just send the original packets first a=
nd then the ack.
=20
> > For RST_STREAM I think it is permitted that currently queued packets
> > are still sent, but if they only contain that streams packets then it
> > is a beneficial optimization if they weren't sent (leaving packet
> > number gaps).
>=20
> Current draft says:
>=20
>   " An endpoint that receives a RST_STREAM frame (and which
>   " has not sent a FIN or a RST_STREAM) MUST immediately
>   " respond with a RST_STREAM frame, and MUST NOT send any
>   " more data on the stream.
>=20
> I suppose one could interpret "send" to mean "enqueue," but I would err o=
n
> the side of caution.
With a basic integration between an application and quic stack the api woul=
d likely just be the application writing a load of data onto a stream which=
 then gets multiplexed into a quic connection.
In this case the application view would be once it has written it to the st=
ream it is being 'sent' - in the same way the assumption is held for TCP tr=
ansmission.=20
Packetization and enqueuing for transmission would therefore be considered =
part of the sending process and with that API it would seem to be fair to s=
end queued data but not allow new writes from the application.
Assuming no re-encryption/packetization, that is pretty much all you can do=
 if packets contain data from multiple stream frames anyway.=20
The "immediately respond with a RST_STREAM" perhaps then needs to be read a=
s: "immediately, after any pending packets have been transmitted, such that=
 no new packets with data from that stream are generated with a higher pack=
et number than the RST_STREAM response frame."?

Thomas


From nobody Wed Jul 26 04:05:19 2017
Return-Path: <mirja.kuehlewind@tik.ee.ethz.ch>
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 1C02B131FE9 for <quic@ietfa.amsl.com>; Wed, 26 Jul 2017 04:05:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
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 mj-RDryUa11q for <quic@ietfa.amsl.com>; Wed, 26 Jul 2017 04:05:15 -0700 (PDT)
Received: from virgo02.ee.ethz.ch (virgo02.ee.ethz.ch [129.132.72.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A71D2126DEE for <quic@ietf.org>; Wed, 26 Jul 2017 04:05:15 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by virgo02.ee.ethz.ch (Postfix) with ESMTP id 3xHXMF4NZ6z15MQD; Wed, 26 Jul 2017 13:05:13 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at virgo02.ee.ethz.ch
Received: from virgo02.ee.ethz.ch ([127.0.0.1]) by localhost (virgo02.ee.ethz.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L4awx1nUqicU; Wed, 26 Jul 2017 13:05:12 +0200 (CEST)
X-MtScore: NO score=0
Received: from [192.168.178.33] (pD9E11F24.dip0.t-ipconnect.de [217.225.31.36]) by virgo02.ee.ethz.ch (Postfix) with ESMTPSA; Wed, 26 Jul 2017 13:05:11 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Unreliable Stream (was: Re: HTTP requests on one stream #692)
From: =?utf-8?Q?Mirja_K=C3=BChlewind?= <mirja.kuehlewind@tik.ee.ethz.ch>
In-Reply-To: <CAN1APdd+1O6BigtMqt+YuGVHd_LOLDCgSqQupLZ9bv5-NzkmCQ@mail.gmail.com>
Date: Wed, 26 Jul 2017 13:05:10 +0200
Cc: "Philipp S. Tiesel" <phils@in-panik.de>, Frank Kastenholz <fkastenholz@google.com>, Mike Bishop <michael.bishop@microsoft.com>, Ian Swett <ianswett@google.com>, Lucas Pardue <lucas.pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, "Swindells, Thomas (Nokia - GB)" <thomas.swindells@nokia.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <9EA010C1-A283-4C21-B257-5D7BA68B20E8@tik.ee.ethz.ch>
References: <7CF7F94CB496BF4FAB1676F375F9666A37748B7A@bgb01xud1012> <MWHPR21MB0141497D0A30342613752E0787A50@MWHPR21MB0141.namprd21.prod.outlook.com> <2B5E3522-750C-4697-A308-D8452E800D9F@in-panik.de> <CAKcm_gO8k+ZASF3M79QTrypa12pXGfp7=3P2XuOhHbxb04Rq4Q@mail.gmail.com> <DB5PR07MB1237D364086129C462AAC19D84BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gMbQj8UKLfDmwv8K+XWHxB8xx4EG7uQGt95m3X40c1YXA@mail.gmail.com> <DB5PR07MB1237A77FC6F791C1A95239F784BA0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CABkgnnVu5r-QQpO01LAeWHJvbxxBtpGvwpNpA2_vi7UgOJ9ThQ@mail.gmail.com> <MWHPR21MB0141C6AA46DFF0B005972F2287BB0@MWHPR21MB0141.namprd21.prod.outlook.com> <9914D466-6293-447C-B3FC-839CFFF9298B@in-panik.de> <CAD3dRjqACu+oK=jhECsKHd27HEbHgjJkgNtQp3tdwnjo1QvjFQ@mail.gmail.com> <CAN1APdd+1O6BigtMqt+YuGVHd_LOLDCgSqQupLZ9bv5-NzkmCQ@mail.gmail.com>
To: =?utf-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/cIrRO_OjeLh-s14ndtruYOkhwls>
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: Wed, 26 Jul 2017 11:05:18 -0000

Hi all,

in the taps working group we are working on a new socket API, our =
current proposal is called post sockets. This API is message-based and =
reliability is realized by assigning a deadline to a message. This =
approach is based on the assumption that a message is only as a whole =
useful for the application, and only if delivered within a certain time =
frame (where for full reliability this time frame in infinite). As =
message is a data segment defined by the application which can be a =
frame in a video stream or a sensor report and can span one or multiple =
transport packets. I thinks this matches what Mikkel describes below.

The deadline is set by the sender because only the sender side can =
=E2=80=9Ameasure=E2=80=98 correctly when the deadline is passed. For me =
any signal from the client side about what the right value for this =
deadline is, is probably an application question and should be done in =
the application layer.

Mirja


> Am 25.07.2017 um 21:11 schrieb Mikkel Fahn=C3=B8e J=C3=B8rgensen =
<mikkelfj@gmail.com>:
>=20
> I believe Franks description suits the view if unreliable streams =
being very small unidirectional streams.
>=20
> As to Phillips question:
>> An open question is question is how to present a stream with =
=E2=80=9Choles=E2=80=9D to the application.
> The size of holes may be tricky unless, but presenting logical streams =
with holes is easy:
>=20
> For reliable (logical) streams you have one transport stream with many =
messages and no holes. These messages must be on the stream to ensure =
ordering, and you therefore need an application level message frame.
>=20
> For unreliable (logical) streams you only send one message in each =
QUIC transport stream. Instead of a message frame you store a logical =
stream id. The transport stream id will always increase so even if =
unreliable, you still know about ordering. An internal sequence number =
could be added if more details are needed.
>=20
> Unreliable streams may be short so there can be many in a single UDP =
packet. This can drain the stream ID space.
>=20
> A sending application can easily tell QUIC transport to not retransmit =
frames of unreliable streams (or have some timeout etc.).
>=20
> The receiving QUIC transport might struggle with seeing only the =
second half of an unreliable stream. The receiving application has not =
easy way to tell transport to stop waiting even if both sending and =
receiving applications have negotiated what they want. To solve this =
problem, QUIC transport could have a flag on frames that mark them as =
unreliable - perhaps two bits for different classes / timeouts etc. The =
application can the tell transport how to manage such streams.
>=20
> By and large, reliable and unreliable streams work exactly the same at =
the transport layer.
>=20
>=20
>=20
> Note that if streams are not unidirectional there is more overhead in =
keeping stream state and terminating streams. With a uni-directional =
stream a sender can immediately close all stream state after sending a =
single frame message. At a deeper level there  may be frame =
retransmission, but this is much more lightweight. Then if frames are =
marked unreliable they can also bypass the retransmission queue.
>=20
> So I would like unidirectional streams with a flag to mark frames as =
unreliable, and longer stream identifiers (possibly compressed).
>=20
> How this works at the HTTP level I have no clue because I am still not =
up to speed on this part. But I can easily imagine that a single stream =
per HTTP transaction will fall short of some of those can be unreliable.
>=20
>=20
>=20
> Kind Regards,
> Mikkel Fahn=C3=B8e J=C3=B8rgensen
>=20
>=20
> On 25 July 2017 at 20.17.34, Frank Kastenholz (fkastenholz@google.com) =
wrote:
>=20
>> An open question is question is how to present a stream with =
=E2=80=9Choles=E2=80=9D to the application.


From nobody Wed Jul 26 07:16:42 2017
Return-Path: <jri@google.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 BBD37132044 for <quic@ietfa.amsl.com>; Wed, 26 Jul 2017 07:16:40 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 kgjfxLSPSXeI for <quic@ietfa.amsl.com>; Wed, 26 Jul 2017 07:16:39 -0700 (PDT)
Received: from mail-pg0-x233.google.com (mail-pg0-x233.google.com [IPv6:2607:f8b0:400e:c05::233]) (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 F0C07132040 for <quic@ietf.org>; Wed, 26 Jul 2017 07:16:38 -0700 (PDT)
Received: by mail-pg0-x233.google.com with SMTP id b8so8281898pgn.0 for <quic@ietf.org>; Wed, 26 Jul 2017 07:16:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=G9GpGNIf7IdyO8IhUwRdjsXyD0tm8qBXGjRzpXQt5WM=; b=ho+shzcC2OVDbA+OMuYXnJ1FLWC1OPsLlX8FgYqY8aHvglvS28Qeoq+fS3CYjc4cI5 4906oj1gfSjYfFmkhCW6qLtvvlKweL3ATs60NUzq41UyGxLPkqwiT+aN9B8PxkdlvMln riJ4OjR/BXNptyLNltM85hMn8s9dGBc5SpDzPuZrFkJw+SygJWiZ5+V2Rjp1G8S/rBbt F8ORNh+6Q3JKNlAeDDZi91azcCHwX1eIumoh/KX5XjvjffFkLKZKXkxRnCoOcIINJT4Q OiB5JJQoRfD/4/niFnXp2Oh7oSTOoyX9yhM42F1O2KBsSZKC7FrIq4eOA/IYlfMc7HLh Z5eA==
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=G9GpGNIf7IdyO8IhUwRdjsXyD0tm8qBXGjRzpXQt5WM=; b=OjXLuwA5CjlptJ5HwLwnxIX8dX9cAFxDF0eoO55WAnfvZUh++Hpi7RZgFbvSDZMFQE MBl9Kp9m4t/9+MxDPewvyo5sgpF0+qioE6jRmADHZNahPHui6wuZ1E1sSJx/yro367gK 6uZe6tPLXAZFGo6qMxxYjFkFowGpGO8j4fiAUebSFG4ekgimL9ZZlxUIRla9U78Sd84P 9lfKTrO/xNRipmC5PlmIY4FHbPLM9MV1Mmh20/aXm8eWy757ocr6yGzVqfyp43Wntz1P AGssVP837VtvECHUC1P3WfqP9SB1WtryyszGmo/d+uinwGtkXXaMoTOSQIxOwaMjy+nW G5lw==
X-Gm-Message-State: AIVw113JNHSAx+KHJN9VrcfjPm5rkmEx0snh+rDeUjavmSWCOzmQGMYm up3YNeO9vEcKzZ0AOu0vVJAr2SjykeOf
X-Received: by 10.84.216.81 with SMTP id f17mr1101670plj.117.1501078598291; Wed, 26 Jul 2017 07:16:38 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.153.19 with HTTP; Wed, 26 Jul 2017 07:16:37 -0700 (PDT)
Received: by 10.100.153.19 with HTTP; Wed, 26 Jul 2017 07:16:37 -0700 (PDT)
In-Reply-To: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
From: Jana Iyengar <jri@google.com>
Date: Wed, 26 Jul 2017 14:16:37 +0000
Message-ID: <CAGD1bZaFd4NHzv9sSugBZFDHxAam64dSPmBoxvYS4hm-kpD0bA@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c19a6a8a2026705553918e1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ZtObrJ6euDuUGqiy183H2JayKUI>
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: Wed, 26 Jul 2017 14:16:41 -0000

--94eb2c19a6a8a2026705553918e1
Content-Type: text/plain; charset="UTF-8"

(Going back to the original discussion)

Magnus,

IIUC, you are asking for a network device to be able to observe packets
within a flow.  don't understand what the value of encrypting the high
order bits is if there are enough low order bits to allow linkability
across packets within a flow. After all, the point of encyptimg packet
number is to avoid linkability, isn't it?

- jana

On Jul 20, 2017 3:00 AM, "Magnus Westerlund" <magnus.westerlund@ericsson.com>
wrote:

> Hi,
>
> There has been some discussion around packet numbers. For passive
> detection of packet loss in measurements and network management, it would
> be really good if the packet numbers where continuous and not only
> monotonically increasing. As this enables one to determine losses upstream
> of the measurement point. At the same time I understand there are benefits
> with being able to introduce gaps into the packet number to test the
> receiver's behaviour.
>
> To enable both of these capabilities I would propose that the N least
> significant bits of the packet number are strictly increased by one. Then
> one can introduce gaps in the bits above the N ones. Yes, that will burn
> through the packet number space faster as the gaps may become larger than
> was the case without this. However, I don't see that this will have
> significant effect unless the sender introduce gaps very frequently so that
> the length of the packet number field needs to be much larger due to the
> outstanding sequence number space is much larger.
>
> The value of N can clearly be discussed but it should be selected so that
> reordering and common burst durations are shorter than the time to wrap the
> strictly increase amount of bits. If the higher bits are available to
> measurement node, some possibility to infer gaps will also be possible. It
> might be that N needs to be scaled with throughput with a minimal value.
> N=8 would mean 256 packets between wraps. I think that is a reasonable
> minimal value. However, that will wrap in 28 ms at 100 mbps of payload
> (assuming 1400 bytes of payload per packet).
>
> So what people think about this idea?
>
>
> Cheers
>
> Magnus Westerlund
>
> ----------------------------------------------------------------------
> Media Technologies, Ericsson Research
> ----------------------------------------------------------------------
> Ericsson AB                 | Phone  +46 10 7148287
> Torshamnsgatan 23           | Mobile +46 73 0949079
> SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
> ----------------------------------------------------------------------
>
>
>

--94eb2c19a6a8a2026705553918e1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">(Going back to the original discussion)<div dir=3D"auto">=
<br></div><div dir=3D"auto">Magnus,</div><div dir=3D"auto"><br></div><div d=
ir=3D"auto">IIUC, you are asking for a network device to be able to observe=
 packets within a flow. =C2=A0don&#39;t understand what the value of encryp=
ting the high order bits is if there are enough low order bits to allow lin=
kability across packets within a flow. After all, the point of encyptimg pa=
cket number is to avoid linkability, isn&#39;t it?</div><div dir=3D"auto"><=
br></div><div dir=3D"auto">- jana</div></div><div class=3D"gmail_extra"><br=
><div class=3D"gmail_quote">On Jul 20, 2017 3:00 AM, &quot;Magnus Westerlun=
d&quot; &lt;<a href=3D"mailto:magnus.westerlund@ericsson.com">magnus.wester=
lund@ericsson.com</a>&gt; wrote:<br type=3D"attribution"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">Hi,<br>
<br>
There has been some discussion around packet numbers. For passive detection=
 of packet loss in measurements and network management, it would be really =
good if the packet numbers where continuous and not only monotonically incr=
easing. As this enables one to determine losses upstream of the measurement=
 point. At the same time I understand there are benefits with being able to=
 introduce gaps into the packet number to test the receiver&#39;s behaviour=
.<br>
<br>
To enable both of these capabilities I would propose that the N least signi=
ficant bits of the packet number are strictly increased by one. Then one ca=
n introduce gaps in the bits above the N ones. Yes, that will burn through =
the packet number space faster as the gaps may become larger than was the c=
ase without this. However, I don&#39;t see that this will have significant =
effect unless the sender introduce gaps very frequently so that the length =
of the packet number field needs to be much larger due to the outstanding s=
equence number space is much larger.<br>
<br>
The value of N can clearly be discussed but it should be selected so that r=
eordering and common burst durations are shorter than the time to wrap the =
strictly increase amount of bits. If the higher bits are available to measu=
rement node, some possibility to infer gaps will also be possible. It might=
 be that N needs to be scaled with throughput with a minimal value. N=3D8 w=
ould mean 256 packets between wraps. I think that is a reasonable minimal v=
alue. However, that will wrap in 28 ms at 100 mbps of payload (assuming 140=
0 bytes of payload per packet).<br>
<br>
So what people think about this idea?<br>
<br>
<br>
Cheers<br>
<br>
Magnus Westerlund<br>
<br>
------------------------------<wbr>------------------------------<wbr>-----=
-----<br>
Media Technologies, Ericsson Research<br>
------------------------------<wbr>------------------------------<wbr>-----=
-----<br>
Ericsson AB=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =
Phone=C2=A0 <a href=3D"tel:%2B46%2010%207148287" value=3D"+46107148287" tar=
get=3D"_blank">+46 10 7148287</a><br>
Torshamnsgatan 23=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| Mobile <a href=
=3D"tel:%2B46%2073%200949079" value=3D"+46730949079" target=3D"_blank">+46 =
73 0949079</a><br>
SE-164 80 Stockholm, Sweden | mailto: <a href=3D"mailto:magnus.westerlund@e=
ricsson.com" target=3D"_blank">magnus.westerlund@ericsson.com</a><br>
------------------------------<wbr>------------------------------<wbr>-----=
-----<br>
<br>
<br>
</blockquote></div></div>

--94eb2c19a6a8a2026705553918e1--


From nobody Thu Jul 27 06:48:02 2017
Return-Path: <ekr@rtfm.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 AE8EA13201F for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 06:48:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 v6y53ZwwEdkL for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 06:47:58 -0700 (PDT)
Received: from mail-yw0-x229.google.com (mail-yw0-x229.google.com [IPv6:2607:f8b0:4002:c05::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 BD9B8120721 for <quic@ietf.org>; Thu, 27 Jul 2017 06:47:58 -0700 (PDT)
Received: by mail-yw0-x229.google.com with SMTP id u207so45049230ywc.3 for <quic@ietf.org>; Thu, 27 Jul 2017 06:47:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=ZZyY3yWcLXrvnNN5QE5oACP3RqNegU+oYtp04dm3AuM=; b=fccaR1/+6gBtGGCjEfBuoNaWqzERULD1mcd5+AQcMzUs6mG9K65AwJ65KSUsNp8ddd VE+Z1jh2eGdYjs+Nh/YCe++ekMqZjyrtrPFm7DTnbVSq1XlrU+JAwLy5q6HkiFeTLZk3 ExWQyOSnTgwutcyQtbU9uPoJLo6TWdTuDzDckPLibp6JVOLtcLg+PFw3tVo0pb6GAsro VqO8XMQqZB846iILYmWVQFPaYhHvg/t7ZhLZAQuFIKbb7k5h/2LEczFk7dxae65aSsO1 D/CtS70FmojZw+QjTumCn8go/iuyxzsTCQf7RBWS7Wk80PybZhaBwPcF+r5ODve31HPy Ba/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ZZyY3yWcLXrvnNN5QE5oACP3RqNegU+oYtp04dm3AuM=; b=Ip4ulsZSokMLp/Osw73f/zUxaMouL6aVcoRRaPhitv89kkkCiIr+bKxhm4tKZ0qEXk d+FtWxelrmfVUap4vDrVJshqZccYvr3QvifiP6TaRduEnmPkv9J+jk+VwYt7SxvH2MBo UxWZUbGlauB10lQJBeKNgHtuaF95xgBpItOUT0e0OCr+yzU1DuEm2PsZNDIpx0XSer/z tf98+TbrRXdUEBrwAeAYYvwgLAPjbwRy0dyMwDNgzgY3T3PKz5aAYlrj79U1ZHksLqDf iS204+XdQM1RRj9YePEwjmBtld6rcDcC+rQt1vawBA8pL4RPEK/YtBz5YZKee4FB/HoC KtHA==
X-Gm-Message-State: AIVw112Ko1u4sOCcZSqZIi++4beefNYPLAKKyp29acuuFRY6/GDNE6xA NWsuBxMu8t9dz5zdvZGOaCxvuPhlALKirxY=
X-Received: by 10.37.212.140 with SMTP id m134mr3608266ybf.256.1501163277705;  Thu, 27 Jul 2017 06:47:57 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Thu, 27 Jul 2017 06:47:17 -0700 (PDT)
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 27 Jul 2017 06:47:17 -0700
Message-ID: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com>
Subject: Closing on CONNECTION_CLOSE
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c07d966eb0ccf05554ccfd1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/nnWpRFyLnhx7WWUxub2Bo-zjZFo>
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: Thu, 27 Jul 2017 13:48:01 -0000

--94eb2c07d966eb0ccf05554ccfd1
Content-Type: text/plain; charset="UTF-8"

There have been a number of issues raised about the exact semantics of
CONNECTION_CLOSE [0], but we have never really closed on them. As Ryan
says, one might have think that CONNECTION_CLOSE is like TCP FIN or
like TCP RST.


In the FIN-like model:
- The closing side sends a CONNECTION_CLOSE
- The non-closing side ACKs it
- The closing side keeps retransmitting until it gets an ACK or it
  times out.


In the RST-like model:
- The closing side sends a CONNECTION_CLOSE
- The non-closing side just terminates the connection
- The closing side responds to new packets from the non-closing side
  with a retransmitted CONNECTION_CLOSE (perhaps just a stored packet)
  for some time.

The specification seems kind of vague on this point (there is a big
TODO for TIME_WAIT) and in places suggests retransmission [1] I had
previously assumed the FIN-like model but after talking to Ian this
morning I think the RST-like model is better. It's easier to implement
because you don't need to manage a post-close state machine on either
side. The only downside I'm really aware of is that the closing side
has to keep state for something like 2MSL (so that it can properly
respond to late packets), rather than being able to clean up on
receiving an ACK. However, this isn't that big a deal, because as
noted above, you can throw away the connection and just send a stored
packet, or alternately, just send public reset (or just go silent).

Given that ID1 does include CONNECTION_CLOSE, albeit with limited
semantics, it would be good to resolve this soon. Are there people who
want to argue in favor of the FIN-like model?

-Ekr


[0] https://github.com/quicwg/base-drafts/issues/330
https://github.com/quicwg/base-drafts/issues/328

[1] See also the spec for ID1 which says:
"The packet containing a connection close does not need to be
retransmitted."

--94eb2c07d966eb0ccf05554ccfd1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>There have been a number of issues raised about the e=
xact semantics of</div><div>CONNECTION_CLOSE [0], but we have never really =
closed on them. As Ryan</div><div>says, one might have think that CONNECTIO=
N_CLOSE is like TCP FIN or</div><div>like TCP RST.=C2=A0</div><div><br></di=
v><div><br></div><div>In the FIN-like model:</div><div>- The closing side s=
ends a CONNECTION_CLOSE</div><div>- The non-closing side ACKs it</div><div>=
- The closing side keeps retransmitting until it gets an ACK or it</div><di=
v>=C2=A0 times out.</div><div><br></div><div><br></div><div>In the RST-like=
 model:</div><div>- The closing side sends a CONNECTION_CLOSE</div><div>- T=
he non-closing side just terminates the connection</div><div>- The closing =
side responds to new packets from the non-closing side</div><div>=C2=A0 wit=
h a retransmitted CONNECTION_CLOSE (perhaps just a stored packet)</div><div=
>=C2=A0 for some time.</div><div><br></div><div>The specification seems kin=
d of vague on this point (there is a big</div><div>TODO for TIME_WAIT) and =
in places suggests retransmission [1] I had</div><div>previously assumed th=
e FIN-like model but after talking to Ian this</div><div>morning I think th=
e RST-like model is better. It&#39;s easier to implement</div><div>because =
you don&#39;t need to manage a post-close state machine on either</div><div=
>side. The only downside I&#39;m really aware of is that the closing side</=
div><div>has to keep state for something like 2MSL (so that it can properly=
</div><div>respond to late packets), rather than being able to clean up on<=
/div><div>receiving an ACK. However, this isn&#39;t that big a deal, becaus=
e as</div><div>noted above, you can throw away the connection and just send=
 a stored</div><div>packet, or alternately, just send public reset (or just=
 go silent).</div><div><br></div><div>Given that ID1 does include CONNECTIO=
N_CLOSE, albeit with limited</div><div>semantics, it would be good to resol=
ve this soon. Are there people who</div><div>want to argue in favor of the =
FIN-like model?</div><div><br></div><div>-Ekr</div><div><br></div><div><br>=
</div><div>[0] <a href=3D"https://github.com/quicwg/base-drafts/issues/330"=
 target=3D"_blank">https://github.com/quicwg/<wbr>base-drafts/issues/330</a=
></div><div><a href=3D"https://github.com/quicwg/base-drafts/issues/328" ta=
rget=3D"_blank">https://github.com/quicwg/<wbr>base-drafts/issues/328</a></=
div><div><br></div><div>[1] See also the spec for ID1 which says:</div><div=
>&quot;The packet containing a connection close does not need to be retrans=
mitted.&quot;</div><div><br></div></div>

--94eb2c07d966eb0ccf05554ccfd1--


From nobody Thu Jul 27 06:58:40 2017
Return-Path: <ianswett@google.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 E6245131C8F for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 06:58:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 lbqJbTKHrmJf for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 06:58:36 -0700 (PDT)
Received: from mail-yw0-x231.google.com (mail-yw0-x231.google.com [IPv6:2607:f8b0:4002:c05::231]) (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 2BFE7131FF1 for <quic@ietf.org>; Thu, 27 Jul 2017 06:58:36 -0700 (PDT)
Received: by mail-yw0-x231.google.com with SMTP id x125so106728299ywa.0 for <quic@ietf.org>; Thu, 27 Jul 2017 06:58:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=caVkbHUZ3ZC+M4VesukI3muXjeOCD+iZbB+UEcb3kdY=; b=HL4VzqkIXhxISc9nibqCwBnkO8hp0HaeT+W//tvhVWAY2xC5tAinvRxaZeBMSWnhDA NoBK9oaCCMFl57JBlim1Q4YK6b8Pcu1BsUeU1HO2p/m/oZYTAeJJfU8YJdjICYpQuUqH yjFlu7R6BzRLnXKNaplaOLe8IPtBBvl7wosdD12qGEVZRpAMVhojw3yE4ash3Vu9aUxd d5DQwSPda9C2A4bfymIIuZMaaBmivvojMzGzlJ37FWyzhmnxCmoIF/J06Db51pn+GqkI 0CZ+cOgj9Ems8KTRq9Utxli2ke1D/aUa2F2RkDlGPha7U/GXwTqgJloA0bzQUasLxJlR 62YA==
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=caVkbHUZ3ZC+M4VesukI3muXjeOCD+iZbB+UEcb3kdY=; b=DEVFtyxIAuyElyrCzlnPZPzw6lhncw+IAJtqMRBXw0zw16T/NGc+dBXVvxXH4wYLH8 FZX69YlSpcKZjbwWczvjIsy8v4WwK9MMrjZrjIXBtVSUx+75oTL73OJp5tGoeFqdxngh XO5jxRnAt+8XKhlTgZ+PxF5qJYEKaKDgds2Ci4KIqPuMx6NyDsbxAn/19h1pnaI39qsx xPg2qVTCBc5ly5+RMApA/odxQyf9/tuKTEpDYtLkGACh9OPJnxX0+fv25NhF+8HWeKRp SlkFhtj8DoGR1F0rLlENXuE8hQ8kOQPUNgWIAuGGo0ya+mR8CXdihOpeGdylTvCK907t gDmA==
X-Gm-Message-State: AIVw110peXt9VFFMQ9XRc5o1QZqe1E6xmsZ+Pc6geBeeM9lTzI9uDhAg fwsQ5DQDNr9zsZqebtjYOAi0fsIampgC
X-Received: by 10.129.92.3 with SMTP id q3mr3615053ywb.298.1501163915246; Thu, 27 Jul 2017 06:58:35 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.217.137 with HTTP; Thu, 27 Jul 2017 06:58:14 -0700 (PDT)
In-Reply-To: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Thu, 27 Jul 2017 09:58:14 -0400
Message-ID: <CAKcm_gNuYsn2dY8MQXK+FZxe0kj4vRtRfr-Ukhn=MgJ9stt4NQ@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Eric Rescorla <ekr@rtfm.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114d6f02eb9d1105554cf58a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/0-15Dgw4-bpIz1ic1oCJWR3fAvA>
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: Thu, 27 Jul 2017 13:58:39 -0000

--001a114d6f02eb9d1105554cf58a
Content-Type: text/plain; charset="UTF-8"

Nice summary.  As you implied, I favor the RST-like model.

And as you stated, it'd be very helpful to specify something soon, since
it's about to become an implementation blocker.

On Thu, Jul 27, 2017 at 9:47 AM, Eric Rescorla <ekr@rtfm.com> wrote:

> There have been a number of issues raised about the exact semantics of
> CONNECTION_CLOSE [0], but we have never really closed on them. As Ryan
> says, one might have think that CONNECTION_CLOSE is like TCP FIN or
> like TCP RST.
>
>
> In the FIN-like model:
> - The closing side sends a CONNECTION_CLOSE
> - The non-closing side ACKs it
> - The closing side keeps retransmitting until it gets an ACK or it
>   times out.
>
>
> In the RST-like model:
> - The closing side sends a CONNECTION_CLOSE
> - The non-closing side just terminates the connection
> - The closing side responds to new packets from the non-closing side
>   with a retransmitted CONNECTION_CLOSE (perhaps just a stored packet)
>   for some time.
>
> The specification seems kind of vague on this point (there is a big
> TODO for TIME_WAIT) and in places suggests retransmission [1] I had
> previously assumed the FIN-like model but after talking to Ian this
> morning I think the RST-like model is better. It's easier to implement
> because you don't need to manage a post-close state machine on either
> side. The only downside I'm really aware of is that the closing side
> has to keep state for something like 2MSL (so that it can properly
> respond to late packets), rather than being able to clean up on
> receiving an ACK. However, this isn't that big a deal, because as
> noted above, you can throw away the connection and just send a stored
> packet, or alternately, just send public reset (or just go silent).
>
> Given that ID1 does include CONNECTION_CLOSE, albeit with limited
> semantics, it would be good to resolve this soon. Are there people who
> want to argue in favor of the FIN-like model?
>
> -Ekr
>
>
> [0] https://github.com/quicwg/base-drafts/issues/330
> https://github.com/quicwg/base-drafts/issues/328
>
> [1] See also the spec for ID1 which says:
> "The packet containing a connection close does not need to be
> retransmitted."
>
>

--001a114d6f02eb9d1105554cf58a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Nice summary.=C2=A0 As you implied, I favor the RST-like m=
odel.=C2=A0=C2=A0<div><br></div><div>And as you stated, it&#39;d be very he=
lpful to specify something soon, since it&#39;s about to become an implemen=
tation blocker.</div></div><div class=3D"gmail_extra"><br><div class=3D"gma=
il_quote">On Thu, Jul 27, 2017 at 9:47 AM, Eric Rescorla <span dir=3D"ltr">=
&lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_blank">ekr@rtfm.com</a>&gt;<=
/span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div>There=
 have been a number of issues raised about the exact semantics of</div><div=
>CONNECTION_CLOSE [0], but we have never really closed on them. As Ryan</di=
v><div>says, one might have think that CONNECTION_CLOSE is like TCP FIN or<=
/div><div>like TCP RST.=C2=A0</div><div><br></div><div><br></div><div>In th=
e FIN-like model:</div><div>- The closing side sends a CONNECTION_CLOSE</di=
v><div>- The non-closing side ACKs it</div><div>- The closing side keeps re=
transmitting until it gets an ACK or it</div><div>=C2=A0 times out.</div><d=
iv><br></div><div><br></div><div>In the RST-like model:</div><div>- The clo=
sing side sends a CONNECTION_CLOSE</div><div>- The non-closing side just te=
rminates the connection</div><div>- The closing side responds to new packet=
s from the non-closing side</div><div>=C2=A0 with a retransmitted CONNECTIO=
N_CLOSE (perhaps just a stored packet)</div><div>=C2=A0 for some time.</div=
><div><br></div><div>The specification seems kind of vague on this point (t=
here is a big</div><div>TODO for TIME_WAIT) and in places suggests retransm=
ission [1] I had</div><div>previously assumed the FIN-like model but after =
talking to Ian this</div><div>morning I think the RST-like model is better.=
 It&#39;s easier to implement</div><div>because you don&#39;t need to manag=
e a post-close state machine on either</div><div>side. The only downside I&=
#39;m really aware of is that the closing side</div><div>has to keep state =
for something like 2MSL (so that it can properly</div><div>respond to late =
packets), rather than being able to clean up on</div><div>receiving an ACK.=
 However, this isn&#39;t that big a deal, because as</div><div>noted above,=
 you can throw away the connection and just send a stored</div><div>packet,=
 or alternately, just send public reset (or just go silent).</div><div><br>=
</div><div>Given that ID1 does include CONNECTION_CLOSE, albeit with limite=
d</div><div>semantics, it would be good to resolve this soon. Are there peo=
ple who</div><div>want to argue in favor of the FIN-like model?</div><div><=
br></div><div>-Ekr</div><div><br></div><div><br></div><div>[0] <a href=3D"h=
ttps://github.com/quicwg/base-drafts/issues/330" target=3D"_blank">https://=
github.com/quicwg/base<wbr>-drafts/issues/330</a></div><div><a href=3D"http=
s://github.com/quicwg/base-drafts/issues/328" target=3D"_blank">https://git=
hub.com/quicwg/base<wbr>-drafts/issues/328</a></div><div><br></div><div>[1]=
 See also the spec for ID1 which says:</div><div>&quot;The packet containin=
g a connection close does not need to be retransmitted.&quot;</div><div><br=
></div></div>
</blockquote></div><br></div>

--001a114d6f02eb9d1105554cf58a--


From nobody Thu Jul 27 07:03:06 2017
Return-Path: <huitema@huitema.net>
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 53CA9131C84 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:03:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 ykkNbf11aQXu for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:02:54 -0700 (PDT)
Received: from mx3.antispamcloud.com (mx36-42.antispamcloud.com [209.126.121.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9A1E6129AAD for <quic@ietf.org>; Thu, 27 Jul 2017 07:02:54 -0700 (PDT)
Received: from xsmtp03.mail2web.com ([168.144.250.223]) by mx3.antispamcloud.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.89) (envelope-from <huitema@huitema.net>) id 1dajNL-0003Bq-WC for quic@ietf.org; Thu, 27 Jul 2017 16:02:52 +0200
Received: from [10.5.2.15] (helo=xmail05.myhosting.com) by xsmtp03.mail2web.com with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from <huitema@huitema.net>) id 1dajNA-0005l4-Ar for quic@ietf.org; Thu, 27 Jul 2017 10:02:48 -0400
Received: (qmail 15003 invoked from network); 27 Jul 2017 14:02:38 -0000
Received: from unknown (HELO [192.168.1.103]) (Authenticated-user:_huitema@huitema.net@[172.56.42.66]) (envelope-sender <huitema@huitema.net>) by xmail05.myhosting.com (qmail-ldap-1.03) with ESMTPA for <quic@ietf.org>; 27 Jul 2017 14:02:38 -0000
To: quic@ietf.org
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net>
Date: Thu, 27 Jul 2017 07:02:33 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Subject: Re: Closing on CONNECTION_CLOSE
X-Originating-IP: 168.144.250.223
X-SpamExperts-Domain: xsmtpout.mail2web.com
X-SpamExperts-Username: 168.144.250.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=168.144.250.0/24@xsmtpout.mail2web.com
X-SpamExperts-Outgoing-Class: unsure
X-SpamExperts-Outgoing-Evidence: Combined (0.13)
X-Recommended-Action: accept
X-Filter-ID: PqwsvolAWURa0gwxuN3S5YEa3T7JuZT23fGO2rGt3ZgTCGhDnudOJ80D1c8rffxrus7BTv7Ss8cH d2IQQuvdbtM+m4WpRRDP6YzwkAPgQJbFuHJrd6q7ImwszS9kW0E9ND46yZLY9QyX+cRXmooQ3hum JwiT+2brWmQlzkLIcXivpIH4ag6BM/+u9ym+BA230RZZs4/9QcLi/nb/GoFpMYHT3azp2ACbWz9H GkpW4x2Rhg1jI9Z2IBQudfbmwAKvYOEkjsX7F8KmpUaZQHV+Sf+k51CV8HOoCp+bWB2rXxO2G5Pj 7iQJEmtNUzH3idZ6uMF2OhyCCCV83x+RZrKIj0QqMGQOSwmEPwP4wBzM77N8GvkYGGDFjg9NrmGY yNnXsSjdYwfRhjHqxQXDsBKLpGhWDl86FRLsucalajANCRP6lO4FGen962xgCFRckncKfg1XSK9P 1z/R6plfrFWGyUbiNBtPa+nnaSOBS8xTQyHeNHk15VolAGHS5rCXQKDym+Gab6cuAPzLi/SdAxlO dgkraHgbbAuZgv0Q6mJ3vUcipz1IT62ZEk6+MmovaufbiR3bHfnMCIEU+nrglojKwMr3vOY18GvB wSXAfWcj237jnExji3pN9ZwHGBHd3j58WezJa7xDQcOg5ET5/LmCvakjSWDcjZyDseb0cBFM1p7J 0ZI2Cud2W8ULqpclZpX6+ln3SmdyWNNJvR4I+Hp8ZTqmtKYOlQxywq7X9AiLTGhCJj2HZv393lVD HgpaAy7e7ySyMjvCXUn/XipQj8shABklgDtVC2Xqa4QCRhTuoCmXPUJkXUk8tGhJsBnmMDbaKcNO SCytRyeT1c4b6jF7f/DKzfOCXnJQjcl9DhaIFtyqmgfXlC5BKKIliXyEzbMHRIbZK0lCbLYw/2Y2 Z+15FA==
X-Report-Abuse-To: spam@quarantine5.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ifiVOUCXbR7PhN3Ji93cI-t9fpY>
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: Thu, 27 Jul 2017 14:03:01 -0000

On 7/27/2017 6:47 AM, Eric Rescorla wrote:
> The specification seems kind of vague on this point (there is a big
> TODO for TIME_WAIT) and in places suggests retransmission [1] I had
> previously assumed the FIN-like model but after talking to Ian this
> morning I think the RST-like model is better. It's easier to implement
> because you don't need to manage a post-close state machine on either
> side. The only downside I'm really aware of is that the closing side
> has to keep state for something like 2MSL (so that it can properly
> respond to late packets), rather than being able to clean up on
> receiving an ACK. However, this isn't that big a deal, because as
> noted above, you can throw away the connection and just send a stored
> packet, or alternately, just send public reset (or just go silent).
>
> Given that ID1 does include CONNECTION_CLOSE, albeit with limited
> semantics, it would be good to resolve this soon. Are there people who
> want to argue in favor of the FIN-like model?

Yes the text is vague. My ID1 code implements the RST behavior --
immediate close on receipt, no ACK. It seemed natural.

I have yet to implement a proper zombie state, but that would be needed
whether we want the RST or FIN semantic, since FIN packets can be lost.

RST behavior is cleaner there: repeat the RST frame if packets are still
received after some timeout.

-- 
Christian Huitema


From nobody Thu Jul 27 07:09:04 2017
Return-Path: <prvs=8381ad4d51=subodh@fb.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 D919B131A4F for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:09:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.719
X-Spam-Level: 
X-Spam-Status: No, score=-2.719 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com header.b=Zo7jikaE; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=iX+62w5W
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 ZU77tiObUdYA for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:09:02 -0700 (PDT)
Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 30E12131C3C for <quic@ietf.org>; Thu, 27 Jul 2017 07:09:02 -0700 (PDT)
Received: from pps.filterd (m0109332.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v6RE8oYL021194; Thu, 27 Jul 2017 07:08:55 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=facebook; bh=97zpydG5fy06goRxynS7qqK/9UJvh49EgV0g4iLfQe8=; b=Zo7jikaEq1p85XjiJ+4wfYO/REQeaTF3/SBLqFUNhwYyHSDTS9RLtnshGPh1h5PoFu5u nGVEiwezAduHSKcMUjuohJ8GDp0fTUx7tt1Zts38ADurASbczj2oeWsxH1kta3MXmvdx HjFNmrGjn8FddTSU7uW03uhIzS29xF/uqyM= 
Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0a-00082601.pphosted.com with ESMTP id 2bydmerph9-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 27 Jul 2017 07:08:55 -0700
Received: from NAM01-BY2-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.26) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 27 Jul 2017 10:08:54 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;  bh=97zpydG5fy06goRxynS7qqK/9UJvh49EgV0g4iLfQe8=; b=iX+62w5WE3hKa8AE98/rZwbgt/UexOsMGNzcouIOHhjuAVCo0dNqtzjmbEuun4seDduFxqZJvnoEQmx8x2PFeYGGbM+/iK+GR8HRbAvbUfHt4LYxkthunDwmH6ytqFQ7vHsh6hwreCGPaZe8lMIH3yDKWhCSbqpxZDVgH5hZFU8=
Received: from MWHPR15MB1455.namprd15.prod.outlook.com (10.173.234.145) by MWHPR15MB1456.namprd15.prod.outlook.com (10.173.234.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Thu, 27 Jul 2017 14:08:33 +0000
Received: from MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) by MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) with mapi id 15.01.1282.021; Thu, 27 Jul 2017 14:08:33 +0000
From: Subodh Iyengar <subodh@fb.com>
To: Christian Huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Subject: Re: Closing on CONNECTION_CLOSE
Thread-Topic: Closing on CONNECTION_CLOSE
Thread-Index: AQHTBt8BY44EN83ZV0KhVSU38MiR6aJntD6AgAAAgeM=
Date: Thu, 27 Jul 2017 14:08:33 +0000
Message-ID: <MWHPR15MB14558B64A6166EB2C3E66F03B6BE0@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com>,  <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net>
In-Reply-To: <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [2620:10d:c091:200::ba12]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR15MB1456; 20:wvkQfN6GVdPpQrsgyyH5QnzbL4/KlXwV4HRBJZEVNPVM3iI/2DhbN6aWujlMgfCRi2DpmHvMO5G594i2EjG8Sm8qO1UehRZxQAKMY5BHT2lBUCU+apDThXrWGewx6IMWIs8m76yKfxpTSwis7KU2Sa1lXgkG68w1PNxYahEjQt8=
x-ms-office365-filtering-correlation-id: a2186885-4978-42f5-fe71-08d4d4f8f761
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR15MB1456; 
x-ms-traffictypediagnostic: MWHPR15MB1456:
x-exchange-antispam-report-test: UriScan:(158342451672863);
x-microsoft-antispam-prvs: <MWHPR15MB145625F286621F1C47F50E64B6BE0@MWHPR15MB1456.namprd15.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123562025)(20161123560025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR15MB1456; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR15MB1456; 
x-forefront-prvs: 03818C953D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39450400003)(39840400002)(39400400002)(39850400002)(39410400002)(24454002)(199003)(189002)(377454003)(53546010)(3660700001)(8676002)(8936002)(2906002)(81166006)(81156014)(5660300001)(6436002)(9686003)(7696004)(25786009)(54896002)(99286003)(55016002)(6246003)(53936002)(86362001)(102836003)(7116003)(3280700002)(6116002)(189998001)(7736002)(97736004)(2950100002)(2900100001)(478600001)(14454004)(229853002)(38730400002)(77096006)(2501003)(101416001)(68736007)(6506006)(105586002)(76176999)(54356999)(33656002)(50986999)(106356001)(74316002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR15MB1456; H:MWHPR15MB1455.namprd15.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR15MB14558B64A6166EB2C3E66F03B6BE0MWHPR15MB1455namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2017 14:08:33.1423 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1456
X-OriginatorOrg: fb.com
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-27_07:, , signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/8hH2zf26ScCSXilfS-W090gRKFI>
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: Thu, 27 Jul 2017 14:09:04 -0000

--_000_MWHPR15MB14558B64A6166EB2C3E66F03B6BE0MWHPR15MB1455namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

> The only downside I'm really aware of is that the closing side
has to keep state for something like 2MSL (so that it can properly
respond to late packets), rather than being able to clean up on
receiving an ACK

I favor the RST model as well.
You'll end up having to keep a loss timeout even in the FIN model because
of ACKs being lost / the remote side shutting for unrelated reasons / silen=
tly closing
their connection.

However what is the right response to late packets? The only response I can=
 think of
is to resend the connection close if you still have the connection state. I=
s there anything
else that could be sent that I'm missing?

As an aside on the topic of TIME_WAIT itself:

The reason I'm aware that TIME_WAIT exists in TCP is to protect us from the=
 local port
being re-bound to another connection and the data from the old connection i=
nterfering with
the new connection. With QUIC this seems less of an issue though because a
combination of (connection id + packet type + packet encryption) can be use=
d to determine whether or
not the packet was valid to be received in the context of a new connection.=
 Going with the
philosophy of dropping packets on the floor that are malformed that martin =
proposed during
the last WG meeting, do we even need a TIME_WAIT state in QUIC?

The advantage of TIME_WAIT that I see is this ability to send the CONNECTIO=
N_CLOSE in a timely
manner to prevent the client from needing to retry till the RTO limit and r=
ealize the connection
needs to be closed. However if we go with the close model of graceful close=
 always driven by the app, then
this won't be a common case and we might deliver a PUBLIC RESET instead of =
a CLOSE.

Subodh


________________________________
From: QUIC <quic-bounces@ietf.org> on behalf of Christian Huitema <huitema@=
huitema.net>
Sent: Thursday, July 27, 2017 7:02:33 AM
To: quic@ietf.org
Subject: Re: Closing on CONNECTION_CLOSE



On 7/27/2017 6:47 AM, Eric Rescorla wrote:
> The specification seems kind of vague on this point (there is a big
> TODO for TIME_WAIT) and in places suggests retransmission [1] I had
> previously assumed the FIN-like model but after talking to Ian this
> morning I think the RST-like model is better. It's easier to implement
> because you don't need to manage a post-close state machine on either
> side. The only downside I'm really aware of is that the closing side
> has to keep state for something like 2MSL (so that it can properly
> respond to late packets), rather than being able to clean up on
> receiving an ACK. However, this isn't that big a deal, because as
> noted above, you can throw away the connection and just send a stored
> packet, or alternately, just send public reset (or just go silent).
>
> Given that ID1 does include CONNECTION_CLOSE, albeit with limited
> semantics, it would be good to resolve this soon. Are there people who
> want to argue in favor of the FIN-like model?

Yes the text is vague. My ID1 code implements the RST behavior --
immediate close on receipt, no ACK. It seemed natural.

I have yet to implement a proper zombie state, but that would be needed
whether we want the RST or FIN semantic, since FIN packets can be lost.

RST behavior is cleaner there: repeat the RST frame if packets are still
received after some timeout.

--
Christian Huitema


--_000_MWHPR15MB14558B64A6166EB2C3E66F03B6BE0MWHPR15MB1455namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; pad=
ding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta content=3D"text/html; charset=3DUTF-8">
<style type=3D"text/css" style=3D"">
<!--
p
	{margin-top:0;
	margin-bottom:0}
-->
</style>
<div dir=3D"ltr">
<div id=3D"x_divtagdefaultwrapper" dir=3D"ltr" style=3D"font-size:12pt; col=
or:#000000; font-family:Calibri,Helvetica,sans-serif">
<p></p>
<div>
<div class=3D"x__rp_O4" id=3D"x_Item.MessagePartBody">
<div class=3D"x__rp_P4 x_ms-font-weight-regular x_ms-font-color-neutralDark=
 x_rpHighlightAllClass x_rpHighlightBodyClass" id=3D"x_Item.MessageUniqueBo=
dy" tabindex=3D"0" style=3D"font-family:&quot;wf_segoe-ui_normal&quot;,&quo=
t;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Arial,sans-serif,serif,&quot;E=
mojiFont&quot;">
<div>
<div>
<div dir=3D"ltr" id=3D"x_divtagdefaultwrapper"><font size=3D"3" color=3D"bl=
ack" face=3D"Calibri,Helvetica,sans-serif" style=3D"font-family:Calibri,Hel=
vetica,sans-serif,serif,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"x_di=
vtagdefaultwrapper" style=3D"font-size:12pt">
<div style=3D"margin-top:0; margin-bottom:0">&gt; The only downside I'm rea=
lly aware of is that the closing side
</div>
<div>
<div>has to keep state for something like 2MSL (so that it can properly</di=
v>
<div>respond to late packets), rather than being able to clean up on</div>
receiving an ACK</div>
<br>
I favor the RST model as well. <br>
You'll end up having to keep a loss timeout even in the FIN model because&n=
bsp;
<div style=3D"margin-top:0; margin-bottom:0">of ACKs being lost / the remot=
e side shutting for unrelated reasons / silently closing
</div>
</span></font><font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sa=
ns-serif" style=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;Emo=
jiFont&quot;"><span dir=3D"ltr" id=3D"x_divtagdefaultwrapper" style=3D"font=
-size:12pt"></span></font><font size=3D"3" color=3D"black" face=3D"Calibri,=
Helvetica,sans-serif" style=3D"font-family:Calibri,Helvetica,sans-serif,ser=
if,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"x_divtagdefaultwrapper" s=
tyle=3D"font-size:12pt"></span></font><font size=3D"3" color=3D"black" face=
=3D"Calibri,Helvetica,sans-serif" style=3D"font-family:Calibri,Helvetica,sa=
ns-serif,serif,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"x_divtagdefau=
ltwrapper" style=3D"font-size:12pt"></span></font><font size=3D"3" color=3D=
"black" face=3D"Calibri,Helvetica,sans-serif" style=3D"font-family:Calibri,=
Helvetica,sans-serif,serif,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"x=
_divtagdefaultwrapper" style=3D"font-size:12pt"></span></font><font size=3D=
"3" color=3D"black" face=3D"Calibri,Helvetica,sans-serif" style=3D"font-fam=
ily:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&quot;"><span dir=3D"=
ltr" id=3D"x_divtagdefaultwrapper" style=3D"font-size:12pt"></span></font><=
font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-serif" style=
=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&quot;"><=
span dir=3D"ltr" id=3D"x_divtagdefaultwrapper" style=3D"font-size:12pt"></s=
pan></font><font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-=
serif" style=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiF=
ont&quot;"><span dir=3D"ltr" id=3D"x_divtagdefaultwrapper" style=3D"font-si=
ze:12pt"></span></font>their
 connection.<br>
<font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-serif" styl=
e=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&quot;">=
<span dir=3D"ltr" id=3D"x_divtagdefaultwrapper" style=3D"font-size:12pt">
<div style=3D"margin-top:0; margin-bottom:0"><br>
However what is the right response to late packets? The only response I can=
 think of</div>
<div style=3D"margin-top:0; margin-bottom:0">is to resend the connection cl=
ose if you still have the connection state. Is there anything</div>
<div style=3D"margin-top:0; margin-bottom:0">else that could be sent that I=
'm missing?<br>
</div>
<div style=3D"margin-top:0; margin-bottom:0"><br>
</div>
<div style=3D"margin-top:0; margin-bottom:0">As an aside on the topic of TI=
ME_WAIT itself:<br>
</div>
<div style=3D"margin-top:0; margin-bottom:0"><br>
</div>
<div style=3D"margin-top:0; margin-bottom:0">The reason I'm aware that TIME=
_WAIT exists in TCP is to protect us from the local port</div>
<div style=3D"margin-top:0; margin-bottom:0">being re-bound to another conn=
ection and the data from the old connection interfering with</div>
<div style=3D"margin-top:0; margin-bottom:0">the new connection. With QUIC =
this seems less of an issue though because a</div>
<div style=3D"margin-top:0; margin-bottom:0">combination of (connection id =
&#43; packet type &#43; packet encryption) can be used to determine whether=
 or</div>
<div style=3D"margin-top:0; margin-bottom:0">not the packet was valid to be=
 received in the context of a new connection. Going with the</div>
<div style=3D"margin-top:0; margin-bottom:0">philosophy of dropping packets=
 on the floor that are malformed that martin proposed during</div>
<div style=3D"margin-top:0; margin-bottom:0">the last WG meeting, do we eve=
n need a TIME_WAIT state in QUIC?<br>
<br>
The advantage of TIME_WAIT that I see is this ability to send the CONNECTIO=
N_CLOSE in a timely</div>
<div style=3D"margin-top:0; margin-bottom:0">manner to prevent the client f=
rom needing to retry till the RTO limit and realize the connection</div>
<div style=3D"margin-top:0; margin-bottom:0">needs to be closed. However if=
 we go with the close model of graceful close always driven by the app, the=
n<br>
this won't be a common case and we might deliver a PUBLIC RESET instead of =
a CLOSE.<br>
<br>
Subodh<br>
</div>
</span></font></div>
</div>
</div>
</div>
</div>
<span class=3D"x_PersonaPaneLauncher">
<div class=3D"x__pe_d x__pe_32" tabindex=3D"-1"></div>
</span></div>
<br>
<p></p>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" =
color=3D"#000000" style=3D"font-size:11pt"><b>From:</b> QUIC &lt;quic-bounc=
es@ietf.org&gt; on behalf of Christian Huitema &lt;huitema@huitema.net&gt;<=
br>
<b>Sent:</b> Thursday, July 27, 2017 7:02:33 AM<br>
<b>To:</b> quic@ietf.org<br>
<b>Subject:</b> Re: Closing on CONNECTION_CLOSE</font>
<div>&nbsp;</div>
</div>
</div>
<font size=3D"2"><span style=3D"font-size:10pt;">
<div class=3D"PlainText"><br>
<br>
On 7/27/2017 6:47 AM, Eric Rescorla wrote:<br>
&gt; The specification seems kind of vague on this point (there is a big<br=
>
&gt; TODO for TIME_WAIT) and in places suggests retransmission [1] I had<br=
>
&gt; previously assumed the FIN-like model but after talking to Ian this<br=
>
&gt; morning I think the RST-like model is better. It's easier to implement=
<br>
&gt; because you don't need to manage a post-close state machine on either<=
br>
&gt; side. The only downside I'm really aware of is that the closing side<b=
r>
&gt; has to keep state for something like 2MSL (so that it can properly<br>
&gt; respond to late packets), rather than being able to clean up on<br>
&gt; receiving an ACK. However, this isn't that big a deal, because as<br>
&gt; noted above, you can throw away the connection and just send a stored<=
br>
&gt; packet, or alternately, just send public reset (or just go silent).<br=
>
&gt;<br>
&gt; Given that ID1 does include CONNECTION_CLOSE, albeit with limited<br>
&gt; semantics, it would be good to resolve this soon. Are there people who=
<br>
&gt; want to argue in favor of the FIN-like model?<br>
<br>
Yes the text is vague. My ID1 code implements the RST behavior --<br>
immediate close on receipt, no ACK. It seemed natural.<br>
<br>
I have yet to implement a proper zombie state, but that would be needed<br>
whether we want the RST or FIN semantic, since FIN packets can be lost.<br>
<br>
RST behavior is cleaner there: repeat the RST frame if packets are still<br=
>
received after some timeout.<br>
<br>
-- <br>
Christian Huitema<br>
<br>
</div>
</span></font>
</body>
</html>

--_000_MWHPR15MB14558B64A6166EB2C3E66F03B6BE0MWHPR15MB1455namp_--


From nobody Thu Jul 27 07:13:03 2017
Return-Path: <ekr@rtfm.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 16060131C96 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:13:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 qs-IvUgQdYz6 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:13:00 -0700 (PDT)
Received: from mail-yw0-x22f.google.com (mail-yw0-x22f.google.com [IPv6:2607:f8b0:4002:c05::22f]) (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 29A40131C84 for <quic@ietf.org>; Thu, 27 Jul 2017 07:13:00 -0700 (PDT)
Received: by mail-yw0-x22f.google.com with SMTP id u207so45519798ywc.3 for <quic@ietf.org>; Thu, 27 Jul 2017 07:13:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=EQSVV3duZQWDuxISIEAIlcejdVdR/Y7H2BNW38J5h/g=; b=Ggb4Yy1mB3eLmp0cGIW8sLDYPl1v3eWy4uMReSQ/CymGxvkVph7AI4E+yYOp4CdRBX 1g31b+Kd2E9TGPKCIKMAG443P3ZQklt9hUY520S1Gt30c+vnzH091FvqfUZHAx6Ym+1x iQ1yL7mgqlealbdTnI5XmRwu8mD0AtCbBk3X9mjyknn7KjUIFE0LbD/DQjkUaX2EV7DG fw1QN4dnoeHghz8PwODznQiEd74t1/ZR51HW06ljsJ5YBHIeVG/TxKtgNMaS0sACWhtf l6SJkLpesQa+iB+HA81tcHEWi5n9RiUh7hAwEGwqBhnukOlODZ/n7skUudxrZGm+lEAQ GuNg==
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=EQSVV3duZQWDuxISIEAIlcejdVdR/Y7H2BNW38J5h/g=; b=XmhFZkk7j6HAx4/sIQ7zXcKyQHyvP7JV+iuCE8AIvlZO8d76Q/1f8AoYImWh6Ffljx g6o/15rv8n+MBmp8YoHskvkmWPjRuUZkB7fjvltrvOaEZXysl097Bc00gOb8MpACqL0U brTSRkCI+8XvBdlbQPIS+LH+6h2qblvNbE5dwiKuEZ+Y+kOL0EYiNNM2pkt6Rx96/oI/ RbQUTfeQIhAzlgU1PxQ1lXKiKioJTtoeb/C1fjUtCd7fKuP058rHqFu4lFJVratbmwDR WMFq1/CeLjDxoef87VcfkIHuhBnxvLOUtU1VqaYTVW1/DyuGe3e7bQ2WrtPKy9IDJ5o9 sl3A==
X-Gm-Message-State: AIVw110R9G6o2a3WZ8QTf7PnA9WAextL3tnQDa+fBnkjHyRaAn4aRXTn C1p1Cg+DPrm/xZJmbgaanS+PnHOJxjK6W+0=
X-Received: by 10.37.160.41 with SMTP id x38mr3650434ybh.339.1501164779285; Thu, 27 Jul 2017 07:12:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Thu, 27 Jul 2017 07:12:18 -0700 (PDT)
In-Reply-To: <MWHPR15MB14558B64A6166EB2C3E66F03B6BE0@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <MWHPR15MB14558B64A6166EB2C3E66F03B6BE0@MWHPR15MB1455.namprd15.prod.outlook.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 27 Jul 2017 07:12:18 -0700
Message-ID: <CABcZeBPGr2XYRDH9jiYqGk=xstPR0S42wNuU54txa-spSgj06A@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Subodh Iyengar <subodh@fb.com>
Cc: Christian Huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c1a06506b41c605554d29fb"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/wYR5RbohXMmyKgBF2qtiO7yb1q4>
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: Thu, 27 Jul 2017 14:13:02 -0000

--94eb2c1a06506b41c605554d29fb
Content-Type: text/plain; charset="UTF-8"

On Thu, Jul 27, 2017 at 7:08 AM, Subodh Iyengar <subodh@fb.com> wrote:

> > The only downside I'm really aware of is that the closing side
> has to keep state for something like 2MSL (so that it can properly
> respond to late packets), rather than being able to clean up on
> receiving an ACK
>
> I favor the RST model as well.
> You'll end up having to keep a loss timeout even in the FIN model because
> of ACKs being lost / the remote side shutting for unrelated reasons /
> silently closing
> their connection.
>
> However what is the right response to late packets? The only response I
> can think of
> is to resend the connection close if you still have the connection state.
> Is there anything
> else that could be sent that I'm missing?
>

There seem to be three options, which we can leave to the implementation:

- Re-send CONNECTION_CLOSE
- Send Stateless Reset
- Drop the packet.


As an aside on the topic of TIME_WAIT itself:
>
> The reason I'm aware that TIME_WAIT exists in TCP is to protect us from
> the local port
> being re-bound to another connection and the data from the old connection
> interfering with
> the new connection. With QUIC this seems less of an issue though because a
> combination of (connection id + packet type + packet encryption) can be
> used to determine whether or
> not the packet was valid to be received in the context of a new
> connection. Going with the
> philosophy of dropping packets on the floor that are malformed that martin
> proposed during
> the last WG meeting, do we even need a TIME_WAIT state in QUIC?
>
> The advantage of TIME_WAIT that I see is this ability to send the
> CONNECTION_CLOSE in a timely
> manner to prevent the client from needing to retry till the RTO limit and
> realize the connection
> needs to be closed. However if we go with the close model of graceful
> close always driven by the app, then
> this won't be a common case and we might deliver a PUBLIC RESET instead of
> a CLOSE.
>

Yes, that would probably also work. As above, do we need to decide?

-Ekr


>
> Subodh
>
> ------------------------------
> *From:* QUIC <quic-bounces@ietf.org> on behalf of Christian Huitema <
> huitema@huitema.net>
> *Sent:* Thursday, July 27, 2017 7:02:33 AM
> *To:* quic@ietf.org
> *Subject:* Re: Closing on CONNECTION_CLOSE
>
>
>
> On 7/27/2017 6:47 AM, Eric Rescorla wrote:
> > The specification seems kind of vague on this point (there is a big
> > TODO for TIME_WAIT) and in places suggests retransmission [1] I had
> > previously assumed the FIN-like model but after talking to Ian this
> > morning I think the RST-like model is better. It's easier to implement
> > because you don't need to manage a post-close state machine on either
> > side. The only downside I'm really aware of is that the closing side
> > has to keep state for something like 2MSL (so that it can properly
> > respond to late packets), rather than being able to clean up on
> > receiving an ACK. However, this isn't that big a deal, because as
> > noted above, you can throw away the connection and just send a stored
> > packet, or alternately, just send public reset (or just go silent).
> >
> > Given that ID1 does include CONNECTION_CLOSE, albeit with limited
> > semantics, it would be good to resolve this soon. Are there people who
> > want to argue in favor of the FIN-like model?
>
> Yes the text is vague. My ID1 code implements the RST behavior --
> immediate close on receipt, no ACK. It seemed natural.
>
> I have yet to implement a proper zombie state, but that would be needed
> whether we want the RST or FIN semantic, since FIN packets can be lost.
>
> RST behavior is cleaner there: repeat the RST frame if packets are still
> received after some timeout.
>
> --
> Christian Huitema
>
>

--94eb2c1a06506b41c605554d29fb
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Jul 27, 2017 at 7:08 AM, Subodh Iyengar <span dir=3D"ltr">&lt;<=
a href=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">





<div>


<div dir=3D"ltr">
<div id=3D"m_-1412661207583438248x_divtagdefaultwrapper" dir=3D"ltr" style=
=3D"font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif">
<p></p>
<div>
<div class=3D"m_-1412661207583438248x__rp_O4" id=3D"m_-1412661207583438248x=
_Item.MessagePartBody">
<div class=3D"m_-1412661207583438248x__rp_P4 m_-1412661207583438248x_ms-fon=
t-weight-regular m_-1412661207583438248x_ms-font-color-neutralDark m_-14126=
61207583438248x_rpHighlightAllClass m_-1412661207583438248x_rpHighlightBody=
Class" id=3D"m_-1412661207583438248x_Item.MessageUniqueBody" style=3D"font-=
family:&quot;wf_segoe-ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&q=
uot;,Tahoma,Arial,sans-serif,serif,&quot;EmojiFont&quot;">
<div>
<div>
<div dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaultwrapper"><font =
size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-serif" style=3D"f=
ont-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&quot;"><span =
dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaultwrapper" style=3D"fo=
nt-size:12pt"><span class=3D"">
<div style=3D"margin-top:0;margin-bottom:0">&gt; The only downside I&#39;m =
really aware of is that the closing side
</div>
<div>
<div>has to keep state for something like 2MSL (so that it can properly</di=
v>
<div>respond to late packets), rather than being able to clean up on</div>
receiving an ACK</div>
<br></span>
I favor the RST model as well. <br>
You&#39;ll end up having to keep a loss timeout even in the FIN model becau=
se=C2=A0
<div style=3D"margin-top:0;margin-bottom:0">of ACKs being lost / the remote=
 side shutting for unrelated reasons / silently closing
</div>
</span></font><font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sa=
ns-serif" style=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;Emo=
jiFont&quot;"><span dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefault=
wrapper" style=3D"font-size:12pt"></span></font><font size=3D"3" color=3D"b=
lack" face=3D"Calibri,Helvetica,sans-serif" style=3D"font-family:Calibri,He=
lvetica,sans-serif,serif,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"m_-=
1412661207583438248x_divtagdefaultwrapper" style=3D"font-size:12pt"></span>=
</font><font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-seri=
f" style=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&=
quot;"><span dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaultwrapper=
" style=3D"font-size:12pt"></span></font><font size=3D"3" color=3D"black" f=
ace=3D"Calibri,Helvetica,sans-serif" style=3D"font-family:Calibri,Helvetica=
,sans-serif,serif,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"m_-1412661=
207583438248x_divtagdefaultwrapper" style=3D"font-size:12pt"></span></font>=
<font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-serif" styl=
e=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&quot;">=
<span dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaultwrapper" style=
=3D"font-size:12pt"></span></font><font size=3D"3" color=3D"black" face=3D"=
Calibri,Helvetica,sans-serif" style=3D"font-family:Calibri,Helvetica,sans-s=
erif,serif,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"m_-14126612075834=
38248x_divtagdefaultwrapper" style=3D"font-size:12pt"></span></font><font s=
ize=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-serif" style=3D"fo=
nt-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&quot;"><span d=
ir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaultwrapper" style=3D"fon=
t-size:12pt"></span></font>their
 connection.<br>
<font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-serif" styl=
e=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFont&quot;">=
<span dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaultwrapper" style=
=3D"font-size:12pt">
<div style=3D"margin-top:0;margin-bottom:0"><br>
However what is the right response to late packets? The only response I can=
 think of</div>
<div style=3D"margin-top:0;margin-bottom:0">is to resend the connection clo=
se if you still have the connection state. Is there anything</div>
<div style=3D"margin-top:0;margin-bottom:0">else that could be sent that I&=
#39;m missing?<br></div></span></font></div></div></div></div></div></div><=
/div></div></div></blockquote><div><br></div><div>There seem to be three op=
tions, which we can leave to the implementation:</div><div><br></div><div>-=
 Re-send CONNECTION_CLOSE</div><div>- Send Stateless Reset</div><div>- Drop=
 the packet.</div><div><br></div><div><br></div><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex"><div><div dir=3D"ltr"><div id=3D"m_-1412661207583438248x_divtagdefaultw=
rapper" dir=3D"ltr" style=3D"font-size:12pt;color:#000000;font-family:Calib=
ri,Helvetica,sans-serif"><div><div class=3D"m_-1412661207583438248x__rp_O4"=
 id=3D"m_-1412661207583438248x_Item.MessagePartBody"><div class=3D"m_-14126=
61207583438248x__rp_P4 m_-1412661207583438248x_ms-font-weight-regular m_-14=
12661207583438248x_ms-font-color-neutralDark m_-1412661207583438248x_rpHigh=
lightAllClass m_-1412661207583438248x_rpHighlightBodyClass" id=3D"m_-141266=
1207583438248x_Item.MessageUniqueBody" style=3D"font-family:&quot;wf_segoe-=
ui_normal&quot;,&quot;Segoe UI&quot;,&quot;Segoe WP&quot;,Tahoma,Arial,sans=
-serif,serif,&quot;EmojiFont&quot;"><div><div><div dir=3D"ltr" id=3D"m_-141=
2661207583438248x_divtagdefaultwrapper"><font size=3D"3" color=3D"black" fa=
ce=3D"Calibri,Helvetica,sans-serif" style=3D"font-family:Calibri,Helvetica,=
sans-serif,serif,&quot;EmojiFont&quot;"><span dir=3D"ltr" id=3D"m_-14126612=
07583438248x_divtagdefaultwrapper" style=3D"font-size:12pt">
<div style=3D"margin-top:0;margin-bottom:0">As an aside on the topic of TIM=
E_WAIT itself:<br>
</div>
<div style=3D"margin-top:0;margin-bottom:0"><br>
</div>
<div style=3D"margin-top:0;margin-bottom:0">The reason I&#39;m aware that T=
IME_WAIT exists in TCP is to protect us from the local port</div>
<div style=3D"margin-top:0;margin-bottom:0">being re-bound to another conne=
ction and the data from the old connection interfering with</div>
<div style=3D"margin-top:0;margin-bottom:0">the new connection. With QUIC t=
his seems less of an issue though because a</div>
<div style=3D"margin-top:0;margin-bottom:0">combination of (connection id +=
 packet type + packet encryption) can be used to determine whether or</div>
<div style=3D"margin-top:0;margin-bottom:0">not the packet was valid to be =
received in the context of a new connection. Going with the</div>
<div style=3D"margin-top:0;margin-bottom:0">philosophy of dropping packets =
on the floor that are malformed that martin proposed during</div>
<div style=3D"margin-top:0;margin-bottom:0">the last WG meeting, do we even=
 need a TIME_WAIT state in QUIC?<br>
<br>
The advantage of TIME_WAIT that I see is this ability to send the CONNECTIO=
N_CLOSE in a timely</div>
<div style=3D"margin-top:0;margin-bottom:0">manner to prevent the client fr=
om needing to retry till the RTO limit and realize the connection</div>
<div style=3D"margin-top:0;margin-bottom:0">needs to be closed. However if =
we go with the close model of graceful close always driven by the app, then=
<br>
this won&#39;t be a common case and we might deliver a PUBLIC RESET instead=
 of a CLOSE.<br></div></span></font></div></div></div></div></div></div></d=
iv></div></div></blockquote><div><br></div><div>Yes, that would probably al=
so work. As above, do we need to decide?</div><div><br></div><div>-Ekr</div=
><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div dir=3D"ltr"><div=
 id=3D"m_-1412661207583438248x_divtagdefaultwrapper" dir=3D"ltr" style=3D"f=
ont-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif"><div>=
<div class=3D"m_-1412661207583438248x__rp_O4" id=3D"m_-1412661207583438248x=
_Item.MessagePartBody"><div class=3D"m_-1412661207583438248x__rp_P4 m_-1412=
661207583438248x_ms-font-weight-regular m_-1412661207583438248x_ms-font-col=
or-neutralDark m_-1412661207583438248x_rpHighlightAllClass m_-1412661207583=
438248x_rpHighlightBodyClass" id=3D"m_-1412661207583438248x_Item.MessageUni=
queBody" style=3D"font-family:&quot;wf_segoe-ui_normal&quot;,&quot;Segoe UI=
&quot;,&quot;Segoe WP&quot;,Tahoma,Arial,sans-serif,serif,&quot;EmojiFont&q=
uot;"><div><div><div dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaul=
twrapper"><font size=3D"3" color=3D"black" face=3D"Calibri,Helvetica,sans-s=
erif" style=3D"font-family:Calibri,Helvetica,sans-serif,serif,&quot;EmojiFo=
nt&quot;"><span dir=3D"ltr" id=3D"m_-1412661207583438248x_divtagdefaultwrap=
per" style=3D"font-size:12pt"><div style=3D"margin-top:0;margin-bottom:0">
<br>
Subodh<br>
</div>
</span></font></div>
</div>
</div>
</div>
</div>
<span class=3D"m_-1412661207583438248x_PersonaPaneLauncher">
<div class=3D"m_-1412661207583438248x__pe_d m_-1412661207583438248x__pe_32"=
></div>
</span></div>
<br>
<p></p>
</div>
<hr style=3D"display:inline-block;width:98%">
<div id=3D"m_-1412661207583438248x_divRplyFwdMsg" dir=3D"ltr"><font face=3D=
"Calibri, sans-serif" color=3D"#000000" style=3D"font-size:11pt"><b>From:</=
b> QUIC &lt;<a href=3D"mailto:quic-bounces@ietf.org" target=3D"_blank">quic=
-bounces@ietf.org</a>&gt; on behalf of Christian Huitema &lt;<a href=3D"mai=
lto:huitema@huitema.net" target=3D"_blank">huitema@huitema.net</a>&gt;<br>
<b>Sent:</b> Thursday, July 27, 2017 7:02:33 AM<br>
<b>To:</b> <a href=3D"mailto:quic@ietf.org" target=3D"_blank">quic@ietf.org=
</a><br>
<b>Subject:</b> Re: Closing on CONNECTION_CLOSE</font>
<div>=C2=A0</div>
</div>
</div><div><div class=3D"h5">
<font size=3D"2"><span style=3D"font-size:10pt">
<div class=3D"m_-1412661207583438248PlainText"><br>
<br>
On 7/27/2017 6:47 AM, Eric Rescorla wrote:<br>
&gt; The specification seems kind of vague on this point (there is a big<br=
>
&gt; TODO for TIME_WAIT) and in places suggests retransmission [1] I had<br=
>
&gt; previously assumed the FIN-like model but after talking to Ian this<br=
>
&gt; morning I think the RST-like model is better. It&#39;s easier to imple=
ment<br>
&gt; because you don&#39;t need to manage a post-close state machine on eit=
her<br>
&gt; side. The only downside I&#39;m really aware of is that the closing si=
de<br>
&gt; has to keep state for something like 2MSL (so that it can properly<br>
&gt; respond to late packets), rather than being able to clean up on<br>
&gt; receiving an ACK. However, this isn&#39;t that big a deal, because as<=
br>
&gt; noted above, you can throw away the connection and just send a stored<=
br>
&gt; packet, or alternately, just send public reset (or just go silent).<br=
>
&gt;<br>
&gt; Given that ID1 does include CONNECTION_CLOSE, albeit with limited<br>
&gt; semantics, it would be good to resolve this soon. Are there people who=
<br>
&gt; want to argue in favor of the FIN-like model?<br>
<br>
Yes the text is vague. My ID1 code implements the RST behavior --<br>
immediate close on receipt, no ACK. It seemed natural.<br>
<br>
I have yet to implement a proper zombie state, but that would be needed<br>
whether we want the RST or FIN semantic, since FIN packets can be lost.<br>
<br>
RST behavior is cleaner there: repeat the RST frame if packets are still<br=
>
received after some timeout.<br>
<br>
-- <br>
Christian Huitema<br>
<br>
</div>
</span></font>
</div></div></div>

</blockquote></div><br></div></div>

--94eb2c1a06506b41c605554d29fb--


From nobody Thu Jul 27 07:20:18 2017
Return-Path: <w@1wt.eu>
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 08EA0132038 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:20:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 NW-mnCafqwhq for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:20:15 -0700 (PDT)
Received: from 1wt.eu (wtarreau.pck.nerim.net [62.212.114.60]) by ietfa.amsl.com (Postfix) with ESMTP id DCC97129B5B for <quic@ietf.org>; Thu, 27 Jul 2017 07:20:14 -0700 (PDT)
Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id v6REK2OU003825; Thu, 27 Jul 2017 16:20:02 +0200
Date: Thu, 27 Jul 2017 16:20:02 +0200
From: Willy Tarreau <w@1wt.eu>
To: Subodh Iyengar <subodh@fb.com>
Cc: Christian Huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Subject: Re: Closing on CONNECTION_CLOSE
Message-ID: <20170727142002.GD3401@1wt.eu>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <MWHPR15MB14558B64A6166EB2C3E66F03B6BE0@MWHPR15MB1455.namprd15.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <MWHPR15MB14558B64A6166EB2C3E66F03B6BE0@MWHPR15MB1455.namprd15.prod.outlook.com>
User-Agent: Mutt/1.6.1 (2016-04-27)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/_WUv742h8wJ4ztdtkzil3wC6bJE>
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: Thu, 27 Jul 2017 14:20:17 -0000

On Thu, Jul 27, 2017 at 02:08:33PM +0000, Subodh Iyengar wrote:
> I favor the RST model as well.
> You'll end up having to keep a loss timeout even in the FIN model because
> of ACKs being lost / the remote side shutting for unrelated reasons / silently closing
> their connection.

I prefer the RST model as well in general, but it's important to keep in
mind that it doesn't apply perfectly everywhere. In TCP, when the receiver
is waiting for data and has nothing to say and the sender suddenly sends
an RST which is lost, the sender definitely closes and the receiver stays
open forever. This is even more visible through firewalls because if the
RST is lost between the firewall and the receiver, the firewall will quickly
close its session and any receiver's packets will then be blocked. The usual
case is when a client/proxy has to close an idle connection going to a server
and cannot use the regular FIN model for TIME_WAIT accumulation reasons. In
this case using massive RSTs occasionally exhibits zombie connections on the
server.

I don't think it would be an issue with QUIC since the use cases are very
dynamic connections where timeouts could be expected to be reasonably low
(ie no need to have multi-days timeouts there as is sometimes done with
SSH connections).

> As an aside on the topic of TIME_WAIT itself:
> 
> The reason I'm aware that TIME_WAIT exists in TCP is to protect us from the local port
> being re-bound to another connection and the data from the old connection interfering with
> the new connection. With QUIC this seems less of an issue though because a
> combination of (connection id + packet type + packet encryption) can be used to determine whether or
> not the packet was valid to be received in the context of a new connection. Going with the
> philosophy of dropping packets on the floor that are malformed that martin proposed during
> the last WG meeting, do we even need a TIME_WAIT state in QUIC?

Agreed, TIME_WAIT is a protection against fast reuse of a scarce resource
which could cause confusion (source ports, sequence numbers). If we have
no risk of accidently mixing up connections, better get rid of it.

Willy


From nobody Thu Jul 27 07:47:34 2017
Return-Path: <thomas.swindells@nokia.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 4F5F4131B79 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:47:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.922
X-Spam-Level: 
X-Spam-Status: No, score=-1.922 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 Oereao8y4-N4 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:47:31 -0700 (PDT)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0109.outbound.protection.outlook.com [104.47.0.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B660127ABE for <quic@ietf.org>; Thu, 27 Jul 2017 07:47:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=a2XePqfEbftreUyOwy76OYoLLP+/lpBwxUzIolNIKoQ=; b=IGV4StyeITLaMI/0ptYXVhFPYAKy3iCegtbkZmQ11B71z/Ds/zbi+i/ycQkw2DHim1x9WrNRbgb/1A4Pwxy5jNytBqyI1UOZ0YM7bvisB+5ltIs7HcyitoJ4m22ixqlVW5Ch7oyLi3CJ1edemdaU9Gr9mnsuzGy+in6xMWPsCzU=
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com (10.164.41.139) by DB5PR07MB1430.eurprd07.prod.outlook.com (10.166.4.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.10; Thu, 27 Jul 2017 14:47:28 +0000
Received: from DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354]) by DB5PR07MB1237.eurprd07.prod.outlook.com ([fe80::400b:454d:9821:a354%13]) with mapi id 15.01.1304.014; Thu, 27 Jul 2017 14:47:28 +0000
From: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
To: Christian Huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Subject: RE: Closing on CONNECTION_CLOSE
Thread-Topic: Closing on CONNECTION_CLOSE
Thread-Index: AQHTBt76w4nxTH3U7Eex9LVgpWufjqJntD6AgAALwzA=
Date: Thu, 27 Jul 2017 14:47:28 +0000
Message-ID: <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net>
In-Reply-To: <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=thomas.swindells@nokia.com; 
x-originating-ip: [82.69.101.84]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DB5PR07MB1430; 7:Ai7ctFbE+7ys1jPlHS6U2odAieBGmt0Z5TichyOcd/kgbXQ3+IoiAZpmnDHAN6QUPxdskv80cyxLKHNEzrF1lAfRfrGimrcPXQee/PpmE0UOQsdlqbC/rkwygrJXoFzYhgALTYeMCAoOnseTTkq4LEGR1hDbIqOVS5+R5GROcodY2/w5YTvV0Jwqa1CrdW2QQLs+POLkMvNXKpAGq43Lfc10E83YnC4vJZHy3OyedRaDcAfCFxdZQOwtkK2Cbrm8Iemg2RYv5FHsZYT4jkURkbK1Y12MHVa/mdCA2FTtsMQeUElUI+Eahog3d1B7pmUvcU1KuTq29hhN7agOQRg8kFebSqBh1oIcpwu//gIC50927zMykh2ZACa3FxAVqjBXb/IMm9v0LOJ5InLW8DGyN+ZPMR+l9jjQn/BPOdW3U4ewnWq7CxUagiGxpAq60u3A+1zGr9i55Hz/suAiNvI0XDnsMKN2MIzo22MW6Y6IKBT2eDMPOYvtXdtBrUoqMI81/aZSzuI68d1Ks30ENjOf7aJEg13BnzoE7cIhM8wGUyvLQEHLmeAsmkzKCD68v6ho2N/Y2gK36uS2L21PmgwE//DESBkjMiqj17yHm0ZHI1SB7cuzy/Ab4DABZwjJT5flUkzs0oXxLD+HMksffQXmV2/qt/6SYkRKHP/Tv4+SYyWqNIvbC4So5xkdTu5meHvvuUdD0ERh/JCJa3D8hDsowHCzoP3bjCmP3ryn4hrVuOgk5F5/wNk+zJOsknK+t/r95H2Luubv6wlJUa4ODC1l+jkhZ2rpDw5PwRZQDgKw52s=
x-ms-office365-filtering-correlation-id: 3d597615-0631-4f4e-764e-08d4d4fe6775
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254109)(48565401081)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB5PR07MB1430; 
x-ms-traffictypediagnostic: DB5PR07MB1430:
x-exchange-antispam-report-test: UriScan:;
x-microsoft-antispam-prvs: <DB5PR07MB143094460D638ADA20F1E88984BE0@DB5PR07MB1430.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR07MB1430; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR07MB1430; 
x-forefront-prvs: 03818C953D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39860400002)(39400400002)(39850400002)(39450400003)(39840400002)(189002)(199003)(25786009)(14454004)(76176999)(3280700002)(6246003)(2501003)(6436002)(55016002)(3660700001)(2906002)(7696004)(38730400002)(53936002)(7116003)(478600001)(33656002)(50986999)(74316002)(54356999)(9686003)(101416001)(99286003)(5250100002)(189998001)(7736002)(8936002)(2950100002)(305945005)(81166006)(81156014)(2900100001)(8676002)(68736007)(6506006)(229853002)(66066001)(105586002)(97736004)(102836003)(86362001)(5660300001)(106356001)(6116002)(3846002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB1430; H:DB5PR07MB1237.eurprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2017 14:47:28.7521 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1430
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/D0fV345e5-jYfMvUmxwbas8HSEk>
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: Thu, 27 Jul 2017 14:47:33 -0000

PiA+IEhvd2V2ZXIsIHRoaXMgaXNuJ3QgdGhhdCBiaWcgYSBkZWFsLCBiZWNhdXNlIGFzDQo+ID4g
bm90ZWQgYWJvdmUsIHlvdSBjYW4gdGhyb3cgYXdheSB0aGUgY29ubmVjdGlvbiBhbmQganVzdCBz
ZW5kIGEgc3RvcmVkDQo+ID4gcGFja2V0LCBvciBhbHRlcm5hdGVseSwganVzdCBzZW5kIHB1Ymxp
YyByZXNldCAob3IganVzdCBnbyBzaWxlbnQpLg0KU2hvdWxkL3dvdWxkIHlvdSBoYXZlIHRvIGdl
bmVyYXRlIGEgbmV3bHkgZW5jcnlwdGVkIHBhY2tldCB3aXRoIGEgbmV3IHBhY2tldCBudW1iZXIg
ZWFjaCB0aW1lIChhcyBwZXIgb3RoZXIgcmV0cmFuc21pc3Npb25zKT8NCk9yIGlzIHRoaXMgYSBz
cGVjaWFsIGNhc2UgYmVjYXVzZSBpdCBpcyB0aGUgZmluYWwgcGFja2V0IGFuZCBzbyBkb2Vzbid0
IG1hdHRlciBpZiBpdCBpcyBkdXBsaWNhdGVkPw0KDQo=


From nobody Thu Jul 27 07:51:27 2017
Return-Path: <ianswett@google.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 E6A15131B79 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:51:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 o_CrQB9bqxUQ for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:51:24 -0700 (PDT)
Received: from mail-yw0-x229.google.com (mail-yw0-x229.google.com [IPv6:2607:f8b0:4002:c05::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 3BD2C12ECEF for <quic@ietf.org>; Thu, 27 Jul 2017 07:51:24 -0700 (PDT)
Received: by mail-yw0-x229.google.com with SMTP id x125so107740494ywa.0 for <quic@ietf.org>; Thu, 27 Jul 2017 07:51:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=oZdbX2o7B4Np71RNnEQdjMfAQTPGrTtA1z1M997+MXA=; b=AtBiDpjqF9RTJ32h3yhkDJe+weZVCzyqImXgbFUErSOF+IPik7Y/Ulg1wMr/0ePsmE lpPumVG2ClouIbK7ouATQkXVXNvjYC5iFDEdgBSwZo53zCAniiswrvnxkFYeqFcDKrvr 1pwouzdFyLVMaOK5LPdtY5ZtzEIl8LDD0QPBuVegvxAEq0YaAXlXeZA0XquBK1aS1Suv f8lit6UEsda+heHfSHNPbuDFVhQAZY/tgfQ0s9Uqf3LSy3lQgiUXIiNQXyxWBPm47XKV saK331WOsXScjZoUdSYUWMxsaqwv0ZT8kv5PhT5OowA+wsElUbNxhF3KhbH1BWPvRuv1 nT4A==
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=oZdbX2o7B4Np71RNnEQdjMfAQTPGrTtA1z1M997+MXA=; b=bDP6AlS4pJX+29XiubiuX+Kq1Qv31XzunrzUSDKF3Ww+yNlwBemd6r6UEAWjQra7fj UQHWr7wjxJq8hmcOeHNWvPefji+uLYRasOz2Xw4m9KS7Xx0zQ44JsLFqoGoH7+FnYKml kxJdFuJ7y6vNU4melhM5rNntRvUSJJCBvy0kQtDPOO9dlCcrWu10ziPMunXFiUO9J4eK 0R3QU+KRHhSaZ9bovKUHbJzsVMkgaLwUXBU7pAocTXUH76t4AaiSF+nZRfDJpMispClE McAIKYhYYfFLPzOvn86XH3WzYKBatUNPsC1VvkBzxfDQU4KVsaGdtWflbip1INdhEie2 9ZLA==
X-Gm-Message-State: AIVw1125tLTc85S+74+O/rd0NRQ+GP8DlyPqLFG6e0AI2ab5Ou1mwZ4c VRTENt50A6jcS9TXPkugkxPSXzLwo6o0
X-Received: by 10.37.65.201 with SMTP id o192mr3736387yba.264.1501167083302; Thu, 27 Jul 2017 07:51:23 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.217.137 with HTTP; Thu, 27 Jul 2017 07:51:02 -0700 (PDT)
In-Reply-To: <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com>
From: Ian Swett <ianswett@google.com>
Date: Thu, 27 Jul 2017 10:51:02 -0400
Message-ID: <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Cc: Christian Huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11c02d20c0164505554db279"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/M3L_V9qpxfra6ST4zUuDDKGXA3c>
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: Thu, 27 Jul 2017 14:51:26 -0000

--001a11c02d20c0164505554db279
Content-Type: text/plain; charset="UTF-8"

I would recommend sending an identical packet every time, since there's no
value to encrypting a new one with a new packet number, but it increases
the amount of state you have to keep and the CPU to respond to spurious
packets.

On Thu, Jul 27, 2017 at 10:47 AM, Swindells, Thomas (Nokia - GB/Cambridge,
UK) <thomas.swindells@nokia.com> wrote:

> > > However, this isn't that big a deal, because as
> > > noted above, you can throw away the connection and just send a stored
> > > packet, or alternately, just send public reset (or just go silent).
> Should/would you have to generate a newly encrypted packet with a new
> packet number each time (as per other retransmissions)?
> Or is this a special case because it is the final packet and so doesn't
> matter if it is duplicated?
>
>

--001a11c02d20c0164505554db279
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I would recommend sending an identical packet every time, =
since there&#39;s no value to encrypting a new one with a new packet number=
, but it increases the amount of state you have to keep and the CPU to resp=
ond to spurious packets.</div><div class=3D"gmail_extra"><br><div class=3D"=
gmail_quote">On Thu, Jul 27, 2017 at 10:47 AM, Swindells, Thomas (Nokia - G=
B/Cambridge, UK) <span dir=3D"ltr">&lt;<a href=3D"mailto:thomas.swindells@n=
okia.com" target=3D"_blank">thomas.swindells@nokia.com</a>&gt;</span> wrote=
:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex"><span class=3D"">&gt; &gt; However, thi=
s isn&#39;t that big a deal, because as<br>
&gt; &gt; noted above, you can throw away the connection and just send a st=
ored<br>
&gt; &gt; packet, or alternately, just send public reset (or just go silent=
).<br>
</span>Should/would you have to generate a newly encrypted packet with a ne=
w packet number each time (as per other retransmissions)?<br>
Or is this a special case because it is the final packet and so doesn&#39;t=
 matter if it is duplicated?<br>
<br>
</blockquote></div><br></div>

--001a11c02d20c0164505554db279--


From nobody Thu Jul 27 07:57:52 2017
Return-Path: <ekr@rtfm.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 98F75132186 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:57:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 TzmfMplIL9iM for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 07:57:43 -0700 (PDT)
Received: from mail-yw0-x232.google.com (mail-yw0-x232.google.com [IPv6:2607:f8b0:4002:c05::232]) (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 F255F132036 for <quic@ietf.org>; Thu, 27 Jul 2017 07:57:16 -0700 (PDT)
Received: by mail-yw0-x232.google.com with SMTP id i6so73961271ywb.1 for <quic@ietf.org>; Thu, 27 Jul 2017 07:57:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=sRc7eFt8vNvbFexXmcYDOAqcIKu4FZKql7XM2MU7ZmM=; b=nXSWkAA8wb5Aa/8Rzu1+g7dXIL0Hks0DBKtWWfKb/qU90uFeB5CMHDJdXQYpGRnmgw phxB9+vontobVdRoqjIc3tpU9OOJsfgBfLPXFr/now3rxw2hxr8rfYFziAgXP4gfEIo3 mQVXB6xy9Ew3sjEsp+vNQF/Pbk+BbCh/f7s/Yndvu39jg4iWBUu6L+Ejnr1mcoI9M/7k /XPYo48g8selaBE5umMONVVNhizJA6sqeIwcatnD1CPXA6BhebbAnQ892H/shI8GkknJ QteBsmYKz9XyRiDHIeG4TvYHeauo9vjzkjwfzQAYrRUXxvdNyCFE+I56lSTCtHnCWUeW zpKQ==
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=sRc7eFt8vNvbFexXmcYDOAqcIKu4FZKql7XM2MU7ZmM=; b=HYipuabFmrGTkoQG+RZBFNSz5I4oLp/TPqav1bzPADpjcvHziVFv644Dbshw68AV+C kcSj/73eHhX+8T7n+2TZpNmaixcPp+5q7kRY9c7v1P/+7nwCmAc4Uqk8goHWfRvg81x6 8eVwVinV4qc1lpCy3nTYlBVPYYgsNvbbY6s0CWE2StpRhxcXfTrSiFypxwKjYVH3A+/a lrWbJ5Jv8yqsQWQ385oJ0NsJswjKgTIHSmbMLHVtgqAxMEeJjsFmC7WIDUxsSqVIZKxp hWa694X4YWX41ElhlRgN1peFCxmxW/Di7tYRIneTJPy+rJN1Oq2GTxqmp/wBNQZmgn6/ ZetQ==
X-Gm-Message-State: AIVw1121gKVp8QImX6NVqToYRrNRHosurFBhTy23OnyCvPNNNuOZUzxZ ITFVbL25KHJmU0minRWmorw1ItVTOH27
X-Received: by 10.37.42.15 with SMTP id q15mr3745763ybq.204.1501167436099; Thu, 27 Jul 2017 07:57:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Thu, 27 Jul 2017 07:56:35 -0700 (PDT)
In-Reply-To: <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 27 Jul 2017 07:56:35 -0700
Message-ID: <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Ian Swett <ianswett@google.com>
Cc: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, "quic@ietf.org" <quic@ietf.org>, Christian Huitema <huitema@huitema.net>
Content-Type: multipart/alternative; boundary="001a1144191ec718f205554dc736"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/gdtbKy9RWHQn1Ymdlx0fxw4FuTg>
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: Thu, 27 Jul 2017 14:57:46 -0000

--001a1144191ec718f205554dc736
Content-Type: text/plain; charset="UTF-8"

I just filed a PR for this at:
https://github.com/quicwg/base-drafts/pull/705

It explicitly permits duplication.

-Ekr


On Thu, Jul 27, 2017 at 7:51 AM, Ian Swett <ianswett@google.com> wrote:

> I would recommend sending an identical packet every time, since there's no
> value to encrypting a new one with a new packet number, but it increases
> the amount of state you have to keep and the CPU to respond to spurious
> packets.
>
> On Thu, Jul 27, 2017 at 10:47 AM, Swindells, Thomas (Nokia - GB/Cambridge,
> UK) <thomas.swindells@nokia.com> wrote:
>
>> > > However, this isn't that big a deal, because as
>> > > noted above, you can throw away the connection and just send a stored
>> > > packet, or alternately, just send public reset (or just go silent).
>> Should/would you have to generate a newly encrypted packet with a new
>> packet number each time (as per other retransmissions)?
>> Or is this a special case because it is the final packet and so doesn't
>> matter if it is duplicated?
>>
>>
>

--001a1144191ec718f205554dc736
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I just filed a PR for this at:<div><a href=3D"https://gith=
ub.com/quicwg/base-drafts/pull/705">https://github.com/quicwg/base-drafts/p=
ull/705</a><br></div><div><br></div><div>It explicitly permits duplication.=
</div><div><br></div><div>-Ekr</div><div><br></div></div><div class=3D"gmai=
l_extra"><br><div class=3D"gmail_quote">On Thu, Jul 27, 2017 at 7:51 AM, Ia=
n Swett <span dir=3D"ltr">&lt;<a href=3D"mailto:ianswett@google.com" target=
=3D"_blank">ianswett@google.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr">I would recommend sending an identical packe=
t every time, since there&#39;s no value to encrypting a new one with a new=
 packet number, but it increases the amount of state you have to keep and t=
he CPU to respond to spurious packets.</div><div class=3D"HOEnZb"><div clas=
s=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Thu, =
Jul 27, 2017 at 10:47 AM, Swindells, Thomas (Nokia - GB/Cambridge, UK) <spa=
n dir=3D"ltr">&lt;<a href=3D"mailto:thomas.swindells@nokia.com" target=3D"_=
blank">thomas.swindells@nokia.com</a>&gt;</span> wrote:<br><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex"><span>&gt; &gt; However, this isn&#39;t that big a deal, bec=
ause as<br>
&gt; &gt; noted above, you can throw away the connection and just send a st=
ored<br>
&gt; &gt; packet, or alternately, just send public reset (or just go silent=
).<br>
</span>Should/would you have to generate a newly encrypted packet with a ne=
w packet number each time (as per other retransmissions)?<br>
Or is this a special case because it is the final packet and so doesn&#39;t=
 matter if it is duplicated?<br>
<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>

--001a1144191ec718f205554dc736--


From nobody Thu Jul 27 08:35:55 2017
Return-Path: <jri@google.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 5B2C3129B34 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 08:35:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 cWVHUtzi8PoA for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 08:35:51 -0700 (PDT)
Received: from mail-pg0-x22f.google.com (mail-pg0-x22f.google.com [IPv6:2607:f8b0:400e:c05::22f]) (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 527D8124217 for <quic@ietf.org>; Thu, 27 Jul 2017 08:35:51 -0700 (PDT)
Received: by mail-pg0-x22f.google.com with SMTP id k190so33963598pgk.5 for <quic@ietf.org>; Thu, 27 Jul 2017 08:35:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=cyg0Ym8fBkyUiqkQSqZpt/4XB2eAqysTStgYlplz4oc=; b=bjcrYyaoAiIiJKGnLNEINsPBrbxsu6MnVuknrVnNqaNUJnfKxkV8Ib4GE6frej9GUV MJ9f9TgiPlaz2HJQBBGHTfBmcOlqqTRIIIdrkJsaR3hmuveMo83ajTDVnGinvgH4479G FT+cA+gV70PGAmEMpno5v1F5aIMdxzoafoKEVZ5SHWalzDVJZ1y3+GYa/kxmdSMWKW8D GVbmQOzHhGGvjKRoDPLk0C/f6HfoIlcKAOHZc2KJ5aNk66SGOtNqTEZ4EXatIMRNGOE5 QTICWY7alJJ9zmpM6pbAMBO8Zq0C/u9s8nQkVTUYDwootp4Vc0/voZ/xymFN7aE4i4ZA 6d5w==
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=cyg0Ym8fBkyUiqkQSqZpt/4XB2eAqysTStgYlplz4oc=; b=gla5fBDZYoLTxPd7ZlCe8B8yLuRqR9TY83+XM8X9nIUdMqlJRTBBln0kt4ftOUd27Y 2BS8gINFX7+4VxwuXIIDf3YOmq3spE60Wowk6MU699cdnORPz9C6FEnVqwuW9F5Ll3GV C0sXo4ijJY5+9kYJZRSr+4RLymywQUTQReIkZ1f75P9MA4FMwP90lhTYiDhXatfBWXUM nef8761t8GQy+aU0CTJovHGR+RdgDG5ICIVELoj2gU1EzeWUkg2rSzYpCK4jNwkjt3Hv zxfXZT/MtG9R4P92y9Vmxv7vGbQGsT31m3D3IOfWdMB0DV4csi3lJm16LfbsFdB2utja pS0A==
X-Gm-Message-State: AIVw113YVSDwV4IJ1BNZS7udB0/Xj/yNsBvHuvFbRPaE4M3eXbn/FPSj Qi7tBXBAJl/sQ1La1mIWycMrS5Rdh2/f
X-Received: by 10.84.216.81 with SMTP id f17mr4975933plj.117.1501169750355; Thu, 27 Jul 2017 08:35:50 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.153.19 with HTTP; Thu, 27 Jul 2017 08:35:49 -0700 (PDT)
Received: by 10.100.153.19 with HTTP; Thu, 27 Jul 2017 08:35:49 -0700 (PDT)
In-Reply-To: <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com> <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com>
From: Jana Iyengar <jri@google.com>
Date: Thu, 27 Jul 2017 15:35:49 +0000
Message-ID: <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Eric Rescorla <ekr@rtfm.com>
Cc: IETF QUIC WG <quic@ietf.org>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>, Christian Huitema <huitema@huitema.net>
Content-Type: multipart/alternative; boundary="94eb2c19a6a8b84b9105554e517f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/HyjPTfd97VP8XBcQd29jrqFS2gQ>
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: Thu, 27 Jul 2017 15:35:53 -0000

--94eb2c19a6a8b84b9105554e517f
Content-Type: text/plain; charset="UTF-8"

I'm also in favor of the RST model. Subodh -- to your point about
time_wait, this dovetails with a timeout we need to have in place for
regular connection close, where we must allow for retransmissions to be
sent and for responses to peer's retransmissions. (It's what I call
DRAIN_TIME).

So basically, once a connection close is sent, the sender waits for
DRAIN_TIME and then discards state. The receivers sends an ack and
immediately discards state on receipt.

As ekr notes, receipt of this ack could circumvent the DRAIN_TIME timeout.
TCP time wait accounts for network lifetime of packets, which we don't have
to handle, since once both sides are torn down, there's no danger of an old
connection interfering with a new one. That said, I'm still thinking about
if it's possible for an old packet circling the network to create
connection state when received after all state is torn down... If we want
to ensure that doesn't happen, we'd want to account for network lifetime (2
msl).

On Jul 27, 2017 7:59 AM, "Eric Rescorla" <ekr@rtfm.com> wrote:

> I just filed a PR for this at:
> https://github.com/quicwg/base-drafts/pull/705
>
> It explicitly permits duplication.
>
> -Ekr
>
>
> On Thu, Jul 27, 2017 at 7:51 AM, Ian Swett <ianswett@google.com> wrote:
>
>> I would recommend sending an identical packet every time, since there's
>> no value to encrypting a new one with a new packet number, but it increases
>> the amount of state you have to keep and the CPU to respond to spurious
>> packets.
>>
>> On Thu, Jul 27, 2017 at 10:47 AM, Swindells, Thomas (Nokia -
>> GB/Cambridge, UK) <thomas.swindells@nokia.com> wrote:
>>
>>> > > However, this isn't that big a deal, because as
>>> > > noted above, you can throw away the connection and just send a stored
>>> > > packet, or alternately, just send public reset (or just go silent).
>>> Should/would you have to generate a newly encrypted packet with a new
>>> packet number each time (as per other retransmissions)?
>>> Or is this a special case because it is the final packet and so doesn't
>>> matter if it is duplicated?
>>>
>>>
>>
>

--94eb2c19a6a8b84b9105554e517f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">I&#39;m also in favor of the RST model. Subodh -- to your=
 point about time_wait, this dovetails with a timeout we need to have in pl=
ace for regular connection close, where we must allow for retransmissions t=
o be sent and for responses to peer&#39;s retransmissions. (It&#39;s what I=
 call DRAIN_TIME).<div dir=3D"auto"><br></div><div dir=3D"auto">So basicall=
y, once a connection close is sent, the sender waits for DRAIN_TIME and the=
n discards state. The receivers sends an ack and immediately discards state=
 on receipt.</div><div dir=3D"auto"><br></div><div dir=3D"auto">As ekr note=
s, receipt of this ack could circumvent the DRAIN_TIME timeout. TCP time wa=
it accounts for network lifetime of packets, which we don&#39;t have to han=
dle, since once both sides are torn down, there&#39;s no danger of an old c=
onnection interfering with a new one. That said, I&#39;m still thinking abo=
ut if it&#39;s possible for an old packet circling the network to create co=
nnection state when received after all state is torn down... If we want to =
ensure that doesn&#39;t happen, we&#39;d want to account for network lifeti=
me (2 msl).</div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_q=
uote">On Jul 27, 2017 7:59 AM, &quot;Eric Rescorla&quot; &lt;<a href=3D"mai=
lto:ekr@rtfm.com">ekr@rtfm.com</a>&gt; wrote:<br type=3D"attribution"><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div dir=3D"ltr">I just filed a PR for this at:<d=
iv><a href=3D"https://github.com/quicwg/base-drafts/pull/705" target=3D"_bl=
ank">https://github.com/quicwg/<wbr>base-drafts/pull/705</a><br></div><div>=
<br></div><div>It explicitly permits duplication.</div><div><br></div><div>=
-Ekr</div><div><br></div></div><div class=3D"gmail_extra"><br><div class=3D=
"gmail_quote">On Thu, Jul 27, 2017 at 7:51 AM, Ian Swett <span dir=3D"ltr">=
&lt;<a href=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@googl=
e.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"l=
tr">I would recommend sending an identical packet every time, since there&#=
39;s no value to encrypting a new one with a new packet number, but it incr=
eases the amount of state you have to keep and the CPU to respond to spurio=
us packets.</div><div class=3D"m_3782415551550094413HOEnZb"><div class=3D"m=
_3782415551550094413h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_=
quote">On Thu, Jul 27, 2017 at 10:47 AM, Swindells, Thomas (Nokia - GB/Camb=
ridge, UK) <span dir=3D"ltr">&lt;<a href=3D"mailto:thomas.swindells@nokia.c=
om" target=3D"_blank">thomas.swindells@nokia.com</a>&gt;</span> wrote:<br><=
blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><span>&gt; &gt; However, this isn&#39;t that =
big a deal, because as<br>
&gt; &gt; noted above, you can throw away the connection and just send a st=
ored<br>
&gt; &gt; packet, or alternately, just send public reset (or just go silent=
).<br>
</span>Should/would you have to generate a newly encrypted packet with a ne=
w packet number each time (as per other retransmissions)?<br>
Or is this a special case because it is the final packet and so doesn&#39;t=
 matter if it is duplicated?<br>
<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</blockquote></div></div>

--94eb2c19a6a8b84b9105554e517f--


From nobody Thu Jul 27 08:48:43 2017
Return-Path: <ekr@rtfm.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 DC298131CB3 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 08:48:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-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 paSOXOB3XmUA for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 08:48:39 -0700 (PDT)
Received: from mail-yw0-x231.google.com (mail-yw0-x231.google.com [IPv6:2607:f8b0:4002:c05::231]) (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 326E412EC4B for <quic@ietf.org>; Thu, 27 Jul 2017 08:48:39 -0700 (PDT)
Received: by mail-yw0-x231.google.com with SMTP id x125so108799862ywa.0 for <quic@ietf.org>; Thu, 27 Jul 2017 08:48:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=7+StB1fMeY2nj3u4pYODy+luhZisRjikUpZkA/pnzLA=; b=pzAFnO1POGHZiz6pcfe6qR+vASU0SKaIZISmyUAkuIa/syTlT8gOH3f6yHHMK3hAwM msBs64Nz9T1ry42mTXOzIAIGQHG3UEvOn7zGKg1pHJnz1jM9XrJFFJZH5ndjMDWyu6R8 SUJcm1p5oIQommqabnC0nXO+VCuBzoSPtVu/KUXLL6k+EmwzVD7oJxxti1QnRFdUIh7R kWxsbWaFH9bbD0oigwjSNTDLkQ6RjNV3xcl6T1qyVkY7ueQuf97wJVoX92VChPR9JIZ7 2REYWzxiHybspW3A2QRCAlkZazEjBxBWVktF1u1BAzgvMvSfFk8+oAKuxd4VJ+77nDSV +k/A==
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=7+StB1fMeY2nj3u4pYODy+luhZisRjikUpZkA/pnzLA=; b=sFg+RatTQwJqa3oxGZUskamT/1xTQ0Puu99rvVLht0PKKbdP0kV2cksZoentHfMzvR JnRT2pwQaq9c55ErvktayqChhH3/Vsog4h7dQLGLdmhfRMnAcGjaBNYaeIuVElStlDGX u35oP7N/pQVYT4mVPTkD/v4agwW/EzRfXyDLLljqn7MP4mrSujgUV9ihVKhd2coJnrDQ pLJs3BmdXyLm4q7gBpbyLxZISCNl0eESoJQWa+ER52mklCmtrdk28Lhx7Yy1TnMOQJ/M se690sCFVDwNVrXkMhp4DI8GvWYN4HwfZuQmeJlgV8HJT3cpqYYV9MEaTsug8OBInjS4 rnzQ==
X-Gm-Message-State: AIVw110MXx05bW54sWT3EHeCk8kTTLArLWLLf/bgHNtmpKUgpV/l8c4j bYT4WuzUkR+K1FVVutSObUNTbe2yGBrx
X-Received: by 10.37.248.12 with SMTP id u12mr4049489ybd.248.1501170518297; Thu, 27 Jul 2017 08:48:38 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.36.12 with HTTP; Thu, 27 Jul 2017 08:47:57 -0700 (PDT)
In-Reply-To: <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com> <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com> <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 27 Jul 2017 08:47:57 -0700
Message-ID: <CABcZeBO8X=er-J=yfk+5p1v-SNzP1RztCv4bWA0cg7OAOzqd-A@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Jana Iyengar <jri@google.com>
Cc: IETF QUIC WG <quic@ietf.org>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>, Christian Huitema <huitema@huitema.net>
Content-Type: multipart/alternative; boundary="f403045db8667dc44005554e7f81"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/XyhFD4MhvYvo0438tXsWri-2kXw>
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: Thu, 27 Jul 2017 15:48:42 -0000

--f403045db8667dc44005554e7f81
Content-Type: text/plain; charset="UTF-8"

On Thu, Jul 27, 2017 at 8:35 AM, Jana Iyengar <jri@google.com> wrote:

> I'm also in favor of the RST model. Subodh -- to your point about
> time_wait, this dovetails with a timeout we need to have in place for
> regular connection close, where we must allow for retransmissions to be
> sent and for responses to peer's retransmissions. (It's what I call
> DRAIN_TIME).
>
> So basically, once a connection close is sent, the sender waits for
> DRAIN_TIME and then discards state. The receivers sends an ack and
> immediately discards state on receipt.
>

Jana,

I'm finding myself a bit confused. Can you perhaps draw me a diagram of
what you mean when
you say "allow for retransmissions to be sent"...?

-Ekr


> As ekr notes, receipt of this ack could circumvent the DRAIN_TIME timeout.
> TCP time wait accounts for network lifetime of packets, which we don't have
> to handle, since once both sides are torn down, there's no danger of an old
> connection interfering with a new one. That said, I'm still thinking about
> if it's possible for an old packet circling the network to create
> connection state when received after all state is torn down... If we want
> to ensure that doesn't happen, we'd want to account for network lifetime (2
> msl).
>
> On Jul 27, 2017 7:59 AM, "Eric Rescorla" <ekr@rtfm.com> wrote:
>
>> I just filed a PR for this at:
>> https://github.com/quicwg/base-drafts/pull/705
>>
>> It explicitly permits duplication.
>>
>> -Ekr
>>
>>
>> On Thu, Jul 27, 2017 at 7:51 AM, Ian Swett <ianswett@google.com> wrote:
>>
>>> I would recommend sending an identical packet every time, since there's
>>> no value to encrypting a new one with a new packet number, but it increases
>>> the amount of state you have to keep and the CPU to respond to spurious
>>> packets.
>>>
>>> On Thu, Jul 27, 2017 at 10:47 AM, Swindells, Thomas (Nokia -
>>> GB/Cambridge, UK) <thomas.swindells@nokia.com> wrote:
>>>
>>>> > > However, this isn't that big a deal, because as
>>>> > > noted above, you can throw away the connection and just send a
>>>> stored
>>>> > > packet, or alternately, just send public reset (or just go silent).
>>>> Should/would you have to generate a newly encrypted packet with a new
>>>> packet number each time (as per other retransmissions)?
>>>> Or is this a special case because it is the final packet and so doesn't
>>>> matter if it is duplicated?
>>>>
>>>>
>>>
>>

--f403045db8667dc44005554e7f81
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Jul 27, 2017 at 8:35 AM, Jana Iyengar <span dir=3D"ltr">&lt;<a =
href=3D"mailto:jri@google.com" target=3D"_blank">jri@google.com</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"auto">I&#39;m also=
 in favor of the RST model. Subodh -- to your point about time_wait, this d=
ovetails with a timeout we need to have in place for regular connection clo=
se, where we must allow for retransmissions to be sent and for responses to=
 peer&#39;s retransmissions. (It&#39;s what I call DRAIN_TIME).<div dir=3D"=
auto"><br></div><div dir=3D"auto">So basically, once a connection close is =
sent, the sender waits for DRAIN_TIME and then discards state. The receiver=
s sends an ack and immediately discards state on receipt.</div></div></bloc=
kquote><div><br></div><div>Jana,</div><div><br></div><div>I&#39;m finding m=
yself a bit confused. Can you perhaps draw me a diagram of what you mean wh=
en</div><div>you say &quot;allow for retransmissions to be sent&quot;...?</=
div><div><br></div><div>-Ekr</div><div><br></div><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex"><div dir=3D"auto"><div dir=3D"auto"><br></div><div dir=3D"auto">As ekr=
 notes, receipt of this ack could circumvent the DRAIN_TIME timeout. TCP ti=
me wait accounts for network lifetime of packets, which we don&#39;t have t=
o handle, since once both sides are torn down, there&#39;s no danger of an =
old connection interfering with a new one. That said, I&#39;m still thinkin=
g about if it&#39;s possible for an old packet circling the network to crea=
te connection state when received after all state is torn down... If we wan=
t to ensure that doesn&#39;t happen, we&#39;d want to account for network l=
ifetime (2 msl).</div></div><div class=3D"HOEnZb"><div class=3D"h5"><div cl=
ass=3D"gmail_extra"><br><div class=3D"gmail_quote">On Jul 27, 2017 7:59 AM,=
 &quot;Eric Rescorla&quot; &lt;<a href=3D"mailto:ekr@rtfm.com" target=3D"_b=
lank">ekr@rtfm.com</a>&gt; wrote:<br type=3D"attribution"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div dir=3D"ltr">I just filed a PR for this at:<div><a href=
=3D"https://github.com/quicwg/base-drafts/pull/705" target=3D"_blank">https=
://github.com/quicwg/base<wbr>-drafts/pull/705</a><br></div><div><br></div>=
<div>It explicitly permits duplication.</div><div><br></div><div>-Ekr</div>=
<div><br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Jul 27, 2017 at 7:51 AM, Ian Swett <span dir=3D"ltr">&lt;<a hre=
f=3D"mailto:ianswett@google.com" target=3D"_blank">ianswett@google.com</a>&=
gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">I woul=
d recommend sending an identical packet every time, since there&#39;s no va=
lue to encrypting a new one with a new packet number, but it increases the =
amount of state you have to keep and the CPU to respond to spurious packets=
.</div><div class=3D"m_-4586929342374614807m_3782415551550094413HOEnZb"><di=
v class=3D"m_-4586929342374614807m_3782415551550094413h5"><div class=3D"gma=
il_extra"><br><div class=3D"gmail_quote">On Thu, Jul 27, 2017 at 10:47 AM, =
Swindells, Thomas (Nokia - GB/Cambridge, UK) <span dir=3D"ltr">&lt;<a href=
=3D"mailto:thomas.swindells@nokia.com" target=3D"_blank">thomas.swindells@n=
okia.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>&g=
t; &gt; However, this isn&#39;t that big a deal, because as<br>
&gt; &gt; noted above, you can throw away the connection and just send a st=
ored<br>
&gt; &gt; packet, or alternately, just send public reset (or just go silent=
).<br>
</span>Should/would you have to generate a newly encrypted packet with a ne=
w packet number each time (as per other retransmissions)?<br>
Or is this a special case because it is the final packet and so doesn&#39;t=
 matter if it is duplicated?<br>
<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</blockquote></div></div>
</div></div></blockquote></div><br></div></div>

--f403045db8667dc44005554e7f81--


From nobody Thu Jul 27 12:49:12 2017
Return-Path: <pmcmanus@mozilla.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 7D7A7129B2A for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 12:49:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.734
X-Spam-Level: 
X-Spam-Status: No, score=-0.734 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_HELO_PASS=-0.001, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
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 H1OhSimK8XnL for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 12:49:08 -0700 (PDT)
Received: from linode64.ducksong.com (linode6only.ducksong.com [IPv6:2600:3c02::f03c:91ff:fe6e:e8da]) by ietfa.amsl.com (Postfix) with ESMTP id 33D5E126CD6 for <quic@ietf.org>; Thu, 27 Jul 2017 12:49:08 -0700 (PDT)
Received: from mail-qt0-f179.google.com (mail-qt0-f179.google.com [209.85.216.179]) by linode64.ducksong.com (Postfix) with ESMTPSA id A27F73A01B for <quic@ietf.org>; Thu, 27 Jul 2017 15:49:06 -0400 (EDT)
Received: by mail-qt0-f179.google.com with SMTP id 16so29058805qtz.4 for <quic@ietf.org>; Thu, 27 Jul 2017 12:49:06 -0700 (PDT)
X-Gm-Message-State: AIVw110QMqNR+QSJDqEw5hSvYrZfeUDSslrNFexKjtwI2THJ6jKrHoM6 bmHZh3uA0l+yWFHJBWAIc7MrR55auw==
X-Received: by 10.237.49.194 with SMTP id 60mr7137543qth.73.1501184946436; Thu, 27 Jul 2017 12:49:06 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.182.17 with HTTP; Thu, 27 Jul 2017 12:49:05 -0700 (PDT)
From: Patrick McManus <pmcmanus@mozilla.com>
Date: Thu, 27 Jul 2017 15:49:05 -0400
X-Gmail-Original-Message-ID: <CAOdDvNpSBDbo-9Z2PYC7uRDBHGEwnaV+5X_rf9rmQXVRjHQohw@mail.gmail.com>
Message-ID: <CAOdDvNpSBDbo-9Z2PYC7uRDBHGEwnaV+5X_rf9rmQXVRjHQohw@mail.gmail.com>
Subject: Issue push id
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a114f6764797fce055551dbd5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/I_7NwMm0XgF3dVu-4aJjpljRhcA>
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: Thu, 27 Jul 2017 19:49:11 -0000

--001a114f6764797fce055551dbd5
Content-Type: text/plain; charset="UTF-8"

re https://github.com/quicwg/base-drafts/pull/701/ which is meant to close
issues 281 and 702.

Basically a big thumbs up - but they're all marked design issues so I
wanted to make sure to make a list comment about the PR. In general I think
when QUIC transport stream IDs show up as copied information into http
level frames (or worse - applications using quic) we've probably made a
mistake. So this push-id-label is great.

-P

--001a114f6764797fce055551dbd5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>re <a href=3D"https://github.com/quicwg/base-drafts/p=
ull/701/">https://github.com/quicwg/base-drafts/pull/701/</a> which is mean=
t to close issues 281 and 702.</div><div><br></div><div>Basically a big thu=
mbs up - but they&#39;re all marked design issues so I wanted to make sure =
to make a list comment about the PR. In general I think when QUIC transport=
 stream IDs show up as copied information into http level frames (or worse =
- applications using quic) we&#39;ve probably made a mistake. So this push-=
id-label is great.</div><div><br></div><div>-P<br></div><div>=C2=A0<br></di=
v></div>

--001a114f6764797fce055551dbd5--


From nobody Thu Jul 27 16:22:19 2017
Return-Path: <martin.thomson@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 9D14C129AA0 for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 16:22:18 -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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=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 zhTi-ODQnoXN for <quic@ietfa.amsl.com>; Thu, 27 Jul 2017 16:22:16 -0700 (PDT)
Received: from mail-it0-x22d.google.com (mail-it0-x22d.google.com [IPv6:2607:f8b0:4001:c0b::22d]) (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 8235C12ECBD for <quic@ietf.org>; Thu, 27 Jul 2017 16:22:16 -0700 (PDT)
Received: by mail-it0-x22d.google.com with SMTP id v205so3776737itf.1 for <quic@ietf.org>; Thu, 27 Jul 2017 16:22:16 -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=VH7nsgTPJOoacWtqPHUF4rExGq600WFycEOptnCrZ3s=; b=oiRqfZTC57F4NNPIVqX3JVFGZt4Q2PPk1dzrWUuaZvUyzrNZVf8kG9onC9xtP6pvfN IkSOQN4e4anGXNaYb/qBdEUQfEFtH2jxSErBm1tlWvpxO0fHjf0Rg2Fd5+k/3v8hXLnn hzlENJiWFD6FFafVuDMjuPCBsZwajEBOYCQooCHjmSbWNxLwpRoFLGlfRcGKSfJSnElw kraWHvZEFs9UXrczOCY0LIXh59cug5uD3R3gBjZk6w1te+oiZVx4iz+6zp5y7viuXJV9 A/skmufd4rxnPjeHXU5IKDuqzvDkwL6RaLqj9pFySJSbhtym5YJRMlXunQZCdGlNRwap Hc/A==
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=VH7nsgTPJOoacWtqPHUF4rExGq600WFycEOptnCrZ3s=; b=C0sz+A0qfswJ/drKCpXp+JeEhPZS2YRorkYqL6S7WnZz7WIk0ksl7mby8Qfq0SyPB8 6hPAwdYs6+tN5puEvAZTw7mu91UBkHtADVXOcc9vcZBJUUvkCpzbsVhzkEWhPYcEFJe4 U/PRPg5VyIArbVma6tdQqZ3Ostr0/ZZaIFef5nO/bt2R4jXds2uROejKgewS4vex/OL9 X5JKv/1JaIObRRmvGszgtTvvweXuS4Pe/VT8arU8Jlvshr7ydWzAFbhktpvG/7he9WjB EGlJJe+tX/D1gDW1fSCjabpyU619JeP+KvqRWpPIBsGAH3BC/Zyz8ubC8E5+lpbjw11V LGLA==
X-Gm-Message-State: AIVw1104+58Jl2jmWOU89RYWfbA6bJm1VSwVuGsQ75o1WEj9PD7g7ydW 6nBFauFCFb9aco9e2W6dA7971FLZw2aD
X-Received: by 10.36.5.68 with SMTP id 65mr7246585itl.140.1501197735877; Thu, 27 Jul 2017 16:22:15 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.42 with HTTP; Thu, 27 Jul 2017 16:22:15 -0700 (PDT)
In-Reply-To: <CAOdDvNpSBDbo-9Z2PYC7uRDBHGEwnaV+5X_rf9rmQXVRjHQohw@mail.gmail.com>
References: <CAOdDvNpSBDbo-9Z2PYC7uRDBHGEwnaV+5X_rf9rmQXVRjHQohw@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 28 Jul 2017 09:22:15 +1000
Message-ID: <CABkgnnVPDmWP0QtCG7cwGNV1kKoOiPPG4YopKepbzxUvrog17g@mail.gmail.com>
Subject: Re: Issue push id
To: Patrick McManus <pmcmanus@mozilla.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/N0bjakZj_5JdJRyEe4UHK2Aow20>
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: Thu, 27 Jul 2017 23:22:19 -0000

Ahh, you beat me to it.  I ran out of time yesterday to do the list
announcement.

Yes, we discussed this briefly in Prague and the feedback I got was
that people wanted to see a PR for describing how to identify pushes
other than by stream ID.  This is that PR.

In the write-up I did, I point out that this allows you to promise the
same thing multiple times and fulfill all those promises just once.
This is somewhat novel.  I'd like to understand if people are willing
to accept this particular trade-off.


On 28 July 2017 at 05:49, Patrick McManus <pmcmanus@mozilla.com> wrote:
> re https://github.com/quicwg/base-drafts/pull/701/ which is meant to close
> issues 281 and 702.
>
> Basically a big thumbs up - but they're all marked design issues so I wanted
> to make sure to make a list comment about the PR. In general I think when
> QUIC transport stream IDs show up as copied information into http level
> frames (or worse - applications using quic) we've probably made a mistake.
> So this push-id-label is great.
>
> -P
>


From nobody Fri Jul 28 05:32:20 2017
Return-Path: <dtikhonov@litespeedtech.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 83C3A131FF0 for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 05:32:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level: 
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=litespeedtech-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 gxP841FPVQag for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 05:32:16 -0700 (PDT)
Received: from mail-qt0-x236.google.com (mail-qt0-x236.google.com [IPv6:2607:f8b0:400d:c0d::236]) (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 8E664131C28 for <quic@ietf.org>; Fri, 28 Jul 2017 05:32:16 -0700 (PDT)
Received: by mail-qt0-x236.google.com with SMTP id p3so76104107qtg.2 for <quic@ietf.org>; Fri, 28 Jul 2017 05:32:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=EYXPCGxURtoU019aAo9a3nsydQNHha2HytP0C1Z9L7w=; b=xqb4b7ehDngUyXh1qFI1kuCyavNFNTFo/AKW82QJq8dO/a4N+Tbt9fKgPJ4SQzAZo8 sh2WITMmtrgJR55zhewlFdxND5nm5Hoy+G58zjIWJ6thAgcH2D0wGkBsTtbCAcHzslrx Xnr3a83Mu2f8UqrS0Mz/Rd1ep98HX2mBl6WMXHBMZjdifgtAJtiDfa+d/ZxtqeRIpdud ILCXIbsILLMxYD2QwD9ZKI50l3I1tgHEdSWvnvZCNJEOVFsVuXpEl0dwm6Sb/rAIiH6W EbFhrCHuFvbPwbzwEgoXhTgHFc/9S8KOuBm1lqlhB6Rh8mmezZb8FCw+zFY+Bwa6yFHe 46cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=EYXPCGxURtoU019aAo9a3nsydQNHha2HytP0C1Z9L7w=; b=C3Q136goSu8M0mBGXD0OHqukiazXwjvOLNqaFe+PENiUVxWEEo81h95R7GQSM8mLsI 9nmb2hXebWdnjpd0J/xFVDPUG022DyL6gKj3LFIQIDpu/MQF984Rmk4gEaI9hQilxlHW LnbzJ6iT6947uJv1i4nhg2THgMr8rpAnGjJF9L2/VFhzlaD/xUT+tjY+irHXP486hjYR OvKFcmzv4AiJt2gx7Gyh4riRPDMwxlRN/o+wRav7GUTP9aXb5F/Axct2czqZICXTDX4i NtiNF5D+RvgTXgbtBeIXTmreF84oGqJc6dflwOlcGjyY2boU8qFyqCkH9Gq5oDJODm/Q fGAQ==
X-Gm-Message-State: AIVw113dqI2jPeqMgOCfk2dk/RWhO/S1pkrkIZa9P1nf2KoeLFm7yW5R /8n2yHWACuALwRt8
X-Received: by 10.200.13.130 with SMTP id s2mr10017737qti.287.1501245135595; Fri, 28 Jul 2017 05:32:15 -0700 (PDT)
Received: from ubuntu-dmitri (ool-2f1636b6.static.optonline.net. [47.22.54.182]) by smtp.gmail.com with ESMTPSA id u3sm15956031qth.95.2017.07.28.05.32.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Jul 2017 05:32:15 -0700 (PDT)
Date: Fri, 28 Jul 2017 08:32:08 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Cc: Mikkel =?iso-8859-1?Q?Fahn=F8e_J=F8rgensen?= <mikkelfj@gmail.com>, Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Subject: Re: Idea for packet numbers
Message-ID: <20170728123208.GA2686@ubuntu-dmitri>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com> <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com> <20170721093732.GA31705@ubuntu-dmitri> <DB5PR07MB1237B7C130AE23585EFF4CB084B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <20170725124109.GA1764@ubuntu-dmitri> <DB5PR07MB1237128AE49E9EC81EC0A43984B80@DB5PR07MB1237.eurprd07.prod.outlook.com> <20170725162701.GA4414@ubuntu-dmitri> <DB5PR07MB12375F358A6DEE98A92D271984B90@DB5PR07MB1237.eurprd07.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <DB5PR07MB12375F358A6DEE98A92D271984B90@DB5PR07MB1237.eurprd07.prod.outlook.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/sz_Z9hXeqmOEMmIyOPKuXKJi9M4>
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: Fri, 28 Jul 2017 12:32:18 -0000

On Wed, Jul 26, 2017 at 09:27:19AM +0000, Swindells, Thomas (Nokia - GB/Cambridge, UK) wrote:
> > > to do that would be to give the ack packet a higher packet number but
> > > then send it before lower marked packets - even potentially if they do
> > > also contain ack frames.
> > 
> > That is a good approach if it does not break packet number derivation.
> > I am not sure whether it can...  The draft says:
> > 
> >   " A packet number is decoded by finding the packet number
> >   " value that is closest to the next expected packet.
> > 
> > Thus, after receiving ACK packet with large gap, which is the next expected
> > packet number from the point of view of the peer?
>
> The spec says that you should give plenty of room in the number space,
> so as long as you haven't reached half your number space across that
> period this should be extremely rare or perhaps impossible.  The worst
> case is that if you do violate it then either you may be requested to
> retransmit some packets, or you just send the original packets first
> and then the ack.

OK -- this should work.  I'd have to work out the math to prove it to
myself, though. :)

> > > For RST_STREAM I think it is permitted that currently queued packets
> > > are still sent, but if they only contain that streams packets then it
> > > is a beneficial optimization if they weren't sent (leaving packet
> > > number gaps).
> > 
> > Current draft says:
> > 
> >   " An endpoint that receives a RST_STREAM frame (and which
> >   " has not sent a FIN or a RST_STREAM) MUST immediately
> >   " respond with a RST_STREAM frame, and MUST NOT send any
> >   " more data on the stream.
> > 
> > I suppose one could interpret "send" to mean "enqueue," but I would err on
> > the side of caution.
>
> With a basic integration between an application and quic stack the
> api would likely just be the application writing a load of data onto
> a stream which then gets multiplexed into a quic connection.  In this
> case the application view would be once it has written it to the
> stream it is being 'sent' - in the same way the assumption is held for
> TCP transmission.  Packetization and enqueuing for transmission would
> therefore be considered part of the sending process and with that API
> it would seem to be fair to send queued data but not allow new writes
> from the application.

Sure, I agree -- I was not talking about the application level at all,
just the QUIC layer.  The application should not be in the business of
sending RST_STREAM frames.

> Assuming no re-encryption/packetization, that is pretty much all you
> can do if packets contain data from multiple stream frames anyway.

If one assumes that, then yes.

> The "immediately respond with a RST_STREAM" perhaps then needs to be
> read as: "immediately, after any pending packets have been transmitted,
> such that no new packets with data from that stream are generated with
> a higher packet number than the RST_STREAM response frame."?

Not unless the "MUST NOT" in the quoted draft paragraph above be changed
to "SHOULD NOT:"  An eager implementation may check whether its peer has
sent stream data after receiving RST_STREAM (which it would know by the]
ACK frame) and terminate the connection.

  - Dmitri.


From nobody Fri Jul 28 05:50:04 2017
Return-Path: <dtikhonov@litespeedtech.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 18652132133 for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 05:49:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.59
X-Spam-Level: 
X-Spam-Status: No, score=-2.59 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=litespeedtech-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 wTe5xIaUZM9z for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 05:49:54 -0700 (PDT)
Received: from mail-qk0-x22c.google.com (mail-qk0-x22c.google.com [IPv6:2607:f8b0:400d:c09::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 6B27113212A for <quic@ietf.org>; Fri, 28 Jul 2017 05:49:54 -0700 (PDT)
Received: by mail-qk0-x22c.google.com with SMTP id u139so56498341qka.1 for <quic@ietf.org>; Fri, 28 Jul 2017 05:49:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=W4nO6/3aw7YCTu6bTw0mnPjfLHMwHCe1LF1ZN2Vqb7o=; b=ROee5jTC7peFWwxtl7KSfUpLJ7n8nHVvlojboUsgmRbTTh74XGMQHiXKkHNTeDpORW 5kP026LHiV9oTJBLfp48vi4zpf1pX/uC3flIQzkLnHERyGsRB4gbqBg2QT/cfOCrXALi oqWQMkBzF8flzF3FMHbzFIolw00p6gxleqYzigQN5pBpTSBM9yoYMIsdCPbaeuH7d8OM yvBe7WjzRZRg/PgXP+N+9FhDdSONuXq47bRIfctu8P2XrncTfVz/7Cw1cUNK29BLAJAT YCttFuKFs3eCDZs1s+dbOLCh6uiIR+gH7wKF1BrmPgWsUzWsOGmtDVyTNv6VHAzbwsgx 7RvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=W4nO6/3aw7YCTu6bTw0mnPjfLHMwHCe1LF1ZN2Vqb7o=; b=fvWhSHQgLaAltiIW9JVK4HzY3GObjMQPMXKdMrpU9bWx2i0fmbXaWndwfd68JkAdYd GA02IMHuFAwDl02hMwsNN9ov3ilBGzcxr3lEcNbNN3dyH8u55l8yZLq8UW0hAV9MsBGD Be/qBX2CCn0RIk39Q8TOP0s18VszZ/w5uFCjC91/2QR60J235pF166uHuG39P53q6TlA NQ4Ds9HH2/+Fbd1eLeXbhozX21JKDRa9ti8g7CE71RYP0nZpNA30BU8TgBZeJd7Itw02 K0rcaXTy5NjglQHm5y/WJrNKRHpxXJ+/+mDTWdqLdXEtLxFacwrdLQPcxZlBVV+R1mPp JIUg==
X-Gm-Message-State: AIVw113nT8/ayLROpkGUNUO/vvgN1HYeL6qEv/TWdywZwjbCLEE8omAP ZHEh+iSSosqipOZh
X-Received: by 10.55.179.4 with SMTP id c4mr10404267qkf.7.1501246193609; Fri, 28 Jul 2017 05:49:53 -0700 (PDT)
Received: from ubuntu-dmitri (ool-2f1636b6.static.optonline.net. [47.22.54.182]) by smtp.gmail.com with ESMTPSA id c3sm6788367qtc.65.2017.07.28.05.49.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Jul 2017 05:49:52 -0700 (PDT)
Date: Fri, 28 Jul 2017 08:49:51 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: Jana Iyengar <jri@google.com>
Cc: Eric Rescorla <ekr@rtfm.com>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>, Ian Swett <ianswett@google.com>
Subject: Re: Closing on CONNECTION_CLOSE
Message-ID: <20170728124951.GB2686@ubuntu-dmitri>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com> <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com> <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/lgxRdmEu_xR-vVCQ4JYsMwYFOGM>
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: Fri, 28 Jul 2017 12:49:56 -0000

On Thu, Jul 27, 2017 at 03:35:49PM +0000, Jana Iyengar wrote:
> That said, I'm still thinking about if it's possible for an old packet
> circling the network to create connection state when received after
> all state is torn down... If we want to ensure that doesn't happen,
> we'd want to account for network lifetime (2
> msl).

Unlikely, because version negotiation occurs when new connection is
established and thus first few incoming packets would have to have the
VERSION bit set:

  " A QUIC connection begins with a client sending a handshake packet. The
  " details of the handshake mechanisms are described in {{handshake}},
  " but all of the initial packets sent from the client to the server
  " MUST use the long header format and MUST specify the version of the
  " protocol being used.

  - Dmitri.


From nobody Fri Jul 28 08:19:02 2017
Return-Path: <prvs=9382f805e7=subodh@fb.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 8B64B131D9F for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 08:19:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level: 
X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com header.b=BY2jGT0I; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=ZKlQp8QE
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 OGAyalt2ewpv for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 08:18:59 -0700 (PDT)
Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DA1F3129AB2 for <quic@ietf.org>; Fri, 28 Jul 2017 08:18:58 -0700 (PDT)
Received: from pps.filterd (m0109332.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v6SFEetD009793 for <quic@ietf.org>; Fri, 28 Jul 2017 08:18:56 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : subject : date : message-id : content-type : mime-version; s=facebook; bh=RZa1NRoFVfTWAAyySFzzF+ZJM9sXb+imd4puPstbbNs=; b=BY2jGT0IbZmbEkxAK3NG2Xv0gJUYyiCwFpBOxe1VVLAQV5tyvmTskrOTKGbEg4HB5peX t/dJjYoUPJ6yPVtiF8guKYIpYjGui5v+RwjiByG203uqgfCnAmPtCjo8+CeAsJ/p80Nc ubz1fWG4p4egBGs9+AjrNxZQBvzcK5B7f0c= 
Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2bywfvj6da-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for <quic@ietf.org>; Fri, 28 Jul 2017 08:18:56 -0700
Received: from PRN-CHUB02.TheFacebook.com (192.168.16.12) by PRN-CHUB11.TheFacebook.com (192.168.16.21) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 28 Jul 2017 08:18:55 -0700
Received: from NAM01-BN3-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.12) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 28 Jul 2017 08:18:54 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;  bh=RZa1NRoFVfTWAAyySFzzF+ZJM9sXb+imd4puPstbbNs=; b=ZKlQp8QEO53gvq7unVPNGXjHOeOMksiFxn6wEkJYt2QSRSWU2C4ddoL0DJhUy0V6HENtzE9Y7EhzME8BwKYR/rvyczBj56YjvO/Oy91eirMXYYJFlatfaf/gL25nHRo0v6PV1kYZS1m+94IDnqhnwQHV1n8gJvyCZksdCFlE66Q=
Received: from MWHPR15MB1455.namprd15.prod.outlook.com (10.173.234.145) by MWHPR15MB1453.namprd15.prod.outlook.com (10.173.234.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Fri, 28 Jul 2017 15:18:52 +0000
Received: from MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) by MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) with mapi id 15.01.1282.023; Fri, 28 Jul 2017 15:18:51 +0000
From: Subodh Iyengar <subodh@fb.com>
To: "quic@ietf.org" <quic@ietf.org>
Subject: flow control description in draft
Thread-Topic: flow control description in draft
Thread-Index: AQHTB7S0p26p684Re025NNzzwCphFg==
Date: Fri, 28 Jul 2017 15:18:51 +0000
Message-ID: <MWHPR15MB1455F1F87FEFB41796F76C6AB6BF0@MWHPR15MB1455.namprd15.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [2620:10d:c091:200::3:b081]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR15MB1453; 20:4NU5Kgd9bFYn0jpVFHglJdUK6LBsqxPzs6vHKs38qYIIzK/V8A13wR2F1j1nqm99ASj+S6kjYu8x6qgZH/+fEi4UWlULES1JTcsTDqyDXvYYPFdg5zGRu7RUXAKJTnTWFVAZtiXVp/7RYwl++t/UhKd106l+0FCpL6KlRdz0h5s=
x-ms-office365-filtering-correlation-id: 03709b1d-18b0-4911-fcd5-08d4d5cbf3fc
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254127)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR15MB1453; 
x-ms-traffictypediagnostic: MWHPR15MB1453:
x-exchange-antispam-report-test: UriScan:;
x-microsoft-antispam-prvs: <MWHPR15MB14532CDC6F3030AEBB449911B6BF0@MWHPR15MB1453.namprd15.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR15MB1453; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR15MB1453; 
x-forefront-prvs: 03827AF76E
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39450400003)(39840400002)(39400400002)(39850400002)(189002)(51444003)(199003)(6506006)(5640700003)(97736004)(54356999)(50986999)(54896002)(6436002)(9686003)(478600001)(2501003)(77096006)(19627405001)(53936002)(2351001)(5660300001)(110136004)(189998001)(7696004)(55016002)(99286003)(38730400002)(106356001)(14454004)(105586002)(102836003)(7736002)(1730700003)(101416001)(81156014)(81166006)(8676002)(68736007)(74316002)(86362001)(2906002)(8936002)(3280700002)(6116002)(25786009)(6916009)(6606003)(3660700001)(33656002)(2900100001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR15MB1453; H:MWHPR15MB1455.namprd15.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR15MB1455F1F87FEFB41796F76C6AB6BF0MWHPR15MB1455namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2017 15:18:51.2415 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1453
X-OriginatorOrg: fb.com
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-28_07:, , signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/vSi73aPbRjXMbPsrayvy3NQqDlo>
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: Fri, 28 Jul 2017 15:19:00 -0000

--_000_MWHPR15MB1455F1F87FEFB41796F76C6AB6BF0MWHPR15MB1455namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

The flow control language in the draft is a bit confusing right now, and I =
could use a bit more clarity on the intention

For example in MAX_DATA and MAX_STREAM_DATA the data is defined as

"A 64-bit unsigned integer indicating the maximum amount of data that can b=
e sent on the entire connection, in units of 1024 octets. That is, the upda=
ted connection-level data limit is determined by multiplying the encoded va=
lue by 1024."

This seems like it means that flow control is advertised in terms of number=
 of bytes that you can send from that moment.

However from the Flow control section:

"A receiver sends MAX_DATA or MAX_STREAM_DATA frames to the sender to adver=
tise additional credit by sending the absolute byte offset in the connectio=
n or stream which it is willing to receive."

I think that we definitely mean offset here in both cases, i.e.

MAX_DATA =3D sum of max offset of all streams that are allowed

MAX_STREAM_DATA =3D max offset on a stream

Let's say the conn flow control limit of the receiver is 50. All units in m=
ultiples of 1024.


initial state of receiver
stream1 -->  [0, 10]
stream2 -->  [0, 20]

stream3 -->  [0, 20]

So the sender has consumed his entire flow control window. Then the receive=
r consumes 10 (*1024) bytes from stream1:

stream1 ---> (10, 10)

stream2 ---> [0, 20]

stream3 ---> [0, 20]


so now the conn window has 10 (*1024) bytes remaining, what does the receiv=
er send in their update:


MAX_DATA =3D 10

or

MAX_DATA =3D 60


I think we mean 60 here. It makes it much easier to maintain the flow contr=
ol in that case.


Subodh



--_000_MWHPR15MB1455F1F87FEFB41796F76C6AB6BF0MWHPR15MB1455namp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"><!-- P {margin-top:0;margi=
n-bottom:0;} --></style>
</head>
<body dir=3D"ltr">
<div id=3D"divtagdefaultwrapper" style=3D"font-size: 12pt; color: rgb(0, 0,=
 0); font-family: Calibri,Helvetica,sans-serif,&quot;EmojiFont&quot;,&quot;=
Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&quot;Seg=
oe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols;" dir=3D"ltr">
<p>The flow control language in the draft is a bit confusing right now, and=
 I could use a bit more clarity on the intention<br>
<br>
For example in MAX_DATA and MAX_STREAM_DATA the data is defined as <br>
<br>
<span>&quot;A 64-bit unsigned integer indicating the maximum amount of data=
 that can be sent on the entire connection, in units of 1024 octets. That i=
s, the updated connection-level data limit is determined by multiplying the=
 encoded value by 1024.</span>&quot;<br>
<br>
This seems like it means that flow control is advertised in terms of number=
 of bytes that you can send from that moment.<br>
<br>
However from the Flow control section:<br>
<br>
&quot;A receiver sends MAX_DATA or MAX_STREAM_DATA frames to the sender to =
advertise additional credit by sending the absolute byte offset in the conn=
ection or stream which it is willing to receive.&quot;<br>
<br>
I think that we definitely mean offset here in both cases, i.e.<br>
<br>
MAX_DATA =3D sum of max offset of all streams that are allowed<br>
</p>
<p>MAX_STREAM_DATA =3D max offset on a stream</p>
<p><br>
Let's say the conn flow control limit of the receiver is 50. All units in m=
ultiples of 1024.<br>
<br>
</p>
<p>initial state of receiver<br>
stream1 --&gt;&nbsp; [0, 10]<br>
stream2 --&gt;&nbsp; [0, 20]</p>
<p>stream3 --&gt;&nbsp; [0, 20]</p>
<p><br>
So the sender has consumed his entire flow control window. Then the receive=
r consumes 10 (*1024) bytes from stream1:<br>
<br>
stream1 ---&gt; (10, 10)</p>
<p>stream2 ---&gt; [0, 20]</p>
<p>stream3 ---&gt; [0, 20]</p>
<p><br>
</p>
<p>so now the conn window has 10 (*1024) bytes remaining, what does the rec=
eiver send in their update:<br>
</p>
<p><br>
</p>
<p>MAX_DATA =3D 10</p>
<p>or <br>
</p>
<p>MAX_DATA =3D 60</p>
<p><br>
</p>
<p>I think we mean 60 here. It makes it much easier to maintain the flow co=
ntrol in that case.
<br>
</p>
<p><br>
</p>
<p>Subodh<br>
<br>
<br>
</p>
</div>
</body>
</html>

--_000_MWHPR15MB1455F1F87FEFB41796F76C6AB6BF0MWHPR15MB1455namp_--


From nobody Fri Jul 28 09:57:47 2017
Return-Path: <ianswett@google.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 9650E131748 for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 09:57:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level: 
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 jwVrjGgn9PS7 for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 09:57:44 -0700 (PDT)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002:c05::235]) (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 84D7012EB5D for <quic@ietf.org>; Fri, 28 Jul 2017 09:57:44 -0700 (PDT)
Received: by mail-yw0-x235.google.com with SMTP id l82so68797543ywc.2 for <quic@ietf.org>; Fri, 28 Jul 2017 09:57:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=2M2lxC7i691+RLAlYyWRSP2oGvEbadzcmWxjUTavZZc=; b=VO8NUZd12llPdFQ53oKlMjxZPTiRDdeW4TclpZwwpS2jRstpzXYmcBdJRH3U4S8QWU +Tk3kz+EnebY6i0PmGa49jNLwGGd+9jwB5yY7I3uPigcZ7gSBBUSF8vXwG4qmhzZFLcY 3aa3QgEp0h7RX8+mG3HSGThesEdBxX3IjMfXr+AIuEYTKtzhFrnZqs9d9fGfcQi0QAT4 jWw93ZYVBE1CzZj6aB50H1bbHs8jHNp6u5qlpWSRGbzWYLPKYPHo2Qj9TZ+ZhfT8kyGg HJ5ckGOHpE1tUH6ph1tcjl0xhdngbFMQlQO+mMVP/0fQA89zg7mdHpEwMIGBDkRr6udH CpQA==
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=2M2lxC7i691+RLAlYyWRSP2oGvEbadzcmWxjUTavZZc=; b=LinqBkCh4HJZ4ZJS2EgUQ2wZIjMXBdVVq2Ig6x6EiXh+b9J8Z/AXF/FiPEzVTwdgVm SPFL6RWbJB2TdGIEw/FJCTBnLXz/UTBGLWQXqSAQ86wUhtbXpnAQpXNcxqIM4BQ1jlAH q5SOPT0sBfYaj5nhDNfr7h0oxDO5+TAeudv6dJHdi+PzzOpe4S2cNVTF+sGh9EwxKAZP h7Wz0pXRYMSujq6vh/GKpbvitZ9Su02k8p/GWMNP6Z2+wYjdFYHR7SZ/R59h7JWrymjl gThAbFK/UBCz4nhwQ4ahX8tvJ+157SR0p+YEGuI1xM4nFldSxciJs8ikqLs+Jv9Jh/ad tU2A==
X-Gm-Message-State: AIVw110JUnUM0xxN1Ci96Pw/XJr7lPLKFgooXCxKK/n7zXcgfE/jpNc5 8dI8M3XcHTcPfSDD1H+OfXg0tkMrDZgu
X-Received: by 10.129.121.86 with SMTP id u83mr7624708ywc.397.1501261063762; Fri, 28 Jul 2017 09:57:43 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.217.137 with HTTP; Fri, 28 Jul 2017 09:57:23 -0700 (PDT)
In-Reply-To: <MWHPR15MB1455F1F87FEFB41796F76C6AB6BF0@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <MWHPR15MB1455F1F87FEFB41796F76C6AB6BF0@MWHPR15MB1455.namprd15.prod.outlook.com>
From: Ian Swett <ianswett@google.com>
Date: Fri, 28 Jul 2017 12:57:23 -0400
Message-ID: <CAKcm_gO2y8X+nupxjvu_zzeQ+3FL0b42z55sFtRkCZ8Q3CLxSg@mail.gmail.com>
Subject: Re: flow control description in draft
To: Subodh Iyengar <subodh@fb.com>
Cc: "quic@ietf.org" <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c0a8b326c33ee055563943c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/HAuursHvi-tX29z4j0ZPhGjQqX8>
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: Fri, 28 Jul 2017 16:57:47 -0000

--94eb2c0a8b326c33ee055563943c
Content-Type: text/plain; charset="UTF-8"

On Fri, Jul 28, 2017 at 11:18 AM, Subodh Iyengar <subodh@fb.com> wrote:

> The flow control language in the draft is a bit confusing right now, and I
> could use a bit more clarity on the intention
>
> For example in MAX_DATA and MAX_STREAM_DATA the data is defined as
>
> "A 64-bit unsigned integer indicating the maximum amount of data that can
> be sent on the entire connection, in units of 1024 octets. That is, the
> updated connection-level data limit is determined by multiplying the
> encoded value by 1024."
>
> This seems like it means that flow control is advertised in terms of
> number of bytes that you can send from that moment.
>

> However from the Flow control section:
>
> "A receiver sends MAX_DATA or MAX_STREAM_DATA frames to the sender to
> advertise additional credit by sending the absolute byte offset in the
> connection or stream which it is willing to receive."
>
> I think that we definitely mean offset here in both cases, i.e.
>
> MAX_DATA = sum of max offset of all streams that are allowed
>
> MAX_STREAM_DATA = max offset on a stream
>
>
> Yes, that's what the spec means.  I thought it was fairly clear, but if
you think it's confusing, a PR to improve the wording would be appreciated.


> Let's say the conn flow control limit of the receiver is 50. All units in
> multiples of 1024.
>
> initial state of receiver
> stream1 -->  [0, 10]
> stream2 -->  [0, 20]
>
> stream3 -->  [0, 20]
>
>
> So the sender has consumed his entire flow control window. Then the
> receiver consumes 10 (*1024) bytes from stream1:
>
> stream1 ---> (10, 10)
>
> stream2 ---> [0, 20]
>
> stream3 ---> [0, 20]
>
>
> so now the conn window has 10 (*1024) bytes remaining, what does the
> receiver send in their update:
>
>
> MAX_DATA = 10
>
> or
>
> MAX_DATA = 60
>
>
> I think we mean 60 here. It makes it much easier to maintain the flow
> control in that case.
>
>
> Subodh
>
>
>

--94eb2c0a8b326c33ee055563943c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Fri, Jul 28, 2017 at 11:18 AM, Subodh Iyengar <span dir=3D"ltr">&lt;=
<a href=3D"mailto:subodh@fb.com" target=3D"_blank">subodh@fb.com</a>&gt;</s=
pan> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex">




<div dir=3D"ltr">
<div id=3D"m_-7987139957833584627divtagdefaultwrapper" style=3D"font-size:1=
2pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,&quot;EmojiFo=
nt&quot;,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;,NotoColor=
Emoji,&quot;Segoe UI Symbol&quot;,&quot;Android Emoji&quot;,EmojiSymbols" d=
ir=3D"ltr">
<p>The flow control language in the draft is a bit confusing right now, and=
 I could use a bit more clarity on the intention<br>
<br>
For example in MAX_DATA and MAX_STREAM_DATA the data is defined as <br>
<br>
<span>&quot;A 64-bit unsigned integer indicating the maximum amount of data=
 that can be sent on the entire connection, in units of 1024 octets. That i=
s, the updated connection-level data limit is determined by multiplying the=
 encoded value by 1024.</span>&quot;<br>
<br>
This seems like it means that flow control is advertised in terms of number=
 of bytes that you can send from that moment.</p></div></div></blockquote><=
blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div id=3D"m_-79871399578335=
84627divtagdefaultwrapper" style=3D"font-size:12pt;color:rgb(0,0,0);font-fa=
mily:Calibri,Helvetica,sans-serif,&quot;EmojiFont&quot;,&quot;Apple Color E=
moji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&quot;Segoe UI Symbol&=
quot;,&quot;Android Emoji&quot;,EmojiSymbols" dir=3D"ltr"><p>
<br>
However from the Flow control section:<br>
<br>
&quot;A receiver sends MAX_DATA or MAX_STREAM_DATA frames to the sender to =
advertise additional credit by sending the absolute byte offset in the conn=
ection or stream which it is willing to receive.&quot;<br>
<br>
I think that we definitely mean offset here in both cases, i.e.<br>
<br>
MAX_DATA =3D sum of max offset of all streams that are allowed<br>
</p>
<p>MAX_STREAM_DATA =3D max offset on a stream</p>
<p><br></p></div></div></blockquote><div>Yes, that&#39;s what the spec mean=
s.=C2=A0 I thought it was fairly clear, but if you think it&#39;s confusing=
, a PR to improve the wording would be appreciated.</div><div>=C2=A0</div><=
blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div id=3D"m_-79871399578335=
84627divtagdefaultwrapper" style=3D"font-size:12pt;color:rgb(0,0,0);font-fa=
mily:Calibri,Helvetica,sans-serif,&quot;EmojiFont&quot;,&quot;Apple Color E=
moji&quot;,&quot;Segoe UI Emoji&quot;,NotoColorEmoji,&quot;Segoe UI Symbol&=
quot;,&quot;Android Emoji&quot;,EmojiSymbols" dir=3D"ltr"><p>
Let&#39;s say the conn flow control limit of the receiver is 50. All units =
in multiples of 1024.<br>
<br>
</p>
<p>initial state of receiver<br>
stream1 --&gt;=C2=A0 [0, 10]<br>
stream2 --&gt;=C2=A0 [0, 20]</p>
<p>stream3 --&gt;=C2=A0 [0, 20]</p>
<p><br>
So the sender has consumed his entire flow control window. Then the receive=
r consumes 10 (*1024) bytes from stream1:<br>
<br>
stream1 ---&gt; (10, 10)</p>
<p>stream2 ---&gt; [0, 20]</p>
<p>stream3 ---&gt; [0, 20]</p>
<p><br>
</p>
<p>so now the conn window has 10 (*1024) bytes remaining, what does the rec=
eiver send in their update:<br>
</p>
<p><br>
</p>
<p>MAX_DATA =3D 10</p>
<p>or <br>
</p>
<p>MAX_DATA =3D 60</p>
<p><br>
</p>
<p>I think we mean 60 here. It makes it much easier to maintain the flow co=
ntrol in that case.
<br><span class=3D"HOEnZb"><font color=3D"#888888">
</font></span></p><span class=3D"HOEnZb"><font color=3D"#888888">
<p><br>
</p>
<p>Subodh<br>
<br>
<br>
</p>
</font></span></div>
</div>

</blockquote></div><br></div></div>

--94eb2c0a8b326c33ee055563943c--


From nobody Fri Jul 28 10:15:17 2017
Return-Path: <pmcmanus@mozilla.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 1AAD9131F5A for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 10:15:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.735
X-Spam-Level: 
X-Spam-Status: No, score=-0.735 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_HELO_PASS=-0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 rs2i99RFZXaG for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 10:15:13 -0700 (PDT)
Received: from linode64.ducksong.com (www.ducksong.com [192.155.95.102]) by ietfa.amsl.com (Postfix) with ESMTP id 63CF0131CED for <quic@ietf.org>; Fri, 28 Jul 2017 10:15:13 -0700 (PDT)
Received: from mail-qk0-f170.google.com (mail-qk0-f170.google.com [209.85.220.170]) by linode64.ducksong.com (Postfix) with ESMTPSA id E95DA3A021 for <quic@ietf.org>; Fri, 28 Jul 2017 13:15:11 -0400 (EDT)
Received: by mail-qk0-f170.google.com with SMTP id d136so126451954qkg.3 for <quic@ietf.org>; Fri, 28 Jul 2017 10:15:11 -0700 (PDT)
X-Gm-Message-State: AIVw113qkQF5ICVBAuDKmPthQwHu2JkbabjIJA7vfCGR2xmYnWOwH2Kj HY//fIH+aAgr4KYbCsjeolAhCkUzbg==
X-Received: by 10.55.26.94 with SMTP id a91mr6544050qka.174.1501262111744; Fri, 28 Jul 2017 10:15:11 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.182.17 with HTTP; Fri, 28 Jul 2017 10:15:11 -0700 (PDT)
In-Reply-To: <20170728124951.GB2686@ubuntu-dmitri>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com> <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com> <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com> <20170728124951.GB2686@ubuntu-dmitri>
From: Patrick McManus <pmcmanus@mozilla.com>
Date: Fri, 28 Jul 2017 13:15:11 -0400
X-Gmail-Original-Message-ID: <CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com>
Message-ID: <CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Cc: Jana Iyengar <jri@google.com>, Eric Rescorla <ekr@rtfm.com>, IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>
Content-Type: multipart/alternative; boundary="001a1146eb62e2af93055563d2d6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/-ChQ06_7d9haEcpeO2hp-FkjJiw>
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: Fri, 28 Jul 2017 17:15:16 -0000

--001a1146eb62e2af93055563d2d6
Content-Type: text/plain; charset="UTF-8"

I agree that the rst-like semantic in the pull request is sensible here.
Some more language around expecting applications to do graceful shutdown
before this happens would be helpful - especially with the definition of
GOAWAY migrating out of the transport document. This works well with the
silent close concept so that makes me happy.

I would like the text to say that the receiver should not discard data that
it has acknowledged before receipt of the CLOSE (discarding it is the TCP
receiver RST behavior). Are there objections to adding that?

I disagree a little bit with (I think) Subodh and Wily regarding what to
send when you recv data after you have sent a CLOSE. I want to strongly
encourage implementations to have a TIME_WAIT like period of being able to
a fully protected CLOSE (it can be a memcpy retransmit). public reset ought
to be left as a last resort.

--001a1146eb62e2af93055563d2d6
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>I agree that the rst-like semantic in the pull reques=
t is sensible here. Some more language around expecting applications to do =
graceful shutdown before this happens would be helpful - especially with th=
e definition of GOAWAY migrating out of the transport document. This works =
well with the silent close concept so that makes me happy.<br></div><div><b=
r></div><div>I would like the text to say that the receiver should not disc=
ard data that it has acknowledged before receipt of the CLOSE (discarding i=
t is the TCP receiver RST behavior). Are there objections to adding that?<b=
r></div><div><br></div><div>I disagree a little bit with (I think) Subodh a=
nd Wily regarding what to send when you recv data after you have sent a CLO=
SE. I want to strongly encourage implementations to have a TIME_WAIT like p=
eriod of being able to a fully protected CLOSE (it can be a memcpy retransm=
it). public reset ought to be left as a last resort.</div><div><br></div></=
div>

--001a1146eb62e2af93055563d2d6--


From nobody Fri Jul 28 11:49:24 2017
Return-Path: <huitema@huitema.net>
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 D085F131C99 for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 11:49:22 -0700 (PDT)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 PtVAZJZ53pqv for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 11:49:20 -0700 (PDT)
Received: from mx44.antispamcloud.com (mx43-out1.antispamcloud.com [138.201.61.189]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A1932131E0D for <quic@ietf.org>; Fri, 28 Jul 2017 11:49:20 -0700 (PDT)
Received: from xsmtp12.mail2web.com ([168.144.250.177]) by mx44.antispamcloud.com with esmtps (TLSv1.2:AES128-SHA:128) (Exim 4.89) (envelope-from <huitema@huitema.net>) id 1dbAK6-0005zA-9o for quic@ietf.org; Fri, 28 Jul 2017 20:49:18 +0200
Received: from [10.5.2.15] (helo=xmail05.myhosting.com) by xsmtp12.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <huitema@huitema.net>) id 1dbAK3-0000Xw-At for quic@ietf.org; Fri, 28 Jul 2017 14:49:16 -0400
Received: (qmail 6975 invoked from network); 28 Jul 2017 18:49:13 -0000
Received: from unknown (HELO [192.168.1.103]) (Authenticated-user:_huitema@huitema.net@[172.56.42.66]) (envelope-sender <huitema@huitema.net>) by xmail05.myhosting.com (qmail-ldap-1.03) with ESMTPA for <ianswett@google.com>; 28 Jul 2017 18:49:13 -0000
To: Patrick McManus <pmcmanus@mozilla.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com> <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com> <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com> <20170728124951.GB2686@ubuntu-dmitri> <CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com>
Cc: Jana Iyengar <jri@google.com>, Eric Rescorla <ekr@rtfm.com>, IETF QUIC WG <quic@ietf.org>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <e1cac200-cc18-d4b9-e600-81dead5e9eaa@huitema.net>
Date: Fri, 28 Jul 2017 11:49:09 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------6120020CBC5E82DDF6903A3C"
Subject: Re: Closing on CONNECTION_CLOSE
X-Originating-IP: 168.144.250.177
X-SpamExperts-Domain: xsmtpout.mail2web.com
X-SpamExperts-Username: 168.144.250.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=168.144.250.0/24@xsmtpout.mail2web.com
X-SpamExperts-Outgoing-Class: ham
X-SpamExperts-Outgoing-Evidence: Combined (0.06)
X-Recommended-Action: accept
X-Filter-ID: PqwsvolAWURa0gwxuN3S5YEa3T7JuZT23fGO2rGt3ZgTCGhDnudOJ80D1c8rffxrus7BTv7Ss8cH d2IQQuvdbtM+m4WpRRDP6YzwkAPgQJbMzHFUa97P3bfY1LzB69ykND46yZLY9QyX+cRXmooQ3hum JwiT+2brWmQlzkLIcXivpIH4ag6BM/+u9ym+BA23Q5hd1fTq7VCTCYFGtegiwHLOSWf0iLpjmOrL d+JDt7tL1nlQs5YvH9FEfKO0+WwCYOEkjsX7F8KmpUaZQHV+SaoNpL7PRmmTib7l1mO88Em2G5Pj 7iQJEmtNUzH3idZ6uMF2OhyCCCV83x+RZrKIj0QqMGQOSwmEPwP4wBzM77N8GvkYGGDFjg9NrmGY yNnXsSjdYwfRhjHqxQXDsBKLpCbsjdvAic40+cHi4LtB9yD6lO4FGen962xgCFRckncKfg1XSK9P 1z/R6plfrFWGyfFtN22Lr2qS6oeGUxSJ/EjeNHk15VolAGHS5rCXQKDym+Gab6cuAPzLi/SdAxlO dgkraHgbbAuZgv0Q6mJ3vUcipz1IT62ZEk6+MmovaufbiR3bHfnMCIEU+nrglojKwMr3vOY18GvB wSXAfWcj2357kOoTgosukdyElz7rBwHENdSMuNhZC3X/nGdDKYyg+xII1yJ8udUSd8siDlV+9cBL pGLKbiMLMKI7KIsgfDrl6J1fhOzjF0b4LXcjJZ5lolwe4FDighPMMafsmwOoT6zTQwxc1Dks8jy3 XjHlpiYKxzCPlkGqIuWmcZPQhnpX0M0yU2LI0GQUDn3k/srNlrrRG8CNIo3Sx0BJZHAPrCs7tyb7 Rrgi3wKcZ6DOEZP9h2AocVYAMa9P02RGLBmw4yqe0W5l+akx4yHjJyULwyVMTRpUChnn7dZMk3sz 8NLrGw==
X-Report-Abuse-To: spam@quarantine5.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/wIY0BX9HcsD4KHNIQeCB0NJ0PDU>
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: Fri, 28 Jul 2017 18:49:23 -0000

This is a multi-part message in MIME format.
--------------6120020CBC5E82DDF6903A3C
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On 7/28/2017 10:15 AM, Patrick McManus wrote:
> I disagree a little bit with (I think) Subodh and Wily regarding what
> to send when you recv data after you have sent a CLOSE. I want to
> strongly encourage implementations to have a TIME_WAIT like period of
> being able to a fully protected CLOSE (it can be a memcpy retransmit).
> public reset ought to be left as a last resort.

As Subodh pointed out, "TIME_WAIT exists in TCP is to protect us from
the local port being re-bound to another connection and the data from
the old connection interfering with the new connection." We don't have
that constraint of old packets resurfacing 30 seconds later and
interfering with a new data flow. Encryption protects against that. The
"waiting" or "draining" period would mostly be a courtesy to the peer,
to ensure that the CLOSE frame is well received, and that the peer
actually stops sending.

The normal duration of the draining period would be "sufficiently more
than 1 RTT". With the current spec, the closer knows that the CLOSE has
not been received yet if it keeps receiving packets from the peer. This
should normally last for 1 RTT after sending the CLOSE frame. If it
receives any packets more than 1 RTT after sending the CLOSE, it can
assume that the CLOSE frame was not received. It would make sense to
resend it then.

Of course, there is a question of how long to wait after 1 RTT. Probably
"some time depending on the application".

We could be tempted to specify acknowledgements, etc. But then we have
to remember the two generals...

--=20
Christian Huitema


--------------6120020CBC5E82DDF6903A3C
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 7/28/2017 10:15 AM, Patrick McManus
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com"
      type="cite">I disagree a little bit with (I think) Subodh and Wily
      regarding what to send when you recv data after you have sent a
      CLOSE. I want to strongly encourage implementations to have a
      TIME_WAIT like period of being able to a fully protected CLOSE (it
      can be a memcpy retransmit). public reset ought to be left as a
      last resort.</blockquote>
    <br>
    <span dir="ltr" id="x_divtagdefaultwrapper" style="font-size:12pt"></span>As
    Subodh pointed out, "TIME_WAIT exists in TCP is to protect us from
    the local port being re-bound to another connection and the data
    from the old connection interfering with the new connection." We
    don't have that constraint of old packets resurfacing 30 seconds
    later and interfering with a new data flow. Encryption protects
    against that. The "waiting" or "draining" period would mostly be a
    courtesy to the peer, to ensure that the CLOSE frame is well
    received, and that the peer actually stops sending. <br>
    <br>
    The normal duration of the draining period would be "sufficiently
    more than 1 RTT". With the current spec, the closer knows that the
    CLOSE has not been received yet if it keeps receiving packets from
    the peer. This should normally last for 1 RTT after sending the
    CLOSE frame. If it receives any packets more than 1 RTT after
    sending the CLOSE, it can assume that the CLOSE frame was not
    received. It would make sense to resend it then.<br>
    <br>
    Of course, there is a question of how long to wait after 1 RTT.
    Probably "some time depending on the application".<br>
    <br>
    We could be tempted to specify acknowledgements, etc. But then we
    have to remember the two generals...<br>
    <pre class="moz-signature" cols="72">-- 
Christian Huitema</pre>
  </body>
</html>

--------------6120020CBC5E82DDF6903A3C--


From nobody Fri Jul 28 13:32:02 2017
Return-Path: <mikkelfj@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 8C0EA129562 for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 13:32:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 mFa_lLC0Ux8E for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 13:31:58 -0700 (PDT)
Received: from mail-ua0-x233.google.com (mail-ua0-x233.google.com [IPv6:2607:f8b0:400c:c08::233]) (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 4AF81126CD6 for <quic@ietf.org>; Fri, 28 Jul 2017 13:31:58 -0700 (PDT)
Received: by mail-ua0-x233.google.com with SMTP id 80so171410200uas.0 for <quic@ietf.org>; Fri, 28 Jul 2017 13:31:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=Xjs9+UOWu6i+GC4MrYr+t/ZQRQaw7gIpNKZxJoanRy0=; b=Dv/dpBdLxw6+kH57HLCcxodZpkpK9q3OEK3PqFe+LKXrBHdBeufzN+3WGHmcwONo1F Mc01hUZoF2o1B8h0sofDA10zeKGDISWnplp/RsRp6woxZUdwfJLZqFE1FpPsE0Eteft0 QFK0rjpJTxKL+VevEHs/DURzX7EzzijeAy1zhuHxE0dZbQkjNgbYOAp52M31MumCbj8t A1qTgojsWFqIvcErBfbvUYxKicIghKNLINAIj8ZXJ08XVdkyEsnfVt+Hw25+visap2MP e8owm3wDKU3AbbjSxwXDR/CyuqWpAmmTQXfp9HqGuVXrUd9eOiGiaLXiIwjb9MrOTTY8 WGbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=Xjs9+UOWu6i+GC4MrYr+t/ZQRQaw7gIpNKZxJoanRy0=; b=KH4+t1hQY8t5YjMVau651JnO39b/zaES/M9fvUOrI/VrwI3IevdVX2+A+XJPtzENTL 7+K4QNNcARuQl2yu2hmyoVd5TTJrltHJ/8VDQP0n/cD27vO2fPZLJm8lMmEP3f15akzB cP0LRO0zKRIzdbQjf/Yg/tRUD/fsrk8q/obLZ9XE50uEvgIK0PpyxjU5NDg5CfavNHVH najk36rniMFputxil8iv0tVKQU3Slz1dImqvQgzRw8q/ezq7DmhvKBSwki10PWgZqi+p yI5kT/kTUlc4XiPBNoW2rBL5n3zMLcCldpj50X09iM3WsorrIwewwCKZVkSPwOIVL3i4 DpIg==
X-Gm-Message-State: AIVw1134k7zaBylKAQsVoa6qFYrE6XzeoN4WyV2aZDmfmhOx5ecaQo/L D8L23I9Q6VjyJBLGKrcq1uteukRqzw==
X-Received: by 10.31.53.3 with SMTP id c3mr4996230vka.78.1501273917463; Fri, 28 Jul 2017 13:31:57 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 28 Jul 2017 16:31:56 -0400
From: =?UTF-8?Q?Mikkel_Fahn=C3=B8e_J=C3=B8rgensen?= <mikkelfj@gmail.com>
In-Reply-To: <e1cac200-cc18-d4b9-e600-81dead5e9eaa@huitema.net>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com> <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com> <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com> <20170728124951.GB2686@ubuntu-dmitri> <CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com> <e1cac200-cc18-d4b9-e600-81dead5e9eaa@huitema.net>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Fri, 28 Jul 2017 16:31:56 -0400
Message-ID: <CAN1APdfEaNfHC+BsKu1MoTPRbgEHceXYbbBpqw=bAeE65EV01w@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Christian Huitema <huitema@huitema.net>,  Patrick McManus <pmcmanus@mozilla.com>
Cc: Eric Rescorla <ekr@rtfm.com>, Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ian Swett <ianswett@google.com>,  "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>
Content-Type: multipart/alternative; boundary="001a11447e9a8fa45a055566926a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/t6fHx4eszYnMm7n1sBmzTSL-Jsg>
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: Fri, 28 Jul 2017 20:32:01 -0000

--001a11447e9a8fa45a055566926a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

As Subodh pointed out, "TIME_WAIT exists in TCP is to protect us from the
local port being re-bound to another connection and the data from the old
connection interfering with the new connection."

That would be another argument for making the connection independent of
5-tuple. It would also simplify error handling during early handshake and
decouple protocol for from lower layer.

Kind Regards,
Mikkel Fahn=C3=B8e J=C3=B8rgensen


On 28 July 2017 at 20.49.25, Christian Huitema (huitema@huitema.net) wrote:



On 7/28/2017 10:15 AM, Patrick McManus wrote:

I disagree a little bit with (I think) Subodh and Wily regarding what to
send when you recv data after you have sent a CLOSE. I want to strongly
encourage implementations to have a TIME_WAIT like period of being able to
a fully protected CLOSE (it can be a memcpy retransmit). public reset ought
to be left as a last resort.


As Subodh pointed out, "TIME_WAIT exists in TCP is to protect us from the
local port being re-bound to another connection and the data from the old
connection interfering with the new connection." We don't have that
constraint of old packets resurfacing 30 seconds later and interfering with
a new data flow. Encryption protects against that. The "waiting" or
"draining" period would mostly be a courtesy to the peer, to ensure that
the CLOSE frame is well received, and that the peer actually stops sending.

The normal duration of the draining period would be "sufficiently more than
1 RTT". With the current spec, the closer knows that the CLOSE has not been
received yet if it keeps receiving packets from the peer. This should
normally last for 1 RTT after sending the CLOSE frame. If it receives any
packets more than 1 RTT after sending the CLOSE, it can assume that the
CLOSE frame was not received. It would make sense to resend it then.

Of course, there is a question of how long to wait after 1 RTT. Probably
"some time depending on the application".

We could be tempted to specify acknowledgements, etc. But then we have to
remember the two generals...

--
Christian Huitema

--001a11447e9a8fa45a055566926a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div id=3D"bloop_customfont" st=
yle=3D"font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);mar=
gin:0px;line-height:auto"><br></div> <div><blockquote type=3D"cite" class=
=3D"clean_bq" style=3D"font-family:Helvetica,Arial;font-size:13px;font-styl=
e:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;=
text-align:start;text-indent:0px;text-transform:none;white-space:normal;wor=
d-spacing:0px"><div bgcolor=3D"#FFFFFF" text=3D"#000000">As Subodh pointed =
out, &quot;TIME_WAIT exists in TCP is to protect us from the local port bei=
ng re-bound to another connection and the data from the old connection inte=
rfering with the new connection.&quot;</div></blockquote></div><p>That woul=
d be another argument for making the connection independent of 5-tuple. It =
would also simplify error handling during early handshake and decouple prot=
ocol for from lower layer.</p><div><br class=3D"Apple-interchange-newline">=
</div> <div id=3D"bloop_sign_1501273809606699008" class=3D"bloop_sign"><div=
 style=3D"font-family:helvetica,arial;font-size:13px">Kind Regards,</div><d=
iv style=3D"font-family:helvetica,arial;font-size:13px">Mikkel Fahn=C3=B8e =
J=C3=B8rgensen<br><br></div></div> <br><p class=3D"airmail_on">On 28 July 2=
017 at 20.49.25, Christian Huitema (<a href=3D"mailto:huitema@huitema.net">=
huitema@huitema.net</a>) wrote:</p> <blockquote type=3D"cite" class=3D"clea=
n_bq"><span><div bgcolor=3D"#FFFFFF" text=3D"#000000"><div></div><div>



<title></title>


<p><br></p>
<br>
<div class=3D"moz-cite-prefix">On 7/28/2017 10:15 AM, Patrick McManus
wrote:<br></div>
<blockquote cite=3D"mid:CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=3D0D-G-TcR=
bw@mail.gmail.com" type=3D"cite">I disagree a little bit with (I think) Sub=
odh and Wily
regarding what to send when you recv data after you have sent a
CLOSE. I want to strongly encourage implementations to have a
TIME_WAIT like period of being able to a fully protected CLOSE (it
can be a memcpy retransmit). public reset ought to be left as a
last resort.</blockquote>
<br>
<span dir=3D"ltr" id=3D"x_divtagdefaultwrapper" style=3D"font-size:12pt"></=
span>As Subodh pointed out, &quot;TIME_WAIT exists in
TCP is to protect us from the local port being re-bound to another
connection and the data from the old connection interfering with
the new connection.&quot; We don&#39;t have that constraint of old packets
resurfacing 30 seconds later and interfering with a new data flow.
Encryption protects against that. The &quot;waiting&quot; or &quot;draining=
&quot;
period would mostly be a courtesy to the peer, to ensure that the
CLOSE frame is well received, and that the peer actually stops
sending.<br>
<br>
The normal duration of the draining period would be &quot;sufficiently
more than 1 RTT&quot;. With the current spec, the closer knows that the
CLOSE has not been received yet if it keeps receiving packets from
the peer. This should normally last for 1 RTT after sending the
CLOSE frame. If it receives any packets more than 1 RTT after
sending the CLOSE, it can assume that the CLOSE frame was not
received. It would make sense to resend it then.<br>
<br>
Of course, there is a question of how long to wait after 1 RTT.
Probably &quot;some time depending on the application&quot;.<br>
<br>
We could be tempted to specify acknowledgements, etc. But then we
have to remember the two generals...<br>
<pre class=3D"moz-signature" cols=3D"72">-- =20
Christian Huitema</pre>


</div></div></span></blockquote></body></html>

--001a11447e9a8fa45a055566926a--


From nobody Sun Jul 30 17:11:04 2017
Return-Path: <martin.thomson@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 DF24A131CF2 for <quic@ietfa.amsl.com>; Sun, 30 Jul 2017 17:11:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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, 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 S7qyAiJ5GYn6 for <quic@ietfa.amsl.com>; Sun, 30 Jul 2017 17:11:00 -0700 (PDT)
Received: from mail-io0-x229.google.com (mail-io0-x229.google.com [IPv6:2607:f8b0:4001:c06::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 7E170131467 for <quic@ietf.org>; Sun, 30 Jul 2017 17:11:00 -0700 (PDT)
Received: by mail-io0-x229.google.com with SMTP id l7so105900896iof.1 for <quic@ietf.org>; Sun, 30 Jul 2017 17:11:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:from:date:message-id:subject:to; bh=mk1L761E6vJM0pkostKxpgrBEFUx0NhOZTnB0lLpjOM=; b=DpDDGpekVLrAJPWFBmgJPpVf1oLaGmsuhPISyMCKzqs0kNAVsBfGOX3zQ1ahelMmEg 1RsmzOPqvUsnCaFZaN2oBxOiBDozuvv+G/VPQWIFB1ANX9CdxetLH7rzQHhNDUp9t5Rh b/jssqIvzB8DPmTdCUhSVyTK6sEHjue6U4lX7Kgc7PMMTqAxbfJtYxuA0mAiLpU3PUQD BtdgRj+Ozkb/XobfsX51tuVgMCt2efIQ07bH+ZfDU8DGyhIymsn+AH9DNixpUnZrxHvo u3ZOeYX0xsM9hw8qc2W5zmjcFYz1yjmGxPRu9XoDP46BCMdWKqa8BkSUH4gSMiSBn1m/ wRPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=mk1L761E6vJM0pkostKxpgrBEFUx0NhOZTnB0lLpjOM=; b=WYt5C2R9YD7pJ5jY/jNzbkmJd7ix/Y+vrngQcXdRnTbwlGZAHun4M75Izxqp0KFt7I c4BCJES0MFLBDJyCaD8QsUJqgqAqV1rVlNaPf7ZwxMBiPv109XVPkqr9yY1VB60zx2rD 8b9XEiB6qdDL52WewDJKmEbAroAJnzQ6mpaNhf+DA5F+XzunOISRh4FSxMi6pGzOBkva zWgB75yYbHg/14mnHhAiQgmZZ8SOrn55XeUTNTU7F2XozRuPcFNYNAcpLvow5MrGEUtk PXnoZtUPJUz2fAZHNvOH22XSVw/mDVSWZsHYfYo8S/w9+BQmI0465Az0XjVhExBi5ReM S7Cg==
X-Gm-Message-State: AIVw113Mm/7UVnIso36fzX2TJByeXh3HbwE5H9E4whMXP9gUm6J3gfIQ F7RStNOIjqYpDvJ/38r50S6FNaa+tPx68xw=
X-Received: by 10.107.201.65 with SMTP id z62mr15634018iof.74.1501459859617; Sun, 30 Jul 2017 17:10:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.42 with HTTP; Sun, 30 Jul 2017 17:10:59 -0700 (PDT)
From: Martin Thomson <martin.thomson@gmail.com>
Date: Mon, 31 Jul 2017 10:10:59 +1000
Message-ID: <CABkgnnU2N3gQvtBf-Ff3veT=f=8WApykWfNw+7aCNdZ0a3WO7Q@mail.gmail.com>
Subject: STOP_SENDING
To: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/-bSR6peAkJl5o-vQD5--MGhQ4T8>
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: Mon, 31 Jul 2017 00:11:02 -0000

https://github.com/quicwg/base-drafts/pull/171

As mentioned in Prague, I want to merge the PR formerly known as
DISINTEREST.  Mike has updated it and it is now ready to do.  I plan
to merge this in 48 hours, absent any substantial objections.


From nobody Mon Jul 31 13:25:12 2017
Return-Path: <ted.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 DD1B9132543 for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 13:25:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[AC_DIV_BONANZA=0.001, 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_NONE=-0.0001, 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 0tNlxw4439FV for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 13:25:09 -0700 (PDT)
Received: from mail-qt0-x231.google.com (mail-qt0-x231.google.com [IPv6:2607:f8b0:400d:c0d::231]) (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 B16A41318A2 for <quic@ietf.org>; Mon, 31 Jul 2017 13:25:09 -0700 (PDT)
Received: by mail-qt0-x231.google.com with SMTP id s6so124817127qtc.1 for <quic@ietf.org>; Mon, 31 Jul 2017 13:25:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:from:date:message-id:subject:to; bh=GRK5G4e95OihCIr7xUxZnc97i9wdCkvj5H9Pal5PJLM=; b=s4+w39hZZZbaKRlRaC5bbPestslPVkB8mmf/dzVYWPQ83my6bmwkK10gO7l4h/r6rL BweVkJFVVTYLvP008bftPfI7+V/wilbv19bv3FNVUUg4qz1/BskouaguVFC0ZHru03Vv VoFFxhdk6PdzdzZTMJA9bE8pppJglJlJ3iN+MpTpKLRoqKNOaQOEO0ijBhm302yj+7Cd ZuWn/uV+lkkDogH+TrgWjoJ8xPLWnxcZGqeTNl5mWWWMe+dnHfudjzV6hVVy3zVIKGX5 Wz8wwavK5sPi4xRD6oBb4nsXckBVuMgV5T8QeZCaqjPiRy/N0l15tLqK2hP8SunltoYB wb3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=GRK5G4e95OihCIr7xUxZnc97i9wdCkvj5H9Pal5PJLM=; b=qxurEXHAo/Hw013mgGZiZFKPP8mBxOHxKvuWFwXxQU6UYV0C8b4EAh68q5WXrCbu9p mB0/w9NLA2IQoSj2Y5IzxAxAFjbGnWXejFDTPxpD1ZJMPuYd6HeOv/jNLPFie+dMf6bd QkpSk3eNCSXWuACaroByOAuJaHA6sIUd+4+C0qUMDvdcTiB7+XMmfwEEFUW2lb46gFPJ 05bn41KmseZmGBIoBGAT4vy2ynlZUnqVehukVWSeUngwrpM9S9diz5J+aIvdEsQKw2/R ilKId9qeF+mTIJd+TzpmFhUPv59DA6t1SII7coLQFudLLQfObAkHnSU2ALON1YmRm+vM l28w==
X-Gm-Message-State: AIVw113dcj23qmAsy/iWPe+HhwNwNLMl23U9hgqRT8MLqOv8TpmJ0wCL hmLyg7RjLmWvWzQTUwnC6bq6NX8hjQ==
X-Received: by 10.237.60.80 with SMTP id u16mr22763190qte.100.1501532708461; Mon, 31 Jul 2017 13:25:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.237.59.248 with HTTP; Mon, 31 Jul 2017 13:24:38 -0700 (PDT)
From: Ted Hardie <ted.ietf@gmail.com>
Date: Mon, 31 Jul 2017 13:24:38 -0700
Message-ID: <CA+9kkMDkLmuZejVgJ4QAne_V1=qTB5WL9nyjYt4no+dHy_QyMQ@mail.gmail.com>
Subject: Design team membership for RTT measurement issue
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c190dc0b4df850555a2d37b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Fp67jZJUCJI0WIVWoDXYJ_3XSA0>
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: Mon, 31 Jul 2017 20:25:11 -0000

--94eb2c190dc0b4df850555a2d37b
Content-Type: text/plain; charset="UTF-8"

My apologies for the delay in putting this out.

Christian Huitema
Eric Rescorla
Al Morton
Christopher Wood
Marcus Ihlar
Daniel Kahn Gillmor
Andrew Mcgregor
Emile Stephan
Ted Hardie

regards,

Ted

--94eb2c190dc0b4df850555a2d37b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div><div><div><div><div><div><div><div>My =
apologies for the delay in putting this out.<br><br></div>Christian Huitema=
<br></div>Eric Rescorla<br></div>Al Morton<br></div>Christopher Wood<br></d=
iv>Marcus Ihlar<br></div>Daniel Kahn Gillmor<br></div>Andrew Mcgregor<br></=
div>Emile Stephan<br></div>Ted Hardie<br><br></div>regards,<br><br></div>Te=
d<br><div><div><div><div><div><br></div></div></div></div></div></div>

--94eb2c190dc0b4df850555a2d37b--


From nobody Mon Jul 31 16:57:42 2017
Return-Path: <prvs=9385c1793f=subodh@fb.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 9E85E12EB8C for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 16:57:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.719
X-Spam-Level: 
X-Spam-Status: No, score=-2.719 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com header.b=Vny2yxhl; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=G4wI6MZH
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 Kzs0amLH6yiJ for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 16:57:38 -0700 (PDT)
Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ACA1E129A96 for <quic@ietf.org>; Mon, 31 Jul 2017 16:57:38 -0700 (PDT)
Received: from pps.filterd (m0109331.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v6VNrAfp013241; Mon, 31 Jul 2017 16:57:36 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=facebook; bh=S4xH7tDo7f2wOOU7mx4ry3mGMBU6i5kSvEH5Zqmdvdo=; b=Vny2yxhluEci88c32iS0RfM45NpZXypD+WCBc5n2CO+NB7VcLYFPcdMBOcbKvF7RoQRY lIjRdWAJxmHhYb8iCHPNAr/8TZrVo4OoQw5rZuyKjdflexROeS6KKUzDwjgrn1/czrt5 ls/asYKIjw1EKpyGsrOpxL5zW0zH4WCZ4+o= 
Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0a-00082601.pphosted.com with ESMTP id 2c282b9shh-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 31 Jul 2017 16:57:36 -0700
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.21) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 31 Jul 2017 19:57:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;  bh=S4xH7tDo7f2wOOU7mx4ry3mGMBU6i5kSvEH5Zqmdvdo=; b=G4wI6MZHkbM0BMkAvr2CW6jj/0VQuvv8aTPKHUY8MNqu+n/jyr1AVnujfWC2wbV2F0P6JDfiqJhDp9mqHNsZ6icvig9yhO4FLBTGekgZz+kCq+EnFwiGx104GjZ8wNHMQO1DHLa8py27g5tVf+e8jqttv1ttJVVVFhZaogT5bZs=
Received: from MWHPR15MB1455.namprd15.prod.outlook.com (10.173.234.145) by MWHPR15MB1455.namprd15.prod.outlook.com (10.173.234.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.22; Mon, 31 Jul 2017 23:57:34 +0000
Received: from MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) by MWHPR15MB1455.namprd15.prod.outlook.com ([10.173.234.145]) with mapi id 15.01.1304.023; Mon, 31 Jul 2017 23:57:34 +0000
From: Subodh Iyengar <subodh@fb.com>
To: Martin Thomson <martin.thomson@gmail.com>, QUIC WG <quic@ietf.org>
Subject: Re: STOP_SENDING
Thread-Topic: STOP_SENDING
Thread-Index: AQHTCZGIY51TFpy/zEi+0IsMXc5nPKJumE+/
Date: Mon, 31 Jul 2017 23:57:34 +0000
Message-ID: <MWHPR15MB1455C9C91344082BD1EF4CAAB6B20@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <CABkgnnU2N3gQvtBf-Ff3veT=f=8WApykWfNw+7aCNdZ0a3WO7Q@mail.gmail.com>
In-Reply-To: <CABkgnnU2N3gQvtBf-Ff3veT=f=8WApykWfNw+7aCNdZ0a3WO7Q@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [2620:10d:c090:200::5:78a6]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR15MB1455; 20:MMS0AfHCzgP8MNJlGAysXwzN+vEh3yVhNRgYnKcPUbejPMWRMmtJoXNiGh87iIUj1GsEiMfuUAfDd8NtRG6NVx6W7WnNuyK0lSHX3zMYaKfLl5jALDFah0q1fMD30RUffeaPUzoX/Acp/7zNof4q8aSDN8jq98wWFP7tEs4yccE=
x-ms-office365-filtering-correlation-id: 7ba87cbc-68be-461c-d3a3-08d4d86fea12
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR15MB1455; 
x-ms-traffictypediagnostic: MWHPR15MB1455:
x-exchange-antispam-report-test: UriScan:(166708455590820);
x-microsoft-antispam-prvs: <MWHPR15MB1455E95660E243C73E2B0E3FB6B20@MWHPR15MB1455.namprd15.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR15MB1455; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR15MB1455; 
x-forefront-prvs: 03853D523D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39840400002)(39450400003)(39400400002)(39410400002)(39850400002)(52314003)(377454003)(199003)(189002)(6606003)(2950100002)(478600001)(8676002)(99286003)(55016002)(81166006)(81156014)(3280700002)(3660700001)(6436002)(53936002)(8936002)(229853002)(77096006)(2900100001)(97736004)(6246003)(7116003)(38730400002)(5660300001)(189998001)(39060400002)(50986999)(6506006)(76176999)(54356999)(74316002)(68736007)(606006)(53546010)(33656002)(25786009)(966005)(14454004)(105586002)(106356001)(86362001)(2906002)(54896002)(236005)(7696004)(9686003)(6306002)(102836003)(6116002)(101416001)(7736002)(19627405001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR15MB1455; H:MWHPR15MB1455.namprd15.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR15MB1455C9C91344082BD1EF4CAAB6B20MWHPR15MB1455namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jul 2017 23:57:34.4123 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1455
X-OriginatorOrg: fb.com
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-31_10:, , signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/f58YYvWtMw9uBSDt0qbt2-RWqCo>
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: Mon, 31 Jul 2017 23:57:41 -0000

--_000_MWHPR15MB1455C9C91344082BD1EF4CAAB6B20MWHPR15MB1455namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I commented on the PR, but had a design comment

Sending one more frame type has the added burden of needing to retransmit i=
t before we go to closed state unless we make STOP_SENDING non retransmitta=
ble. Since this frame type is advisory anyway, does it really need to be re=
transmittable? Also it doesn't make sense to send this if we have received =
the peers RST. A peer's RST might have raced with our STOP_SENDING and the =
peer might have got rid of state for the stream. Thus any retransmitted STO=
P_SENDING frames might just be ignored.


Previously we had a bidirectional RST. With this change, it makes me a bit =
nervous for an endpoint to rely on a peer following advisory behavior for t=
hem to be able to close their stream, for example what would we do about a =
client that chooses not to send a RST on STOP_SENDING, do we rely on stream=
 limits only? close the connection? It would be much more comfortable with =
a client MUST send a RST when getting a STOP_SENDING.

Subodh


________________________________
From: QUIC <quic-bounces@ietf.org> on behalf of Martin Thomson <martin.thom=
son@gmail.com>
Sent: Sunday, July 30, 2017 5:10 PM
To: QUIC WG
Subject: STOP_SENDING

https://github.com/quicwg/base-drafts/pull/171

As mentioned in Prague, I want to merge the PR formerly known as
DISINTEREST.  Mike has updated it and it is now ready to do.  I plan
to merge this in 48 hours, absent any substantial objections.


--_000_MWHPR15MB1455C9C91344082BD1EF4CAAB6B20MWHPR15MB1455namp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"><!-- P {margin-top:0;margi=
n-bottom:0;} --></style>
</head>
<body dir=3D"ltr">
<div id=3D"divtagdefaultwrapper" style=3D"font-size:12pt;color:#000000;font=
-family:Calibri,Helvetica,sans-serif;" dir=3D"ltr">
<p><span>I commented on the PR, but had a design comment<br>
<br>
Sending one more frame type has the added burden of needing to retransmit i=
t before we go to closed state unless we make STOP_SENDING non retransmitta=
ble. Since this frame type is advisory anyway, does it really need to be re=
transmittable? Also it doesn't make
 sense to send this if we have received the peers RST. A peer's RST might h=
ave raced with our STOP_SENDING and the peer might have got rid of state fo=
r the stream. Thus any retransmitted STOP_SENDING frames might just be igno=
red.</span></p>
<p><br>
</p>
<p>Previously we had a bidirectional RST. With this change, it makes me a b=
it nervous for an endpoint to rely on a peer following advisory behavior fo=
r them to be able to close their stream, for example what would we do about=
 a client that chooses not to send
 a RST on STOP_SENDING, do we rely on stream limits only? close the connect=
ion? It would be much more comfortable with a client MUST send a RST when g=
etting a STOP_SENDING.<br>
<br>
Subodh<br>
</p>
<br>
<br>
<div style=3D"color: rgb(0, 0, 0);">
<div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><font style=3D"font-size:11pt" colo=
r=3D"#000000" face=3D"Calibri, sans-serif"><b>From:</b> QUIC &lt;quic-bounc=
es@ietf.org&gt; on behalf of Martin Thomson &lt;martin.thomson@gmail.com&gt=
;<br>
<b>Sent:</b> Sunday, July 30, 2017 5:10 PM<br>
<b>To:</b> QUIC WG<br>
<b>Subject:</b> STOP_SENDING</font>
<div>&nbsp;</div>
</div>
</div>
<font size=3D"2"><span style=3D"font-size:10pt;">
<div class=3D"PlainText"><a href=3D"https://github.com/quicwg/base-drafts/p=
ull/171" id=3D"LPlnk630532" previewremoved=3D"true">https://github.com/quic=
wg/base-drafts/pull/171</a><br>
<br>
As mentioned in Prague, I want to merge the PR formerly known as<br>
DISINTEREST.&nbsp; Mike has updated it and it is now ready to do.&nbsp; I p=
lan<br>
to merge this in 48 hours, absent any substantial objections.<br>
<br>
</div>
</span></font></div>
</div>
</body>
</html>

--_000_MWHPR15MB1455C9C91344082BD1EF4CAAB6B20MWHPR15MB1455namp_--


From nobody Mon Jul 31 17:29:10 2017
Return-Path: <Michael.Bishop@microsoft.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 85E591322D6 for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 17:29:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.031
X-Spam-Level: 
X-Spam-Status: No, score=-0.031 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 pkTh2fOHy7zK for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 17:29:05 -0700 (PDT)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0094.outbound.protection.outlook.com [104.47.40.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A8CCB13253B for <quic@ietf.org>; Mon, 31 Jul 2017 17:29:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=NZs6cXuXrmtQ8er+kuY/Yh1Y+rO09b2DFEEoBFXe/qc=; b=fuXKU6sO8vdsyEXjSBK7FVHheADZt+cnF5iiR0a9c9GuobpvKs7ggacItKwWf3xGNCjv0ucDzDZAfLhgQQTXcfJN9GnH8YnoH+P77Loq5aTDksfjI2m8ML042AM5fTmPjGDFRVxQbLV61Wfaq3zib0q/OH2myBuLJrahtXIsyys=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0125.namprd21.prod.outlook.com (10.173.52.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1341.0; Tue, 1 Aug 2017 00:29:04 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.01.1341.000; Tue, 1 Aug 2017 00:29:04 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Subodh Iyengar <subodh@fb.com>, Martin Thomson <martin.thomson@gmail.com>,  QUIC WG <quic@ietf.org>
Subject: RE: STOP_SENDING
Thread-Topic: STOP_SENDING
Thread-Index: AQHTCZGFwh/s1ctV8UmjTeq6nd+wlKJunmsAgAADa7A=
Date: Tue, 1 Aug 2017 00:29:03 +0000
Message-ID: <MWHPR21MB01417568E2E1C6ECEA56334987B30@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CABkgnnU2N3gQvtBf-Ff3veT=f=8WApykWfNw+7aCNdZ0a3WO7Q@mail.gmail.com> <MWHPR15MB1455C9C91344082BD1EF4CAAB6B20@MWHPR15MB1455.namprd15.prod.outlook.com>
In-Reply-To: <MWHPR15MB1455C9C91344082BD1EF4CAAB6B20@MWHPR15MB1455.namprd15.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [2001:4898:80e8:e::224]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0125; 6:I8TkrLlLIZ13zETPYlbtPcew3mAp2Hch+gPl2kZVJ88IDmy+UaWsNMWQaFWfYfMmzYZBKF3URwTr+gxHSCEgEbDf83xEYL8c3nM6e0vGNqKThiWEK4QKfx1BMe4P3pTiRXp0ZKsihHEURgiOO+WH9VvhWpl2Kparw+q7nDSR5eyrdm2rAM7bzRIoSDHrS7bTjFi3IAaHOj0Eba9OYqyytoG8kN+bCyZsb9mg87lK8xcZb36YthQvJpZz2a+PBN7EPm0kYEtpV6IspdywEoUBJ0SEnY4rwQHq60I3SdiE8Mh4rDtE5sslpA5MKGhMMQ6sBe1nAj+HCIKxzN0JGEUIdg==; 5:cOuf4/VBQG0YsOkrxp3OYy5oR4PUGE6n4egHJzmZ6fKna2qFpfn6L6eOeqZw6Sk2g5rEFDNzDjvR9lfV30IHNegvgeAkEJUB1UQtmK13eHolaByCQqskLflFDo4yS4aSUo5SChRbCQPiacPwsCNodA==; 24:SLDi9vKPza5doqWQKFcRlont/9nu7829GG11/6l9koAoTh5DMI+PKonAzzDLoWcm1RsxPPyEyzhsFJNBqG5O5isUoCs/eOVpxtIQaxBJf/4=; 7:3wq+sAU24Bx2T050qjZQ50+/CCVgpf4rbdk/07XyY8BcFE1J7zC3t0P8omJKKmPmw2CrxeWoaRy2a8XwzwnlaLEgaCrGtqITdlcfXRzJp6XIvHRbprxj1EMPGxWuBtCkItpkfSsKKRYaOjpPDHlujy2CGMGYyfLIIRnlp1tsAh3283oQ3U9D6LSnffANj7D7QzdIDQHmyLzMLCVncMH9Ott9ImlPV4nMdaWMDNu5wLY=
x-ms-office365-filtering-correlation-id: 68c844cd-c491-49c1-da85-08d4d874505a
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0125; 
x-ms-traffictypediagnostic: MWHPR21MB0125:
x-exchange-antispam-report-test: UriScan:(166708455590820)(189930954265078)(219752817060721)(21748063052155); 
x-microsoft-antispam-prvs: <MWHPR21MB0125ADED413F01FCE2F86CCB87B30@MWHPR21MB0125.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(61426038)(61427038)(6041248)(20161123555025)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0125; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0125; 
x-forefront-prvs: 0386B406AA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39400400002)(39850400002)(39410400002)(39860400002)(39840400002)(39450400003)(47760400005)(377454003)(199003)(189002)(52314003)(229853002)(6116002)(102836003)(790700001)(2906002)(86362001)(5660300001)(7116003)(81156014)(3280700002)(8936002)(3660700001)(7696004)(81166006)(8676002)(6436002)(86612001)(25786009)(68736007)(7736002)(77096006)(478600001)(19609705001)(74316002)(6506006)(10090500001)(10290500003)(99286003)(55016002)(50986999)(6246003)(53936002)(6306002)(54896002)(236005)(9686003)(76176999)(189998001)(54356999)(2950100002)(97736004)(38730400002)(53546010)(606006)(39060400002)(101416001)(72206003)(8990500004)(14454004)(106356001)(105586002)(33656002)(966005)(5005710100001)(2900100001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0125; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com; 
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB01417568E2E1C6ECEA56334987B30MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2017 00:29:03.9988 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0125
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/snYiU4E4BrUJqhyuMsO1j1fdq6c>
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: Tue, 01 Aug 2017 00:29:08 -0000

--_000_MWHPR21MB01417568E2E1C6ECEA56334987B30MWHPR21MB0141namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Yeah, the retransmission piece of it is interesting.  I can see an argument=
 for making it non-retransmittable, but having guidance to periodically res=
end it if you continue to receive data.  (Kind of like ACKs - you don't bli=
ndly re-send the frame, you re-evaluate what needs to be sent.)  However, t=
hat seems heavier-weight than simply sending it reliably.  Note that only S=
TREAM frames block the transition to "closed," and even there the transitio=
n happens when you have "completed sending," which I don't read as everythi=
ng having been ACK'd unless we added that definition somewhere else.

The previous RST was only somewhat bidirectional - when you sent a RST_STRE=
AM, you didn't know the other side's final offset, so you couldn't wind dow=
n their side of the stream until they also sent a RST_STREAM.  That's still=
 the case, but now it's more honest - the stream continues to be open in th=
e other direction until they actually send the RST_STREAM.

Conceptually, I'd be okay with a "MUST send RST_STREAM unless the stream is=
 already closed," but this is almost impossible to verify, even if you star=
t tracking what streams show up in packet numbers after the ACK of the pack=
et that contained the STOP_SENDING frame.  My general rule is that if the o=
ther party can't be certain whether you violated a MUST, it needs to be a S=
HOULD.

From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Subodh Iyengar
Sent: Monday, July 31, 2017 4:58 PM
To: Martin Thomson <martin.thomson@gmail.com>; QUIC WG <quic@ietf.org>
Subject: Re: STOP_SENDING


I commented on the PR, but had a design comment

Sending one more frame type has the added burden of needing to retransmit i=
t before we go to closed state unless we make STOP_SENDING non retransmitta=
ble. Since this frame type is advisory anyway, does it really need to be re=
transmittable? Also it doesn't make sense to send this if we have received =
the peers RST. A peer's RST might have raced with our STOP_SENDING and the =
peer might have got rid of state for the stream. Thus any retransmitted STO=
P_SENDING frames might just be ignored.



Previously we had a bidirectional RST. With this change, it makes me a bit =
nervous for an endpoint to rely on a peer following advisory behavior for t=
hem to be able to close their stream, for example what would we do about a =
client that chooses not to send a RST on STOP_SENDING, do we rely on stream=
 limits only? close the connection? It would be much more comfortable with =
a client MUST send a RST when getting a STOP_SENDING.

Subodh

________________________________
From: QUIC <quic-bounces@ietf.org<mailto:quic-bounces@ietf.org>> on behalf =
of Martin Thomson <martin.thomson@gmail.com<mailto:martin.thomson@gmail.com=
>>
Sent: Sunday, July 30, 2017 5:10 PM
To: QUIC WG
Subject: STOP_SENDING

https://github.com/quicwg/base-drafts/pull/171<https://na01.safelinks.prote=
ction.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fquicwg%2Fbase-drafts%2F=
pull%2F171&data=3D04%7C01%7Cmichael.bishop%40microsoft.com%7C296782094b2c42=
3d21f108d4d86fefcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63637142273=
4759522%7CUnknown%7CVW5rbm93bnx7IlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjo=
iT3RoZXIifQ%3D%3D%7C-1&sdata=3DW1OI1vIeX7yxBvszcG6lc7PJss6qtdI2k%2F0d8WG%2F=
%2BfY%3D&reserved=3D0>

As mentioned in Prague, I want to merge the PR formerly known as
DISINTEREST.  Mike has updated it and it is now ready to do.  I plan
to merge this in 48 hours, absent any substantial objections.

--_000_MWHPR21MB01417568E2E1C6ECEA56334987B30MWHPR21MB0141namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Yeah, the retransmission piece of it is interesting.=
&nbsp; I can see an argument for making it non-retransmittable, but having =
guidance to periodically resend it if you continue to receive data.&nbsp; (=
Kind of like ACKs &#8211; you don&#8217;t blindly re-send
 the frame, you re-evaluate what needs to be sent.)&nbsp; However, that see=
ms heavier-weight than simply sending it reliably.&nbsp; Note that only STR=
EAM frames block the transition to &#8220;closed,&#8221; and even there the=
 transition happens when you have &#8220;completed sending,&#8221;
 which I don&#8217;t read as everything having been ACK&#8217;d unless we a=
dded that definition somewhere else.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The previous RST was only somewhat bidirectional &#8=
211; when you sent a RST_STREAM, you didn&#8217;t know the other side&#8217=
;s final offset, so you couldn&#8217;t wind down their side of the stream u=
ntil they also sent a RST_STREAM.&nbsp; That&#8217;s still the case,
 but now it&#8217;s more honest &#8211; the stream continues to be open in =
the other direction until they actually send the RST_STREAM.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Conceptually, I&#8217;d be okay with a &#8220;MUST s=
end RST_STREAM unless the stream is already closed,&#8221; but this is almo=
st impossible to verify, even if you start tracking what streams show up in=
 packet numbers after the ACK of the packet that contained
 the STOP_SENDING frame.&nbsp; My general rule is that if the other party c=
an&#8217;t be certain whether you violated a MUST, it needs to be a SHOULD.=
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> QUIC [mailto:quic-bounces@ietf.org] <b>=
On Behalf Of
</b>Subodh Iyengar<br>
<b>Sent:</b> Monday, July 31, 2017 4:58 PM<br>
<b>To:</b> Martin Thomson &lt;martin.thomson@gmail.com&gt;; QUIC WG &lt;qui=
c@ietf.org&gt;<br>
<b>Subject:</b> Re: STOP_SENDING<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div id=3D"divtagdefaultwrapper">
<p><span style=3D"font-size:12.0pt;color:black">I commented on the PR, but =
had a design comment<br>
<br>
Sending one more frame type has the added burden of needing to retransmit i=
t before we go to closed state unless we make STOP_SENDING non retransmitta=
ble. Since this frame type is advisory anyway, does it really need to be re=
transmittable? Also it doesn't make
 sense to send this if we have received the peers RST. A peer's RST might h=
ave raced with our STOP_SENDING and the peer might have got rid of state fo=
r the stream. Thus any retransmitted STOP_SENDING frames might just be igno=
red.<o:p></o:p></span></p>
<p><span style=3D"font-size:12.0pt;color:black"><o:p>&nbsp;</o:p></span></p=
>
<p><span style=3D"font-size:12.0pt;color:black">Previously we had a bidirec=
tional RST. With this change, it makes me a bit nervous for an endpoint to =
rely on a peer following advisory behavior for them to be able to close the=
ir stream, for example what would
 we do about a client that chooses not to send a RST on STOP_SENDING, do we=
 rely on stream limits only? close the connection? It would be much more co=
mfortable with a client MUST send a RST when getting a STOP_SENDING.<br>
<br>
Subodh<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span style=3D"font-s=
ize:12.0pt;color:black"><o:p>&nbsp;</o:p></span></p>
<div>
<div>
<div class=3D"MsoNormal" align=3D"center" style=3D"text-align:center"><span=
 style=3D"font-size:12.0pt;color:black">
<hr size=3D"2" width=3D"98%" align=3D"center">
</span></div>
<div id=3D"x_divRplyFwdMsg">
<p class=3D"MsoNormal"><b><span style=3D"color:black">From:</span></b><span=
 style=3D"color:black"> QUIC &lt;<a href=3D"mailto:quic-bounces@ietf.org">q=
uic-bounces@ietf.org</a>&gt; on behalf of Martin Thomson &lt;<a href=3D"mai=
lto:martin.thomson@gmail.com">martin.thomson@gmail.com</a>&gt;<br>
<b>Sent:</b> Sunday, July 30, 2017 5:10 PM<br>
<b>To:</b> QUIC WG<br>
<b>Subject:</b> STOP_SENDING</span><span style=3D"font-size:12.0pt;color:bl=
ack"> <o:p>
</o:p></span></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:12.0pt;color:black">&nbsp;<=
o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span style=3D"font-s=
ize:10.0pt;color:black"><a href=3D"https://na01.safelinks.protection.outloo=
k.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fquicwg%2Fbase-drafts%2Fpull%2F171&a=
mp;data=3D04%7C01%7Cmichael.bishop%40microsoft.com%7C296782094b2c423d21f108=
d4d86fefcf%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636371422734759522%=
7CUnknown%7CVW5rbm93bnx7IlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiT3RoZXI=
ifQ%3D%3D%7C-1&amp;sdata=3DW1OI1vIeX7yxBvszcG6lc7PJss6qtdI2k%2F0d8WG%2F%2Bf=
Y%3D&amp;reserved=3D0">https://github.com/quicwg/base-drafts/pull/171</a><b=
r>
<br>
As mentioned in Prague, I want to merge the PR formerly known as<br>
DISINTEREST.&nbsp; Mike has updated it and it is now ready to do.&nbsp; I p=
lan<br>
to merge this in 48 hours, absent any substantial objections.<o:p></o:p></s=
pan></p>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_MWHPR21MB01417568E2E1C6ECEA56334987B30MWHPR21MB0141namp_--


From nobody Mon Jul 31 17:53:35 2017
Return-Path: <martin.thomson@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 78352131467 for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 17:53:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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, 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 2MXOSyyN0FrK for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 17:53:32 -0700 (PDT)
Received: from mail-it0-x231.google.com (mail-it0-x231.google.com [IPv6:2607:f8b0:4001:c0b::231]) (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 302B7127058 for <quic@ietf.org>; Mon, 31 Jul 2017 17:53:32 -0700 (PDT)
Received: by mail-it0-x231.google.com with SMTP id h199so384007ith.1 for <quic@ietf.org>; Mon, 31 Jul 2017 17:53:32 -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:content-transfer-encoding; bh=d/380tYDilzT7aXPmkWhFD9bQ/HeeyUKgpICo5bzB/4=; b=fhFwRSzskiuaL0mrlf0GzjRJ4pt4TcRKrmFgXMhJEzPCuzEVPxTY6WwQ8Tq2rQEsk4 ib9a3EPYgvkS0JqcWt3CHLSbgQZy+c+p3cLnFefXRgLkdbPv6qhOGtlvGCd9ySHbrXTw 2dFl+nOp0uHs6jFvoEqfoBl0A4gpzFJBMZLibRfXN3IM14Zuhw4u3UZ2gYNUkpH7Nwgt 8xqDpfr/ZqTPbL9WYb7dNQa9S7wmchJhp9oT9FqwogVc8DbMR8w2bBIipSqnpsPQ6giJ RDrWmiZLALGnazwuLOWLwdZvj8DPuXau7zmyOdSu08V7m096jvOgKH0R3l96yii7VE+8 mBMw==
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:content-transfer-encoding; bh=d/380tYDilzT7aXPmkWhFD9bQ/HeeyUKgpICo5bzB/4=; b=NLhwL/gMtNSWLuxQo4YQArcuVIqaDzrO4+kXA0hIR43woenQmM2xjnEpHrIIG8YMak 6MG4hqFW8yRLUPxe0fP5jf+M6NfJHZggXtmFHcs/df7/uMuFlKSdfe5BfypE0W8zBj7T EnelpM+qrJa1N8o6e/VOBEOl/4pVUnoshmka3XSO2KxHYdnUU02xUudVvlWG99tDO04Q HUn3WWMmVV8iZLYlbpVqczda8br6JalvDmriFwNY1mo6kuaBAWrkmHpHY/rJl4IB8LE1 w31w5SXHvH3MsYUwfFo26obIuuw8rsZPW9LvFFMxWgdNBSkQbG74WLTF0g9n9dJoc18c /dSA==
X-Gm-Message-State: AIVw111iFeZrnKYuNI3AoH4qncQzfyesGqmlEX31TvU9fZxBf4ZqiBYQ WArIlIEJt4Bwv5e7oHhk0qlmlWcoZg==
X-Received: by 10.36.5.68 with SMTP id 65mr75709itl.140.1501548811422; Mon, 31 Jul 2017 17:53:31 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.164.42 with HTTP; Mon, 31 Jul 2017 17:53:30 -0700 (PDT)
In-Reply-To: <MWHPR21MB01417568E2E1C6ECEA56334987B30@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CABkgnnU2N3gQvtBf-Ff3veT=f=8WApykWfNw+7aCNdZ0a3WO7Q@mail.gmail.com> <MWHPR15MB1455C9C91344082BD1EF4CAAB6B20@MWHPR15MB1455.namprd15.prod.outlook.com> <MWHPR21MB01417568E2E1C6ECEA56334987B30@MWHPR21MB0141.namprd21.prod.outlook.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Tue, 1 Aug 2017 10:53:30 +1000
Message-ID: <CABkgnnUvsgZ5+GxtUAoTg3bdjncb8Ut0V6b1B2y2rMigkEiVAg@mail.gmail.com>
Subject: Re: STOP_SENDING
To: Mike Bishop <Michael.Bishop@microsoft.com>
Cc: Subodh Iyengar <subodh@fb.com>, QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/U-9b0Y8t-uh_TyRINk1Vt0K7bUE>
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: Tue, 01 Aug 2017 00:53:34 -0000

Wow, nice catch Subodh, that's somewhat subtle.  This is a frame that
affects stream state that isn't caught up in the state machine.

Mike is right that you can make the retransmission logic for
STOP_SENDING independent of the stream state, but I think that could
be more cumbersome to manage in implementation than is ideal.

I think that the simple fix here is as Subodh suggests: mandate the
sending of RST_STREAM in response to STOP_SENDING unless the stream is
already closed.  We can then note the optimization that this enables:
you can stop sending STOP_SENDING when the stream is closed.

Regarding MUST - I recognize that we fall back to the halting problem,
but I can still construct a test that will in most cases detect
misbehaviour: have someone send an infinitely long stream, send
STOP_SENDING in every packet, if they acknowledge packets for some
time without sending RST_STREAM, something is badly wrong.  It's not
deterministic, but it's still worth mandating.

Mike,

The relationship between retransmissions and stream states is
something that remains open in my mind.  What we have appears to be
largely driven by some design choices in the Google implementation.  I
don't know if we have an open issue that tracks that, we've
flip-flopped on our position over time and I don't think that we have
a firm consensus on this.  That said, it matters much less now that we
have MAX_STREAM_ID.


On 1 August 2017 at 10:29, Mike Bishop <Michael.Bishop@microsoft.com> wrote=
:
> Yeah, the retransmission piece of it is interesting.  I can see an argume=
nt
> for making it non-retransmittable, but having guidance to periodically
> resend it if you continue to receive data.  (Kind of like ACKs =E2=80=93 =
you don=E2=80=99t
> blindly re-send the frame, you re-evaluate what needs to be sent.)  Howev=
er,
> that seems heavier-weight than simply sending it reliably.  Note that onl=
y
> STREAM frames block the transition to =E2=80=9Cclosed,=E2=80=9D and even =
there the
> transition happens when you have =E2=80=9Ccompleted sending,=E2=80=9D whi=
ch I don=E2=80=99t read as
> everything having been ACK=E2=80=99d unless we added that definition some=
where else.
>
>
>
> The previous RST was only somewhat bidirectional =E2=80=93 when you sent =
a
> RST_STREAM, you didn=E2=80=99t know the other side=E2=80=99s final offset=
, so you couldn=E2=80=99t
> wind down their side of the stream until they also sent a RST_STREAM.
> That=E2=80=99s still the case, but now it=E2=80=99s more honest =E2=80=93=
 the stream continues to be
> open in the other direction until they actually send the RST_STREAM.
>
>
>
> Conceptually, I=E2=80=99d be okay with a =E2=80=9CMUST send RST_STREAM un=
less the stream is
> already closed,=E2=80=9D but this is almost impossible to verify, even if=
 you start
> tracking what streams show up in packet numbers after the ACK of the pack=
et
> that contained the STOP_SENDING frame.  My general rule is that if the ot=
her
> party can=E2=80=99t be certain whether you violated a MUST, it needs to b=
e a SHOULD.
>
>
>
> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Subodh Iyengar
> Sent: Monday, July 31, 2017 4:58 PM
> To: Martin Thomson <martin.thomson@gmail.com>; QUIC WG <quic@ietf.org>
> Subject: Re: STOP_SENDING
>
>
>
> I commented on the PR, but had a design comment
>
> Sending one more frame type has the added burden of needing to retransmit=
 it
> before we go to closed state unless we make STOP_SENDING non
> retransmittable. Since this frame type is advisory anyway, does it really
> need to be retransmittable? Also it doesn't make sense to send this if we
> have received the peers RST. A peer's RST might have raced with our
> STOP_SENDING and the peer might have got rid of state for the stream. Thu=
s
> any retransmitted STOP_SENDING frames might just be ignored.
>
>
>
> Previously we had a bidirectional RST. With this change, it makes me a bi=
t
> nervous for an endpoint to rely on a peer following advisory behavior for
> them to be able to close their stream, for example what would we do about=
 a
> client that chooses not to send a RST on STOP_SENDING, do we rely on stre=
am
> limits only? close the connection? It would be much more comfortable with=
 a
> client MUST send a RST when getting a STOP_SENDING.
>
> Subodh
>
>
>
> ________________________________
>
> From: QUIC <quic-bounces@ietf.org> on behalf of Martin Thomson
> <martin.thomson@gmail.com>
> Sent: Sunday, July 30, 2017 5:10 PM
> To: QUIC WG
> Subject: STOP_SENDING
>
>
>
> https://github.com/quicwg/base-drafts/pull/171
>
> As mentioned in Prague, I want to merge the PR formerly known as
> DISINTEREST.  Mike has updated it and it is now ready to do.  I plan
> to merge this in 48 hours, absent any substantial objections.


From nobody Mon Jul 31 20:25:16 2017
Return-Path: <dtikhonov@litespeedtech.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 2CFF0127ABE for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 20:25:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level: 
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=litespeedtech-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 FyUaeFoVZPFd for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 20:25:12 -0700 (PDT)
Received: from mail-qt0-x22c.google.com (mail-qt0-x22c.google.com [IPv6:2607:f8b0:400d:c0d::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 AF320131CE3 for <quic@ietf.org>; Mon, 31 Jul 2017 20:25:12 -0700 (PDT)
Received: by mail-qt0-x22c.google.com with SMTP id p3so2363778qtg.2 for <quic@ietf.org>; Mon, 31 Jul 2017 20:25:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:subject:message-id:mime-version:content-disposition :user-agent; bh=as4kom+tWH6igHeA5AE4SxrxQRq8bwIKN+OHCP5z12s=; b=nvu7yztofyRTYLvNFcJZqRSzUgKMviFeVCmJnGzvd/Q2dEX7YlGxzx5pROC8bESRaP tUplVdIzY3xXE2tE4RdHry6vnLl4YEl06yCiF3vuchXOVXyY+s+eKnFMrnUIklm9bmUJ SALd/3BhVu/4H/TgviwOMTIF1CbHh++t0mAl07mHimCk4D8GLBtp1ltVRDJcMy+lXNHI /tYAv2PZQW6/2Lj/XLiZoojoR3Fktipf5t+fXphrN8LTW58FK3+yjfw73E34CsDZn16I WWhaPoKIK2zl7jlPY+Ep024Pd4TqXCLCvo+96/OvSh5YuMs1RGfvVlsBfXErfj4hyLNd JGWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=as4kom+tWH6igHeA5AE4SxrxQRq8bwIKN+OHCP5z12s=; b=EBW4G7stK8zZAOMKIhRqy7Aq9rp4yAnLFS+JQ9ncPvTXEkSb2t+I4i0oelyyiN+a1D HDkJe8fLF11R3GsGx4vBCT6Mqnzjf1lqam4OP+oQs8BuAJq2uJr6n0VxrlVGjl5KgNCe lTt4dNVslOZcKE4ItumeY5K0ihUg7k1kAq3CpO92WP8YsYhChQ+eHJK3PNf++YEOjYhH Jaenn08upvdsLG1t3UcgCkOtIBRB83luQxfg4VryVvWtWoYPDm445u8UF+UgnmGG2bsh 8ITA4TZ2fDKAFug890pF/ylnLnRH4gcSo9tLZdI8+hleCdmgcax2Rx4kqqjxvHBO08Ux KWTg==
X-Gm-Message-State: AIVw1133rysRm9F370bPxKyewhVAj5DUXgKM7WMciO2rQy6RDujEB+Ny t3l6g7yMo21Fmf6xZIA=
X-Received: by 10.237.60.57 with SMTP id t54mr26596938qte.281.1501557911594; Mon, 31 Jul 2017 20:25:11 -0700 (PDT)
Received: from ubuntu-dmitri (ool-45715890.dyn.optonline.net. [69.113.88.144]) by smtp.gmail.com with ESMTPSA id 94sm17164267qte.55.2017.07.31.20.25.09 for <quic@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 31 Jul 2017 20:25:10 -0700 (PDT)
Date: Mon, 31 Jul 2017 23:25:02 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: quic@ietf.org
Subject: Differentiate between GQUIC and QUIC packets
Message-ID: <20170801032502.GA28788@ubuntu-dmitri>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/rQxPrkRmWV7yjwwEImp8pJ9kUk4>
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: Tue, 01 Aug 2017 03:25:14 -0000

Hello,

I wonder whether supporting both GQUIC and QUIC on the same host and
port has been discussed.  I searched on GitHub and this mailing list,
but could not find anything.

Suppose an implementation wants to serve both GQUIC and QUIC.  How is
it to differentiate between GQUIC and QUIC packets?  There are two
cases to consider:

1) GQUIC vs QUIC long-header format packet

    This is straightforward: the first byte in GQUIC must be zero,
    whereas in QUIC's long-header format packet it is set to one.

2) GQUIC vs QUIC short-header format packet

    Now it gets more involved.  From [draft-ietf-quic-transport]:

 "  0                   1                   2                   3
 "  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 " +-+-+-+-+-+-+-+-+
 " |0|C|K| Type (5)|
 " +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 " |                                                               |
 " +                     [Connection ID (64)]                      +
 " |                                                               |
 " +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 " |                      Packet Number (8/16/32)                ...
 " +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 " |                     Protected Payload (*)                   ...
 " +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 "
 "                     Figure 2: Short Header Format

	and

 " The packet type in a short header currently determines only the size
 " of the packet number field.  Additional types can be used to signal
 " the presence of other fields.
 "
 "                     +------+--------------------+
 "                     | Type | Packet Number Size |
 "                     +------+--------------------+
 "                     | 0x01 | 1 octet            |
 "                     |      |                    |
 "                     | 0x02 | 2 octets           |
 "                     |      |                    |
 "                     | 0x03 | 4 octets           |
 "                     +------+--------------------+
 "
 "                  Table 2: Short Header Packet Types

GQUIC's interpretation of the first byte is:

  0x80  unused, must be set to 0
  0x40  reserved for multipath use
  0x30  packet number size
  0x08  connection ID
  0x04  diversification nonce
  0x02  public reset
  0x01  version

Here is an ambguity:

  First     QUIC                    GQUIC
  byte      meaning                 meaning

  0x01      No connection ID,       No connection ID,
            1-byte packet           1-byte packet number,
            number.                 version bit set.

(A variation: OR 0x20 for Key Phrase Bit / 4-byte packet number
confusion).

One could use logic like this: "it does not make sense for a packet
to have a version bit set and not have a connection ID: therefore,
it must not be GQUIC."  Is this the recommended approach?  Note that
the ambiguities may get worse if QUIC decides to start using bits 0x1B
for its short-header format first byte.

  - Dmitri.


From nobody Mon Jul 31 20:28:16 2017
Return-Path: <dtikhonov@litespeedtech.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 02C61131CEF for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 20:28:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.59
X-Spam-Level: 
X-Spam-Status: No, score=-2.59 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=litespeedtech-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 BdoPbzv8ok_x for <quic@ietfa.amsl.com>; Mon, 31 Jul 2017 20:28:14 -0700 (PDT)
Received: from mail-qk0-x232.google.com (mail-qk0-x232.google.com [IPv6:2607:f8b0:400d:c09::232]) (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 0B33B131CE4 for <quic@ietf.org>; Mon, 31 Jul 2017 20:28:14 -0700 (PDT)
Received: by mail-qk0-x232.google.com with SMTP id u139so2421372qka.1 for <quic@ietf.org>; Mon, 31 Jul 2017 20:28:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=litespeedtech-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=ZxyUja4jvwDJ+Sd9vBfO/1dWPq3Epi6AgpHzgFwgUHs=; b=vn1JwJ6Fkii2UTL+f5dxl1cKPPGgTewwKUEl51Y7YPuFK+J9o9bug1+/wzv1dCDtcZ 8TSg2AwZC2lEghESQ9iO4yQtwhcuOn83x2fwGTWIlwwYmRSWrNzxQf96AcDHcuEMMMLq GvZj9dtuKi4oXFVgZbVDBn1rywFWH8UDo+H9NMmDiolNJ9loIc1NVXJV4r4zPI2XiCjq hiS3IBPT4YYw7eV6Lj+525T0MR+vi4hvkwGOvuaR4ONUVpI1gqXYRar6iOzBLRvp7qpW sx7/1w5OvccJeVVmLR5HRWGwGM7DxujBV8XCzlIkOjggqjLLc7PGKAN6FhJ+pTBw/Tfx vA4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=ZxyUja4jvwDJ+Sd9vBfO/1dWPq3Epi6AgpHzgFwgUHs=; b=U8Med9jBoBzPT2LbRyxv4B/4VZoEEsge08GltKZpAwN5JkygoGu16/ez5UQ/Q4Pu8O zB9MPUr9s9O2tCdRguzDr165paAuF7BV6QbeQ6WFwtfmilXMf2hc+yklcs9LctLjcxd6 52R8FBT5cBGcUdOGSlc9Eep8ENOfKIUSPNalocMgfnPa8zkPafOQ6zliEiFF8GSaquXg NXcx6ZvymIlO7hfsmD/2m/jErDOQrHle/5hPSpraHTsL27fEJMOQZqymcirfZcqDspeg JJpgV4hDUD6tIHNyU5UMFjb6eTTLZY5CyGiKOPeY5s7VbzvSW0jPMf074SKMjROIpmuY FhQw==
X-Gm-Message-State: AIVw113L2qH9xGjys1TtEZnAHN+jgaw2+9KuM8DQjOGPFCCoFU8AqkJS 8sCpoqNT/HN19o4Tfhc=
X-Received: by 10.55.27.154 with SMTP id m26mr22106204qkh.135.1501558092928; Mon, 31 Jul 2017 20:28:12 -0700 (PDT)
Received: from ubuntu-dmitri (ool-45715890.dyn.optonline.net. [69.113.88.144]) by smtp.gmail.com with ESMTPSA id 131sm20851150qki.23.2017.07.31.20.28.12 for <quic@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 31 Jul 2017 20:28:12 -0700 (PDT)
Date: Mon, 31 Jul 2017 23:28:05 -0400
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
To: quic@ietf.org
Subject: Re: Differentiate between GQUIC and QUIC packets
Message-ID: <20170801032805.GA29894@ubuntu-dmitri>
References: <20170801032502.GA28788@ubuntu-dmitri>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20170801032502.GA28788@ubuntu-dmitri>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/DCTMPpnSabY1tTTYIrZ6ky3E2Qk>
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: Tue, 01 Aug 2017 03:28:15 -0000

On Mon, Jul 31, 2017 at 11:25:02PM -0400, Dmitri Tikhonov wrote:
> 1) GQUIC vs QUIC long-header format packet
> 
>     This is straightforward: the first byte in GQUIC must be zero,
                               ^^^^^^^^^^^^^^
>     whereas in QUIC's long-header format packet it is set to one.

This should read "the high bit of the first byte" -- sorry about
that.

  - Dmitri.

