162306a36Sopenharmony_ci{ 262306a36Sopenharmony_ci "jump test 1", 362306a36Sopenharmony_ci .insns = { 462306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 562306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -8), 662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1), 762306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), 862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 1), 962306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 1), 1062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 1), 1162306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 2), 1262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 1), 1362306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 3), 1462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 1), 1562306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 4), 1662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1), 1762306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 5), 1862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 1962306a36Sopenharmony_ci BPF_EXIT_INSN(), 2062306a36Sopenharmony_ci }, 2162306a36Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 2262306a36Sopenharmony_ci .result_unpriv = REJECT, 2362306a36Sopenharmony_ci .result = ACCEPT, 2462306a36Sopenharmony_ci}, 2562306a36Sopenharmony_ci{ 2662306a36Sopenharmony_ci "jump test 2", 2762306a36Sopenharmony_ci .insns = { 2862306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 2962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 2), 3062306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), 3162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 14), 3262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 2), 3362306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0), 3462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 11), 3562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 2), 3662306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0), 3762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 8), 3862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 2), 3962306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0), 4062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 5), 4162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 2), 4262306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0), 4362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 4462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1), 4562306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0), 4662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 4762306a36Sopenharmony_ci BPF_EXIT_INSN(), 4862306a36Sopenharmony_ci }, 4962306a36Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 5062306a36Sopenharmony_ci .result_unpriv = REJECT, 5162306a36Sopenharmony_ci .result = ACCEPT, 5262306a36Sopenharmony_ci}, 5362306a36Sopenharmony_ci{ 5462306a36Sopenharmony_ci "jump test 3", 5562306a36Sopenharmony_ci .insns = { 5662306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 5762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 3), 5862306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), 5962306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 6062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 19), 6162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 3), 6262306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0), 6362306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -16), 6462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 15), 6562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 3), 6662306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0), 6762306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -32), 6862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 11), 6962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 3), 7062306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0), 7162306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -40), 7262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 7), 7362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 3), 7462306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0), 7562306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -48), 7662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 3), 7762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 0), 7862306a36Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0), 7962306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -56), 8062306a36Sopenharmony_ci BPF_LD_MAP_FD(BPF_REG_1, 0), 8162306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_delete_elem), 8262306a36Sopenharmony_ci BPF_EXIT_INSN(), 8362306a36Sopenharmony_ci }, 8462306a36Sopenharmony_ci .fixup_map_hash_8b = { 24 }, 8562306a36Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 8662306a36Sopenharmony_ci .result_unpriv = REJECT, 8762306a36Sopenharmony_ci .result = ACCEPT, 8862306a36Sopenharmony_ci .retval = -ENOENT, 8962306a36Sopenharmony_ci}, 9062306a36Sopenharmony_ci{ 9162306a36Sopenharmony_ci "jump test 4", 9262306a36Sopenharmony_ci .insns = { 9362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 9462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 9562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 9662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 9762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 9862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 9962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 10062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 10162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 10262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 10362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 10462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 10562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 10662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 10762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 10862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 10962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 11062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 11162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 11262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 11362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 11462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 11562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 11662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 11762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 11862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 11962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 12062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 12162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 12262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 12362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 12462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 12562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 12662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 12762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 12862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 12962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 13062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 13162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 13262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 13362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 13462306a36Sopenharmony_ci BPF_EXIT_INSN(), 13562306a36Sopenharmony_ci }, 13662306a36Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 13762306a36Sopenharmony_ci .result_unpriv = REJECT, 13862306a36Sopenharmony_ci .result = ACCEPT, 13962306a36Sopenharmony_ci}, 14062306a36Sopenharmony_ci{ 14162306a36Sopenharmony_ci "jump test 5", 14262306a36Sopenharmony_ci .insns = { 14362306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 14462306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_3, BPF_REG_2), 14562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 14662306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 14762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 14862306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 14962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 15062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 15162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 15262306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 15362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 15462306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 15562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 15662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 15762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 15862306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 15962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 16062306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 16162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 16262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 16362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 16462306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 16562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 16662306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 16762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 16862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 16962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 17062306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 17162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 17262306a36Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 17362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 17462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 17562306a36Sopenharmony_ci BPF_EXIT_INSN(), 17662306a36Sopenharmony_ci }, 17762306a36Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 17862306a36Sopenharmony_ci .result_unpriv = REJECT, 17962306a36Sopenharmony_ci .result = ACCEPT, 18062306a36Sopenharmony_ci}, 18162306a36Sopenharmony_ci{ 18262306a36Sopenharmony_ci "jump test 6", 18362306a36Sopenharmony_ci .insns = { 18462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 18562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 18662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 18762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 18862306a36Sopenharmony_ci BPF_EXIT_INSN(), 18962306a36Sopenharmony_ci BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16), 19062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 19962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 20062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 20162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 20262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 20362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 20462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 20562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 20662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -20), 20762306a36Sopenharmony_ci }, 20862306a36Sopenharmony_ci .result = ACCEPT, 20962306a36Sopenharmony_ci .retval = 2, 21062306a36Sopenharmony_ci}, 21162306a36Sopenharmony_ci{ 21262306a36Sopenharmony_ci "jump test 7", 21362306a36Sopenharmony_ci .insns = { 21462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 21562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 21662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 21762306a36Sopenharmony_ci BPF_EXIT_INSN(), 21862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), 21962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 22962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 23062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 23162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 23262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 23362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 23462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 23562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -20), 23662306a36Sopenharmony_ci }, 23762306a36Sopenharmony_ci .result = ACCEPT, 23862306a36Sopenharmony_ci .retval = 3, 23962306a36Sopenharmony_ci}, 24062306a36Sopenharmony_ci{ 24162306a36Sopenharmony_ci "jump test 8", 24262306a36Sopenharmony_ci .insns = { 24362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 24462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 24562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 24662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 24762306a36Sopenharmony_ci BPF_EXIT_INSN(), 24862306a36Sopenharmony_ci BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16), 24962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 25962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 26062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 26162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 26262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 26362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 26462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 26562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -20), 26662306a36Sopenharmony_ci }, 26762306a36Sopenharmony_ci .result = ACCEPT, 26862306a36Sopenharmony_ci .retval = 3, 26962306a36Sopenharmony_ci}, 27062306a36Sopenharmony_ci{ 27162306a36Sopenharmony_ci "jump/call test 9", 27262306a36Sopenharmony_ci .insns = { 27362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 27462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 27562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 27662306a36Sopenharmony_ci BPF_EXIT_INSN(), 27762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), 27862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 27962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 28962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 29062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 29162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 29262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 29362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 29462306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20), 29562306a36Sopenharmony_ci BPF_EXIT_INSN(), 29662306a36Sopenharmony_ci }, 29762306a36Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 29862306a36Sopenharmony_ci .result = REJECT, 29962306a36Sopenharmony_ci .errstr = "jump out of range from insn 1 to 4", 30062306a36Sopenharmony_ci}, 30162306a36Sopenharmony_ci{ 30262306a36Sopenharmony_ci "jump/call test 10", 30362306a36Sopenharmony_ci .insns = { 30462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 30562306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 2), 30662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 30762306a36Sopenharmony_ci BPF_EXIT_INSN(), 30862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), 30962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 31962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 32062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 32162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 32262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 32362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 32462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 32562306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20), 32662306a36Sopenharmony_ci BPF_EXIT_INSN(), 32762306a36Sopenharmony_ci }, 32862306a36Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 32962306a36Sopenharmony_ci .result = REJECT, 33062306a36Sopenharmony_ci .errstr = "last insn is not an exit or jmp", 33162306a36Sopenharmony_ci}, 33262306a36Sopenharmony_ci{ 33362306a36Sopenharmony_ci "jump/call test 11", 33462306a36Sopenharmony_ci .insns = { 33562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 33662306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 4), 33762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 33862306a36Sopenharmony_ci BPF_EXIT_INSN(), 33962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 34062306a36Sopenharmony_ci BPF_EXIT_INSN(), 34162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 34262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 26), 34362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 34462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 34562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 34662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 34762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 34862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 34962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 35962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 36962306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -31), 37062306a36Sopenharmony_ci BPF_EXIT_INSN(), 37162306a36Sopenharmony_ci }, 37262306a36Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 37362306a36Sopenharmony_ci .result = ACCEPT, 37462306a36Sopenharmony_ci .retval = 3, 37562306a36Sopenharmony_ci}, 37662306a36Sopenharmony_ci{ 37762306a36Sopenharmony_ci "jump & dead code elimination", 37862306a36Sopenharmony_ci .insns = { 37962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 38062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_3, 0), 38162306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0), 38262306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_3, 0), 38362306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_OR, BPF_REG_3, 32767), 38462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JSGE, BPF_REG_3, 0, 1), 38562306a36Sopenharmony_ci BPF_EXIT_INSN(), 38662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JSLE, BPF_REG_3, 0x8000, 1), 38762306a36Sopenharmony_ci BPF_EXIT_INSN(), 38862306a36Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_3, -32767), 38962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 39062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JLE, BPF_REG_3, 0, 1), 39162306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_4), 39262306a36Sopenharmony_ci BPF_EXIT_INSN(), 39362306a36Sopenharmony_ci }, 39462306a36Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 39562306a36Sopenharmony_ci .result = ACCEPT, 39662306a36Sopenharmony_ci .retval = 2, 39762306a36Sopenharmony_ci}, 398