Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid having multiple ways to encode Delta Base Index of zero #2005

Merged
merged 2 commits into from
Dec 4, 2018

Conversation

kazuho
Copy link
Member

@kazuho kazuho commented Nov 14, 2018

As discussed in #2002, there are two ways to encode Delta Base Index of zero at the wire level; i.e. (sign-bit, delta-base-index)=(0, 0) and (1, 0).

To avoid having multiple ways to represent one value, currently, we prohibit the latter form from being used. A receiver is required to raise an error when it sees the latter.

This is not only an unnecessary complexity but also contradicts from the approach we use for Post-Base Indexes. In case of Post-Base Indexes, we introduce an offset of one so that the Post-Base
Index of zero and a non-Post-Base Index of zero do not overlap.

The commit adopts the approach to Delta Base Index; giving us consistency in the design and also removing an error check at the cost of requiring one subtraction.

As discussed in quicwg#2002, there are two ways to encode Delta Base
Index of zero at the wire level; i.e. (sign-bit, delta-base-index)
= (0, 0) and (1, 0).

To avoid having multiple ways to represent one value, we prohibit
the latter form from being used.  A receiver is required to raise
an error when it sees the latter.

This is not only an unnecessary complexity but also contradicts
from the approach we use for Post-Base Indexes.  In case of Post-
Base Indexes, we introduce an offset of one so that the Post-Base
Index of zero and a non-Post-Base Index of zero do not overlap.

The commit adopts the approach to Delta Base Index; giving us
consistency in the design and also removing an error check at the
cost of requiring one subtraction.
@martinthomson martinthomson added design An issue that affects the design of the protocol; resolution requires consensus. -qpack labels Nov 19, 2018
@afrind afrind merged commit 6ed6021 into quicwg:master Dec 4, 2018
dtikhonov pushed a commit to dtikhonov/base-drafts that referenced this pull request Dec 13, 2018
afrind pushed a commit that referenced this pull request Dec 18, 2018
* Fix QPACK-04 changelog: add two non-editorial changes

* Fix previous commit: #2005 is not in -04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-qpack design An issue that affects the design of the protocol; resolution requires consensus.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants