moq-wg / moq-transport

draft-ietf-moq-transport
Other
87 stars 22 forks source link

Why define a boolean type but be lenient with its usage? #542

Closed LPardue closed 2 months ago

LPardue commented 2 months ago

https://moq-wg.github.io/moq-transport/draft-ietf-moq-transport.html#section-1.3-5.4.1 states

Indicates that x is a flag and is encoded as a single byte with the value 0 or 1. A value of 0 indicates the flag is false or off, while a value of 1 indicates the flag is true or on. Any other value is a protocol error and SHOULD terminate the session with a Protocol Violation (Section 3.5).

This seems at odds with the QUIC design ethos of being very strict about receiving things that are obviously broken. This matter is wrapped up in https://github.com/moq-wg/moq-transport/issues/536 and the proposed change (https://github.com/moq-wg/moq-transport/pull/543), so I wanted to track the question separately.

I suspect we might want a bigger pass over the recomendations about when to detect a protocol error and how to handle it but I don't want to miss this specific issue in case it was done for a good reason.

LPardue commented 2 months ago

I don't think this is editorial, since it affects the expectations on what a receiver is expected to do

ianswett commented 2 months ago

To clarify, the proposal is to change the SHOULD terminate to a MUST terminate?

I expect that's what everyone will do anyway, so this SG

LPardue commented 2 months ago

Yes that would be my proposal here.

And in addition, a separate review of other fields for consistency.

LPardue commented 2 months ago

Discussed in today's interim. MUST rolled into https://github.com/moq-wg/moq-transport/pull/543 and merged. So closing issue as done.