Skip to content

Instantly share code, notes, and snippets.

@moderation
Created April 13, 2021 02:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moderation/66d699bd89d973fbf9dbf5448888b176 to your computer and use it in GitHub Desktop.
Save moderation/66d699bd89d973fbf9dbf5448888b176 to your computer and use it in GitHub Desktop.
QUIC servers
MUST send FLOW_CONTROL_ERROR if a STREAM frame with a large offset is received [Transport 4.1]
MUST send TRANSPORT_PARAMETER_ERROR if initial_source_connection_id is missing [Transport 7.3]
MUST send TRANSPORT_PARAMETER_ERROR if original_destination_connection_id is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if preferred_address, is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if retry_source_connection_id is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if stateless_reset_token is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if max_udp_payload_size < 1200 [Transport 7.4 and 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if ack_delay_exponen > 20 [Transport 7.4 and 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if max_ack_delay >= 2^14 [Transport 7.4 and 18.2]
MUST send FRAME_ENCODING_ERROR if a frame of unknown type is received [Transport 12.4]
MUST send PROTOCOL_VIOLATION on no frames [Transport 12.4] FAILED [1]
MUST send PROTOCOL_VIOLATION if reserved bits in Handshake are non-zero [Transport 17.2] FAILED [2]
MUST send PROTOCOL_VIOLATION if PATH_CHALLENGE in Handshake is received [Transport 17.2.4]
MUST send PROTOCOL_VIOLATION if reserved bits in Short are non-zero [Transport 17.2] FAILED [3]
MUST send STREAM_STATE_ERROR if RESET_STREAM is received for a send-only stream [Transport 19.4]
MUST send STREAM_STATE_ERROR if STOP_SENDING is received for a non-existing stream [Transport 19.5]
MUST send PROTOCOL_VIOLATION if NEW_TOKEN is received [Transport 19.7]
MUST send STREAM_STATE_ERROR if MAX_STREAM_DATA is received for a non-existing stream [Transport 19.10]
MUST send STREAM_STATE_ERROR if MAX_STREAM_DATA is received for a receive-only stream [Transport 19.10]
MUST send FRAME_ENCODING_ERROR if invalid MAX_STREAMS is received [Transport 19.11]
MUST send STREAM_LIMIT_ERROR or FRAME_ENCODING_ERROR if invalid STREAMS_BLOCKED is received [Transport 19.14]
MUST send FRAME_ENCODING_ERROR if NEW_CONNECTION_ID with invalid Retire_Prior_To is received [Transport 19.15]
MUST send FRAME_ENCODING_ERROR if NEW_CONNECTION_ID with 0-byte CID is received [Transport 19.15] FAILED [4]
MUST send PROTOCOL_VIOLATION if HANDSHAKE_DONE is received [Transport 19.20]
MUST send unexpected_message TLS alert if KeyUpdate in Handshake is received [TLS 6]
MUST send unexpected_message TLS alert if KeyUpdate in 1-RTT is received [TLS 6] FAILED [5]
MUST send no_application_protocol TLS alert if no application protocols are supported [TLS 8.1]
MUST send missing_extension TLS alert if the quic_transport_parameters extension does not included [TLS 8.2] FAILED [6]
MUST send unexpected_message TLS alert if EndOfEarlyData is received [TLS 8.3]
MUST send PROTOCOL_VIOLATION if CRYPTO in 0-RTT is received [TLS 8.3] FAILED [7]
HTTP/3 servers
MUST send H3_FRAME_UNEXPECTED if DATA is received before HEADERS [HTTP/3 4.1]
MUST send H3_MESSAGE_ERROR if a pseudo-header is duplicated [HTTP/3 4.1.1] FAILED [8]
MUST send H3_MESSAGE_ERROR if mandatory pseudo-header fields are absent [HTTP/3 4.1.3] FAILED [9]
MUST send H3_MESSAGE_ERROR if prohibited pseudo-header fields are present[HTTP/3 4.1.3] FAILED [10]
MUST send H3_MESSAGE_ERROR if pseudo-header fields exist after fields [HTTP/3 4.1.3] FAILED [11]
MUST send H3_MISSING_SETTINGS if the first control frame is not SETTINGS [HTTP/3 6.2.1]
MUST send H3_FRAME_UNEXPECTED if a DATA frame is received on a control stream [HTTP/3 7.2.1]
MUST send H3_FRAME_UNEXPECTED if a HEADERS frame is received on a control stream [HTTP/3 7.2.2]
MUST send H3_FRAME_UNEXPECTED if a second SETTINGS frame is received [HTTP/3 7.2.4]
MUST send H3_SETTINGS_ERROR if HTTP/2 settings are included [HTTP/3 7.2.4.1]
MUST send H3_FRAME_UNEXPECTED if CANCEL_PUSH is received in a request stream [HTTP/3 7.2.5] FAILED [12]
MUST send QPACK_DECOMPRESSION_FAILED if an invalid static table index exits in a field line representation [QPACK 3.1]
MUST send QPACK_ENCODER_STREAM_ERROR if a new dynamic table capacity value exceeds the limit [QPACK 4.1.3]
MUST send H3_CLOSED_CRITICAL_STREAM if a control stream is closed [QPACK 4.2] FAILED [13]
MUST send QPACK_DECODER_STREAM_ERROR if Insert Count Increment is 0 [QPACK 4.4.3]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment