Subject: Re: [quicwg/base-drafts] Variable-length integers (#595)

From: ianswett <[email-masked]>
Date: Mon, 16 Oct 2017 15:31:39 +0000 (UTC)

I like this(#877) at a high level because it also fixes #423 (at least well enough for now) and is fast, easy to implement and space efficient.  It also expands the stream_id space, which I think is a good idea anyway.

As I said on the PR, I prefer the "num blocks" approach to the 0 as a terminator approach.  I noted you prefer the 'total length' approach, but I think that could become a real pain, especially once ECN and/or timestamps are added back in, so the length may be non-trivial to compute.  

Given the rest of this PR is heading in a good direction, I'd rather keep the core format of the ACK frame as similar as possible for now by doing num blocks and then we can discuss a complete relayout of the ack frame in a different issue/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/issues/595#issuecomment-336924424

---

From: Martin Thomson <[email-masked]>
Date: Mon, 16 Oct 2017 18:13:50 -0700

Sure, the change to num blocks is trivial.  I figured that either approach was equally bad, so went with one that would allow the parser to move on faster, but I am willing to go either way on this one.

-- 
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/595#issuecomment-337088198

---

From: MikkelFJ <[email-masked]>
Date: Mon, 16 Oct 2017 18:30:06 -0700

I agree with Ian - there are complexities with going with a length based solution when dealing with optional sub-frames so as is, I prefer  any solution that is not length based.

But it is not unhead of to have a length based solution where each subframe exists if the length is longer than most recently parsed subframe, but obviously that necessitates a termination of that subframe. Thus, each subframe typically has its own length. One of the IoT protocols do this, perhaps it is MQTT. However, it is likely to consume more space.

In isolation, it is also not a good idea to add a length based solution. If it is done, all other frames ought to be revisited, which would be some additional work to ensure the length can be understood without understanding the full frame.

I would generally like to see a solution where a frame could be skipped by just reading its header as opposed to requiring a full stream parser. It forces implementations to separate parsing from actions which may be architecturally nice, but introduces temporary data structures to handle the parse output. But, it will likely consume more space overall.

-- 
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/595#issuecomment-337090566

---

From: Mike Bishop <[email-masked]>
Date: Mon, 30 Oct 2017 23:30:49 +0000 (UTC)

Closed #595 via #877.

-- 
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/595#event-1317779344