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