Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 46E1B1274D0
 for <quic-issues@ietfa.amsl.com>; Wed, 26 Dec 2018 07:35:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.085
X-Spam-Level: 
X-Spam-Status: No, score=-7.085 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.979,
 HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5,
 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=github.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 vlz5AOiT8bya for <quic-issues@ietfa.amsl.com>;
 Wed, 26 Dec 2018 07:35:01 -0800 (PST)
Received: from out-2.smtp.github.com (out-2.smtp.github.com [192.30.252.193])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 1B4FF1271FF
 for <quic-issues@ietf.org>; Wed, 26 Dec 2018 07:35:01 -0800 (PST)
Date: Wed, 26 Dec 2018 07:34:59 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
 s=pf2014; t=1545838499;
 bh=fBDUMBpeSKNlXGESDMlgGvU3A14Ot/lDF5A37aQ1weM=;
 h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post:
 List-Unsubscribe:From;
 b=AhaLenJAX5EFCBIliHuc0v1k35DSc/BJ5kqwsTebsI3M5i79DsKh2Zq+kiiWUa5a8
 Wv5693B0PxxacMQpzGNTP5hTKszOdX4ybzAbjlUoW18pNw9UTjEqegU9VRmlJeT53u
 Da4X9b9H5jYFvsoYZOYj0eBFKNjjhvkDdZuWhz1c=
From: =?UTF-8?B?QmVuY2UgQsOpa3k=?= <notifications@github.com>
Reply-To: quicwg/base-drafts
 <reply+0166e4ab0f76894c62a7bb7a400d03b1af163e437ebb57a892cf00000001183b61a392a169ce177edca7@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2258@github.com>
Subject: [quicwg/base-drafts] Initial maximum table size needs clarification.
 (#2258)
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_5c239fa3c842d_66813fd8910d45b8440518";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: bencebeky
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/n5EUTKdovuxh5ekNbO1ToM0wJg8>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG
 <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>,
 <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>,
 <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Dec 2018 15:35:03 -0000


----==_mimepart_5c239fa3c842d_66813fd8910d45b8440518
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Initial maximum table size needs clarification.=0D
=0D
A QPACK context is shared between the encoder of one endpoint, call it en=
dpoint=0D
A, and the decoder of another endpoint, call it endpoint B.  Endpoint A i=
s the=0D
one sending HTTP messages (requests or responses).  (There is another,=0D=

completely independent QPACK context shared between the encoder of B and =
the=0D
decoder of A used for messages sent by B.)  A and B must have a shared=0D=

understanding of the initial maximum table size for this context.  In HTT=
P/3,=0D
endpoint B can send endpoint A a SETTINGS_HEADER_TABLE_SIZE setting.=0D
=0D
In https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#maximum-tabl=
e-size,=0D
it is difficult for me to apply the sentence "The initial maximum size is=
=0D
determined by the corresponding setting when HTTP requests or responses a=
re=0D
first permitted to be sent." from B's prospective, because B does not sen=
t HTTP=0D
messages using this QPACK context.  And from A's prospective, I understan=
d that=0D
A is allowed to send messages before receiving B's SETTINGS frame, at whi=
ch=0D
point the value of SETTINGS_HEADER_TABLE_SIZE is zero according to issue =
#2038=0D
in the 1-RTT case, in contradiction with the current last sentence of thi=
s=0D
paragraph.=0D
=0D
Similarily, I find the phare "the initial maximum table size is the value=
 of the=0D
setting in the peer=E2=80=99s SETTINGS frame" confusing from B's prospect=
ive, because=0D
it is B, not its peer sending the relevant SETTING.=0D
=0D
I propose to reword this paragraph.  In the 1-RTT case, there are two opt=
ions=0D
for the initial maximum table size: zero, see #2256, or the value of=0D
SETTINGS_HEADER_TABLE_SIZE, see #2257.  In either case, the encoder=0D
cannot insert entries into the dynamic table until it receives the SETTIN=
GS frame=0D
from the decoder.=0D
=0D
As for the case where QPACK is used in a protocol other than HTTP/3, I fe=
el like=0D
the initial maximum table size can either be left unspecified, placing th=
e=0D
burden on that other protocol.  Another option is to define it to be zero=
 unless=0D
that other protocol specifies otherwise.=0D
=0D
-- =0D
You are receiving this because you are subscribed to this thread.=0D
Reply to this email directly or view it on GitHub:=0D
https://github.com/quicwg/base-drafts/issues/2258=

----==_mimepart_5c239fa3c842d_66813fd8910d45b8440518
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p>Initial maximum table size needs clarification.</p>=0D
<p>A QPACK context is shared between the encoder of one endpoint, call it=
 endpoint<br>=0D
A, and the decoder of another endpoint, call it endpoint B.  Endpoint A i=
s the<br>=0D
one sending HTTP messages (requests or responses).  (There is another,<br=
>=0D
completely independent QPACK context shared between the encoder of B and =
the<br>=0D
decoder of A used for messages sent by B.)  A and B must have a shared<br=
>=0D
understanding of the initial maximum table size for this context.  In HTT=
P/3,<br>=0D
endpoint B can send endpoint A a SETTINGS_HEADER_TABLE_SIZE setting.</p>=0D=

<p>In <a href=3D"https://quicwg.org/base-drafts/draft-ietf-quic-qpack.htm=
l#maximum-table-size" rel=3D"nofollow">https://quicwg.org/base-drafts/dra=
ft-ietf-quic-qpack.html#maximum-table-size</a>,<br>=0D
it is difficult for me to apply the sentence "The initial maximum size is=
<br>=0D
determined by the corresponding setting when HTTP requests or responses a=
re<br>=0D
first permitted to be sent." from B's prospective, because B does not sen=
t HTTP<br>=0D
messages using this QPACK context.  And from A's prospective, I understan=
d that<br>=0D
A is allowed to send messages before receiving B's SETTINGS frame, at whi=
ch<br>=0D
point the value of SETTINGS_HEADER_TABLE_SIZE is zero according to issue =
<a class=3D"issue-link js-issue-link" data-error-text=3D"Failed to load i=
ssue title" data-id=3D"383313508" data-permission-text=3D"Issue title is =
private" data-url=3D"https://github.com/quicwg/base-drafts/issues/2038" d=
ata-hovercard-type=3D"pull_request" data-hovercard-url=3D"/quicwg/base-dr=
afts/pull/2038/hovercard" href=3D"https://github.com/quicwg/base-drafts/p=
ull/2038">#2038</a><br>=0D
in the 1-RTT case, in contradiction with the current last sentence of thi=
s<br>=0D
paragraph.</p>=0D
<p>Similarily, I find the phare "the initial maximum table size is the va=
lue of the<br>=0D
setting in the peer=E2=80=99s SETTINGS frame" confusing from B's prospect=
ive, because<br>=0D
it is B, not its peer sending the relevant SETTING.</p>=0D
<p>I propose to reword this paragraph.  In the 1-RTT case, there are two =
options<br>=0D
for the initial maximum table size: zero, see <a class=3D"issue-link js-i=
ssue-link" data-error-text=3D"Failed to load issue title" data-id=3D"3941=
89799" data-permission-text=3D"Issue title is private" data-url=3D"https:=
//github.com/quicwg/base-drafts/issues/2256" data-hovercard-type=3D"pull_=
request" data-hovercard-url=3D"/quicwg/base-drafts/pull/2256/hovercard" h=
ref=3D"https://github.com/quicwg/base-drafts/pull/2256">#2256</a>, or the=
 value of<br>=0D
SETTINGS_HEADER_TABLE_SIZE, see <a class=3D"issue-link js-issue-link" dat=
a-error-text=3D"Failed to load issue title" data-id=3D"394189844" data-pe=
rmission-text=3D"Issue title is private" data-url=3D"https://github.com/q=
uicwg/base-drafts/issues/2257" data-hovercard-type=3D"pull_request" data-=
hovercard-url=3D"/quicwg/base-drafts/pull/2257/hovercard" href=3D"https:/=
/github.com/quicwg/base-drafts/pull/2257">#2257</a>.  In either case, the=
 encoder<br>=0D
cannot insert entries into the dynamic table until it receives the SETTIN=
GS frame<br>=0D
from the decoder.</p>=0D
<p>As for the case where QPACK is used in a protocol other than HTTP/3, I=
 feel like<br>=0D
the initial maximum table size can either be left unspecified, placing th=
e<br>=0D
burden on that other protocol.  Another option is to define it to be zero=
 unless<br>=0D
that other protocol specifies otherwise.</p>=0D
=0D
<p style=3D"font-size:small;-webkit-text-size-adjust:none;color:#666;">&m=
dash;<br />You are receiving this because you are subscribed to this thre=
ad.<br />Reply to this email directly, <a href=3D"https://github.com/quic=
wg/base-drafts/issues/2258">view it on GitHub</a>, or <a href=3D"https://=
github.com/notifications/unsubscribe-auth/AWbkq0ggYTeiVbeE8IVvJKI8lWgsyoT=
Lks5u85cjgaJpZM4Zh2fy">mute the thread</a>.<img src=3D"https://github.com=
/notifications/beacon/AWbkq02ahDBmzp0skXQ7XloMU950yPUYks5u85cjgaJpZM4Zh2f=
y.gif" height=3D"1" width=3D"1" alt=3D"" /></p>=0D
<script type=3D"application/json" data-scope=3D"inboxmarkup">{"api_versio=
n":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name"=
:"GitHub"},"entity":{"external_key":"github/quicwg/base-drafts","title":"=
quicwg/base-drafts","subtitle":"GitHub repository","main_image_url":"http=
s://github.githubassets.com/images/email/message_cards/header.png","avata=
r_image_url":"https://github.githubassets.com/images/email/message_cards/=
avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/q=
uicwg/base-drafts"}},"updates":{"snippets":[{"icon":"DESCRIPTION","messag=
e":"Initial maximum table size needs clarification. (#2258)"}],"action":{=
"name":"View Issue","url":"https://github.com/quicwg/base-drafts/issues/2=
258"}}}</script>=0D
<script type=3D"application/ld+json">[=0D
{=0D
"@context": "http://schema.org",=0D
"@type": "EmailMessage",=0D
"potentialAction": {=0D
"@type": "ViewAction",=0D
"target": "https://github.com/quicwg/base-drafts/issues/2258",=0D
"url": "https://github.com/quicwg/base-drafts/issues/2258",=0D
"name": "View Issue"=0D
},=0D
"description": "View this Issue on GitHub",=0D
"publisher": {=0D
"@type": "Organization",=0D
"name": "GitHub",=0D
"url": "https://github.com"=0D
}=0D
}=0D
]</script>=

----==_mimepart_5c239fa3c842d_66813fd8910d45b8440518--

