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

Reply via email to