Subject: [quicwg/base-drafts] Fix confusing indexing name (#4933)

From: Daiki AMINAKA <[email-masked]>
Date: Wed, 04 Aug 2021 23:53:35 -0700

`absolute index` could make sense, but `Indexed Field Line` and `Literal Field Line With Name Reference` are better to use  `relative index`, because these are said as `relative index` when T=0 at line 1043 and 1098.
`post base index` as well. it would be better than `absolute index`.
Line 585 said this index as `Unlike in encoder instructions,  relative indices in field line representations are relative to the Base at the beginning of the encoded field section`
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/4933

-- Commit Summary --

  * Fix confusing indexing name

-- File Changes --

    M draft-ietf-quic-qpack.md (8)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/4933.patch
https://github.com/quicwg/base-drafts/pull/4933.diff

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

---

From: Mike Bishop <[email-masked]>
Date: Thu, 05 Aug 2021 07:15:41 -0700

@MikeBishop requested changes on this pull request.

None of these changes are correct.  The point of the absolute index is that it's not changing -- these are the definitions of how other types of references map to an absolute index, and which absolute indices can be expressed by each reference type.

> @@ -1025,7 +1025,7 @@ entry.
 ### Indexed Field Line
 
 An indexed field line representation identifies an entry in the static table,
-or an entry in the dynamic table with an absolute index less than the value of
+or an entry in the dynamic table with an relative index less than the value of

No; the Base is an absolute index.  An Indexed Field Line of this type uses relative indices, and so can only reference a certain region of the table; this is describing which region.

> @@ -1047,7 +1047,7 @@ dynamic table.
 ### Indexed Field Line With Post-Base Index
 
 An indexed field line with post-base index representation identifies an entry
-in the dynamic table with an absolute index greater than or equal to the value
+in the dynamic table with an post base index greater than or equal to the value

Same here -- it makes no sense to say that the post-base index is greater than or equal to the value of the Base.

-- 
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/4933#pullrequestreview-723407935

---

From: Daiki AMINAKA <[email-masked]>
Date: Mon, 09 Aug 2021 23:26:19 -0700

@ami-GS pushed 1 commit.

d17a28d4f3adc2792b8606082bdcead18781bd5a  Add detailed explanation

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4933/files/8d97a3be8260d98da281f74e89c407f723958d5c..d17a28d4f3adc2792b8606082bdcead18781bd5a

---

From: Daiki AMINAKA <[email-masked]>
Date: Mon, 09 Aug 2021 23:27:52 -0700

How about this? should make sense more

-- 
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/4933#issuecomment-895763831

---

From: afrind <[email-masked]>
Date: Tue, 10 Aug 2021 09:55:34 -0700

The opening text for each representation is trying to state which dynamic table entries are eligible for for that representation.  All three representations state that they include either a relative or post-base index in the paragraph following the diagram.

The eligibility condition is awkward because "Base" really means "Base Insert Count".  Comparing indexes and counts can get confusing - eg: Absolute Index = 0 can be used in Indexed Field Line when Base (count) is 1 or greater. 

So the explanation in the draft works better for me than the proposed text, but I don't love it.  I'm inclined not to merge this PR.

-- 
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/4933#issuecomment-896149351

---

From: Daiki AMINAKA <[email-masked]>
Date: Wed, 11 Aug 2021 00:02:20 -0700

Hmm, I don't  come up with any other representation.
Simply I felt using `absolute` and `relative` in same section looks confusing.
eg: Line 1028 and 1024 explain same part in wire, but using opposite adjective.

-- 
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/4933#issuecomment-896554646

---

From: Mike Bishop <[email-masked]>
Date: Wed, 11 Aug 2021 11:18:15 -0700

1024 is a blank line, so I'm guessing you meant a different line number.  1043, maybe?

I think the confusion is that they're *not* describing the same thing with opposite adjectives; they're describing related but different concepts.
- Every entry that has ever been in the table has an absolute index; see 3.2.4.  Because this number grows over time, it's never directly used on the wire.  It's an internal reference in each implementation.
- In order to compress this potentially-large value, it's expressed on the wire as a relative index or a post-base index; see 3.2.5 and 3.2.6.
- To turn a relative or post-base index into an absolute index and look up the appropriate item, you start from the most recent entry (on the Encoder stream) or the Base (within encoded field sections) and count one direction or the other.
- The different representation types can only refer to a certain region of absolute indices relative to the Base; each representation describes the range it is able to reference at the beginning of its description.  (e.g. `an entry ... with an absolute index less than the value of the Base`)

So every entry has an absolute index, but no instructions use absolute indices.  Instead, they use relative indices.  A decoder will first resolve a relative index into an absolute index, then look up that location in the table.

-- 
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/4933#issuecomment-897046681

---

From: Daiki AMINAKA <[email-masked]>
Date: Wed, 18 Aug 2021 01:00:28 -0700

Maybe I get the point (Yes, line 1043 is correct)
The `absolute index` in `absolute index ... the value of the Base.` doesn't talk about index written in wire, right?
Just a general concept about absolute index used to refer entry and how is it relative Base for each field section type.

-- 
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/4933#issuecomment-900904435

---

From: Mike Bishop <[email-masked]>
Date: Wed, 18 Aug 2021 07:57:17 -0700

Right -- the absolute index is a concept used to describe how things work, but is never used directly on the wire.

-- 
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/4933#issuecomment-901185669

---

From: Daiki AMINAKA <[email-masked]>
Date: Wed, 18 Aug 2021 13:55:39 -0700

Closed #4933.

-- 
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/4933#event-5177118533