Responded correctly: echoed ECN counts back in its ACKs: 21 ECT(0), 0 ECT(1), 0 ECN-CE.
The client did what the clause requires.
What was measured
- Client
- ngtcp2 — ngtcp2 + nghttp3 (direct), 3c23148
- Test
- Packets marked ECT(0) —
q-ecn - Clause
- RFC 9000 §13.4 (MUST)
- Class
- correctness — Rejected something invalid, with the code the RFC names.
- Required behaviour
- 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.
- Measured
- 2026-09-18
Reproduce it
The suite is the judge, so the reproduction is to point the same client at the same test and let the server report what it saw.
SESSION=$(curl -sX POST https://conformance.pqcrypta.com/session | jq -r .id)
# then drive ngtcp2 at the test URL and read the verdict:
curl -s https://conformance.pqcrypta.com/report/$SESSION.json | jq '.results["q-ecn"]'
What this suite is · The full grid · All clients · All tests · Findings