Re: [quicwg/base-drafts] QPACK: wrap absolute index values (#1657)

Dmitri Tikhonov <notifications@github.com> Tue, 14 August 2018 13:11 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 63CAF130DDA for <quic-issues@ietfa.amsl.com>; Tue, 14 Aug 2018 06:11:30 -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 McfS2UttlCmI for <quic-issues@ietfa.amsl.com>; Tue, 14 Aug 2018 06:11:29 -0700 (PDT)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 010F01277D2 for <quic-issues@ietf.org>; Tue, 14 Aug 2018 06:11:28 -0700 (PDT)
Date: Tue, 14 Aug 2018 06:11:28 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1534252288; bh=lgZ0RPf7FP1aaxS9tdpe1S2pr59y/IUs6oSrAX+in4k=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=dNWXj9kYdN5ORNcXwzw55crHq3WfFzO4R5x+OaImEDU825Sxoe0l5mHBMC7Z08V7s 2Khnc1f26Z/FL7yJpTXJ+9xCdImp6ZmTKLBNLrDNteEjLWpTBjDu0z/Cr8n6HrDTcV OhfbRSZs20kTYvkkzU6jhzhWGzFwPw9SZZgEIuqE=
From: Dmitri Tikhonov <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab1b642d4067ade51db06ee4dd048722f231d1c33992cf00000001178a970092a169ce14df4b4c@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1657/review/146054639@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1657@github.com>
References: <quicwg/base-drafts/pull/1657@github.com>
Subject: Re: [quicwg/base-drafts] QPACK: wrap absolute index values (#1657)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b72d500259f2_37273fd0b00be620294943"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: dtikhonov
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/6lgvrcDvTg8AAW7rpdmYYy6VSuU>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.27
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: Tue, 14 Aug 2018 13:11:30 -0000

dtikhonov commented on this pull request.



> -necessary for decoding. If the greatest absolute index in the dynamic table is
-less than the value of the Largest Reference, the stream is considered
-"blocked."  While blocked, header field data should remain in the blocked
-stream's flow control window.  When the Largest Reference is zero, the frame
-contains no references to the dynamic table and can always be processed
-immediately. A stream becomes unblocked when the greatest absolute index in the
-dynamic table becomes greater than or equal to the Largest Reference for all
+Each header block contains a Largest Reference field which identifies the
+table state necessary for decoding.
+
+When the Largest Reference value is not specified, the frame contains no
+references to the dynamic table and can always be processed immediately.
+
+When it is specified, the Largest Reference value is compared with
+the absolute index value of the next entry to be inserted into the
+dynamic table.  That entry's absolute index value divides the absolute

I used the "next entry to be inserted" because I see no other way to describe the initial state, when there is no "last inserted entry."  Perhaps we could add the concept of "cursor?"

The "total number of inserts" concept eludes me.  The diagram is confusing, as it combines both encoder instructions (`Insert`) and header block instructions (`Post-Base`).

1. If the "total number of inserts" is the number of inserts performed while encoding a given header block, how does the decoder know where to start?
1. If this number is added to the current absolute index, then it is the same as _Largest Reference_.
1. ?

-- 
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/pull/1657#discussion_r209944304