18c2ecf20Sopenharmony_ci{ 28c2ecf20Sopenharmony_ci "jump test 1", 38c2ecf20Sopenharmony_ci .insns = { 48c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 58c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -8), 68c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1), 78c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), 88c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 1), 98c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 1), 108c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 1), 118c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 2), 128c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 1), 138c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 3), 148c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 1), 158c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 4), 168c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1), 178c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 5), 188c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 198c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 208c2ecf20Sopenharmony_ci }, 218c2ecf20Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 228c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 238c2ecf20Sopenharmony_ci .result = ACCEPT, 248c2ecf20Sopenharmony_ci}, 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci "jump test 2", 278c2ecf20Sopenharmony_ci .insns = { 288c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 298c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 2), 308c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), 318c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 14), 328c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 2), 338c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0), 348c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 11), 358c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 2), 368c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0), 378c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 8), 388c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 2), 398c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0), 408c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 5), 418c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 2), 428c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0), 438c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 448c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 1), 458c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0), 468c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 478c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 488c2ecf20Sopenharmony_ci }, 498c2ecf20Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 508c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 518c2ecf20Sopenharmony_ci .result = ACCEPT, 528c2ecf20Sopenharmony_ci}, 538c2ecf20Sopenharmony_ci{ 548c2ecf20Sopenharmony_ci "jump test 3", 558c2ecf20Sopenharmony_ci .insns = { 568c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 578c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 3), 588c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -8, 0), 598c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 608c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 19), 618c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 1, 3), 628c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -16, 0), 638c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -16), 648c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 15), 658c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 2, 3), 668c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -32, 0), 678c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -32), 688c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 11), 698c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 3, 3), 708c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -40, 0), 718c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -40), 728c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 7), 738c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 4, 3), 748c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -48, 0), 758c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -48), 768c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 3), 778c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 5, 0), 788c2ecf20Sopenharmony_ci BPF_ST_MEM(BPF_DW, BPF_REG_2, -56, 0), 798c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -56), 808c2ecf20Sopenharmony_ci BPF_LD_MAP_FD(BPF_REG_1, 0), 818c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_delete_elem), 828c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 838c2ecf20Sopenharmony_ci }, 848c2ecf20Sopenharmony_ci .fixup_map_hash_8b = { 24 }, 858c2ecf20Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 868c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 878c2ecf20Sopenharmony_ci .result = ACCEPT, 888c2ecf20Sopenharmony_ci .retval = -ENOENT, 898c2ecf20Sopenharmony_ci}, 908c2ecf20Sopenharmony_ci{ 918c2ecf20Sopenharmony_ci "jump test 4", 928c2ecf20Sopenharmony_ci .insns = { 938c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 948c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 958c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 968c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 978c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 988c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 998c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1008c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1018c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 1028c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 1038c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1048c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1058c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 1068c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 1078c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1088c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1098c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 1108c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 1118c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1128c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1138c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 1148c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 1158c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1168c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1178c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 1188c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 1198c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1208c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1218c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 1228c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 1238c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1248c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1258c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 1), 1268c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 2), 1278c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 3), 1288c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 4), 1298c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 1308c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 1318c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 1328c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, BPF_REG_10, 0), 1338c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 1348c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1358c2ecf20Sopenharmony_ci }, 1368c2ecf20Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 1378c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 1388c2ecf20Sopenharmony_ci .result = ACCEPT, 1398c2ecf20Sopenharmony_ci}, 1408c2ecf20Sopenharmony_ci{ 1418c2ecf20Sopenharmony_ci "jump test 5", 1428c2ecf20Sopenharmony_ci .insns = { 1438c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 1448c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_3, BPF_REG_2), 1458c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 1468c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 1478c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 1488c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 1498c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1508c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 1518c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 1528c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 1538c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 1548c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 1558c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1568c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 1578c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 1588c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 1598c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 1608c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 1618c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1628c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 1638c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 1648c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 1658c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 1668c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 1678c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1688c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 1698c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2), 1708c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_3, -8), 1718c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 1728c2ecf20Sopenharmony_ci BPF_STX_MEM(BPF_DW, BPF_REG_2, BPF_REG_2, -8), 1738c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1748c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 1758c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1768c2ecf20Sopenharmony_ci }, 1778c2ecf20Sopenharmony_ci .errstr_unpriv = "R1 pointer comparison", 1788c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 1798c2ecf20Sopenharmony_ci .result = ACCEPT, 1808c2ecf20Sopenharmony_ci}, 1818c2ecf20Sopenharmony_ci{ 1828c2ecf20Sopenharmony_ci "jump test 6", 1838c2ecf20Sopenharmony_ci .insns = { 1848c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 1858c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 1868c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 1878c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 2), 1888c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1898c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16), 1908c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1918c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1928c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1938c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1948c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1958c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1968c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1978c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1988c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1998c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 2008c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 2018c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 2028c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 2038c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 2048c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 2058c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 2068c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -20), 2078c2ecf20Sopenharmony_ci }, 2088c2ecf20Sopenharmony_ci .result = ACCEPT, 2098c2ecf20Sopenharmony_ci .retval = 2, 2108c2ecf20Sopenharmony_ci}, 2118c2ecf20Sopenharmony_ci{ 2128c2ecf20Sopenharmony_ci "jump test 7", 2138c2ecf20Sopenharmony_ci .insns = { 2148c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 2158c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 2168c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 2178c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2188c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), 2198c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2208c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2218c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2228c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2238c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2248c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2258c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2268c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2278c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2288c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2298c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2308c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2318c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2328c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2338c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2348c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2358c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -20), 2368c2ecf20Sopenharmony_ci }, 2378c2ecf20Sopenharmony_ci .result = ACCEPT, 2388c2ecf20Sopenharmony_ci .retval = 3, 2398c2ecf20Sopenharmony_ci}, 2408c2ecf20Sopenharmony_ci{ 2418c2ecf20Sopenharmony_ci "jump test 8", 2428c2ecf20Sopenharmony_ci .insns = { 2438c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 2448c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 2458c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 2468c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 2478c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2488c2ecf20Sopenharmony_ci BPF_JMP_REG(BPF_JNE, BPF_REG_0, BPF_REG_1, 16), 2498c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2508c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2518c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2528c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2538c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2548c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2558c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2568c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2578c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2588c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2598c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2608c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2618c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2628c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2638c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2648c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2658c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -20), 2668c2ecf20Sopenharmony_ci }, 2678c2ecf20Sopenharmony_ci .result = ACCEPT, 2688c2ecf20Sopenharmony_ci .retval = 3, 2698c2ecf20Sopenharmony_ci}, 2708c2ecf20Sopenharmony_ci{ 2718c2ecf20Sopenharmony_ci "jump/call test 9", 2728c2ecf20Sopenharmony_ci .insns = { 2738c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 2748c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 2758c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 2768c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2778c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), 2788c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2798c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2808c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2818c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2828c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2838c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2848c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2858c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2868c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2878c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2888c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2898c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2908c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2918c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2928c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2938c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 2948c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20), 2958c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2968c2ecf20Sopenharmony_ci }, 2978c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 2988c2ecf20Sopenharmony_ci .result = REJECT, 2998c2ecf20Sopenharmony_ci .errstr = "jump out of range from insn 1 to 4", 3008c2ecf20Sopenharmony_ci}, 3018c2ecf20Sopenharmony_ci{ 3028c2ecf20Sopenharmony_ci "jump/call test 10", 3038c2ecf20Sopenharmony_ci .insns = { 3048c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 3058c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 2), 3068c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 3078c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 3088c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 16), 3098c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3108c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3118c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3128c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3138c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3148c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3158c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3168c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3178c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3188c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3198c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3208c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3218c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3228c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3238c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3248c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3258c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -20), 3268c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 3278c2ecf20Sopenharmony_ci }, 3288c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 3298c2ecf20Sopenharmony_ci .result = REJECT, 3308c2ecf20Sopenharmony_ci .errstr = "last insn is not an exit or jmp", 3318c2ecf20Sopenharmony_ci}, 3328c2ecf20Sopenharmony_ci{ 3338c2ecf20Sopenharmony_ci "jump/call test 11", 3348c2ecf20Sopenharmony_ci .insns = { 3358c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 3368c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 4), 3378c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 3388c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 3398c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 3), 3408c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 3418c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 3428c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 2, 26), 3438c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3448c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3458c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3468c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3478c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3488c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3498c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3508c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3518c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3528c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3538c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3548c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3558c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3568c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3578c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3588c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3598c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3608c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3618c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3628c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3638c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3648c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3658c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3668c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3678c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3688c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 42), 3698c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -31), 3708c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 3718c2ecf20Sopenharmony_ci }, 3728c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 3738c2ecf20Sopenharmony_ci .result = ACCEPT, 3748c2ecf20Sopenharmony_ci .retval = 3, 3758c2ecf20Sopenharmony_ci}, 376