Mercurial > hg > nginx-quic
annotate src/event/quic/ngx_event_quic_bpf_code.c @ 8640:c4f249d485e3 quic
QUIC: attempt decrypt before checking for stateless reset.
Checking the reset after encryption avoids false positives. More importantly,
it avoids the check entirely in the usual case where decryption succeeds.
RFC 9000, 10.3.1 Detecting a Stateless Reset
Endpoints MAY skip this check if any packet from a datagram is
successfully processed.
author | Martin Duke <m.duke@f5.com> |
---|---|
date | Tue, 12 Oct 2021 11:57:50 +0300 |
parents | 85e60c064728 |
children | 6d1488b62dc5 |
rev | line source |
---|---|
8269 | 1 /* AUTO-GENERATED, DO NOT EDIT. */ |
2 | |
3 #include <stddef.h> | |
4 #include <stdint.h> | |
5 | |
6 #include "ngx_bpf.h" | |
7 | |
8 | |
9 static ngx_bpf_reloc_t bpf_reloc_prog_ngx_quic_reuseport_helper[] = { | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
10 { "ngx_quic_sockmap", 55 }, |
8269 | 11 }; |
12 | |
13 static struct bpf_insn bpf_insn_prog_ngx_quic_reuseport_helper[] = { | |
14 /* opcode dst src offset imm */ | |
15 { 0x79, BPF_REG_4, BPF_REG_1, (int16_t) 0, 0x0 }, | |
16 { 0x79, BPF_REG_3, BPF_REG_1, (int16_t) 8, 0x0 }, | |
17 { 0xbf, BPF_REG_2, BPF_REG_4, (int16_t) 0, 0x0 }, | |
18 { 0x7, BPF_REG_2, BPF_REG_0, (int16_t) 0, 0x8 }, | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
19 { 0x2d, BPF_REG_2, BPF_REG_3, (int16_t) 54, 0x0 }, |
8269 | 20 { 0xbf, BPF_REG_5, BPF_REG_4, (int16_t) 0, 0x0 }, |
21 { 0x7, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0x9 }, | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
22 { 0x2d, BPF_REG_5, BPF_REG_3, (int16_t) 51, 0x0 }, |
8269 | 23 { 0xb7, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0x14 }, |
24 { 0xb7, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x9 }, | |
25 { 0x71, BPF_REG_6, BPF_REG_2, (int16_t) 0, 0x0 }, | |
26 { 0x67, BPF_REG_6, BPF_REG_0, (int16_t) 0, 0x38 }, | |
27 { 0xc7, BPF_REG_6, BPF_REG_0, (int16_t) 0, 0x38 }, | |
28 { 0x65, BPF_REG_6, BPF_REG_0, (int16_t) 10, 0xffffffff }, | |
29 { 0xbf, BPF_REG_2, BPF_REG_4, (int16_t) 0, 0x0 }, | |
30 { 0x7, BPF_REG_2, BPF_REG_0, (int16_t) 0, 0xd }, | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
31 { 0x2d, BPF_REG_2, BPF_REG_3, (int16_t) 42, 0x0 }, |
8269 | 32 { 0xbf, BPF_REG_5, BPF_REG_4, (int16_t) 0, 0x0 }, |
33 { 0x7, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0xe }, | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
34 { 0x2d, BPF_REG_5, BPF_REG_3, (int16_t) 39, 0x0 }, |
8269 | 35 { 0xb7, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0xe }, |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
36 { 0x71, BPF_REG_5, BPF_REG_2, (int16_t) 0, 0x0 }, |
8269 | 37 { 0xb7, BPF_REG_6, BPF_REG_0, (int16_t) 0, 0x8 }, |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
38 { 0x2d, BPF_REG_6, BPF_REG_5, (int16_t) 35, 0x0 }, |
8269 | 39 { 0xf, BPF_REG_5, BPF_REG_0, (int16_t) 0, 0x0 }, |
40 { 0xf, BPF_REG_4, BPF_REG_5, (int16_t) 0, 0x0 }, | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
41 { 0x2d, BPF_REG_4, BPF_REG_3, (int16_t) 32, 0x0 }, |
8269 | 42 { 0xbf, BPF_REG_4, BPF_REG_2, (int16_t) 0, 0x0 }, |
43 { 0x7, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x9 }, | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
44 { 0x2d, BPF_REG_4, BPF_REG_3, (int16_t) 29, 0x0 }, |
8269 | 45 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 1, 0x0 }, |
46 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x38 }, | |
47 { 0x71, BPF_REG_3, BPF_REG_2, (int16_t) 2, 0x0 }, | |
48 { 0x67, BPF_REG_3, BPF_REG_0, (int16_t) 0, 0x30 }, | |
49 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 }, | |
50 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 3, 0x0 }, | |
51 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x28 }, | |
52 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 }, | |
53 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 4, 0x0 }, | |
54 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x20 }, | |
55 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 }, | |
56 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 5, 0x0 }, | |
8356
85e60c064728
QUIC: bpf code regenerated.
Vladimir Homutov <vl@nginx.com>
parents:
8269
diff
changeset
|
57 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x18 }, |
8269 | 58 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 }, |
59 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 6, 0x0 }, | |
60 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x10 }, | |
61 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 }, | |
62 { 0x71, BPF_REG_4, BPF_REG_2, (int16_t) 7, 0x0 }, | |
63 { 0x67, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x8 }, | |
64 { 0x4f, BPF_REG_3, BPF_REG_4, (int16_t) 0, 0x0 }, | |
65 { 0x71, BPF_REG_2, BPF_REG_2, (int16_t) 8, 0x0 }, | |
66 { 0x4f, BPF_REG_3, BPF_REG_2, (int16_t) 0, 0x0 }, | |
67 { 0x7b, BPF_REG_10, BPF_REG_3, (int16_t) 65528, 0x0 }, | |
68 { 0xbf, BPF_REG_3, BPF_REG_10, (int16_t) 0, 0x0 }, | |
69 { 0x7, BPF_REG_3, BPF_REG_0, (int16_t) 0, 0xfffffff8 }, | |
70 { 0x18, BPF_REG_2, BPF_REG_0, (int16_t) 0, 0x0 }, | |
71 { 0x0, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x0 }, | |
72 { 0xb7, BPF_REG_4, BPF_REG_0, (int16_t) 0, 0x0 }, | |
73 { 0x85, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x52 }, | |
74 { 0xb7, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x1 }, | |
75 { 0x95, BPF_REG_0, BPF_REG_0, (int16_t) 0, 0x0 }, | |
76 }; | |
77 | |
78 | |
79 ngx_bpf_program_t ngx_quic_reuseport_helper = { | |
80 .relocs = bpf_reloc_prog_ngx_quic_reuseport_helper, | |
81 .nrelocs = sizeof(bpf_reloc_prog_ngx_quic_reuseport_helper) | |
82 / sizeof(bpf_reloc_prog_ngx_quic_reuseport_helper[0]), | |
83 .ins = bpf_insn_prog_ngx_quic_reuseport_helper, | |
84 .nins = sizeof(bpf_insn_prog_ngx_quic_reuseport_helper) | |
85 / sizeof(bpf_insn_prog_ngx_quic_reuseport_helper[0]), | |
86 .license = "BSD", | |
87 .type = BPF_PROG_TYPE_SK_REUSEPORT, | |
88 }; | |
89 |