Re: [PATCH RFC net-next 13/14] samples: bpf: example of stateful socket filtering

From: Andy Lutomirski
Date: Fri Jun 27 2014 - 20:21:33 EST


On Fri, Jun 27, 2014 at 5:06 PM, Alexei Starovoitov <ast@xxxxxxxxxxxx> wrote:
> this socket filter example does:
>
> - creates a hashtable in kernel with key 4 bytes and value 8 bytes
>
> - populates map[6] = 0; map[17] = 0; // 6 - tcp_proto, 17 - udp_proto
>
> - loads eBPF program:
> r0 = skb[14 + 9]; // load one byte of ip->proto
> *(u32*)(fp - 4) = r0;
> value = bpf_map_lookup_elem(map_id, fp - 4);
> if (value)
> (*(u64*)value) += 1;

In the code below, this is XADD. Is there anything that validates
that shared things like this can only be poked at by atomic
operations?

--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/