Subject: [quicwg/base-drafts] The offset for the frame with fin bit without data. (#689)

From: Dragana Damjanovic <[email-masked]>
Date: Tue, 18 Jul 2017 11:07:21 -0700

> A stream frame's Stream Data MUST NOT be empty, unless the FIN bit is set. When the FIN flag is sent on an empty STREAM frame, the offset in the STREAM frame MUST be one greater than the last data byte sent on this stream.

If a stream has not send any data at all and only send a frame with the fin bit set, what  should be the frame offset? I interpreted this as 0 but one other person as 0+1. 0+1 is strange.

Maybe we should define this as:
When the FIN flag is sent on an empty STREAM frame, the offset in the STREAM frame MUST be set to the offset of the next byte to be sent.
(a bit better formulation would be good)

so it will be 0 in the case described above and stays the same for other cases.

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

---

From: MikkelFJ <[email-masked]>
Date: Tue, 18 Jul 2017 12:05:22 -0700

A stream frame's Stream Data MUST NOT be empty, unless the FIN bit is set. When the FIN flag is sent on an empty STREAM frame, the offset in the STREAM frame MUST be the total count of bytes sent on this stream.

-- 
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/689#issuecomment-316165867

---

From: Lars Eggert <[email-masked]>
Date: Tue, 18 Jul 2017 22:03:06 +0000 (UTC)

I was the "other person" and I approve of @ddragana's rewording :-)

-- 
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/689#issuecomment-316211585

---

From: Martin Thomson <[email-masked]>
Date: Tue, 18 Jul 2017 23:44:05 -0700

This interpretation is incorrect.

If you send one octet, then you have an offset of 0 and that octet is octet 0.  An empty STREAM frame then has an offset of 1.

By extension, having one fewer octet means that the last octet is octet -1.  The empty STREAM frame carries an offset of 0 in the case you describe.

We should have explicit text on this special case.

-- 
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/689#issuecomment-316288358

---

From: Mike Bishop <[email-masked]>
Date: Mon, 24 Jul 2017 17:44:27 +0000 (UTC)

The offset is always set to the offset of the next byte to be sent, whether the STREAM frame is empty or not.  If there has never been any data, that offset is zero.  If there has previously been data, that offset is the offset of the previous byte plus 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/689#issuecomment-317500075