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 <and...@daynix.com> 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
>

Reply via email to