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 AE734130DC3
 for <quic-issues@ietfa.amsl.com>; Fri, 14 Sep 2018 16:27:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level: 
X-Spam-Status: No, score=-8.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, MAILING_LIST_MULTI=-1,
 RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01]
 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 RL-arK2OOAMp for <quic-issues@ietfa.amsl.com>;
 Fri, 14 Sep 2018 16:27:25 -0700 (PDT)
Received: from out-1.smtp.github.com (out-1.smtp.github.com [192.30.252.192])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id B8D3E12426A
 for <quic-issues@ietf.org>; Fri, 14 Sep 2018 16:27:25 -0700 (PDT)
Date: Fri, 14 Sep 2018 16:27:24 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
 s=pf2014; t=1536967644;
 bh=HArC95LoPaSkRVK01Vrnr4P4rGnoGdsru5R8J39EwFY=;
 h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
 List-Archive:List-Post:List-Unsubscribe:From;
 b=WK8hqAi05Lycc1c3seugxSWG+NxVeZIhsdIBmgW03TDa2bQGuDPR62ik4t3r7K70x
 1xjJvr9HH2fq3dhxLejoIveW0f0FzjtlcSJQaRaqxYaJxx1h4TkjqMQXtf6MvYvCCh
 M8bwUvaUh1UNyC0DlAmsG01tIln5knWMGePgfADg=
From: afrind <notifications@github.com>
Reply-To: quicwg/base-drafts
 <reply+0166e4ab4d0c23e9c2f86ad3b7923ceaf1a3207da6089f8692cf0000000117b405dc92a169ce13d80c39@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1454/421509364@github.com>
In-Reply-To: <quicwg/base-drafts/issues/1454@github.com>
References: <quicwg/base-drafts/issues/1454@github.com>
Subject: Re: [quicwg/base-drafts] QPACK could use some examples (#1454)
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_5b9c43dcd914a_50093f9f312d45b44974d";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: afrind
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/aT1mBXZBPmy1GYnAxr_GNerJEVQ>
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: Fri, 14 Sep 2018 23:27:28 -0000


----==_mimepart_5b9c43dcd914a_50093f9f312d45b44974d
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

For reference, there is now this repo: https://github.com/qpackers/qifs, which contains example encodings.  We could brush this up and have some semi-canonical encodings there.  That said, I kind of liked having a few concrete examples in the HPACK specification that you can refer back to.

Just reviewing HPACK's examples, it has:

3 Integer encoding examples
An example encoding of each instruction
A sequence of three requests and one with three responses, each encoded both with and without Huffman 

For each of the request/response examples it has a block that shows the decoding process - which octets produce which decoder actions (insert, evict, emit, etc). 

I'm not sure how much of this ground we need to retread in QPACK.  Since we use the same integer and Huffman encoding, we could probably skip those.  

So maybe we should have

1. One String literal example
2. One Example of each instruction (4 encoder, 3 decoder, 5 request)
3. An encoding that does not use the dynamic table/control stream at all
4. An encoding that uses the control stream
5. An encoding that uses the control stream and post-base instructions
6. An encoding that makes a duplicate on the control stream and references it

I think 1 and 2 are more to be consistent with what HPACK did and shouldn't really be required.  Even so, this might be a long section.

I'd like to avoid anything that involves decoder->encoder feedback since it can get hairy pretty quickly.  I'm less inclined to include the decoding process diagrams since decoding is pretty simple - it only emits.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/1454#issuecomment-421509364
----==_mimepart_5b9c43dcd914a_50093f9f312d45b44974d
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p>For reference, there is now this repo: <a href=3D"https://github.com/q=
packers/qifs">https://github.com/qpackers/qifs</a>, which contains exampl=
e encodings.  We could brush this up and have some semi-canonical encodin=
gs there.  That said, I kind of liked having a few concrete examples in t=
he HPACK specification that you can refer back to.</p>
<p>Just reviewing HPACK's examples, it has:</p>
<p>3 Integer encoding examples<br>
An example encoding of each instruction<br>
A sequence of three requests and one with three responses, each encoded b=
oth with and without Huffman</p>
<p>For each of the request/response examples it has a block that shows th=
e decoding process - which octets produce which decoder actions (insert, =
evict, emit, etc).</p>
<p>I'm not sure how much of this ground we need to retread in QPACK.  Sin=
ce we use the same integer and Huffman encoding, we could probably skip t=
hose.</p>
<p>So maybe we should have</p>
<ol>
<li>One String literal example</li>
<li>One Example of each instruction (4 encoder, 3 decoder, 5 request)</li=
>
<li>An encoding that does not use the dynamic table/control stream at all=
</li>
<li>An encoding that uses the control stream</li>
<li>An encoding that uses the control stream and post-base instructions</=
li>
<li>An encoding that makes a duplicate on the control stream and referenc=
es it</li>
</ol>
<p>I think 1 and 2 are more to be consistent with what HPACK did and shou=
ldn't really be required.  Even so, this might be a long section.</p>
<p>I'd like to avoid anything that involves decoder-&gt;encoder feedback =
since it can get hairy pretty quickly.  I'm less inclined to include the =
decoding process diagrams since decoding is pretty simple - it only emits=
.</p>

<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/1454#issuecomment-421509364">view it on GitHub</a>,=
 or <a href=3D"https://github.com/notifications/unsubscribe-auth/AWbkq2J0=
QtldvJwCLiC2rpCTr-MHMW3Sks5ubDtcgaJpZM4UqM1G">mute the thread</a>.<img sr=
c=3D"https://github.com/notifications/beacon/AWbkq83BdDDjmS7MUp8H0wFwUdif=
uaPhks5ubDtcgaJpZM4UqM1G.gif" height=3D"1" width=3D"1" alt=3D"" /></p>
<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://assets-cdn.github.com/images/email/message_cards/header.png","avatar_=
image_url":"https://assets-cdn.github.com/images/email/message_cards/avat=
ar.png","action":{"name":"Open in GitHub","url":"https://github.com/quicw=
g/base-drafts"}},"updates":{"snippets":[{"icon":"PERSON","message":"@afri=
nd in #1454: For reference, there is now this repo: https://github.com/qp=
ackers/qifs, which contains example encodings.  We could brush this up an=
d have some semi-canonical encodings there.  That said, I kind of liked h=
aving a few concrete examples in the HPACK specification that you can ref=
er back to.\r\n\r\nJust reviewing HPACK's examples, it has:\r\n\r\n3 Inte=
ger encoding examples\r\nAn example encoding of each instruction\r\nA seq=
uence of three requests and one with three responses, each encoded both w=
ith and without Huffman \r\n\r\nFor each of the request/response examples=
 it has a block that shows the decoding process - which octets produce wh=
ich decoder actions (insert, evict, emit, etc). \r\n\r\nI'm not sure how =
much of this ground we need to retread in QPACK.  Since we use the same i=
nteger and Huffman encoding, we could probably skip those.  \r\n\r\nSo ma=
ybe we should have\r\n\r\n1. One String literal example\r\n2. One Example=
 of each instruction (4 encoder, 3 decoder, 5 request)\r\n3. An encoding =
that does not use the dynamic table/control stream at all\r\n4. An encodi=
ng that uses the control stream\r\n5. An encoding that uses the control s=
tream and post-base instructions\r\n6. An encoding that makes a duplicate=
 on the control stream and references it\r\n\r\nI think 1 and 2 are more =
to be consistent with what HPACK did and shouldn't really be required.  E=
ven so, this might be a long section.\r\n\r\nI'd like to avoid anything t=
hat involves decoder-\u003eencoder feedback since it can get hairy pretty=
 quickly.  I'm less inclined to include the decoding process diagrams sin=
ce decoding is pretty simple - it only emits."}],"action":{"name":"View I=
ssue","url":"https://github.com/quicwg/base-drafts/issues/1454#issuecomme=
nt-421509364"}}}</script>
<script type=3D"application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/quicwg/base-drafts/issues/1454#issuecomment=
-421509364",
"url": "https://github.com/quicwg/base-drafts/issues/1454#issuecomment-42=
1509364",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Re: [quicwg/base-drafts] QPACK could use some examples (#1454)"=
,
"sections": [
{
"text": "",
"activityTitle": "**afrind**",
"activityImage": "https://assets-cdn.github.com/images/email/message_card=
s/avatar.png",
"activitySubtitle": "@afrind",
"facts": [

]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \=
"quicwg/base-drafts\",\n\"issueId\": 1454,\n\"IssueComment\": \"{{IssueCo=
mment.value}}\"\n}"
}
]
},
{
"name": "Close issue",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueClose\",\n\"repositoryFullName\": \"q=
uicwg/base-drafts\",\n\"issueId\": 1454\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/quicwg/base-drafts/issues/1454#issuecomment-42=
1509364"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 3466069=
18\n}"
}
],
"themeColor": "26292E"
}
]</script>=

----==_mimepart_5b9c43dcd914a_50093f9f312d45b44974d--

