Subject: [quicwg/base-drafts] Connection ID should be treated as a 32-bit field and not as a uint (#786)

From: janaiyengar <[email-masked]>
Date: Thu, 21 Sep 2017 10:20:29 -0700

It should be obvious, but we should make it clear since endianness matters, especially when we feed connection ID into the en/decrypters.

Also, version number should be treated as a uint. We should be explicit about this as well.

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

---

From: Ryan Hamilton <[email-masked]>
Date: Thu, 21 Sep 2017 21:37:07 +0000 (UTC)

Two comments. First, I think you meant 64 bit not 32 :)

But second, my inclination is that for anything in the protocol which is vaguely numeric with should store it in memory in host-byte-order and write to the wire in network-byte-order. As such, I would argue that the connection id *should* be "an unsigned 64-bit number".

As to the QUIC version, I agree that the QUIC version should be "and unsigned 32-bit number". I believe that is already implied by the spec, but being explicit would be good.

-- 
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/786#issuecomment-331289123

---

From: janaiyengar <[email-masked]>
Date: Thu, 21 Sep 2017 14:42:20 -0700

Yes, thanks for correcting, I meant 64-bit connection ID and 32-bit Version.

The most important thing here is that we agree on and explicitly specify an endianness to use (I've changed the title of this bug to reflect that). Your point is fair, and I'm fine with treating connection ID as a uint.

-- 
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/786#issuecomment-331290226

---

From: janaiyengar <[email-masked]>
Date: Thu, 21 Sep 2017 22:31:15 +0000 (UTC)

Closed #786 via #788.

-- 
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/786#event-1260314080

---

From: Subodh Iyengar <[email-masked]>
Date: Fri, 22 Sep 2017 13:02:09 -0700

It seems fairly weird to treat conn ids as 64 bit ints because load balancers are going to do bit twiddling on the connection id to either encrypt / store state in the connid. I can see the argument of being consistent with other fields, but it still seems like it will cause some strange bugs if we specify endianness for things that are not actually ints. My preference is to specifically treat connid as not an int.

-- 
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/786#issuecomment-331547058

---

From: Martin Thomson <[email-masked]>
Date: Mon, 25 Sep 2017 05:22:12 +0000 (UTC)

@siyengar, nobody will know if you don't use htonll/ntohll.  Feel free to treat connection ID as flat octets, they are your octets to do with as you please.

-- 
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/786#issuecomment-331779842