398 lines · c
1{2 "jump test 1",3 .insns = {4 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),5 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -8),6 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),7 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),8 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 1),9 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 1),10 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 1),11 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 2),12 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 1),13 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 3),14 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 1),15 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 4),16 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1),17 BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 5),18 BPF_MOV64_IMM(BPF_REG_0, 0),19 BPF_EXIT_INSN(),20 },21 .errstr_unpriv = "R1 pointer comparison",22 .result_unpriv = REJECT,23 .result = ACCEPT,24},25{26 "jump test 2",27 .insns = {28 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),29 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 2),30 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),31 BPF_JMP_IMM(BPF_JA, 0, 0, 14),32 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 2),33 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0),34 BPF_JMP_IMM(BPF_JA, 0, 0, 11),35 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 2),36 BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0),37 BPF_JMP_IMM(BPF_JA, 0, 0, 8),38 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 2),39 BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0),40 BPF_JMP_IMM(BPF_JA, 0, 0, 5),41 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 2),42 BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0),43 BPF_JMP_IMM(BPF_JA, 0, 0, 2),44 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1),45 BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0),46 BPF_MOV64_IMM(BPF_REG_0, 0),47 BPF_EXIT_INSN(),48 },49 .errstr_unpriv = "R1 pointer comparison",50 .result_unpriv = REJECT,51 .result = ACCEPT,52},53{54 "jump test 3",55 .insns = {56 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),57 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 3),58 BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),59 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),60 BPF_JMP_IMM(BPF_JA, 0, 0, 19),61 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 3),62 BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0),63 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -16),64 BPF_JMP_IMM(BPF_JA, 0, 0, 15),65 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 3),66 BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0),67 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -32),68 BPF_JMP_IMM(BPF_JA, 0, 0, 11),69 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 3),70 BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0),71 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -40),72 BPF_JMP_IMM(BPF_JA, 0, 0, 7),73 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 3),74 BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0),75 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -48),76 BPF_JMP_IMM(BPF_JA, 0, 0, 3),77 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 0),78 BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0),79 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -56),80 BPF_LD_MAP_FD(BPF_REG_1, 0),81 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_delete_elem),82 BPF_EXIT_INSN(),83 },84 .fixup_map_hash_8b = { 24 },85 .errstr_unpriv = "R1 pointer comparison",86 .result_unpriv = REJECT,87 .result = ACCEPT,88 .retval = -ENOENT,89},90{91 "jump test 4",92 .insns = {93 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),94 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),95 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),96 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),97 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),98 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),99 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),100 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),101 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),102 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),103 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),104 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),105 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),106 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),107 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),108 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),109 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),110 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),111 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),112 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),113 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),114 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),115 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),116 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),117 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),118 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),119 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),120 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),121 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),122 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),123 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),124 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),125 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),126 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),127 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),128 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),129 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),130 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),131 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),132 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),133 BPF_MOV64_IMM(BPF_REG_0, 0),134 BPF_EXIT_INSN(),135 },136 .errstr_unpriv = "R1 pointer comparison",137 .result_unpriv = REJECT,138 .result = ACCEPT,139},140{141 "jump test 5",142 .insns = {143 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),144 BPF_MOV64_REG(BPF_REG_3, BPF_REG_2),145 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),146 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),147 BPF_JMP_IMM(BPF_JA, 0, 0, 2),148 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),149 BPF_JMP_IMM(BPF_JA, 0, 0, 0),150 BPF_MOV64_IMM(BPF_REG_0, 0),151 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),152 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),153 BPF_JMP_IMM(BPF_JA, 0, 0, 2),154 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),155 BPF_JMP_IMM(BPF_JA, 0, 0, 0),156 BPF_MOV64_IMM(BPF_REG_0, 0),157 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),158 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),159 BPF_JMP_IMM(BPF_JA, 0, 0, 2),160 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),161 BPF_JMP_IMM(BPF_JA, 0, 0, 0),162 BPF_MOV64_IMM(BPF_REG_0, 0),163 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),164 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),165 BPF_JMP_IMM(BPF_JA, 0, 0, 2),166 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),167 BPF_JMP_IMM(BPF_JA, 0, 0, 0),168 BPF_MOV64_IMM(BPF_REG_0, 0),169 BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),170 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),171 BPF_JMP_IMM(BPF_JA, 0, 0, 2),172 BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),173 BPF_JMP_IMM(BPF_JA, 0, 0, 0),174 BPF_MOV64_IMM(BPF_REG_0, 0),175 BPF_EXIT_INSN(),176 },177 .errstr_unpriv = "R1 pointer comparison",178 .result_unpriv = REJECT,179 .result = ACCEPT,180},181{182 "jump test 6",183 .insns = {184 BPF_MOV64_IMM(BPF_REG_0, 1),185 BPF_MOV64_IMM(BPF_REG_1, 2),186 BPF_JMP_IMM(BPF_JA, 0, 0, 2),187 BPF_MOV64_IMM(BPF_REG_0, 2),188 BPF_EXIT_INSN(),189 BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),190 BPF_JMP_IMM(BPF_JA, 0, 0, 0),191 BPF_JMP_IMM(BPF_JA, 0, 0, 0),192 BPF_JMP_IMM(BPF_JA, 0, 0, 0),193 BPF_JMP_IMM(BPF_JA, 0, 0, 0),194 BPF_JMP_IMM(BPF_JA, 0, 0, 0),195 BPF_JMP_IMM(BPF_JA, 0, 0, 0),196 BPF_JMP_IMM(BPF_JA, 0, 0, 0),197 BPF_JMP_IMM(BPF_JA, 0, 0, 0),198 BPF_JMP_IMM(BPF_JA, 0, 0, 0),199 BPF_JMP_IMM(BPF_JA, 0, 0, 0),200 BPF_JMP_IMM(BPF_JA, 0, 0, 0),201 BPF_JMP_IMM(BPF_JA, 0, 0, 0),202 BPF_JMP_IMM(BPF_JA, 0, 0, 0),203 BPF_JMP_IMM(BPF_JA, 0, 0, 0),204 BPF_JMP_IMM(BPF_JA, 0, 0, 0),205 BPF_JMP_IMM(BPF_JA, 0, 0, 0),206 BPF_JMP_IMM(BPF_JA, 0, 0, -20),207 },208 .result = ACCEPT,209 .retval = 2,210},211{212 "jump test 7",213 .insns = {214 BPF_MOV64_IMM(BPF_REG_0, 1),215 BPF_JMP_IMM(BPF_JA, 0, 0, 2),216 BPF_MOV64_IMM(BPF_REG_0, 3),217 BPF_EXIT_INSN(),218 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),219 BPF_MOV64_IMM(BPF_REG_0, 42),220 BPF_MOV64_IMM(BPF_REG_0, 42),221 BPF_MOV64_IMM(BPF_REG_0, 42),222 BPF_MOV64_IMM(BPF_REG_0, 42),223 BPF_MOV64_IMM(BPF_REG_0, 42),224 BPF_MOV64_IMM(BPF_REG_0, 42),225 BPF_MOV64_IMM(BPF_REG_0, 42),226 BPF_MOV64_IMM(BPF_REG_0, 42),227 BPF_MOV64_IMM(BPF_REG_0, 42),228 BPF_MOV64_IMM(BPF_REG_0, 42),229 BPF_MOV64_IMM(BPF_REG_0, 42),230 BPF_MOV64_IMM(BPF_REG_0, 42),231 BPF_MOV64_IMM(BPF_REG_0, 42),232 BPF_MOV64_IMM(BPF_REG_0, 42),233 BPF_MOV64_IMM(BPF_REG_0, 42),234 BPF_MOV64_IMM(BPF_REG_0, 42),235 BPF_JMP_IMM(BPF_JA, 0, 0, -20),236 },237 .result = ACCEPT,238 .retval = 3,239},240{241 "jump test 8",242 .insns = {243 BPF_MOV64_IMM(BPF_REG_0, 1),244 BPF_MOV64_IMM(BPF_REG_1, 2),245 BPF_JMP_IMM(BPF_JA, 0, 0, 2),246 BPF_MOV64_IMM(BPF_REG_0, 3),247 BPF_EXIT_INSN(),248 BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),249 BPF_MOV64_IMM(BPF_REG_0, 42),250 BPF_MOV64_IMM(BPF_REG_0, 42),251 BPF_MOV64_IMM(BPF_REG_0, 42),252 BPF_MOV64_IMM(BPF_REG_0, 42),253 BPF_MOV64_IMM(BPF_REG_0, 42),254 BPF_MOV64_IMM(BPF_REG_0, 42),255 BPF_MOV64_IMM(BPF_REG_0, 42),256 BPF_MOV64_IMM(BPF_REG_0, 42),257 BPF_MOV64_IMM(BPF_REG_0, 42),258 BPF_MOV64_IMM(BPF_REG_0, 42),259 BPF_MOV64_IMM(BPF_REG_0, 42),260 BPF_MOV64_IMM(BPF_REG_0, 42),261 BPF_MOV64_IMM(BPF_REG_0, 42),262 BPF_MOV64_IMM(BPF_REG_0, 42),263 BPF_MOV64_IMM(BPF_REG_0, 42),264 BPF_MOV64_IMM(BPF_REG_0, 42),265 BPF_JMP_IMM(BPF_JA, 0, 0, -20),266 },267 .result = ACCEPT,268 .retval = 3,269},270{271 "jump/call test 9",272 .insns = {273 BPF_MOV64_IMM(BPF_REG_0, 1),274 BPF_JMP_IMM(BPF_JA, 0, 0, 2),275 BPF_MOV64_IMM(BPF_REG_0, 3),276 BPF_EXIT_INSN(),277 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),278 BPF_MOV64_IMM(BPF_REG_0, 42),279 BPF_MOV64_IMM(BPF_REG_0, 42),280 BPF_MOV64_IMM(BPF_REG_0, 42),281 BPF_MOV64_IMM(BPF_REG_0, 42),282 BPF_MOV64_IMM(BPF_REG_0, 42),283 BPF_MOV64_IMM(BPF_REG_0, 42),284 BPF_MOV64_IMM(BPF_REG_0, 42),285 BPF_MOV64_IMM(BPF_REG_0, 42),286 BPF_MOV64_IMM(BPF_REG_0, 42),287 BPF_MOV64_IMM(BPF_REG_0, 42),288 BPF_MOV64_IMM(BPF_REG_0, 42),289 BPF_MOV64_IMM(BPF_REG_0, 42),290 BPF_MOV64_IMM(BPF_REG_0, 42),291 BPF_MOV64_IMM(BPF_REG_0, 42),292 BPF_MOV64_IMM(BPF_REG_0, 42),293 BPF_MOV64_IMM(BPF_REG_0, 42),294 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20),295 BPF_EXIT_INSN(),296 },297 .prog_type = BPF_PROG_TYPE_SCHED_CLS,298 .result = REJECT,299 .errstr = "jump out of range from insn 1 to 4",300},301{302 "jump/call test 10",303 .insns = {304 BPF_MOV64_IMM(BPF_REG_0, 1),305 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 2),306 BPF_MOV64_IMM(BPF_REG_0, 3),307 BPF_EXIT_INSN(),308 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),309 BPF_MOV64_IMM(BPF_REG_0, 42),310 BPF_MOV64_IMM(BPF_REG_0, 42),311 BPF_MOV64_IMM(BPF_REG_0, 42),312 BPF_MOV64_IMM(BPF_REG_0, 42),313 BPF_MOV64_IMM(BPF_REG_0, 42),314 BPF_MOV64_IMM(BPF_REG_0, 42),315 BPF_MOV64_IMM(BPF_REG_0, 42),316 BPF_MOV64_IMM(BPF_REG_0, 42),317 BPF_MOV64_IMM(BPF_REG_0, 42),318 BPF_MOV64_IMM(BPF_REG_0, 42),319 BPF_MOV64_IMM(BPF_REG_0, 42),320 BPF_MOV64_IMM(BPF_REG_0, 42),321 BPF_MOV64_IMM(BPF_REG_0, 42),322 BPF_MOV64_IMM(BPF_REG_0, 42),323 BPF_MOV64_IMM(BPF_REG_0, 42),324 BPF_MOV64_IMM(BPF_REG_0, 42),325 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20),326 BPF_EXIT_INSN(),327 },328 .prog_type = BPF_PROG_TYPE_SCHED_CLS,329 .result = REJECT,330 .errstr = "last insn is not an exit or jmp",331},332{333 "jump/call test 11",334 .insns = {335 BPF_MOV64_IMM(BPF_REG_0, 1),336 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 4),337 BPF_MOV64_IMM(BPF_REG_0, 3),338 BPF_EXIT_INSN(),339 BPF_MOV64_IMM(BPF_REG_0, 3),340 BPF_EXIT_INSN(),341 BPF_MOV64_IMM(BPF_REG_0, 1),342 BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 26),343 BPF_MOV64_IMM(BPF_REG_0, 42),344 BPF_MOV64_IMM(BPF_REG_0, 42),345 BPF_MOV64_IMM(BPF_REG_0, 42),346 BPF_MOV64_IMM(BPF_REG_0, 42),347 BPF_MOV64_IMM(BPF_REG_0, 42),348 BPF_MOV64_IMM(BPF_REG_0, 42),349 BPF_MOV64_IMM(BPF_REG_0, 42),350 BPF_MOV64_IMM(BPF_REG_0, 42),351 BPF_MOV64_IMM(BPF_REG_0, 42),352 BPF_MOV64_IMM(BPF_REG_0, 42),353 BPF_MOV64_IMM(BPF_REG_0, 42),354 BPF_MOV64_IMM(BPF_REG_0, 42),355 BPF_MOV64_IMM(BPF_REG_0, 42),356 BPF_MOV64_IMM(BPF_REG_0, 42),357 BPF_MOV64_IMM(BPF_REG_0, 42),358 BPF_MOV64_IMM(BPF_REG_0, 42),359 BPF_MOV64_IMM(BPF_REG_0, 42),360 BPF_MOV64_IMM(BPF_REG_0, 42),361 BPF_MOV64_IMM(BPF_REG_0, 42),362 BPF_MOV64_IMM(BPF_REG_0, 42),363 BPF_MOV64_IMM(BPF_REG_0, 42),364 BPF_MOV64_IMM(BPF_REG_0, 42),365 BPF_MOV64_IMM(BPF_REG_0, 42),366 BPF_MOV64_IMM(BPF_REG_0, 42),367 BPF_MOV64_IMM(BPF_REG_0, 42),368 BPF_MOV64_IMM(BPF_REG_0, 42),369 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -31),370 BPF_EXIT_INSN(),371 },372 .prog_type = BPF_PROG_TYPE_SCHED_CLS,373 .result = ACCEPT,374 .retval = 3,375},376{377 "jump & dead code elimination",378 .insns = {379 BPF_MOV64_IMM(BPF_REG_0, 1),380 BPF_MOV64_IMM(BPF_REG_3, 0),381 BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0),382 BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0),383 BPF_ALU64_IMM(BPF_OR, BPF_REG_3, 32767),384 BPF_JMP_IMM(BPF_JSGE, BPF_REG_3, 0, 1),385 BPF_EXIT_INSN(),386 BPF_JMP_IMM(BPF_JSLE, BPF_REG_3, 0x8000, 1),387 BPF_EXIT_INSN(),388 BPF_ALU64_IMM(BPF_ADD, BPF_REG_3, -32767),389 BPF_MOV64_IMM(BPF_REG_0, 2),390 BPF_JMP_IMM(BPF_JLE, BPF_REG_3, 0, 1),391 BPF_MOV64_REG(BPF_REG_0, BPF_REG_4),392 BPF_EXIT_INSN(),393 },394 .prog_type = BPF_PROG_TYPE_SCHED_CLS,395 .result = ACCEPT,396 .retval = 2,397},398