q-ecn
· RFC 9000 §13.4 · correctness · layer quic · udp/4468 · MUST
Passing this means: Rejected something invalid, with the code the RFC names.
Anomaly type: transport
How each client answered
| Client | Version | Verdict | What happened |
|---|---|---|---|
| curl | ngtcp2/1.11.0 | Inconclusive | The run did not exercise this test: ECN validation failed: packets sent marked ECT(0) came back acknowledged without ECN counts, so the marking was disabled. Whether the peer declined to report or the path rewrote the codepoint cannot be told apart from this end. |
| quinn | noq fork | Inconclusive | The run did not exercise this test: ECN validation failed: packets sent marked ECT(0) came back acknowledged without ECN counts, so the marking was disabled. Whether the peer declined to report or the path rewrote the codepoint cannot be told apart from this end. |
| aioquic | 1.3.0 | Inconclusive | The run did not exercise this test: ECN validation failed: packets sent marked ECT(0) came back acknowledged without ECN counts, so the marking was disabled. Whether the peer declined to report or the path rewrote the codepoint cannot be told apart from this end. |
| chromium | build 1223 | Pass | Responded correctly: echoed ECN counts back in its ACKs: 13 ECT(0), 0 ECT(1), 0 ECN-CE. |
| quic-go | quic-go v0.61.0 | Pass | Responded correctly: echoed ECN counts back in its ACKs: 5 ECT(0), 0 ECT(1), 0 ECN-CE. |
| quiche | 0.30.0 | Inconclusive | The run did not exercise this test: ECN validation failed: packets sent marked ECT(0) came back acknowledged without ECN counts, so the marking was disabled. Whether the peer declined to report or the path rewrote the codepoint cannot be told apart from this end. |
| neqo | 0.31.1 | Inconclusive | The run did not exercise this test: ECN validation failed: packets sent marked ECT(0) came back acknowledged without ECN counts, so the marking was disabled. Whether the peer declined to report or the path rewrote the codepoint cannot be told apart from this end. |
What the clause requires
Echo the ECN counts back in ACK frames carrying an ECN section (type 0x03). §13.4.1 makes this a conditional requirement — an endpoint MUST report the markings it receives "if these are accessible", and explicitly permits an endpoint with no access to the ECN field to report nothing. So counts coming back is a pass, and silence is inconclusive rather than a failure: it cannot be told apart from a path that stripped the codepoint in transit.
Judged against RFC 9000.
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 == "q-ecn")'
What this suite is · The full grid · All clients · All tests · Findings