1 u_short valid_instructions[]=
9 BPF_LD|BPF_MEM_EX_IMM|BPF_B,
10 BPF_LD|BPF_MEM_EX_IMM|BPF_H,
11 BPF_LD|BPF_MEM_EX_IMM|BPF_W,
12 BPF_LD|BPF_MEM_EX_IND|BPF_B,
13 BPF_LD|BPF_MEM_EX_IND|BPF_H,
14 BPF_LD|BPF_MEM_EX_IND|BPF_W,
18 BPF_LDX|BPF_W|BPF_ABS,
19 BPF_LDX|BPF_H|BPF_ABS,
20 BPF_LDX|BPF_B|BPF_ABS,
22 BPF_LDX|BPF_W|BPF_LEN,
26 BPF_LDX|BPF_MSH|BPF_B,
29 BPF_ST|BPF_MEM_EX_IMM|BPF_B,
30 BPF_STX|BPF_MEM_EX_IMM|BPF_B,
31 BPF_ST|BPF_MEM_EX_IMM|BPF_W,
32 BPF_STX|BPF_MEM_EX_IMM|BPF_W,
33 BPF_ST|BPF_MEM_EX_IMM|BPF_H,
34 BPF_STX|BPF_MEM_EX_IMM|BPF_H,
35 BPF_ST|BPF_MEM_EX_IND|BPF_B,
36 BPF_ST|BPF_MEM_EX_IND|BPF_W,
37 BPF_ST|BPF_MEM_EX_IND|BPF_H,
39 BPF_JMP|BPF_JGT|BPF_K,
40 BPF_JMP|BPF_JGE|BPF_K,
41 BPF_JMP|BPF_JEQ|BPF_K,
42 BPF_JMP|BPF_JSET|BPF_K,
43 BPF_JMP|BPF_JGT|BPF_X,
44 BPF_JMP|BPF_JGE|BPF_X,
45 BPF_JMP|BPF_JEQ|BPF_X,
46 BPF_JMP|BPF_JSET|BPF_X,
47 BPF_ALU|BPF_ADD|BPF_X,
48 BPF_ALU|BPF_SUB|BPF_X,
49 BPF_ALU|BPF_MUL|BPF_X,
50 BPF_ALU|BPF_DIV|BPF_X,
51 BPF_ALU|BPF_AND|BPF_X,
53 BPF_ALU|BPF_LSH|BPF_X,
54 BPF_ALU|BPF_RSH|BPF_X,
55 BPF_ALU|BPF_ADD|BPF_K,
56 BPF_ALU|BPF_SUB|BPF_K,
57 BPF_ALU|BPF_MUL|BPF_K,
58 BPF_ALU|BPF_DIV|BPF_K,
59 BPF_ALU|BPF_AND|BPF_K,
61 BPF_ALU|BPF_LSH|BPF_K,
62 BPF_ALU|BPF_RSH|BPF_K,
66 BPF_MISC|BPF_TME|BPF_LOOKUP,
67 BPF_MISC|BPF_TME|BPF_EXECUTE,
68 BPF_MISC|BPF_TME|BPF_SET_ACTIVE,
69 BPF_MISC|BPF_TME|BPF_GET_REGISTER_VALUE,
70 BPF_MISC|BPF_TME|BPF_SET_REGISTER_VALUE
73 #define VALID_INSTRUCTIONS_LEN (sizeof(valid_instructions)/sizeof(u_short))