Index of tcpdumptools
generate C style BPF insns
e.g.)
# tcpdump -dd port 12345 | tcpdump_dd2h -c
struct bpf_insn insns[] = {
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 0x0000000c),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x000086dd, 0, 8),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, 0x00000014),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00000084, 2, 0),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00000006, 1, 0),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00000011, 0, 17),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 0x00000036),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00003039, 14, 0),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 0x00000038),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00003039, 12, 13),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00000800, 0, 12),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, 0x00000017),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00000084, 2, 0),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00000006, 1, 0),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00000011, 0, 8),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 0x00000014),
BPF_JUMP(BPF_JMP + BPF_JSET + BPF_K, 0x00001fff, 6, 0),
BPF_STMT(BPF_LDX + BPF_B + BPF_MSH, 0x0000000e),
BPF_STMT(BPF_LD + BPF_H + BPF_IND, 0x0000000e),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00003039, 2, 0),
BPF_STMT(BPF_LD + BPF_H + BPF_IND, 0x00000010),
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x00003039, 0, 1),
BPF_STMT(BPF_RET + BPF_K, 0x00000060),
BPF_STMT(BPF_RET + BPF_K, 0x00000000),
};