annotate src/event/quic/ngx_event_quic_bpf_code.c @ 8275:916a2e1d6617 quic

HTTP/3: client header validation. A header with the name containing null, CR, LF, colon or uppercase characters, is now considered an error. A header with the value containing null, CR or LF, is also considered an error. Also, header is considered invalid unless its name only contains lowercase characters, digits, minus and optionally underscore. Such header can be optionally ignored.
author Roman Arutyunyan <arut@nginx.com>
date Mon, 18 Jan 2021 13:43:36 +0300
parents 7df607cb2d11
children 85e60c064728
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8269
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
1 /* AUTO-GENERATED, DO NOT EDIT. */
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
2
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
3 #include <stddef.h>
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
4 #include <stdint.h>
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
5
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
6 #include "ngx_bpf.h"
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
7
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
8
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
9 static ngx_bpf_reloc_t bpf_reloc_prog_ngx_quic_reuseport_helper[] = {
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
10 { "ngx_quic_sockmap", 56 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
11 };
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
12
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
13 static struct bpf_insn bpf_insn_prog_ngx_quic_reuseport_helper[] = {
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
14 /* opcode dst src offset imm */
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
15 { 0x79, BPF_REG_4, BPF_REG_1, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
16 { 0x79, BPF_REG_3, BPF_REG_1, (int16_t) 8, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
17 { 0xbf, BPF_REG_2, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
18 { 0x7, BPF_REG_2, BPF_REG_0, (int16_t) 0, 0x8 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
19 { 0x2d, BPF_REG_2, BPF_REG_3, (int16_t) 55, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
20 { 0xbf, BPF_REG_5, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
21 { 0x7, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0x9 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
22 { 0x2d, BPF_REG_5, BPF_REG_3, (int16_t) 52, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
23 { 0xb7, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0x14 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
24 { 0xb7, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x9 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
25 { 0x71, BPF_REG_6, BPF_REG_2, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
26 { 0x67, BPF_REG_6, BPF_REG_0, (int16_t) 0, 0x38 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
27 { 0xc7, BPF_REG_6, BPF_REG_0, (int16_t) 0, 0x38 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
28 { 0x65, BPF_REG_6, BPF_REG_0, (int16_t) 10, 0xffffffff },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
29 { 0xbf, BPF_REG_2, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
30 { 0x7, BPF_REG_2, BPF_REG_0, (int16_t) 0, 0xd },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
31 { 0x2d, BPF_REG_2, BPF_REG_3, (int16_t) 43, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
32 { 0xbf, BPF_REG_5, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
33 { 0x7, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0xe },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
34 { 0x2d, BPF_REG_5, BPF_REG_3, (int16_t) 40, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
35 { 0xb7, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0xe },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
36 { 0x71, BPF_REG_5, BPF_REG_4, (int16_t) 12, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
37 { 0xb7, BPF_REG_6, BPF_REG_0, (int16_t) 0, 0x8 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
38 { 0x2d, BPF_REG_6, BPF_REG_5, (int16_t) 36, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
39 { 0xf, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
40 { 0xf, BPF_REG_4, BPF_REG_5, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
41 { 0x2d, BPF_REG_4, BPF_REG_3, (int16_t) 33, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
42 { 0xbf, BPF_REG_4, BPF_REG_2, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
43 { 0x7, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x9 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
44 { 0x2d, BPF_REG_4, BPF_REG_3, (int16_t) 30, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
45 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 1, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
46 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x38 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
47 { 0x71, BPF_REG_3, BPF_REG_2, (int16_t) 2, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
48 { 0x67, BPF_REG_3, BPF_REG_0, (int16_t) 0, 0x30 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
49 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
50 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 3, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
51 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x28 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
52 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
53 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 4, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
54 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x20 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
55 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
56 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 5, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
57 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x38 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
58 { 0xc7, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x20 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
59 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
60 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 6, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
61 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x10 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
62 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
63 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 7, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
64 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x8 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
65 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
66 { 0x71, BPF_REG_2, BPF_REG_2, (int16_t) 8, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
67 { 0x4f, BPF_REG_3, BPF_REG_2, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
68 { 0x7b, BPF_REG_10, BPF_REG_3, (int16_t) 65528, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
69 { 0xbf, BPF_REG_3, BPF_REG_10, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
70 { 0x7, BPF_REG_3, BPF_REG_0, (int16_t) 0, 0xfffffff8 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
71 { 0x18, BPF_REG_2, BPF_REG_0, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
72 { 0x0, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
73 { 0xb7, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
74 { 0x85, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x52 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
75 { 0xb7, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x1 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
76 { 0x95, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x0 },
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
77 };
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
78
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
79
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
80 ngx_bpf_program_t ngx_quic_reuseport_helper = {
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
81 .relocs = bpf_reloc_prog_ngx_quic_reuseport_helper,
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
82 .nrelocs = sizeof(bpf_reloc_prog_ngx_quic_reuseport_helper)
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
83 / sizeof(bpf_reloc_prog_ngx_quic_reuseport_helper[0]),
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
84 .ins = bpf_insn_prog_ngx_quic_reuseport_helper,
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
85 .nins = sizeof(bpf_insn_prog_ngx_quic_reuseport_helper)
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
86 / sizeof(bpf_insn_prog_ngx_quic_reuseport_helper[0]),
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
87 .license = "BSD",
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
88 .type = BPF_PROG_TYPE_SK_REUSEPORT,
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
89 };
7df607cb2d11 QUIC: ngx_quic_bpf module.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
90