On Sun, 17 Jun 2018 08:48:41 +0000, Ophir Munk wrote: > Similar to cbpf used within tcpdump utility with a "-d" option to dump > the compiled packet-matching code in a human readable form - tc has the > "verbose" option to dump ebpf verifier output. > Another useful option of cbpf using tcpdump "-dd" option is to dump > packet-matching code a C program fragment. Similar to this - this commit > adds a new tc ebpf option named "code" to dump ebpf verifier as C program > fragment. > > Existing "verbose" option sample output: > > Verifier analysis: > 0: (61) r2 = *(u32 *)(r1 +52) > 1: (18) r3 = 0xdeadbeef > 3: (63) *(u32 *)(r10 -4) = r3 > . > . > 11: (63) *(u32 *)(r1 +52) = r2 > 12: (18) r0 = 0xffffffff > 14: (95) exit > > New "code" option sample output: > > /* struct bpf_insn cls_q_code[] = { */ > {0x61, 2, 1, 52, 0x00000000}, > {0x18, 3, 0, 0, 0xdeadbeef}, > {0x00, 0, 0, 0, 0x00000000}, > . > . > {0x63, 1, 2, 52, 0x00000000}, > {0x18, 0, 0, 0, 0xffffffff}, > {0x00, 0, 0, 0, 0x00000000}, > {0x95, 0, 0, 0, 0x00000000}, > > Signed-off-by: Ophir Munk <ophi...@mellanox.com>
Hmm... printing C arrays looks like hacky integration with some C code... Would you not be better served by simply using libbpf in whatever is consuming this output?