Hi all, Jason, can you please review the patch set, thank you. On Mon, Feb 5, 2024 at 6:54 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 v8: > * rebased and refactored QMP interface > * license SPDX id only for new files > > Changes since v7: > * rebased and refactored > * used SPDX license identifier > * used DEFINE_PROP_ARRAY() for virtio-net "ebpf-rss-fds" property > > Changes since v6: > * added comments to ebpf.json > * added libbpf version requirements to meson script with BPF_F_MMAPABLE check > > Changes since v5: > * refactored ebpf.json > > Changes since v4: > * refactored commit hunks > * added explicit BPF_F_MMAPABLE declaration > > Changes since v3: > * fixed issue with the build if bpf disabled > * rebased to the last master > * refactored according to review > > Changes since v2: > * moved/refactored QMP command > * refactored virtio-net > > Changes since v1: > * refactored virtio-net > * moved hunks for ebpf mmap() > * added qmp enum for eBPF id. > > Andrew Melnychenko (5): > ebpf: Added eBPF map update through mmap. > ebpf: Added eBPF initialization by fds. > virtio-net: Added property to load eBPF RSS with fds. > qmp: Added new command to retrieve eBPF blob. > ebpf: Updated eBPF program and skeleton. > > ebpf/ebpf.c | 69 ++ > ebpf/ebpf.h | 29 + > ebpf/ebpf_rss-stub.c | 6 + > ebpf/ebpf_rss.c | 150 +++- > ebpf/ebpf_rss.h | 10 + > ebpf/meson.build | 2 +- > ebpf/rss.bpf.skeleton.h | 1343 ++++++++++++++++---------------- > hw/net/virtio-net.c | 54 +- > include/hw/virtio/virtio-net.h | 2 + > meson.build | 10 +- > qapi/ebpf.json | 66 ++ > qapi/meson.build | 1 + > qapi/qapi-schema.json | 1 + > tools/ebpf/rss.bpf.c | 7 +- > 14 files changed, 1047 insertions(+), 703 deletions(-) > create mode 100644 ebpf/ebpf.c > create mode 100644 ebpf/ebpf.h > create mode 100644 qapi/ebpf.json > > -- > 2.43.0 >