When a new BPF traffic control filter or action is set up with tc, the bytecode is sent back to userspace through a netlink socket for cBPF, but not for eBPF (the file descriptor pointing to the object file containing the bytecode is sent instead).
This patch makes cls_bpf and act_bpf modules send the bytecode for eBPF as well (in addition to the file descriptor). New BPF flags are used in order to differenciate what BPF version is in use, so that userspace tools can process the bytecode properly. Once the series is accepted and merged, it is intended to submit a patch for the iproute2 package, so as to fix tc utility so as to use the new flags and to display the bytecode in eBPF format when needed. This tc patch is already available at: https://github.com/6WIND/iproute2/commits/netlink_eBPF Quentin Monnet (2): act_bpf: send back eBPF bytecode through netlink socket cls_bpf: send back eBPF bytecode through netlink socket include/uapi/linux/pkt_cls.h | 1 + include/uapi/linux/tc_act/tc_bpf.h | 1 + net/sched/act_bpf.c | 23 +++++++++++++++++++++++ net/sched/cls_bpf.c | 25 +++++++++++++++++++++++-- 4 files changed, 48 insertions(+), 2 deletions(-) -- 2.7.4