diff options
author | 2014-12-01 15:06:39 -0800 | |
---|---|---|
committer | 2014-12-05 21:47:34 -0800 | |
commit | fbe3310840c65f3cf97dd90d23e177d061c376f2 (patch) | |
tree | ee28163a6c53e0131fd2d3d626d02b0610eaed2b /tools/perf/scripts/python/call-graph-from-postgresql.py | |
parent | samples: bpf: trivial eBPF program in C (diff) | |
download | linux-dev-fbe3310840c65f3cf97dd90d23e177d061c376f2.tar.xz linux-dev-fbe3310840c65f3cf97dd90d23e177d061c376f2.zip |
samples: bpf: large eBPF program in C
sockex2_kern.c is purposefully large eBPF program in C.
llvm compiles ~200 lines of C code into ~300 eBPF instructions.
It's similar to __skb_flow_dissect() to demonstrate that complex packet parsing
can be done by eBPF.
Then it uses (struct flow_keys)->dst IP address (or hash of ipv6 dst) to keep
stats of number of packets per IP.
User space loads eBPF program, attaches it to loopback interface and prints
dest_ip->#packets stats every second.
Usage:
$sudo samples/bpf/sockex2
ip 127.0.0.1 count 19
ip 127.0.0.1 count 178115
ip 127.0.0.1 count 369437
ip 127.0.0.1 count 559841
ip 127.0.0.1 count 750539
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/perf/scripts/python/call-graph-from-postgresql.py')
0 files changed, 0 insertions, 0 deletions