varnish-cache/include/tbl/h2_settings.h
1
/*-
2
 * Copyright (c) 2016 Varnish Software AS
3
 * All rights reserved.
4
 *
5
 * Author: Poul-Henning Kamp <phk@phk.freebsd.dk>
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 * 1. Redistributions of source code must retain the above copyright
11
 *    notice, this list of conditions and the following disclaimer.
12
 * 2. Redistributions in binary form must reproduce the above copyright
13
 *    notice, this list of conditions and the following disclaimer in the
14
 *    documentation and/or other materials provided with the distribution.
15
 *
16
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
 * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
20
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26
 * SUCH DAMAGE.
27
 *
28
 * RFC7540 section 11.3
29
 *
30
 * Upper
31
 * lower
32
 * tag
33
 * default
34
 * min
35
 * max
36
 * range_error
37
 */
38
39
/*lint -save -e525 -e539 */
40
41 411
H2_SETTING(                                     // rfc7540,l,2097,2103
42
        HEADER_TABLE_SIZE,
43
        header_table_size,
44
        0x1,
45
        4096,                                   // rfc7540,l,4224,4224
46
        0,
47
        0xffffffff,
48
        0
49
)
50
#ifndef H2_SETTINGS_PARAM_ONLY
51 201
H2_SETTING(                                     // rfc7540,l,2105,2114
52
        ENABLE_PUSH,
53
        enable_push,
54
        0x2,
55
        1,                                      // rfc7540,l,4225,4225
56
        0,
57
        1,
58
        H2CE_PROTOCOL_ERROR
59
)
60
#endif
61 420
H2_SETTING(                                     // rfc7540,l,2116,2121
62
        MAX_CONCURRENT_STREAMS,
63
        max_concurrent_streams,
64
        0x3,
65
        0xffffffff,                             // rfc7540,l,4226,4226
66
        0,
67
        0xffffffff,
68
        0
69
)
70 420
H2_SETTING(                                     // rfc7540,l,2139,2148
71
        INITIAL_WINDOW_SIZE,
72
        initial_window_size,
73
        0x4,
74
        65535,                                  // rfc7540,l,4227,4227
75
        0,
76
        0x7fffffff,
77
        H2CE_FLOW_CONTROL_ERROR
78
)
79 414
H2_SETTING(                                     // rfc7540,l,2150,2157
80
        MAX_FRAME_SIZE,
81
        max_frame_size,
82
        0x5,
83
        16384,                                  // rfc7540,l,4228,4228
84
        16384,
85
        0x00ffffff,
86
        H2CE_PROTOCOL_ERROR
87
)
88 411
H2_SETTING(                                     // rfc7540,l,2159,2167
89
        MAX_HEADER_LIST_SIZE,
90
        max_header_list_size,
91
        0x6,
92
        0x7fffffff,                             // rfc7540,l,4229,4229
93
        0,
94
        0xffffffff,
95
        0
96
)
97
#undef H2_SETTING
98
99
/*lint -restore */