lkml.org 
[lkml]   [2014]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v8 net-next 2/2] net: filter: split filter.h and expose eBPF to user space
    On 08/29/2014 08:02 PM, Alexei Starovoitov wrote:
    > On Fri, Aug 29, 2014 at 10:39 AM, Daniel Borkmann <dborkman@redhat.com> wrote:
    >> On 08/27/2014 10:37 PM, Alexei Starovoitov wrote:
    >>>
    >>> allow user space to generate eBPF programs
    >>>
    >>> uapi/linux/bpf.h: eBPF instruction set definition
    >>>
    >>> linux/filter.h: the rest
    >>
    >> Very sorry for being late, but just a thought since we're touching user
    >> space headers anyway ...
    >>
    >> Wouldn't it be more consistent to have it organized as follows ...
    >>
    >> - uapi/linux/bpf.h : classic BPF instruction set parts only
    >> - uapi/linux/ebpf.h : eBPF instruction set definition (which also
    >> includes uapi/linux/bpf.h though)
    >> ... and have ...
    >>
    >> - uapi/linux/filter.h : just include uapi/linux/bpf.h but rest is empty
    >>
    >> That way, it would be more consistent ...
    >>
    >> Old legacy application can stay with linux/filter.h; new applications
    >> based on their needs can choose between linux/{e,}bpf.h and in the kernel,
    >> we can just include linux/ebpf.h.
    >>
    >> Right now, it seems, an eBPF user space program would need to include
    >> 2 header files in user space (linux/filter.h, linux/bpf.h) which I find
    >> a bit confusing.
    >
    > It's been bugging me as well, but I suspect having it the way you
    > described won't work. Mainly because we cannot do include <uapi/..>
    > inside uapi/*.h, so we would need to do include <linux/bpf.h>
    > inside uapi/linux/filter.h, but that will cause serious include path
    > confusion. That was the reason I didn't simply do include <linux/filter.h>
    > inside uapi/linux/bpf.h
    >
    > Also I really dislike 'ebpf' name in all lower case. If we make such header
    > file name, we would need to rename all macros and function names
    > to EBPF_... which I find very ugly looking. I think all good abbreviations are
    > three letters :)

    I don't think we would have to name defines that way, really, that would be
    terrible. We can keep them simply *as is*. Not sure though why bpf.h + ebpf.h
    would be that bad. ;) I haven't tried it out yet, but if we would indeed run
    into a name collision, above proposal would resolve that.


    \
     
     \ /
      Last update: 2014-08-30 00:41    [W:8.907 / U:0.380 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site