[quicwg/base-drafts] QPACK instruction code points are inconsistent (#1471)

afrind <notifications@github.com> Fri, 22 June 2018 15:43 UTC

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 B9BF0130EA2 for <quic-issues@ietfa.amsl.com>; Fri, 22 Jun 2018 08:43:35 -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 SYBMQ-1yhxMu for <quic-issues@ietfa.amsl.com>; Fri, 22 Jun 2018 08:43:34 -0700 (PDT)
Received: from out-14.smtp.github.com (out-14.smtp.github.com [192.30.254.197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F2504130E96 for <quic-issues@ietf.org>; Fri, 22 Jun 2018 08:43:33 -0700 (PDT)
Date: Fri, 22 Jun 2018 08:43:33 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1529682213; bh=cU4hsLKPWEMXu3OX81a87ksK0hIdwuNpEHi/jWIeiaM=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=0GATn2KbPLls6csYF80443diXJXaoSbx12PCwLZ34usQ+rAo2dfRj0zi9V+4USapE GpcUFDnbo4yrdXkomNwZpnD/XmhXR8uaYnsd2D5VmvhG8bTSKyjUjZlRHWjGqFB9T2 hxT7ZJSYa52PFuFCoKGXaOKTgysVm8nQ58SFZ7RQ=
From: afrind <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abd6021845e2a48888ca5fdae58ec6d5dacce3417092cf000000011744db2592a169ce13f694de@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1471@github.com>
Subject: [quicwg/base-drafts] QPACK instruction code points are inconsistent (#1471)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b2d19254e147_6db22af130238f6018012b"; 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/ctIeiU1mStRlmHfELroFEwPGOK4>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.26
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, 22 Jun 2018 15:43:36 -0000

HPACK/QPACK can encode N different instructions in N-1 bits.  Both HPACK and the QPACK encoder stream use the same style fore code points - each instruction has either one or zero '1' bits (eg: 1, 01, 001, 0001, 0000).  The QPACK decoder stream and request/push streams however use (0, 10, 11) and (1, 00, 011, 0100, 0101), each of which have instructions with more than one '1'.  The logic to decode the instruction is slightly simpler when using the HPACK form, eg:

```
if byte & shortest_instruction:
  ...
else if byte & next_shortest_instruction:
  ...
else:  # it's the all-zero instruction
  ...
```

This logic doesn't work on the other two streams right now, you need to mask and check for equality.


-- 
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/1471