lsquic_ietf.h revision 9fc12041
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-25] Section 22.4 */ 8enum trans_error_code 9{ 10 TEC_NO_ERROR = 0x0, 11 TEC_INTERNAL_ERROR = 0x1, 12 TEC_SERVER_BUSY = 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_CRYPTO_BUFFER_EXCEEDED = 0xD, 23}; 24 25/* Must be at least two */ 26#define MAX_IETF_CONN_DCIDS 8 27 28/* [draft-ietf-quic-tls-25] Section 5.8 */ 29#define IETF_RETRY_KEY_BUF ((unsigned char *) \ 30 "\x4d\x32\xec\xdb\x2a\x21\x33\xc8\x41\xe4\x04\x3d\xf2\x7d\x44\x30") 31#define IETF_RETRY_KEY_SZ 16 32#define IETF_RETRY_NONCE_BUF ((unsigned char *) \ 33 "\x4d\x16\x11\xd0\x55\x13\xa5\x52\xc5\x87\xd5\x75") 34#define IETF_RETRY_NONCE_SZ 12 35 36#endif 37