mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-05 09:46:43 +07:00
a8cb5f556b
This work extends the "classic" BPF programmable tc action by extending its scope also to native eBPF code! Together with commite2e9b6541d
("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 commite2e9b6541d
. Preliminary iproute2 part can be found under [1]. [1] http://git.breakpoint.cc/cgit/dborkman/iproute2.git/log/?h=ebpf-act Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: Jiri Pirko <jiri@resnulli.us> Acked-by: Jiri Pirko <jiri@resnulli.us> Acked-by: Alexei Starovoitov <ast@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
34 lines
671 B
C
34 lines
671 B
C
/*
|
|
* Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef __LINUX_TC_BPF_H
|
|
#define __LINUX_TC_BPF_H
|
|
|
|
#include <linux/pkt_cls.h>
|
|
|
|
#define TCA_ACT_BPF 13
|
|
|
|
struct tc_act_bpf {
|
|
tc_gen;
|
|
};
|
|
|
|
enum {
|
|
TCA_ACT_BPF_UNSPEC,
|
|
TCA_ACT_BPF_TM,
|
|
TCA_ACT_BPF_PARMS,
|
|
TCA_ACT_BPF_OPS_LEN,
|
|
TCA_ACT_BPF_OPS,
|
|
TCA_ACT_BPF_FD,
|
|
TCA_ACT_BPF_NAME,
|
|
__TCA_ACT_BPF_MAX,
|
|
};
|
|
#define TCA_ACT_BPF_MAX (__TCA_ACT_BPF_MAX - 1)
|
|
|
|
#endif
|