PQ Crypta Logo

Deliberately tight MAX_DATA and MAX_STREAM_DATA

Respect the limit. Announcing the stall with DATA_BLOCKED or STREAM_DATA_BLOCKED is a SHOULD in §4.1, not a MUST, so a client that stays silent is still conformant.

PQ CRYPTA PLATFORM

🏠 Main

📰 News

👤 Account

⟨ QUANTUM ERROR PORTAL ⟩

Navigate the Error Dimensions

Jump to an anomaly59

Every one of these is a page: what the server emits, the clause it is judged against, and how each client answered. The full list carries the verdict tallies too.

q-flow-control · RFC 9000 §4 · discretionary · layer quic · udp/4466 · SHOULD

Passing this means: The RFC permits either behaviour; the report says which was chosen.

Anomaly type: transport

How each client answered

ClientVersionVerdictWhat happened
curl libcurl/8.23.0 ngtcp2/1.25.0 Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
quinn noq fork (189b0ed) Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
aioquic 1.3.0 (PyPI wheel) Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
chromium build 1248 Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
quic-go quic-go v0.61.0 (h1:9So2anK4Tp22) Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
quiche 0.30.0 (1c8e976) Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
neqo 0.31.1 (cac2b74) Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
picoquic 8162550 Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
ngtcp2 3c23148 Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
lsquic 4.9.4 (2b30189) Unsupported does not accept a server whose flow-control windows are this tight. It abandoned the handshake on this port, whose transport parameters grant 512 bytes per stream and 1024 per connection and differ from the other ports in nothing else, while completing exchanges on others in this session. It sent no CONNECTION_CLOSE to say so (this client runs on the endpoint's own host, where nothing is lost), so the refusal is inferred from where it happened.
xquic 2060a44 Pass Handled it: respected the window and announced the stall (2 DATA_BLOCKED, 2 STREAM_DATA_BLOCKED).
msquic 2.7.0 (7e6525d) Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.
quico 0.7.0 (npm) Pass Handled it: respected the window without sending a BLOCKED frame, which §4.1 permits.

What the clause requires

Respect the limit. Announcing the stall with DATA_BLOCKED or STREAM_DATA_BLOCKED is a SHOULD in §4.1, not a MUST, so a client that stays silent is still conformant.

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-flow-control")'