[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4afe76e2-d1be-4810-0db7-859bcd5c89f3@cumulusnetworks.com>
Date: Thu, 1 Dec 2016 08:13:52 -0700
From: David Ahern <dsa@...ulusnetworks.com>
To: Alexei Starovoitov <alexei.starovoitov@...il.com>
Cc: netdev@...r.kernel.org, daniel@...que.org, ast@...com,
daniel@...earbox.net, maheshb@...gle.com, tgraf@...g.ch
Subject: Re: [PATCH net-next v6 6/6] samples/bpf: add userspace example for
prohibiting sockets
On 11/30/16 10:59 PM, Alexei Starovoitov wrote:
> On Wed, Nov 30, 2016 at 10:16:50AM -0800, David Ahern wrote:
>> Add examples preventing a process in a cgroup from opening a socket
>> based family, protocol and type.
>>
>> Signed-off-by: David Ahern <dsa@...ulusnetworks.com>
> ...
>> +++ b/samples/bpf/sock_flags_kern.c
>> @@ -0,0 +1,37 @@
>> +#include <uapi/linux/bpf.h>
>> +#include <linux/socket.h>
>> +#include "bpf_helpers.h"
>> +
>> +SEC("cgroup/sock1")
>> +int bpf_prog1(struct bpf_sock *sk)
>> +{
>> + char fmt[] = "socket: family %d type %d protocol %d\n";
>> +
>> + bpf_trace_printk(fmt, sizeof(fmt), sk->family, sk->type, sk->protocol);
>> +
>> + /* block PF_INET6, SOCK_RAW, IPPROTO_ICMPV6 sockets
>> + * ie., make ping6 fail
>> + */
>> + if (sk->family == PF_INET6 && sk->type == 3 && sk->protocol == 58)
>> + return 0;
>
> why not to use SOCK_RAW and IPPROTO_ICMPV6 instead of constants?
header file hell.
Powered by blists - more mailing lists