aboutsummaryrefslogtreecommitdiffstats
path: root/samples/bpf/sockex2_user.c
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@plumgrid.com>2014-12-01 15:06:38 -0800
committerDavid S. Miller <davem@davemloft.net>2014-12-05 21:47:33 -0800
commita80857822b0c2ed608c93504bd3687b78f20c619 (patch)
tree8fb218a13a13a16d5083c7b831398f967137f152 /samples/bpf/sockex2_user.c
parentsamples: bpf: elf_bpf file loader (diff)
downloadlinux-dev-a80857822b0c2ed608c93504bd3687b78f20c619.tar.xz
linux-dev-a80857822b0c2ed608c93504bd3687b78f20c619.zip
samples: bpf: trivial eBPF program in C
this example does the same task as previous socket example in assembler, but this one does it in C. eBPF program in kernel does: /* assume that packet is IPv4, load one byte of IP->proto */ int index = load_byte(skb, ETH_HLEN + offsetof(struct iphdr, protocol)); long *value; value = bpf_map_lookup_elem(&my_map, &index); if (value) __sync_fetch_and_add(value, 1); Corresponding user space reads map[tcp], map[udp], map[icmp] and prints protocol stats every second Signed-off-by: Alexei Starovoitov <ast@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'samples/bpf/sockex2_user.c')
0 files changed, 0 insertions, 0 deletions