| { | |
| "jump test 1", | |
| .insns = { | |
| BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -8), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 1), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 1), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 1), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 1), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 5), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .errstr_unpriv = "R1 pointer comparison", | |
| .result_unpriv = REJECT, | |
| .result = ACCEPT, | |
| }, | |
| { | |
| "jump test 2", | |
| .insns = { | |
| BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 2), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 14), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 2), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 11), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 2), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 8), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 2), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 5), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 2), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .errstr_unpriv = "R1 pointer comparison", | |
| .result_unpriv = REJECT, | |
| .result = ACCEPT, | |
| }, | |
| { | |
| "jump test 3", | |
| .insns = { | |
| BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 3), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), | |
| BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 19), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 3), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0), | |
| BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -16), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 15), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 3), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0), | |
| BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -32), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 11), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 3), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0), | |
| BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -40), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 7), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 3), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0), | |
| BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -48), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 0), | |
| BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0), | |
| BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -56), | |
| BPF_LD_MAP_FD(BPF_REG_1, 0), | |
| BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_delete_elem), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .fixup_map_hash_8b = { 24 }, | |
| .errstr_unpriv = "R1 pointer comparison", | |
| .result_unpriv = REJECT, | |
| .result = ACCEPT, | |
| .retval = -ENOENT, | |
| }, | |
| { | |
| "jump test 4", | |
| .insns = { | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), | |
| BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .errstr_unpriv = "R1 pointer comparison", | |
| .result_unpriv = REJECT, | |
| .result = ACCEPT, | |
| }, | |
| { | |
| "jump test 5", | |
| .insns = { | |
| BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), | |
| BPF_MOV64_REG(BPF_REG_3, BPF_REG_2), | |
| BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_MOV64_IMM(BPF_REG_0, 0), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .errstr_unpriv = "R1 pointer comparison", | |
| .result_unpriv = REJECT, | |
| .result = ACCEPT, | |
| }, | |
| { | |
| "jump test 6", | |
| .insns = { | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_MOV64_IMM(BPF_REG_1, 2), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_MOV64_IMM(BPF_REG_0, 2), | |
| BPF_EXIT_INSN(), | |
| BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 0), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, -20), | |
| }, | |
| .result = ACCEPT, | |
| .retval = 2, | |
| }, | |
| { | |
| "jump test 7", | |
| .insns = { | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_MOV64_IMM(BPF_REG_0, 3), | |
| BPF_EXIT_INSN(), | |
| BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, -20), | |
| }, | |
| .result = ACCEPT, | |
| .retval = 3, | |
| }, | |
| { | |
| "jump test 8", | |
| .insns = { | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_MOV64_IMM(BPF_REG_1, 2), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_MOV64_IMM(BPF_REG_0, 3), | |
| BPF_EXIT_INSN(), | |
| BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, -20), | |
| }, | |
| .result = ACCEPT, | |
| .retval = 3, | |
| }, | |
| { | |
| "jump/call test 9", | |
| .insns = { | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_JMP_IMM(BPF_JA, 0, 0, 2), | |
| BPF_MOV64_IMM(BPF_REG_0, 3), | |
| BPF_EXIT_INSN(), | |
| BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .prog_type = BPF_PROG_TYPE_SCHED_CLS, | |
| .result = REJECT, | |
| .errstr = "jump out of range from insn 1 to 4", | |
| }, | |
| { | |
| "jump/call test 10", | |
| .insns = { | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 2), | |
| BPF_MOV64_IMM(BPF_REG_0, 3), | |
| BPF_EXIT_INSN(), | |
| BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .prog_type = BPF_PROG_TYPE_SCHED_CLS, | |
| .result = REJECT, | |
| .errstr = "last insn is not an exit or jmp", | |
| }, | |
| { | |
| "jump/call test 11", | |
| .insns = { | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 4), | |
| BPF_MOV64_IMM(BPF_REG_0, 3), | |
| BPF_EXIT_INSN(), | |
| BPF_MOV64_IMM(BPF_REG_0, 3), | |
| BPF_EXIT_INSN(), | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 26), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_MOV64_IMM(BPF_REG_0, 42), | |
| BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -31), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .prog_type = BPF_PROG_TYPE_SCHED_CLS, | |
| .result = ACCEPT, | |
| .retval = 3, | |
| }, | |
| { | |
| "jump & dead code elimination", | |
| .insns = { | |
| BPF_MOV64_IMM(BPF_REG_0, 1), | |
| BPF_MOV64_IMM(BPF_REG_3, 0), | |
| BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0), | |
| BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0), | |
| BPF_ALU64_IMM(BPF_OR, BPF_REG_3, 32767), | |
| BPF_JMP_IMM(BPF_JSGE, BPF_REG_3, 0, 1), | |
| BPF_EXIT_INSN(), | |
| BPF_JMP_IMM(BPF_JSLE, BPF_REG_3, 0x8000, 1), | |
| BPF_EXIT_INSN(), | |
| BPF_ALU64_IMM(BPF_ADD, BPF_REG_3, -32767), | |
| BPF_MOV64_IMM(BPF_REG_0, 2), | |
| BPF_JMP_IMM(BPF_JLE, BPF_REG_3, 0, 1), | |
| BPF_MOV64_REG(BPF_REG_0, BPF_REG_4), | |
| BPF_EXIT_INSN(), | |
| }, | |
| .prog_type = BPF_PROG_TYPE_SCHED_CLS, | |
| .result = ACCEPT, | |
| .retval = 2, | |
| }, |