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