h-priority-update
· RFC 9218 §7.2 · discretionary · layer http3 · udp/4498 · MUST NOT
Passing this means: The RFC permits either behaviour; the report says which was chosen.
Anomaly type: control_stream
How each client answered
| Client | Version | Verdict | What happened |
|---|---|---|---|
| curl | ngtcp2/1.11.0 | Pass | Rejected it (rejected at the QUIC layer with INTERNAL_ERROR). The specification permits this but does not require it; a client that ignored it would also be conformant. |
| quinn | noq fork | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. |
| aioquic | 1.3.0 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. |
| chromium | build 1223 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. |
| quic-go | quic-go v0.61.0 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. |
| quiche | 0.30.0 | Pass | Rejected with error 0x105. The specification permits this but does not require it; a client that ignored it would also be conformant. |
| neqo | 0.31.1 | Pass | Rejected with error 0x105. The specification permits this but does not require it; a client that ignored it would also be conformant. |
| picoquic | 8162550 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. |
| ngtcp2 | 3c23148 | Pass | Rejected with error 0x105. The specification permits this but does not require it; a client that ignored it would also be conformant. |
| lsquic | 4.9.4 | Pass | Rejected with error 0x105. The specification permits this but does not require it; a client that ignored it would also be conformant. |
| xquic | 2060a44 | Inconclusive | The run did not exercise this test: the endpoint refused the connection before a handshake existed (detected an error with protocol compliance that was not covered by more specific error codes in STREAMS_BLOCKED_BIDI: illegal frame type in handshake). On this tier that is what a client offering no key exchange group this port will negotiate looks like -- a fact about the client, not a gap in the run. |
| msquic | 2.7.0 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. |
What the clause requires
Reject it with H3_FRAME_UNEXPECTED, or ignore it — which is conformant depends on whether you implement extensible priorities at all, and that is not observable from here. A client that does implement RFC 9218 is bound by §7.2: servers "MUST NOT send PRIORITY_UPDATE frames of either type", and a client receiving one MUST treat it as a connection error of that type. A client that does not implement it sees frame type 0xf0700 as simply unknown, and RFC 9114 §9 requires unknown frame types to be ignored — so ignoring it is equally correct, for a different reason. Scoring this as a failure either way would accuse one of those two clients of a violation it did not commit, so the report says which answer was given rather than grading it.
Judged against RFC 9218.
Run this one yourself
Every test is reachable from your own client. Nothing here needs an account.
curl -s https://conformance.pqcrypta.com/catalog.json \
| jq '.tests[] | select(.id == "h-priority-update")'