+#define QUIC_FIFO_SIZE (64 << 10)
+
+#define QUIC_ERROR_FULL_FIFO 0xff10
+
+static char *
+quic_format_err (u64 code)
+{
+ switch (code)
+ {
+ case QUIC_ERROR_FULL_FIFO:
+ return "full fifo";
+ case QUICLY_ERROR_PACKET_IGNORED:
+ return "QUICLY_ERROR_PACKET_IGNORED";
+ case QUICLY_ERROR_SENDBUF_FULL:
+ return "QUICLY_ERROR_SENDBUF_FULL";
+ case QUICLY_ERROR_FREE_CONNECTION:
+ return "no open stream on connection";
+ case QUICLY_ERROR_RECEIVED_STATELESS_RESET:
+ return "QUICLY_ERROR_RECEIVED_STATELESS_RESET";
+ case QUICLY_TRANSPORT_ERROR_NONE:
+ return "QUICLY_TRANSPORT_ERROR_NONE";
+ case QUICLY_TRANSPORT_ERROR_INTERNAL:
+ return "QUICLY_TRANSPORT_ERROR_INTERNAL";
+ case QUICLY_TRANSPORT_ERROR_SERVER_BUSY:
+ return "QUICLY_TRANSPORT_ERROR_SERVER_BUSY";
+ case QUICLY_TRANSPORT_ERROR_FLOW_CONTROL:
+ return "QUICLY_TRANSPORT_ERROR_FLOW_CONTROL";
+ case QUICLY_TRANSPORT_ERROR_STREAM_ID:
+ return "QUICLY_TRANSPORT_ERROR_STREAM_ID";
+ case QUICLY_TRANSPORT_ERROR_STREAM_STATE:
+ return "QUICLY_TRANSPORT_ERROR_STREAM_STATE";
+ case QUICLY_TRANSPORT_ERROR_FINAL_OFFSET:
+ return "QUICLY_TRANSPORT_ERROR_FINAL_OFFSET";
+ case QUICLY_TRANSPORT_ERROR_FRAME_ENCODING:
+ return "QUICLY_TRANSPORT_ERROR_FRAME_ENCODING";
+ case QUICLY_TRANSPORT_ERROR_TRANSPORT_PARAMETER:
+ return "QUICLY_TRANSPORT_ERROR_TRANSPORT_PARAMETER";
+ case QUICLY_TRANSPORT_ERROR_VERSION_NEGOTIATION:
+ return "QUICLY_TRANSPORT_ERROR_VERSION_NEGOTIATION";
+ case QUICLY_TRANSPORT_ERROR_PROTOCOL_VIOLATION:
+ return "QUICLY_TRANSPORT_ERROR_PROTOCOL_VIOLATION";
+ case QUICLY_TRANSPORT_ERROR_INVALID_MIGRATION:
+ return "QUICLY_TRANSPORT_ERROR_INVALID_MIGRATION";
+ case QUICLY_TRANSPORT_ERROR_TLS_ALERT_BASE:
+ return "QUICLY_TRANSPORT_ERROR_TLS_ALERT_BASE";
+ default:
+ return "unknown error";
+ }
+}