summaryrefslogtreecommitdiffstats
path: root/bpf-filter.main.ebpf
blob: 4b42a2ec6b71ea0237e7808d2782716bfee9b35f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/* generated from the bpf_dns_filter() function in bpf-filter.ebpf.src */
BPF_MOV64_REG(BPF_REG_6,BPF_REG_1),
BPF_MOV64_IMM(BPF_REG_7,2147483647),
BPF_LDX_MEM(BPF_W,BPF_REG_1,BPF_REG_6,16),
BPF_JMP_IMM(BPF_JEQ,BPF_REG_1,ntohs(0x86dd),11),
BPF_JMP_IMM(BPF_JNE,BPF_REG_1,ntohs(0x0800),109),
BPF_LD_ABS(BPF_W,-2097126),
BPF_STX_MEM(BPF_W,BPF_REG_10,BPF_REG_0,-256),
BPF_LD_MAP_FD(BPF_REG_1,maps->d_v4.d_fd.getHandle()),
BPF_MOV64_REG(BPF_REG_2,BPF_REG_10),
BPF_ALU64_IMM(BPF_ADD,BPF_REG_2,-256),
BPF_RAW_INSN(BPF_JMP|BPF_CALL,0,0,0,BPF_FUNC_map_lookup_elem),
BPF_JMP_IMM(BPF_JNE,BPF_REG_0,0,98),
BPF_LD_ABS(BPF_B,-2097129),
BPF_JMP_IMM(BPF_JA,BPF_REG_0,0,39),
BPF_LD_ABS(BPF_B,-2097130),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-256),
BPF_LD_ABS(BPF_B,-2097129),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-255),
BPF_LD_ABS(BPF_B,-2097128),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-254),
BPF_LD_ABS(BPF_B,-2097127),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-253),
BPF_LD_ABS(BPF_B,-2097126),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-252),
BPF_LD_ABS(BPF_B,-2097125),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-251),
BPF_LD_ABS(BPF_B,-2097124),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-250),
BPF_LD_ABS(BPF_B,-2097123),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-249),
BPF_LD_ABS(BPF_B,-2097122),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-248),
BPF_LD_ABS(BPF_B,-2097121),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-247),
BPF_LD_ABS(BPF_B,-2097120),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-246),
BPF_LD_ABS(BPF_B,-2097119),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-245),
BPF_LD_ABS(BPF_B,-2097118),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-244),
BPF_LD_ABS(BPF_B,-2097117),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-243),
BPF_LD_ABS(BPF_B,-2097116),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-242),
BPF_LD_ABS(BPF_B,-2097115),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_0,-241),
BPF_LD_MAP_FD(BPF_REG_1,maps->d_v6.d_fd.getHandle()),
BPF_MOV64_REG(BPF_REG_2,BPF_REG_10),
BPF_ALU64_IMM(BPF_ADD,BPF_REG_2,-256),
BPF_RAW_INSN(BPF_JMP|BPF_CALL,0,0,0,BPF_FUNC_map_lookup_elem),
BPF_JMP_IMM(BPF_JNE,BPF_REG_0,0,58),
BPF_LD_ABS(BPF_B,-2097132),
BPF_ALU64_IMM(BPF_AND,BPF_REG_0,255),
BPF_JMP_IMM(BPF_JEQ,BPF_REG_0,6,58),
BPF_MOV64_IMM(BPF_REG_1,0),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_1,-2),
BPF_STX_MEM(BPF_H,BPF_REG_10,BPF_REG_1,-4),
BPF_STX_MEM(BPF_W,BPF_REG_10,BPF_REG_1,-8),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-16),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-24),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-32),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-40),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-48),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-56),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-64),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-72),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-80),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-88),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-96),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-104),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-112),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-120),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-128),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-136),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-144),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-152),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-160),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-168),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-176),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-184),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-192),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-200),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-208),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-216),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-224),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-232),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-240),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-248),
BPF_STX_MEM(BPF_DW,BPF_REG_10,BPF_REG_1,-256),
BPF_MOV64_IMM(BPF_REG_1,20),
BPF_STX_MEM(BPF_W,BPF_REG_6,BPF_REG_1,48),
BPF_LD_ABS(BPF_B,20),
BPF_MOV64_REG(BPF_REG_8,BPF_REG_0),
BPF_MOV64_IMM(BPF_REG_7,0),
BPF_JMP_IMM(BPF_JGT,BPF_REG_8,63,17),
BPF_JMP_IMM(BPF_JNE,BPF_REG_8,0,18),
BPF_LD_ABS(BPF_H,21),
BPF_MOV64_REG(BPF_REG_6,BPF_REG_0),
BPF_LD_MAP_FD(BPF_REG_1,maps->d_qnames.d_fd.getHandle()),
BPF_MOV64_REG(BPF_REG_2,BPF_REG_10),
BPF_ALU64_IMM(BPF_ADD,BPF_REG_2,-256),
BPF_RAW_INSN(BPF_JMP|BPF_CALL,0,0,0,BPF_FUNC_map_lookup_elem),
BPF_MOV64_IMM(BPF_REG_7,2147483647),
BPF_JMP_IMM(BPF_JEQ,BPF_REG_0,0,7),
BPF_LDX_MEM(BPF_H,BPF_REG_1,BPF_REG_0,8),
BPF_JMP_IMM(BPF_JEQ,BPF_REG_1,255,2),
BPF_ALU64_IMM(BPF_AND,BPF_REG_6,65535),
BPF_JMP_REG(BPF_JNE,BPF_REG_1,BPF_REG_6,3),
BPF_MOV64_IMM(BPF_REG_1,1),
BPF_RAW_INSN(BPF_STX|BPF_XADD|BPF_DW,BPF_REG_0,BPF_REG_1,0,0),
BPF_MOV64_IMM(BPF_REG_7,0),
BPF_MOV64_REG(BPF_REG_0,BPF_REG_7),
BPF_EXIT_INSN(),
BPF_STX_MEM(BPF_W,BPF_REG_6,BPF_REG_8,52),
BPF_STX_MEM(BPF_B,BPF_REG_10,BPF_REG_8,-256),
BPF_LD_ABS(BPF_B,21),
BPF_MOV64_REG(BPF_REG_2,BPF_REG_0),
BPF_ALU64_IMM(BPF_ADD,BPF_REG_2,-65),
BPF_ALU64_IMM(BPF_LSH,BPF_REG_2,32),
BPF_ALU64_IMM(BPF_RSH,BPF_REG_2,32),
BPF_MOV64_REG(BPF_REG_1,BPF_REG_0),
BPF_ALU64_IMM(BPF_ADD,BPF_REG_1,32),
BPF_MOV64_IMM(BPF_REG_3,26),
BPF_JMP_REG(BPF_JGT,BPF_REG_3,BPF_REG_2,1),
BPF_MOV64_REG(BPF_REG_1,BPF_REG_0),
BPF_ALU64_IMM(BPF_ADD,BPF_REG_8,-1),
BPF_STX_MEM(BPF_W,BPF_REG_6,BPF_REG_8,60),
BPF_ALU64_IMM(BPF_AND,BPF_REG_1,255),
BPF_STX_MEM(BPF_W,BPF_REG_6,BPF_REG_1,56),
BPF_LD_MAP_FD(BPF_REG_2,maps->d_filters.d_fd.getHandle()),
BPF_MOV64_REG(BPF_REG_1,BPF_REG_6),
BPF_MOV64_IMM(BPF_REG_3,0),
BPF_RAW_INSN(BPF_JMP|BPF_CALL,0,0,0,BPF_FUNC_tail_call),
BPF_MOV64_IMM(BPF_REG_7,2147483647),
BPF_JMP_IMM(BPF_JA,BPF_REG_0,0,-25),