On Mon, Jan 29, 2024 at 6:43 PM Dumitru Ceara <[email protected]> wrote: > > On 1/30/24 00:36, Dumitru Ceara wrote: > > This picks up the following relevant OVS commits: > > 8893e24d9d dpdk: Update to use v23.11. > > ed738eca39 util: Annotate function that will never return NULL. > > 77d0bad04 mcast-snooping: Store IGMP/MLD protocol version. > > b222593bc6 mcast-snooping: Add group protocol to mdb/show output. > > a940a691e7 ovs-atomic: Fix inclusion of Clang header by GCC 14. > > b0cf73112d dp-packet: Reset offload/offsets when clearing a packet. > > > > This commit also ports the CI DPDK related changes from OVS commit > > 8893e24d9d09 ("dpdk: Update to use v23.11.") which are required as 23.11 > > is the supported DPDK branch on OVS 3.3. There's also a small change > > that had to be made when mangling the prefix path of the installed > > DPDK version in the container. > > > > As a side effect this will also address OVN Fedora 40 (rawhide) build > > failures on aarch64 and s390x. They are fixed by a940a691e7d9 > > ("ovs-atomic: Fix inclusion of Clang header by GCC 14."). > > > > Suggested-by: Ilya Maximets <[email protected]> > > Signed-off-by: Dumitru Ceara <[email protected]> > > --- > > CC: Eelco, Mohammad, Numan.
Acked-by: Numan Siddique<[email protected]> Numan > > > .ci/dpdk-build.sh | 28 ++++++++++++++++++---------- > > .ci/linux-build.sh | 11 ++++++----- > > .github/workflows/test.yml | 4 ++-- > > controller/pinctrl.c | 6 +++++- > > ovs | 2 +- > > 5 files changed, 32 insertions(+), 19 deletions(-) > > > > diff --git a/.ci/dpdk-build.sh b/.ci/dpdk-build.sh > > index f44ac15b07..0c13c98c98 100755 > > --- a/.ci/dpdk-build.sh > > +++ b/.ci/dpdk-build.sh > > @@ -5,25 +5,27 @@ set -x > > > > function build_dpdk() > > { > > - local VERSION_FILE="dpdk-dir/cached-version" > > local DPDK_VER=$1 > > local DPDK_OPTS="" > > + local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir" > > + local VERSION_FILE="$DPDK_INSTALL_DIR/cached-version" > > > > - rm -rf dpdk-dir > > + rm -rf dpdk-src > > + rm -rf $DPDK_INSTALL_DIR > > > > if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then > > - git clone --single-branch $DPDK_GIT dpdk-dir -b "${DPDK_VER##refs/*/}" > > - pushd dpdk-dir > > + git clone --single-branch $DPDK_GIT dpdk-src -b "${DPDK_VER##refs/*/}" > > + pushd dpdk-src > > git log -1 --oneline > > else > > wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz > > tar xvf dpdk-$1.tar.xz > /dev/null > > DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/") > > - mv ${DIR_NAME} dpdk-dir > > - pushd dpdk-dir > > + mv ${DIR_NAME} dpdk-src > > + pushd dpdk-src > > fi > > > > - # Switching to 'default' machine to make dpdk-dir cache usable on > > + # Switching to 'default' machine to make the dpdk cache usable on > > # different CPUs. We can't be sure that all CI machines are exactly same. > > DPDK_OPTS="$DPDK_OPTS -Dmachine=default" > > > > @@ -38,16 +40,22 @@ function build_dpdk() > > # only depend on virtio/tap drivers. > > # We can disable all remaining drivers to save compilation time. > > DPDK_OPTS="$DPDK_OPTS -Denable_drivers=net/null,net/tap,net/virtio" > > + # OVS depends on the vhost library (and its dependencies). > > + # net/tap depends on the gso library. > > + DPDK_OPTS="$DPDK_OPTS -Denable_libs=cryptodev,dmadev,gso,vhost" > > > > # Install DPDK using prefix. > > - DPDK_OPTS="$DPDK_OPTS --prefix=$(pwd)/build" > > + DPDK_OPTS="$DPDK_OPTS --prefix=$DPDK_INSTALL_DIR" > > > > meson $DPDK_OPTS build > > ninja -C build > > ninja -C build install > > - > > - echo "Installed DPDK in $(pwd)" > > popd > > + > > + # Remove examples sources. > > + rm -rf $DPDK_INSTALL_DIR/share/dpdk/examples > > + > > + echo "Installed DPDK in $DPDK_INSTALL_DIR" > > echo "${DPDK_VER}" > ${VERSION_FILE} > > } > > > > diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh > > index b0c3c9252e..78f17f8bdb 100755 > > --- a/.ci/linux-build.sh > > +++ b/.ci/linux-build.sh > > @@ -13,24 +13,25 @@ RECHECK=${RECHECK:-"no"} > > > > function install_dpdk() > > { > > - local VERSION_FILE="dpdk-dir/cached-version" > > - local DPDK_LIB=$(pwd)/dpdk-dir/build/lib/x86_64-linux-gnu > > + local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir" > > + local VERSION_FILE="${DPDK_INSTALL_DIR}/cached-version" > > + local DPDK_LIB=${DPDK_INSTALL_DIR}/lib/x86_64-linux-gnu > > > > # Export the following path for pkg-config to find the .pc file. > > export PKG_CONFIG_PATH=$DPDK_LIB/pkgconfig/:$PKG_CONFIG_PATH > > > > if [ ! -f "${VERSION_FILE}" ]; then > > - echo "Could not find DPDK in $(pwd)/dpdk-dir" > > + echo "Could not find DPDK in $DPDK_INSTALL_DIR" > > return 1 > > fi > > > > # As we build inside a container we need to update the prefix. > > - sed -i -E "s|^prefix=.*|prefix=$(pwd)/dpdk-dir/build|" \ > > + sed -i -E "s|^prefix=.*|prefix=${DPDK_INSTALL_DIR}|" \ > > "$DPDK_LIB/pkgconfig/libdpdk-libs.pc" > > > > # Update the library paths. > > sudo ldconfig > > - echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $(pwd)/dpdk-dir" > > + echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $DPDK_INSTALL_DIR" > > } > > > > function configure_ovs() > > diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml > > index 02865b32f2..2503d87d0f 100644 > > --- a/.github/workflows/test.yml > > +++ b/.github/workflows/test.yml > > @@ -16,8 +16,8 @@ jobs: > > env: > > dependencies: gcc libnuma-dev ninja-build > > CC: gcc > > - DPDK_GIT: https://dpdk.org/git/dpdk-stable > > - DPDK_VER: 22.11.1 > > + DPDK_GIT: https://dpdk.org/git/dpdk > > + DPDK_VER: 23.11 > > name: dpdk gcc > > outputs: > > dpdk_key: ${{ steps.gen_dpdk_key.outputs.key }} > > diff --git a/controller/pinctrl.c b/controller/pinctrl.c > > index 4992eab089..0d747dbf56 100644 > > --- a/controller/pinctrl.c > > +++ b/controller/pinctrl.c > > @@ -5473,10 +5473,14 @@ pinctrl_ip_mcast_handle_igmp(struct rconn *swconn, > > ovs_rwlock_wrlock(&ip_ms->ms->rwlock); > > switch (ntohs(ip_flow->tp_src)) { > > case IGMP_HOST_MEMBERSHIP_REPORT: > > + group_change = > > + mcast_snooping_add_group4(ip_ms->ms, ip4, IP_MCAST_VLAN, > > + port_key_data, MCAST_GROUP_IGMPV1); > > + break; > > case IGMPV2_HOST_MEMBERSHIP_REPORT: > > group_change = > > mcast_snooping_add_group4(ip_ms->ms, ip4, IP_MCAST_VLAN, > > - port_key_data); > > + port_key_data, MCAST_GROUP_IGMPV2); > > break; > > case IGMP_HOST_LEAVE_MESSAGE: > > group_change = > > diff --git a/ovs b/ovs > > index 4102674b3e..fe55ce37a7 160000 > > --- a/ovs > > +++ b/ovs > > @@ -1 +1 @@ > > -Subproject commit 4102674b3ecadb0e20e512cc661cddbbc4b3d1f6 > > +Subproject commit fe55ce37a7b090d09dee5c01ae0797320ad678f6 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
