Draft: draft-ietf-quic-qpack

Commentary: is this linked to any issue ? 
 : no actually . I should probably create one I guess ? These came from a review from a past colleague with a sharp eye for detail . 
 For the scope of changes , I think its fine under an editor prerogative . Just wanted to make sure we were n't missing a linkage , alls good . 
 Some small suggestions that I think might improve consistency , but no strong feelings .
Paragraph (version A):
Each entry possesses an absolute index that is fixed for the lifetime
of that entry.  The first entry inserted has an absolute index of
"0"; indices increase by one with each insertion.
Paragraph (version A):
Relative indices begin at zero and increase in the opposite direction
from the absolute index.  Determining which entry has a relative
index of "0" depends on the context of the reference.
Paragraph (version A):
In encoder instructions (encoder-instructions), a relative index of
"0" refers to the most recently inserted value in the dynamic table.
Note that this means the entry referenced by a given relative index
will change while interpreting instructions on the encoder stream.
Paragraph (version B):
Each entry possesses an absolute index that is fixed for the lifetime
of that entry.  The first entry inserted has an absolute index of 0;
indices increase by one with each insertion.
Paragraph (version B):
Relative indices begin at zero and increase in the opposite direction
from the absolute index.  Determining which entry has a relative
index of 0 depends on the context of the reference.
Paragraph (version B):
In encoder instructions (encoder-instructions), a relative index of 0
refers to the most recently inserted value in the dynamic table.
Note that this means the entry referenced by a given relative index
will change while interpreting instructions on the encoder stream.
Paragraph (version A):
In a field line representation, a relative index of "0" refers to the
entry with absolute index equal to Base - 1.
Paragraph (version B):
In a field line representation, a relative index of 0 refers to the
entry with absolute index equal to Base - 1.
Paragraph (version A):
HTTP/3 endpoints contain a QPACK encoder and decoder.  Each endpoint
MUST initiate at most one encoder stream and at most one decoder
stream.  Receipt of a second instance of either stream type MUST be
treated as a connection error of type H3_STREAM_CREATION_ERROR.
These streams MUST NOT be closed.  Closure of either unidirectional
stream type MUST be treated as a connection error of type
H3_CLOSED_CRITICAL_STREAM.
Paragraph (version B):
HTTP/3 endpoints contain a QPACK encoder and decoder.  Each endpoint
MUST initiate at most one encoder stream and at most one decoder
stream.  Receipt of a second instance of either stream type MUST be
treated as a connection error of type H3_STREAM_CREATION_ERROR.
Paragraph (version B):
These streams MUST NOT be closed.  Closure of either unidirectional
stream type MUST be treated as a connection error of type
H3_CLOSED_CRITICAL_STREAM.
Paragraph (version A):
An encoder informs the decoder of a change to the dynamic table
capacity using an instruction that begins with the '001' three-bit
pattern.  This is followed by the new dynamic table capacity
represented as an integer with a 5-bit prefix; see prefixed-integers.
Paragraph (version B):
An encoder informs the decoder of a change to the dynamic table
capacity using an instruction that starts with the '001' 3-bit
pattern.  This is followed by the new dynamic table capacity
represented as an integer with a 5-bit prefix; see prefixed-integers.
Paragraph (version A):
An encoder adds an entry to the dynamic table where the field name
matches the field name of an entry stored in the static or the
dynamic table using an instruction that starts with the '1' one-bit
pattern.  The second ('T') bit indicates whether the reference is to
the static or dynamic table.  The 6-bit prefix integer (prefixed-
integers) that follows is used to locate the table entry for the
field name.  When T=1, the number represents the static table index;
when T=0, the number is the relative index of the entry in the
dynamic table.
Paragraph (version B):
An encoder adds an entry to the dynamic table where the field name
matches the field name of an entry stored in the static or the
dynamic table using an instruction that starts with the '1' 1-bit
pattern.  The second ('T') bit indicates whether the reference is to
the static or dynamic table.  The 6-bit prefix integer (prefixed-
integers) that follows is used to locate the table entry for the
field name.  When T=1, the number represents the static table index;
when T=0, the number is the relative index of the entry in the
dynamic table.
Paragraph (version A):
An encoder adds an entry to the dynamic table where both the field
name and the field value are represented as string literals using an
instruction that starts with the '01' two-bit pattern.
Paragraph (version B):
An encoder adds an entry to the dynamic table where both the field
name and the field value are represented as string literals using an
instruction that starts with the '01' 2-bit pattern.
Paragraph (version A):
An encoder duplicates an existing entry in the dynamic table using an
instruction that begins with the '000' three-bit pattern.  This is
followed by the relative index of the existing entry represented as
an integer with a 5-bit prefix; see prefixed-integers.
Paragraph (version B):
An encoder duplicates an existing entry in the dynamic table using an
instruction that starts with the '000' 3-bit pattern.  This is
followed by the relative index of the existing entry represented as
an integer with a 5-bit prefix; see prefixed-integers.
Paragraph (version A):
After processing an encoded field section whose declared Required
Insert Count is not zero, the decoder emits a Section Acknowledgement
instruction.  The instruction begins with the '1' one-bit pattern,
followed by the field section's associated stream ID encoded as a
7-bit prefix integer; see prefixed-integers.
Paragraph (version B):
After processing an encoded field section whose declared Required
Insert Count is not zero, the decoder emits a Section Acknowledgement
instruction.  The instruction starts with the '1' 1-bit pattern,
followed by the field section's associated stream ID encoded as a
7-bit prefix integer; see prefixed-integers.
Paragraph (version A):
When a stream is reset or reading is abandoned, the decoder emits a
Stream Cancellation instruction.  The instruction begins with the
'01' two-bit pattern, followed by the stream ID of the affected
stream encoded as a 6-bit prefix integer.
Paragraph (version A):
The Insert Count Increment instruction begins with the '00' two-bit
pattern, followed by the Increment encoded as a 6-bit prefix integer.
This instruction increases the Known Received Count (known-received-
count) by the value of the Increment parameter.  The decoder should
send an Increment value that increases the Known Received Count to
the total number of dynamic table insertions and duplications
processed so far.
Paragraph (version B):
When a stream is reset or reading is abandoned, the decoder emits a
Stream Cancellation instruction.  The instruction starts with the
'01' 2-bit pattern, followed by the stream ID of the affected stream
encoded as a 6-bit prefix integer.
Paragraph (version B):
The Insert Count Increment instruction starts with the '00' 2-bit
pattern, followed by the Increment encoded as a 6-bit prefix integer.
This instruction increases the Known Received Count (known-received-
count) by the value of the Increment parameter.  The decoder should
send an Increment value that increases the Known Received Count to
the total number of dynamic table insertions and duplications
processed so far.
Paragraph (version A):
This representation starts with the '01' two-bit pattern.  The
following bit, 'N', indicates whether an intermediary is permitted to
add this field line to the dynamic table on subsequent hops.  When
the 'N' bit is set, the encoded field line MUST always be encoded
with a literal representation.  In particular, when a peer sends a
field line that it received represented as a literal field line with
the 'N' bit set, it MUST use a literal representation to forward this
field line.  This bit is intended for protecting field values that
are not to be put at risk by compressing them; see security-
considerations for more details.
Paragraph (version B):
This representation starts with the '01' 2-bit pattern.  The
following bit, 'N', indicates whether an intermediary is permitted to
add this field line to the dynamic table on subsequent hops.  When
the 'N' bit is set, the encoded field line MUST always be encoded
with a literal representation.  In particular, when a peer sends a
field line that it received represented as a literal field line with
the 'N' bit set, it MUST use a literal representation to forward this
field line.  This bit is intended for protecting field values that
are not to be put at risk by compressing them; see security-
considerations for more details.
Paragraph (version A):
This representation starts with the '0000' four-bit pattern.  The
fifth bit is the 'N' bit as described in literal-name-reference.
This is followed by a post-base index of the dynamic table entry
(post-base) encoded as an integer with a 3-bit prefix; see prefixed-
integers.
Paragraph (version B):
This representation starts with the '0000' 4-bit pattern.  The fifth
bit is the 'N' bit as described in literal-name-reference.  This is
followed by a post-base index of the dynamic table entry (post-base)
encoded as an integer with a 3-bit prefix; see prefixed-integers.
Paragraph (version A):
This representation begins with the '001' three-bit pattern.  The
fourth bit is the 'N' bit as described in literal-name-reference.
The name follows, represented as a 4-bit prefix string literal, then
the value, represented as an 8-bit prefix string literal; see string-
literals.
Paragraph (version B):
This representation starts with the '001' 3-bit pattern.  The fourth
bit is the 'N' bit as described in literal-name-reference.  The name
follows, represented as a 4-bit prefix string literal, then the
value, represented as an 8-bit prefix string literal; see string-
literals.