Lines Matching +full:21 +full:- +full:k

1 /*	$NetBSD: t_bpfjit.c,v 1.12 2017/01/13 21:30:42 christos Exp $ */
3 /*-
4 * Copyright (c) 2011-2012, 2014-2015 Alexander Nasonov.
30 __RCSID("$NetBSD: t_bpfjit.c,v 1.12 2017/01/13 21:30:42 christos Exp $");
47 /* XXX: atf-c.h has collisions with mbuf */
50 #include <atf-c.h>
230 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=0"); in ATF_TC_HEAD()
254 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=1"); in ATF_TC_HEAD()
279 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=2"); in ATF_TC_HEAD()
304 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=4"); in ATF_TC_HEAD()
329 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=10"); in ATF_TC_HEAD()
354 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=10000"); in ATF_TC_HEAD()
379 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=7609801"); in ATF_TC_HEAD()
404 "Test JIT compilation of BPF_ALU+BPF_DIV+BPF_K with k=0x80000000"); in ATF_TC_HEAD()
429 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=0"); in ATF_TC_HEAD()
453 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=1"); in ATF_TC_HEAD()
478 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=2"); in ATF_TC_HEAD()
503 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=4"); in ATF_TC_HEAD()
528 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=10"); in ATF_TC_HEAD()
553 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=10000"); in ATF_TC_HEAD()
578 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=7609801"); in ATF_TC_HEAD()
603 "Test JIT compilation of BPF_ALU+BPF_MOD+BPF_K with k=0x80000000"); in ATF_TC_HEAD()
728 "Test JIT compilation of BPF_ALU+BPF_LSH+BPF_K with k=0"); in ATF_TC_HEAD()
778 "Test JIT compilation of BPF_ALU+BPF_RSH+BPF_K with k=0"); in ATF_TC_HEAD()
820 /* 0FFFFF66,BDDE707F - FFFFFFFF = 0FFFFF65,BDDE7080 */ in ATF_TC_BODY()
826 /* -0FFFFF65,BDDE738C mod(2^64) = F000009A,42218C74 */ in ATF_TC_BODY()
1468 "Test JIT compilation of BPF_ALU+BPF_LSH+BPF_X with k=0"); in ATF_TC_HEAD()
1520 "Test JIT compilation of BPF_ALU+BPF_RSH+BPF_X with k=0"); in ATF_TC_HEAD()
1566 /* 0FFFFF66,BDDE707F - FFFFFFFF = 0FFFFF65,BDDE7080 */ in ATF_TC_BODY()
1574 /* -0FFFFF65,BDDE738C mod(2^64) = F000009A,42218C74 */ in ATF_TC_BODY()
1642 ATF_CHECK(exec_prog(insns, insn_count, pkt, 1) == 0u-777u); in ATF_TC_BODY()
1715 BPF_STMT(BPF_JMP+BPF_JA, UINT32_MAX - 1), // -2 in ATF_TC_BODY()
2502 "Test JIT compilation of BPF_LD+BPF_ABS with overflow in k+4"); in ATF_TC_HEAD()
2514 BPF_STMT(BPF_LD+BPF_H+BPF_ABS, UINT32_MAX - 1), in ATF_TC_BODY()
2524 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, UINT32_MAX - 1), in ATF_TC_BODY()
2529 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, UINT32_MAX - 2), in ATF_TC_BODY()
2534 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, UINT32_MAX - 3), in ATF_TC_BODY()
2545 BPF_STMT(BPF_LD+BPF_H+BPF_ABS, UINT32_MAX - 1), in ATF_TC_BODY()
2555 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, UINT32_MAX - 1), in ATF_TC_BODY()
2560 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, UINT32_MAX - 2), in ATF_TC_BODY()
2565 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, UINT32_MAX - 3), in ATF_TC_BODY()
2672 "Test JIT compilation of BPF_LD+BPF_IND with overflow in k+4"); in ATF_TC_HEAD()
2684 BPF_STMT(BPF_LD+BPF_H+BPF_IND, UINT32_MAX - 1), in ATF_TC_BODY()
2694 BPF_STMT(BPF_LD+BPF_W+BPF_IND, UINT32_MAX - 1), in ATF_TC_BODY()
2699 BPF_STMT(BPF_LD+BPF_W+BPF_IND, UINT32_MAX - 2), in ATF_TC_BODY()
2704 BPF_STMT(BPF_LD+BPF_W+BPF_IND, UINT32_MAX - 3), in ATF_TC_BODY()
2715 BPF_STMT(BPF_LD+BPF_H+BPF_IND, UINT32_MAX - 1), in ATF_TC_BODY()
2725 BPF_STMT(BPF_LD+BPF_W+BPF_IND, UINT32_MAX - 1), in ATF_TC_BODY()
2730 BPF_STMT(BPF_LD+BPF_W+BPF_IND, UINT32_MAX - 2), in ATF_TC_BODY()
2735 BPF_STMT(BPF_LD+BPF_W+BPF_IND, UINT32_MAX - 3), in ATF_TC_BODY()
2910 BPF_STMT(BPF_LDX+BPF_W+BPF_IMM, UINT32_MAX - 5), in ATF_TC_BODY()
2922 ATF_CHECK(exec_prog(insns, insn_count, pkt, 1) == UINT32_MAX - 5); in ATF_TC_BODY()
3159 BPF_STMT(BPF_ST, BPF_MEMWORDS-1), in ATF_TC_BODY()
3187 BPF_STMT(BPF_ST, BPF_MEMWORDS-1), in ATF_TC_BODY()
3190 BPF_STMT(BPF_LD+BPF_MEM, BPF_MEMWORDS-1), in ATF_TC_BODY()
3233 BPF_STMT(BPF_ST, BPF_MEMWORDS-1), in ATF_TC_BODY()
3236 BPF_STMT(BPF_LD+BPF_MEM, BPF_MEMWORDS-1), in ATF_TC_BODY()
3278 size_t k; in ATF_TC_BODY() local
3284 /* for each k do M[k] = k */ in ATF_TC_BODY()
3285 for (k = 0; k < BPF_MEMWORDS; k++) { in ATF_TC_BODY()
3286 insns[2*k].code = BPF_LD+BPF_IMM; in ATF_TC_BODY()
3287 insns[2*k].k = 3*k; in ATF_TC_BODY()
3288 insns[2*k+1].code = BPF_ST; in ATF_TC_BODY()
3289 insns[2*k+1].k = k; in ATF_TC_BODY()
3295 /* for each k, if (A == k + 1) return M[k] */ in ATF_TC_BODY()
3296 for (k = 0; k < BPF_MEMWORDS; k++) { in ATF_TC_BODY()
3297 insns[2*BPF_MEMWORDS+3*k+1].code = BPF_JMP+BPF_JEQ+BPF_K; in ATF_TC_BODY()
3298 insns[2*BPF_MEMWORDS+3*k+1].k = k+1; in ATF_TC_BODY()
3299 insns[2*BPF_MEMWORDS+3*k+1].jt = 0; in ATF_TC_BODY()
3300 insns[2*BPF_MEMWORDS+3*k+1].jf = 2; in ATF_TC_BODY()
3301 insns[2*BPF_MEMWORDS+3*k+2].code = BPF_LD+BPF_MEM; in ATF_TC_BODY()
3302 insns[2*BPF_MEMWORDS+3*k+2].k = k; in ATF_TC_BODY()
3303 insns[2*BPF_MEMWORDS+3*k+3].code = BPF_RET+BPF_A; in ATF_TC_BODY()
3304 insns[2*BPF_MEMWORDS+3*k+3].k = 0; in ATF_TC_BODY()
3308 insns[5*BPF_MEMWORDS+1].k = UINT32_MAX; in ATF_TC_BODY()
3319 for (k = 1; k <= sizeof(pkt); k++) in ATF_TC_BODY()
3320 ATF_CHECK(jitcall(code, pkt, k, k) == 3*(k-1)); in ATF_TC_BODY()
3379 BPF_STMT(BPF_STX, BPF_MEMWORDS-1), in ATF_TC_BODY()
3459 size_t k; in ATF_TC_BODY() local
3465 /* for each k do M[k] = k */ in ATF_TC_BODY()
3466 for (k = 0; k < BPF_MEMWORDS; k++) { in ATF_TC_BODY()
3467 insns[2*k].code = BPF_LDX+BPF_W+BPF_IMM; in ATF_TC_BODY()
3468 insns[2*k].k = 3*k; in ATF_TC_BODY()
3469 insns[2*k+1].code = BPF_STX; in ATF_TC_BODY()
3470 insns[2*k+1].k = k; in ATF_TC_BODY()
3476 /* for each k, if (A == k + 1) return M[k] */ in ATF_TC_BODY()
3477 for (k = 0; k < BPF_MEMWORDS; k++) { in ATF_TC_BODY()
3478 insns[2*BPF_MEMWORDS+3*k+1].code = BPF_JMP+BPF_JEQ+BPF_K; in ATF_TC_BODY()
3479 insns[2*BPF_MEMWORDS+3*k+1].k = k+1; in ATF_TC_BODY()
3480 insns[2*BPF_MEMWORDS+3*k+1].jt = 0; in ATF_TC_BODY()
3481 insns[2*BPF_MEMWORDS+3*k+1].jf = 2; in ATF_TC_BODY()
3482 insns[2*BPF_MEMWORDS+3*k+2].code = BPF_LD+BPF_MEM; in ATF_TC_BODY()
3483 insns[2*BPF_MEMWORDS+3*k+2].k = k; in ATF_TC_BODY()
3484 insns[2*BPF_MEMWORDS+3*k+3].code = BPF_RET+BPF_A; in ATF_TC_BODY()
3485 insns[2*BPF_MEMWORDS+3*k+3].k = 0; in ATF_TC_BODY()
3489 insns[5*BPF_MEMWORDS+1].k = UINT32_MAX; in ATF_TC_BODY()
3500 for (k = 1; k <= sizeof(pkt); k++) in ATF_TC_BODY()
3501 ATF_CHECK(jitcall(code, pkt, k, k) == 3*(k-1)); in ATF_TC_BODY()
3537 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3543 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3600 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3606 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3663 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3669 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3727 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3733 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3791 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3797 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3856 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3862 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3921 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3927 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, in ATF_TC_BODY()
3967 BPF_STMT(BPF_LD+BPF_B+BPF_ABS, UINT32_MAX - 1), in ATF_TC_BODY()
4129 "Test the first example from bpf(4) - " in ATF_TC_HEAD()
4183 ATF_CHECK(jitcall(code, pkt, 21, 21) == 0); in ATF_TC_BODY()
4193 pkt[21] = 3; in ATF_TC_BODY()
4217 ATF_CHECK(jitcall(code, pkt, 21, 21) == 0); in ATF_TC_BODY()
4232 "Test the second example from bpf(4) - " in ATF_TC_HEAD()
4291 ATF_CHECK(jitcall(code, pkt, 21, 21) == 0); in ATF_TC_BODY()
4346 ATF_CHECK(jitcall(code, pkt, 21, 21) == 0); in ATF_TC_BODY()
4373 "Test the third example from bpf(4) - " in ATF_TC_HEAD()
4401 /* Set IP fragment offset to non-zero. */ in ATF_TC_BODY()
4402 pkt[20] = 1; pkt[21] = 1; in ATF_TC_BODY()
4436 ATF_CHECK(jitcall(code, pkt, 21, 21) == 0); in ATF_TC_BODY()
4458 pkt[20] = 0x20; pkt[21] = 0; in ATF_TC_BODY()
4494 ATF_CHECK(jitcall(code, pkt, 21, 21) == 0); in ATF_TC_BODY()