q-connection-migration
· RFC 9000 §9.6 · discretionary · layer quic · udp/4495 · SHOULD
Passing this means: The RFC permits either behaviour; the report says which was chosen.
Anomaly type: transport
How each client answered
| Client | Version | Verdict | What happened |
|---|---|---|---|
| curl | libcurl/8.23.0 ngtcp2/1.25.0 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 1002ms in, before this test's reaction point at 3015ms, so the silence after that is not evidence either way. |
| quinn | noq fork (189b0ed) | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 1052ms in, before this test's reaction point at 3002ms, so the silence after that is not evidence either way. |
| aioquic | 1.3.0 (PyPI wheel) | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 1302ms in, before this test's reaction point at 3015ms, so the silence after that is not evidence either way. |
| chromium | build 1248 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 1711ms in, before this test's reaction point at 3011ms, so the silence after that is not evidence either way. |
| quic-go | quic-go v0.61.0 (h1:9So2anK4Tp22) | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 3008ms in, before this test's reaction point at 3043ms, so the silence after that is not evidence either way. |
| quiche | 0.30.0 (1c8e976) | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 952ms in, before this test's reaction point at 3005ms, so the silence after that is not evidence either way. |
| neqo | 0.31.1 (cac2b74) | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 952ms in, before this test's reaction point at 3005ms, so the silence after that is not evidence either way. |
| 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. The client process had already exited 952ms in, before this test's reaction point at 3001ms, so the silence after that is not evidence either way. |
| ngtcp2 | 3c23148 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. |
| lsquic | 4.9.4 (2b30189) | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 952ms in, before this test's reaction point at 3005ms, so the silence after that is not evidence either way. |
| xquic | 2060a44 | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 1202ms in, before this test's reaction point at 3006ms, so the silence after that is not evidence either way. |
| msquic | 2.7.0 (7e6525d) | Pass | Tolerated it and continued. The specification permits this but does not require it; a client that rejected it would also be conformant. The client process had already exited 1252ms in, before this test's reaction point at 3131ms, so the silence after that is not evidence either way. |
| quico | 0.7.0 (npm) | 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
Keep using the address you are already talking to. §9.6 says a client "SHOULD ignore packets received from a server address other than the one it is currently using for sending packets" — a SHOULD, so quietly discarding them and objecting are both conformant. Following the new address is not: nothing is listening there, and a server may only move a client to an address it advertised as its preferred one.
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-connection-migration")'