16 Mar, 2015

1 commit


06 Dec, 2014

1 commit

  • 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
    Signed-off-by: David S. Miller

    Alexei Starovoitov