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 725
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
51
#ifndef H2_SETTINGS_PARAM_ONLY
52 355
H2_SETTING(                                     // rfc7540,l,2105,2114
53
        ENABLE_PUSH,
54
        enable_push,
55
        0x2,
56
        1,                                      // rfc7540,l,4225,4225
57
        0,
58
        1,
59
        H2CE_PROTOCOL_ERROR
60
)
61
#endif
62
63 740
H2_SETTING(                                     // rfc7540,l,2116,2121
64
        MAX_CONCURRENT_STREAMS,
65
        max_concurrent_streams,
66
        0x3,
67
        0xffffffff,                             // rfc7540,l,4226,4226
68
        0,
69
        0xffffffff,
70
        0
71
)
72
73 740
H2_SETTING(                                     // rfc7540,l,2139,2148
74
        INITIAL_WINDOW_SIZE,
75
        initial_window_size,
76
        0x4,
77
        65535,                                  // rfc7540,l,4227,4227
78
        0,
79
        0x7fffffff,
80
        H2CE_FLOW_CONTROL_ERROR
81
)
82
83 730
H2_SETTING(                                     // rfc7540,l,2150,2157
84
        MAX_FRAME_SIZE,
85
        max_frame_size,
86
        0x5,
87
        16384,                                  // rfc7540,l,4228,4228
88
        16384,
89
        0x00ffffff,
90
        H2CE_PROTOCOL_ERROR
91
)
92
93 725
H2_SETTING(                                     // rfc7540,l,2159,2167
94
        MAX_HEADER_LIST_SIZE,
95
        max_header_list_size,
96
        0x6,
97
        0x7fffffff,                             // rfc7540,l,4229,4229
98
        0,
99
        0xffffffff,
100
        0
101
)
102
#undef H2_SETTING
103
104
/*lint -restore */