linux/samples/bpf
Alexei Starovoitov a80857822b 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>
2014-12-05 21:47:33 -08:00
..
bpf_helpers.h samples: bpf: elf_bpf file loader 2014-12-05 21:47:33 -08:00
bpf_load.c samples: bpf: elf_bpf file loader 2014-12-05 21:47:33 -08:00
bpf_load.h samples: bpf: elf_bpf file loader 2014-12-05 21:47:33 -08:00
libbpf.c samples: bpf: example of stateful socket filtering 2014-12-05 21:47:32 -08:00
libbpf.h samples: bpf: trivial eBPF program in C 2014-12-05 21:47:33 -08:00
Makefile samples: bpf: trivial eBPF program in C 2014-12-05 21:47:33 -08:00
sock_example.c samples: bpf: example of stateful socket filtering 2014-12-05 21:47:32 -08:00
sockex1_kern.c samples: bpf: trivial eBPF program in C 2014-12-05 21:47:33 -08:00
sockex1_user.c samples: bpf: trivial eBPF program in C 2014-12-05 21:47:33 -08:00
test_maps.c bpf: add a testsuite for eBPF maps 2014-11-18 13:43:59 -05:00
test_verifier.c bpf: remove test map scaffolding and user proper types 2014-11-18 13:44:00 -05:00