AF_XDP bits was removed from kernel's libbpf in 6.0. libbpf and libxdp are now primary way to build AF_XDP applications. Most of modern distributions are already packaging some version of libbpf, so it's better to test building with it instead of building old unsupported kernel tree.
All the jobs will now try to build with AF_XDP support. One AF_XDP-specific job kept to fail explicitly if something is wrong in the configuration process, others will just skip building AF_XDP support in case of missing dependencies. Ubuntu started packaging libxdp only in 22.10, so not using it for now. Signed-off-by: Ilya Maximets <[email protected]> --- .ci/linux-build.sh | 22 ++-------------------- .github/workflows/build-and-test.yml | 9 +++------ 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh index 1f8896423..2904aadd2 100755 --- a/.ci/linux-build.sh +++ b/.ci/linux-build.sh @@ -76,22 +76,6 @@ function install_kernel() make net/bridge/ fi - if [ "$AFXDP" ]; then - sudo make headers_install INSTALL_HDR_PATH=/usr - pushd tools/lib/bpf/ - # Bulding with gcc because there are some issues in make files - # that breaks building libbpf with clang on Travis. - CC=gcc sudo make install - CC=gcc sudo make install_headers - sudo ldconfig - popd - # The Linux kernel defines __always_inline in stddef.h (283d7573), and - # sys/cdefs.h tries to re-define it. Older libc-dev package in xenial - # doesn't have a fix for this issue. Applying it manually. - sudo sed -i '/^# define __always_inline .*/i # undef __always_inline' \ - /usr/include/x86_64-linux-gnu/sys/cdefs.h || true - EXTRA_OPTS="${EXTRA_OPTS} --enable-afxdp" - fi popd } @@ -247,10 +231,8 @@ elif [ "$M32" ]; then export CC="$CC -m32" elif [ "$TRAVIS_ARCH" != "aarch64" ]; then EXTRA_OPTS="$EXTRA_OPTS --enable-sparse" - if [ "$AFXDP" ]; then - # netdev-afxdp uses memset for 64M for umem initialization. - SPARSE_FLAGS="${SPARSE_FLAGS} -Wno-memcpy-max-count" - fi + # netdev-afxdp uses memset for 64M for umem initialization. + SPARSE_FLAGS="${SPARSE_FLAGS} -Wno-memcpy-max-count" CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} ${SPARSE_FLAGS}" fi diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index e08d7b1ba..5f28493c7 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -8,8 +8,7 @@ jobs: dependencies: | automake libtool gcc bc libjemalloc2 libjemalloc-dev \ libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev \ - ninja-build selinux-policy-dev - AFXDP: ${{ matrix.afxdp }} + ninja-build selinux-policy-dev libbpf-dev ASAN: ${{ matrix.asan }} UBSAN: ${{ matrix.ubsan }} CC: ${{ matrix.compiler }} @@ -65,11 +64,9 @@ jobs: libs: -ljemalloc - compiler: gcc - afxdp: afxdp - kernel: 5.3 + opts: --enable-afxdp - compiler: clang - afxdp: afxdp - kernel: 5.3 + opts: --enable-afxdp - compiler: gcc dpdk: dpdk -- 2.38.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
