qlog icon indicating copy to clipboard operation
qlog copied to clipboard

H3Settings is a bit underspecified

Open LPardue opened this issue 1 year ago • 4 comments

https://quicwg.org/qlog/draft-ietf-quic-qlog-h3-events.html#section-5.3.4

H3Setting = {
    name: text
    value: uint64
}

Looking at IANA https://www.iana.org/assignments/http3-parameters/http3-parameters.xhtml, I think qlog nudges implementations to log the setting name. When an implementation receives an unknown setting (not a greased one) it won't know the name. It could log the setting type value code in the name field, but that is not specified. This makes things annoying for parsers since they need to do some thinking.

One suggestion is to add another field like type that could contain the numerical type value. It would be duplicative to have both, so that might require making type and name optional.

LPardue avatar Jan 25 '24 02:01 LPardue

Also we might want to state that the name should be the name IANA use, possiblyeven define a explicit names in addition to free form string.

LPardue avatar Jan 25 '24 02:01 LPardue

Discussed during meeting. Agree to add this option, similar to how we changed ALPN in #385

rmarx avatar Feb 05 '24 09:02 rmarx

Another thing I'm wondering is if we should clarify what the name field is exactly.

i.e., I've previously logged this myself as QPACK_MAX_TABLE_CAPACITY but the IANA name is prefixed with SETTINGS_, so SETTINGS_QPACK_MAX_TABLE_CAPACITY instead.

You could argue this should be obvious, but e.g., in RFC9204, they use the unprefixed version (see https://www.rfc-editor.org/rfc/rfc9204.html#section-8.1) with a note For formatting reasons, the setting names here are abbreviated by removing the 'SETTINGS_' prefix.... could be quite confusing for novice implementers, so maybe 1 example or clear statement that the name is the IANA registered name would be good.

rmarx avatar Feb 05 '24 14:02 rmarx

Agree 100%, I'll add some text

LPardue avatar Feb 05 '24 18:02 LPardue