Subject: Mapping QUIC version to that included in Alt-Svc header

From: "Aron ." <[email-masked]>
Date: Sun, 22 Jan 2017 21:29:25 -0500

Hello,

A QUIC version is a "32-bit opaque tag."  It just so happens that they are
currently strings Q034, Q035, and so on.  Upon seeing v="34,35" in Alt-Svc
header, the client *assumes* that these versions correspond to Q034 and
Q035.

I do not see this mapping documented anywhere.  There has been some recent
talk about using new values for experimental QUIC versions.  How are they
to map to the values advertised in Alt-Svc?

Adam.

---

From: Mike Bishop <[email-masked]>
Date: Mon, 23 Jan 2017 05:23:58 +0000

Look at draft -01 of the HTTP mapping.  It proposes a change to the Alt-Svc mapping to support two different formats of the version, neither if which requires any client inference.

Sent from my Windows 10 phone

From: Aron .<mailto:[email-masked]>
Sent: Sunday, January 22, 2017 6:29 PM
To: IETF QUIC WG<mailto:[email-masked]>
Subject: Mapping QUIC version to that included in Alt-Svc header

Hello,

A QUIC version is a "32-bit opaque tag."  It just so happens that they are currently strings Q034, Q035, and so on.  Upon seeing v="34,35" in Alt-Svc header, the client *assumes* that these versions correspond to Q034 and Q035.

I do not see this mapping documented anywhere.  There has been some recent talk about using new values for experimental QUIC versions.  How are they to map to the values advertised in Alt-Svc?

Adam.

---

From: Julian Reschke <[email-masked]>
Date: Mon, 23 Jan 2017 12:37:24 +0100

On 2017-01-23 06:23, Mike Bishop wrote:
> Look at draft -01 of the HTTP mapping.  It proposes a change to the
> Alt-Svc mapping to support two different formats of the version, neither
> if which requires any client inference.
> ...

<https://greenbytes.de/tech/webdav/draft-ietf-quic-http-01.html#rfc.section.2.1>:

> v = version
> version = DQUOTE ( "c" version-string / "x" version-number ) DQUOTE
> version-string = token; percent-encoded QUIC version
> version-number = 1*8 HEXDIG; hex-encoded QUIC version

Nit: this is inconsistent with other uses of quoted-string:

1) It looks like quoted-string, but isn't really (no "\" escaping)

2) It requires quoting when it is not needed.

This should be fixed by removing the "version" ABNF. Just state in prose 
that the value of parameter v (which can be either token or 
quoted-string) has either the "c" or "x" notation.

That said...:

> QUIC versions are four-octet sequences with no additional constraints on format. Versions containing octets not allowed in tokens ([RFC7230], Section 3.2.6) MUST be encoded using the hexidecimal representation. Versions containing only octets allowed in tokens MAY be encoded using either representation.

This is bad as it means that there are multiple ways to encode the same 
parameter.

IMHO it would be much better just to use format we already use in 
Alt-Svc; see 
<https://greenbytes.de/tech/webdav/rfc7838.html#rfc.section.3.p.4>.

Best regards, Julian