mbox series

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

Message ID 20230913183620.1278418-1-i.maximets@ovn.org
Headers show
Series net: add initial support for AF_XDP network backend | expand

Message

Ilya Maximets Sept. 13, 2023, 6:34 p.m. UTC
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