See the feature description in patch #2. Version 4:
- Fixed image builds with libvirt-ci by adding a new commit that bumps a submodule version and then using that new version for libxdp support in the main qemu build. Based on discussion in the PULL request: https://lists.gnu.org/archive/html/qemu-devel/2023-09/msg01730.html Version 3: - Bump requirements to libxdp 1.4.0+. Having that, removed all the conditional compilation parts, since all the needed APIs are available in this version of libxdp. - Also removed the ability to pass xsks map fd, since ability to just pass socket fds is now always available and it doesn't require any capabilities untile manipulations with BPF maps. - Updated documentation to not call out specific vendors, memory numbers or specific required capabilities. - Changed logic of returning peeked at but unused descriptors. - Minor cleanups. Version 2: - Added support for running with no capabilities by passing pre-created AF_XDP socket file descriptors via 'sock-fds' option. Conditionally complied because requires unreleased libxdp 1.4.0. The last restriction is having 32 MB of RLIMIT_MEMLOCK per queue. - Refined and extended documentation. Ilya Maximets (2): tests: bump libvirt-ci for libasan and libxdp net: add initial support for AF_XDP network backend MAINTAINERS | 4 + hmp-commands.hx | 3 + meson.build | 9 + meson_options.txt | 2 + net/af-xdp.c | 526 ++++++++++++++++++ net/clients.h | 5 + net/meson.build | 3 + net/net.c | 6 + qapi/net.json | 58 ++ qemu-options.hx | 70 ++- .../ci/org.centos/stream/8/x86_64/configure | 1 + scripts/meson-buildoptions.sh | 3 + tests/docker/dockerfiles/alpine.docker | 1 + tests/docker/dockerfiles/centos8.docker | 1 + .../dockerfiles/debian-amd64-cross.docker | 2 +- tests/docker/dockerfiles/debian-amd64.docker | 2 +- .../dockerfiles/debian-arm64-cross.docker | 2 +- .../dockerfiles/debian-armel-cross.docker | 2 +- .../dockerfiles/debian-armhf-cross.docker | 2 +- .../dockerfiles/debian-ppc64el-cross.docker | 2 +- .../dockerfiles/debian-s390x-cross.docker | 2 +- tests/docker/dockerfiles/fedora.docker | 1 + tests/docker/dockerfiles/opensuse-leap.docker | 2 +- tests/docker/dockerfiles/ubuntu2004.docker | 2 +- tests/docker/dockerfiles/ubuntu2204.docker | 2 +- tests/lcitool/libvirt-ci | 2 +- tests/lcitool/projects/qemu.yml | 1 + 27 files changed, 704 insertions(+), 12 deletions(-) create mode 100644 net/af-xdp.c -- 2.41.0