2019-01-25 15:24:43 -08:00
{
" 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 ,
} ,
2019-05-10 22:51:33 +00:00
{
" 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 ,
} ,