Back to home page

OSCL-LXR

 
 

    


0001 {
0002     "jump test 1",
0003     .insns = {
0004     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0005     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -8),
0006     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
0007     BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),
0008     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 1),
0009     BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 1),
0010     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 1),
0011     BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 2),
0012     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 1),
0013     BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 3),
0014     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 1),
0015     BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 4),
0016     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1),
0017     BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 5),
0018     BPF_MOV64_IMM(BPF_REG_0, 0),
0019     BPF_EXIT_INSN(),
0020     },
0021     .errstr_unpriv = "R1 pointer comparison",
0022     .result_unpriv = REJECT,
0023     .result = ACCEPT,
0024 },
0025 {
0026     "jump test 2",
0027     .insns = {
0028     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0029     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 2),
0030     BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),
0031     BPF_JMP_IMM(BPF_JA, 0, 0, 14),
0032     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 2),
0033     BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0),
0034     BPF_JMP_IMM(BPF_JA, 0, 0, 11),
0035     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 2),
0036     BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0),
0037     BPF_JMP_IMM(BPF_JA, 0, 0, 8),
0038     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 2),
0039     BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0),
0040     BPF_JMP_IMM(BPF_JA, 0, 0, 5),
0041     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 2),
0042     BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0),
0043     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0044     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1),
0045     BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0),
0046     BPF_MOV64_IMM(BPF_REG_0, 0),
0047     BPF_EXIT_INSN(),
0048     },
0049     .errstr_unpriv = "R1 pointer comparison",
0050     .result_unpriv = REJECT,
0051     .result = ACCEPT,
0052 },
0053 {
0054     "jump test 3",
0055     .insns = {
0056     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0057     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 3),
0058     BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0),
0059     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
0060     BPF_JMP_IMM(BPF_JA, 0, 0, 19),
0061     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 3),
0062     BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0),
0063     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -16),
0064     BPF_JMP_IMM(BPF_JA, 0, 0, 15),
0065     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 3),
0066     BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0),
0067     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -32),
0068     BPF_JMP_IMM(BPF_JA, 0, 0, 11),
0069     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 3),
0070     BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0),
0071     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -40),
0072     BPF_JMP_IMM(BPF_JA, 0, 0, 7),
0073     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 3),
0074     BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0),
0075     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -48),
0076     BPF_JMP_IMM(BPF_JA, 0, 0, 3),
0077     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 0),
0078     BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0),
0079     BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -56),
0080     BPF_LD_MAP_FD(BPF_REG_1, 0),
0081     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_delete_elem),
0082     BPF_EXIT_INSN(),
0083     },
0084     .fixup_map_hash_8b = { 24 },
0085     .errstr_unpriv = "R1 pointer comparison",
0086     .result_unpriv = REJECT,
0087     .result = ACCEPT,
0088     .retval = -ENOENT,
0089 },
0090 {
0091     "jump test 4",
0092     .insns = {
0093     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0094     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0095     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0096     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0097     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0098     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0099     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0100     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0101     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0102     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0103     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0104     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0105     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0106     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0107     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0108     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0109     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0110     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0111     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0112     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0113     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0114     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0115     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0116     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0117     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0118     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0119     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0120     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0121     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0122     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0123     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0124     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0125     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1),
0126     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2),
0127     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3),
0128     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4),
0129     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
0130     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
0131     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
0132     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0),
0133     BPF_MOV64_IMM(BPF_REG_0, 0),
0134     BPF_EXIT_INSN(),
0135     },
0136     .errstr_unpriv = "R1 pointer comparison",
0137     .result_unpriv = REJECT,
0138     .result = ACCEPT,
0139 },
0140 {
0141     "jump test 5",
0142     .insns = {
0143     BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
0144     BPF_MOV64_REG(BPF_REG_3, BPF_REG_2),
0145     BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
0146     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
0147     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0148     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
0149     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0150     BPF_MOV64_IMM(BPF_REG_0, 0),
0151     BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
0152     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
0153     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0154     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
0155     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0156     BPF_MOV64_IMM(BPF_REG_0, 0),
0157     BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
0158     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
0159     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0160     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
0161     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0162     BPF_MOV64_IMM(BPF_REG_0, 0),
0163     BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
0164     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
0165     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0166     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
0167     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0168     BPF_MOV64_IMM(BPF_REG_0, 0),
0169     BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
0170     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8),
0171     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0172     BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8),
0173     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0174     BPF_MOV64_IMM(BPF_REG_0, 0),
0175     BPF_EXIT_INSN(),
0176     },
0177     .errstr_unpriv = "R1 pointer comparison",
0178     .result_unpriv = REJECT,
0179     .result = ACCEPT,
0180 },
0181 {
0182     "jump test 6",
0183     .insns = {
0184     BPF_MOV64_IMM(BPF_REG_0, 1),
0185     BPF_MOV64_IMM(BPF_REG_1, 2),
0186     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0187     BPF_MOV64_IMM(BPF_REG_0, 2),
0188     BPF_EXIT_INSN(),
0189     BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),
0190     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0191     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0192     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0193     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0194     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0195     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0196     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0197     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0198     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0199     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0200     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0201     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0202     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0203     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0204     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0205     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0206     BPF_JMP_IMM(BPF_JA, 0, 0, -20),
0207     },
0208     .result = ACCEPT,
0209     .retval = 2,
0210 },
0211 {
0212     "jump test 7",
0213     .insns = {
0214     BPF_MOV64_IMM(BPF_REG_0, 1),
0215     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0216     BPF_MOV64_IMM(BPF_REG_0, 3),
0217     BPF_EXIT_INSN(),
0218     BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),
0219     BPF_MOV64_IMM(BPF_REG_0, 42),
0220     BPF_MOV64_IMM(BPF_REG_0, 42),
0221     BPF_MOV64_IMM(BPF_REG_0, 42),
0222     BPF_MOV64_IMM(BPF_REG_0, 42),
0223     BPF_MOV64_IMM(BPF_REG_0, 42),
0224     BPF_MOV64_IMM(BPF_REG_0, 42),
0225     BPF_MOV64_IMM(BPF_REG_0, 42),
0226     BPF_MOV64_IMM(BPF_REG_0, 42),
0227     BPF_MOV64_IMM(BPF_REG_0, 42),
0228     BPF_MOV64_IMM(BPF_REG_0, 42),
0229     BPF_MOV64_IMM(BPF_REG_0, 42),
0230     BPF_MOV64_IMM(BPF_REG_0, 42),
0231     BPF_MOV64_IMM(BPF_REG_0, 42),
0232     BPF_MOV64_IMM(BPF_REG_0, 42),
0233     BPF_MOV64_IMM(BPF_REG_0, 42),
0234     BPF_MOV64_IMM(BPF_REG_0, 42),
0235     BPF_JMP_IMM(BPF_JA, 0, 0, -20),
0236     },
0237     .result = ACCEPT,
0238     .retval = 3,
0239 },
0240 {
0241     "jump test 8",
0242     .insns = {
0243     BPF_MOV64_IMM(BPF_REG_0, 1),
0244     BPF_MOV64_IMM(BPF_REG_1, 2),
0245     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0246     BPF_MOV64_IMM(BPF_REG_0, 3),
0247     BPF_EXIT_INSN(),
0248     BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16),
0249     BPF_MOV64_IMM(BPF_REG_0, 42),
0250     BPF_MOV64_IMM(BPF_REG_0, 42),
0251     BPF_MOV64_IMM(BPF_REG_0, 42),
0252     BPF_MOV64_IMM(BPF_REG_0, 42),
0253     BPF_MOV64_IMM(BPF_REG_0, 42),
0254     BPF_MOV64_IMM(BPF_REG_0, 42),
0255     BPF_MOV64_IMM(BPF_REG_0, 42),
0256     BPF_MOV64_IMM(BPF_REG_0, 42),
0257     BPF_MOV64_IMM(BPF_REG_0, 42),
0258     BPF_MOV64_IMM(BPF_REG_0, 42),
0259     BPF_MOV64_IMM(BPF_REG_0, 42),
0260     BPF_MOV64_IMM(BPF_REG_0, 42),
0261     BPF_MOV64_IMM(BPF_REG_0, 42),
0262     BPF_MOV64_IMM(BPF_REG_0, 42),
0263     BPF_MOV64_IMM(BPF_REG_0, 42),
0264     BPF_MOV64_IMM(BPF_REG_0, 42),
0265     BPF_JMP_IMM(BPF_JA, 0, 0, -20),
0266     },
0267     .result = ACCEPT,
0268     .retval = 3,
0269 },
0270 {
0271     "jump/call test 9",
0272     .insns = {
0273     BPF_MOV64_IMM(BPF_REG_0, 1),
0274     BPF_JMP_IMM(BPF_JA, 0, 0, 2),
0275     BPF_MOV64_IMM(BPF_REG_0, 3),
0276     BPF_EXIT_INSN(),
0277     BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),
0278     BPF_MOV64_IMM(BPF_REG_0, 42),
0279     BPF_MOV64_IMM(BPF_REG_0, 42),
0280     BPF_MOV64_IMM(BPF_REG_0, 42),
0281     BPF_MOV64_IMM(BPF_REG_0, 42),
0282     BPF_MOV64_IMM(BPF_REG_0, 42),
0283     BPF_MOV64_IMM(BPF_REG_0, 42),
0284     BPF_MOV64_IMM(BPF_REG_0, 42),
0285     BPF_MOV64_IMM(BPF_REG_0, 42),
0286     BPF_MOV64_IMM(BPF_REG_0, 42),
0287     BPF_MOV64_IMM(BPF_REG_0, 42),
0288     BPF_MOV64_IMM(BPF_REG_0, 42),
0289     BPF_MOV64_IMM(BPF_REG_0, 42),
0290     BPF_MOV64_IMM(BPF_REG_0, 42),
0291     BPF_MOV64_IMM(BPF_REG_0, 42),
0292     BPF_MOV64_IMM(BPF_REG_0, 42),
0293     BPF_MOV64_IMM(BPF_REG_0, 42),
0294     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20),
0295     BPF_EXIT_INSN(),
0296     },
0297     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0298     .result = REJECT,
0299     .errstr = "jump out of range from insn 1 to 4",
0300 },
0301 {
0302     "jump/call test 10",
0303     .insns = {
0304     BPF_MOV64_IMM(BPF_REG_0, 1),
0305     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 2),
0306     BPF_MOV64_IMM(BPF_REG_0, 3),
0307     BPF_EXIT_INSN(),
0308     BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16),
0309     BPF_MOV64_IMM(BPF_REG_0, 42),
0310     BPF_MOV64_IMM(BPF_REG_0, 42),
0311     BPF_MOV64_IMM(BPF_REG_0, 42),
0312     BPF_MOV64_IMM(BPF_REG_0, 42),
0313     BPF_MOV64_IMM(BPF_REG_0, 42),
0314     BPF_MOV64_IMM(BPF_REG_0, 42),
0315     BPF_MOV64_IMM(BPF_REG_0, 42),
0316     BPF_MOV64_IMM(BPF_REG_0, 42),
0317     BPF_MOV64_IMM(BPF_REG_0, 42),
0318     BPF_MOV64_IMM(BPF_REG_0, 42),
0319     BPF_MOV64_IMM(BPF_REG_0, 42),
0320     BPF_MOV64_IMM(BPF_REG_0, 42),
0321     BPF_MOV64_IMM(BPF_REG_0, 42),
0322     BPF_MOV64_IMM(BPF_REG_0, 42),
0323     BPF_MOV64_IMM(BPF_REG_0, 42),
0324     BPF_MOV64_IMM(BPF_REG_0, 42),
0325     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20),
0326     BPF_EXIT_INSN(),
0327     },
0328     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0329     .result = REJECT,
0330     .errstr = "last insn is not an exit or jmp",
0331 },
0332 {
0333     "jump/call test 11",
0334     .insns = {
0335     BPF_MOV64_IMM(BPF_REG_0, 1),
0336     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 4),
0337     BPF_MOV64_IMM(BPF_REG_0, 3),
0338     BPF_EXIT_INSN(),
0339     BPF_MOV64_IMM(BPF_REG_0, 3),
0340     BPF_EXIT_INSN(),
0341     BPF_MOV64_IMM(BPF_REG_0, 1),
0342     BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 26),
0343     BPF_MOV64_IMM(BPF_REG_0, 42),
0344     BPF_MOV64_IMM(BPF_REG_0, 42),
0345     BPF_MOV64_IMM(BPF_REG_0, 42),
0346     BPF_MOV64_IMM(BPF_REG_0, 42),
0347     BPF_MOV64_IMM(BPF_REG_0, 42),
0348     BPF_MOV64_IMM(BPF_REG_0, 42),
0349     BPF_MOV64_IMM(BPF_REG_0, 42),
0350     BPF_MOV64_IMM(BPF_REG_0, 42),
0351     BPF_MOV64_IMM(BPF_REG_0, 42),
0352     BPF_MOV64_IMM(BPF_REG_0, 42),
0353     BPF_MOV64_IMM(BPF_REG_0, 42),
0354     BPF_MOV64_IMM(BPF_REG_0, 42),
0355     BPF_MOV64_IMM(BPF_REG_0, 42),
0356     BPF_MOV64_IMM(BPF_REG_0, 42),
0357     BPF_MOV64_IMM(BPF_REG_0, 42),
0358     BPF_MOV64_IMM(BPF_REG_0, 42),
0359     BPF_MOV64_IMM(BPF_REG_0, 42),
0360     BPF_MOV64_IMM(BPF_REG_0, 42),
0361     BPF_MOV64_IMM(BPF_REG_0, 42),
0362     BPF_MOV64_IMM(BPF_REG_0, 42),
0363     BPF_MOV64_IMM(BPF_REG_0, 42),
0364     BPF_MOV64_IMM(BPF_REG_0, 42),
0365     BPF_MOV64_IMM(BPF_REG_0, 42),
0366     BPF_MOV64_IMM(BPF_REG_0, 42),
0367     BPF_MOV64_IMM(BPF_REG_0, 42),
0368     BPF_MOV64_IMM(BPF_REG_0, 42),
0369     BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -31),
0370     BPF_EXIT_INSN(),
0371     },
0372     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0373     .result = ACCEPT,
0374     .retval = 3,
0375 },
0376 {
0377     "jump & dead code elimination",
0378     .insns = {
0379     BPF_MOV64_IMM(BPF_REG_0, 1),
0380     BPF_MOV64_IMM(BPF_REG_3, 0),
0381     BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0),
0382     BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0),
0383     BPF_ALU64_IMM(BPF_OR, BPF_REG_3, 32767),
0384     BPF_JMP_IMM(BPF_JSGE, BPF_REG_3, 0, 1),
0385     BPF_EXIT_INSN(),
0386     BPF_JMP_IMM(BPF_JSLE, BPF_REG_3, 0x8000, 1),
0387     BPF_EXIT_INSN(),
0388     BPF_ALU64_IMM(BPF_ADD, BPF_REG_3, -32767),
0389     BPF_MOV64_IMM(BPF_REG_0, 2),
0390     BPF_JMP_IMM(BPF_JLE, BPF_REG_3, 0, 1),
0391     BPF_MOV64_REG(BPF_REG_0, BPF_REG_4),
0392     BPF_EXIT_INSN(),
0393     },
0394     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0395     .result = ACCEPT,
0396     .retval = 2,
0397 },