Hi all,
Also, a possible solution for libvirt may look like this:
https://github.com/daynix/libvirt/tree/RSS_eBPF (WIP)
On Fri, May 12, 2023 at 3:47 PM Andrew Melnychenko wrote:
>
> This series of patches provides the ability to retrieve eBPF program
> through qmp, so management application may load bpf blob with proper
> capabilities.
> Now, virtio-net devices can accept eBPF programs and maps through properties
> as external file descriptors. Access to the eBPF map is direct through mmap()
> call, so it should not require additional capabilities to bpf* calls.
> eBPF file descriptors can be passed to QEMU from parent process or by unix
> socket with sendfd() qmp command.
>
> Changes since v1:
> * refactored code.
> * eBPF program ids implemented as enums
>
> Andrew Melnychenko (6):
> ebpf: Added eBPF map update through mmap.
> ebpf: Added eBPF initialization by fds.
> virtio-net: Added property to load eBPF RSS with fds.
> ebpf: Added declaration/initialization routines.
> qmp: Added new command to retrieve eBPF blob.
> ebpf: Updated eBPF program and skeleton.
>
> ebpf/ebpf.c| 54 ++
> ebpf/ebpf.h| 31 +
> ebpf/ebpf_rss-stub.c |6 +
> ebpf/ebpf_rss.c| 149 +++-
> ebpf/ebpf_rss.h| 10 +
> ebpf/meson.build |1 +
> ebpf/rss.bpf.skeleton.h| 1469
> hw/net/virtio-net.c| 55 +-
> include/hw/virtio/virtio-net.h |1 +
> monitor/qmp-cmds.c | 16 +
> qapi/misc.json | 38 +
> tools/ebpf/rss.bpf.c |2 +-
> 12 files changed, 1073 insertions(+), 759 deletions(-)
> create mode 100644 ebpf/ebpf.c
> create mode 100644 ebpf/ebpf.h
>
> --
> 2.39.1
>