• Daniel Borkmann's avatar
    act_bpf: add initial eBPF support for actions · a8cb5f55
    Daniel Borkmann authored
    This work extends the "classic" BPF programmable tc action by extending
    its scope also to native eBPF code!
    
    Together with commit e2e9b654 ("cls_bpf: add initial eBPF support
    for programmable classifiers") this adds the facility to implement fully
    flexible classifier and actions for tc that can be implemented in a C
    subset in user space, "safely" loaded into the kernel, and being run in
    native speed when JITed.
    
    Also, since eBPF maps can be shared between eBPF programs, it offers the
    possibility that cls_bpf and act_bpf can share data 1) between themselves
    and 2) between user space applications. That means that, f.e. customized
    runtime statistics can be collected in user space, but also more importantly
    classifier and action behaviour could be altered based on map input from
    the user space application.
    
    For the remaining details on the workflow and integration, see the cls_bpf
    commit e2e9b654. Preliminary iproute2 part can be found under [1].
    
      [1] http://git.breakpoint.cc/cgit/dborkman/iproute2.git/log/?h=ebpf-actSigned-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Acked-by: default avatarJiri Pirko <jiri@resnulli.us>
    Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a8cb5f55
tc_bpf.h 686 Bytes