lsquic_ietf.h revision 4051ae3a
1/* Copyright (c) 2017 - 2020 LiteSpeed Technologies Inc. See LICENSE. */ 2#ifndef LSQUIC_IETF_H 3#define LSQUIC_IETF_H 1 4 5/* Things specific to the IETF version of QUIC that do not fit anywhere else */ 6 7/* [draft-ietf-quic-transport-28] Section 20 */ 8enum trans_error_code 9{ 10 TEC_NO_ERROR = 0x0, 11 TEC_INTERNAL_ERROR = 0x1, 12 TEC_CONNECTION_REFUSED = 0x2, 13 TEC_FLOW_CONTROL_ERROR = 0x3, 14 TEC_STREAM_LIMIT_ERROR = 0x4, 15 TEC_STREAM_STATE_ERROR = 0x5, 16 TEC_FINAL_SIZE_ERROR = 0x6, 17 TEC_FRAME_ENCODING_ERROR = 0x7, 18 TEC_TRANSPORT_PARAMETER_ERROR = 0x8, 19 TEC_CONNECTION_ID_LIMIT_ERROR = 0x9, 20 TEC_PROTOCOL_VIOLATION = 0xA, 21 TEC_INVALID_TOKEN = 0xB, 22 TEC_APPLICATION_ERROR = 0xC, 23 TEC_CRYPTO_BUFFER_EXCEEDED = 0xD, 24}; 25 26/* Must be at least two */ 27#define MAX_IETF_CONN_DCIDS 8 28 29/* [draft-ietf-quic-tls-25] Section 5.8 */ 30#define IETF_RETRY_KEY_SZ 16 31#define IETF_RETRY_NONCE_SZ 12 32 33#define N_IETF_RETRY_VERSIONS 2 34extern const unsigned char *const lsquic_retry_key_buf[N_IETF_RETRY_VERSIONS]; 35extern const unsigned char *const lsquic_retry_nonce_buf[N_IETF_RETRY_VERSIONS]; 36#define lsquic_version_2_retryver(ver_) ((ver_) > LSQVER_ID28) 37 38#endif 39