[PATCH v4 0/2] net: add initial support for AF_XDP network backend

Ilya Maximets posted 2 patches 7 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230913183620.1278418-1-i.maximets@ovn.org
Maintainers: "Dr. David Alan Gilbert" <dave@treblig.org>, Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Thomas Huth <thuth@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Ilya Maximets <i.maximets@ovn.org>, Jason Wang <jasowang@redhat.com>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>
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
[PATCH v4 0/2] net: add initial support for AF_XDP network backend
Posted by Ilya Maximets 7 months, 3 weeks ago
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