ABCDEFGHIJKLMNOPQRSTUVWXYZAAABAC
1
server →h2o/quiclyquantngtcp2nginxmvfstpicoQUICmsquicf5f5_testATSquichelsquicnginx-cloudflareAppleQUICquic-goQuinnAkamaiQUICaioquic~gQUICKwik&FlupkeNeqoHaskell QUICpquic
2
client ↓
3
h2o/quicly
4
quantVHDCRZSQ
MBAUPELT
VHDCRZSQ
MBAUE
3
VHDCRZSQ
MBAUP
3
VHDCRZSQ
MBAUPE
3
VHDCRZSQ
MBAUP
3
VHDC

3
5
ngtcp2
6
mvfst
7
picoQUICVHDCRZSQ
MAUPEL
VHDCRZSQ
MBAUET
3
VHDCRZSQ
MBAUPT
3
VHDCRZQ
U
3
8
msquic
9
f5
10
f5_test
11
ATS
12
quiche
13
lsquic
14
nginx-cloudflare
15
AppleQUIC
16
quic-go
17
Quinn
18
AkamaiQUIC
19
aioquicVHDCRZSQ
MBAUPL
VHDCRZSQ
MBAUPLT
3
VHDCRZSQ
MBAUPLT
3dp
20
~gQUICVHDCQ
U
3
VHDCQ
BU
3d
21
Kwik&Flupke
22
Neqo
23
Haskell QUIC
24
pquic
25
nginx
26
27
28
To Test:
https://github.com/quicwg/base-drfts/wiki/21st-Implementation-Draft
his wiki tracks known implementations of QUIC. See also our Tools listing. Current interop status; make sure you are looking at or editing the correct tab.
29
Version NegotiationV
A version negotiation response is elicited and acted on
30
HandshakeH
The handshake completes sucessfully
Cell format:
31
Stream DataD
Stream data is being exchanged and ACK'ed
First row: Any of VHDCRZSQ ("table stakes")
32
Connection CloseC
The connection close procedure completes with a zero error code
Second row: Anything else protocol-related (= uppercase letters)
33
ResumptionR
Connection is established using TLS Resume Ticket
Third row: H3 tests (= "3" + any lowercase letters)
34
0-RTTZ
0-RTT data is being sent and acted on
Insert linebreak with Cmd+Return (on Mac at least)
35
Stateless RetryS
A handshake that includes a Retry packet completes successfully
36
Quantum ReadyQ
A handshake using ClientHello spanning across multiple packets completed successfully (see Quantum Readiness test on Wiki)
37
Server CID changeM
A server offers new CIDs to a client in advance. Upon some events, the client starts using a new server CID
38
NAT RebindingB
A client's port changes. The client sends packets without noticing the change
39
Address MobilityA
A server offers new CIDs to a client in advance. The client moves to a new address(/port). The client sends path challenges from the new address(/port) with a new server CID. The server sends path responses on any path
E
40
Key UpdateU
One endpoint can update keys and its peer responds correctly
41
SpinP
A connection with the spin bit succeeds and the bit is spinning
42
ECNE
Set ECT(0) on outgoing packets and verify that ACK frames with ECN information are received. (Note: test can fail if path bleaches ECN.)
43
LoggingL
There is some form of structured logging available from both the implementations (e.g., qlog, quic-trace)
44
ThroughputT
Download objects named /5000000 and /10000000 on separate consecutive connections over both H2 and H3 (0.9 if H3 not available). H3 should at most be 10% slower than H2.
45
H33
An H3 transaction succeeded
46
QPACK Dyn. Tablesd
One or both endpoints insert entries into dynamic table and subsequenly reference them from header blocks
47
PUSHp
Client received server push
48
49
Known brokenX
50
Self-test
51
N/A-
Use this in your row or column when you don't support client or server mode
52
53
Discuss on https://quicdev.slack.com/
54
Coloring auto-applied based on the letter codes, see "conditional formatting" under the "Format" menu.
55
Interop Matrix for draft-34 with version 0x1
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100