diff mbox series

[ovs-dev,v3] dpdk: Update to use v22.11.

Message ID 20221130152321.531373-1-ian.stokes@intel.com
State Changes Requested
Headers show
Series [ovs-dev,v3] dpdk: Update to use v22.11. | expand

Checks

Context Check Description
ovsrobot/apply-robot warning apply and check: warning
ovsrobot/github-robot-_Build_and_Test fail github build: failed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Stokes, Ian Nov. 30, 2022, 3:23 p.m. UTC
This commit add support to for DPDK v22.11, it includes the following
changes.

1. ci: Reduce DPDK compilation time.
2. system-dpdk: Update vhost tests to be compatible with DPDK 22.07.

   http://patchwork.ozlabs.org/project/openvswitch/list/?series=316528

3. system-dpdk: Update vhost tests to be compatible with DPDK 22.07.

   http://patchwork.ozlabs.org/project/openvswitch/list/?series=311332

4. netdev-dpdk: Report device bus specific information.
5. netdev-dpdk: Drop reference to Rx header split.

   http://patchwork.ozlabs.org/project/openvswitch/list/?series=321808

In addition documentation was also updated in this commit for use with
DPDK v22.11.

For credit all authors of the original commits to 'dpdk-latest' with the
above changes have been added as co-authors for this commit

Signed-off-by: David Marchand <david.marchand@redhat.com>
Co-authored-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Sunil Pai G <sunil.pai.g@intel.com>
Co-authored-by: Sunil Pai G <sunil.pai.g@intel.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>

---
v2 -> v3
* Remove RFC status.
* Update debian control to use 22.11.

v1 -> v2
* Updated to use DPDK 22.11 rc4.

* Please Note: Although DPDK documentation has been updated in this patch
the resource has not been updated on the DPDK site as of yet, this will
be expected as part of DPDK 22.11 final release.

* The GitHub actions 'linux deb shared dpdk' is expected to fail with this
patch as DPDK 22.11 is not part of the package structure yet.
---
 .ci/linux-build.sh                   |  7 ++-
 Documentation/faq/releases.rst       |  2 +-
 Documentation/intro/install/dpdk.rst | 16 +++---
 Documentation/topics/dpdk/phy.rst    |  8 +--
 NEWS                                 | 18 +------
 debian/control.in                    |  2 +-
 lib/netdev-dpdk.c                    | 24 +++------
 rhel/openvswitch-fedora.spec.in      |  2 +-
 tests/system-dpdk.at                 | 78 ++++++++++++++--------------
 9 files changed, 69 insertions(+), 88 deletions(-)

Comments

David Marchand Dec. 5, 2022, 2:21 p.m. UTC | #1
Hi Ian,

On Wed, Nov 30, 2022 at 4:32 PM Ian Stokes <ian.stokes@intel.com> wrote:
>
> This commit add support to for DPDK v22.11, it includes the following
> changes.
>
> 1. ci: Reduce DPDK compilation time.
> 2. system-dpdk: Update vhost tests to be compatible with DPDK 22.07.
>
>    http://patchwork.ozlabs.org/project/openvswitch/list/?series=316528
>
> 3. system-dpdk: Update vhost tests to be compatible with DPDK 22.07.
>
>    http://patchwork.ozlabs.org/project/openvswitch/list/?series=311332
>
> 4. netdev-dpdk: Report device bus specific information.
> 5. netdev-dpdk: Drop reference to Rx header split.
>
>    http://patchwork.ozlabs.org/project/openvswitch/list/?series=321808
>
> In addition documentation was also updated in this commit for use with
> DPDK v22.11.
>
> For credit all authors of the original commits to 'dpdk-latest' with the
> above changes have been added as co-authors for this commit
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> Co-authored-by: David Marchand <david.marchand@redhat.com>
> Signed-off-by: Sunil Pai G <sunil.pai.g@intel.com>
> Co-authored-by: Sunil Pai G <sunil.pai.g@intel.com>
> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
>
> ---
> v2 -> v3
> * Remove RFC status.
> * Update debian control to use 22.11.
>
> v1 -> v2
> * Updated to use DPDK 22.11 rc4.
>
> * Please Note: Although DPDK documentation has been updated in this patch
> the resource has not been updated on the DPDK site as of yet, this will
> be expected as part of DPDK 22.11 final release.
>
> * The GitHub actions 'linux deb shared dpdk' is expected to fail with this
> patch as DPDK 22.11 is not part of the package structure yet.


> ---
>  .ci/linux-build.sh                   |  7 ++-
>  Documentation/faq/releases.rst       |  2 +-
>  Documentation/intro/install/dpdk.rst | 16 +++---
>  Documentation/topics/dpdk/phy.rst    |  8 +--

We are missing some updates in the documentation:

Documentation/topics/dpdk/vdev.rst:__
https://doc.dpdk.org/guides-21.11/nics/overview.html
Documentation/topics/dpdk/vhost-user.rst:<https://doc.dpdk.org/guides-21.11/prog_guide/vhost_lib.html>`__
Documentation/topics/testing.rst:.. _Configure hugepages:
https://doc.dpdk.org/guides-21.11/linux_gsg/sys_reqs.html
Documentation/topics/userspace-tso.rst:__
https://doc.dpdk.org/guides-21.11/nics/overview.html

The rest lgtm.
Stokes, Ian Dec. 5, 2022, 6:19 p.m. UTC | #2
> Hi Ian,
> 
> On Wed, Nov 30, 2022 at 4:32 PM Ian Stokes <ian.stokes@intel.com> wrote:
> >
> > This commit add support to for DPDK v22.11, it includes the following
> > changes.
> >
> > 1. ci: Reduce DPDK compilation time.
> > 2. system-dpdk: Update vhost tests to be compatible with DPDK 22.07.
> >
> >    http://patchwork.ozlabs.org/project/openvswitch/list/?series=316528
> >
> > 3. system-dpdk: Update vhost tests to be compatible with DPDK 22.07.
> >
> >    http://patchwork.ozlabs.org/project/openvswitch/list/?series=311332
> >
> > 4. netdev-dpdk: Report device bus specific information.
> > 5. netdev-dpdk: Drop reference to Rx header split.
> >
> >    http://patchwork.ozlabs.org/project/openvswitch/list/?series=321808
> >
> > In addition documentation was also updated in this commit for use with
> > DPDK v22.11.
> >
> > For credit all authors of the original commits to 'dpdk-latest' with the
> > above changes have been added as co-authors for this commit
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > Co-authored-by: David Marchand <david.marchand@redhat.com>
> > Signed-off-by: Sunil Pai G <sunil.pai.g@intel.com>
> > Co-authored-by: Sunil Pai G <sunil.pai.g@intel.com>
> > Signed-off-by: Ian Stokes <ian.stokes@intel.com>
> >
> > ---
> > v2 -> v3
> > * Remove RFC status.
> > * Update debian control to use 22.11.
> >
> > v1 -> v2
> > * Updated to use DPDK 22.11 rc4.
> >
> > * Please Note: Although DPDK documentation has been updated in this patch
> > the resource has not been updated on the DPDK site as of yet, this will
> > be expected as part of DPDK 22.11 final release.
> >
> > * The GitHub actions 'linux deb shared dpdk' is expected to fail with this
> > patch as DPDK 22.11 is not part of the package structure yet.
> 
> 
> > ---
> >  .ci/linux-build.sh                   |  7 ++-
> >  Documentation/faq/releases.rst       |  2 +-
> >  Documentation/intro/install/dpdk.rst | 16 +++---
> >  Documentation/topics/dpdk/phy.rst    |  8 +--
> 
> We are missing some updates in the documentation:
> 
> Documentation/topics/dpdk/vdev.rst:__
> https://doc.dpdk.org/guides-21.11/nics/overview.html
> Documentation/topics/dpdk/vhost-user.rst:<https://doc.dpdk.org/guides-
> 21.11/prog_guide/vhost_lib.html>`__
> Documentation/topics/testing.rst:.. _Configure hugepages:
> https://doc.dpdk.org/guides-21.11/linux_gsg/sys_reqs.html
> Documentation/topics/userspace-tso.rst:__
> https://doc.dpdk.org/guides-21.11/nics/overview.html
> 
> The rest lgtm.

Thanks for the catch David, I've updated these in the latest revision.

Thanks
Ian

> 
> 
> --
> David Marchand
diff mbox series

Patch

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 23c8bbb7a..90eac5146 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -160,6 +160,11 @@  function install_dpdk()
     # meson verbose outputs.
     DPDK_OPTS="$DPDK_OPTS -Ddeveloper_mode=disabled"
 
+    # OVS compilation and "normal" unit tests (run in the CI) do not depend on
+    # any DPDK driver being present.
+    # We can disable all drivers to save compilation time.
+    DPDK_OPTS="$DPDK_OPTS -Ddisable_drivers=*/*"
+
     # Install DPDK using prefix.
     DPDK_OPTS="$DPDK_OPTS --prefix=$(pwd)/build"
 
@@ -228,7 +233,7 @@  fi
 
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
     if [ -z "$DPDK_VER" ]; then
-        DPDK_VER="21.11.2"
+        DPDK_VER="22.11"
     fi
     install_dpdk $DPDK_VER
 fi
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index ac0001cd5..e19f54c8f 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -233,7 +233,7 @@  Q: Are all the DPDK releases that OVS versions work with maintained?
     The latest information about DPDK stable and LTS releases can be found
     at `DPDK stable`_.
 
-.. _DPDK stable: http://doc.dpdk.org/guides-21.11/contributing/stable.html
+.. _DPDK stable: http://doc.dpdk.org/guides-22.11/contributing/stable.html
 
 Q: I get an error like this when I configure Open vSwitch:
 
diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst
index a284e6851..2193efddc 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -42,7 +42,7 @@  Build requirements
 In addition to the requirements described in :doc:`general`, building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.2
+- DPDK 22.11
 
 - A `DPDK supported NIC`_
 
@@ -59,8 +59,8 @@  vSwitch with DPDK will require the following:
 
 Detailed system requirements can be found at `DPDK requirements`_.
 
-.. _DPDK supported NIC: https://doc.dpdk.org/guides-21.11/nics/index.html
-.. _DPDK requirements: https://doc.dpdk.org/guides-21.11/linux_gsg/sys_reqs.html
+.. _DPDK supported NIC: https://doc.dpdk.org/guides-22.11/nics/index.html
+.. _DPDK requirements: https://doc.dpdk.org/guides-22.11/linux_gsg/sys_reqs.html
 
 .. _dpdk-install:
 
@@ -73,9 +73,9 @@  Install DPDK
 #. Download the `DPDK sources`_, extract the file and set ``DPDK_DIR``::
 
        $ cd /usr/src/
-       $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-       $ tar xf dpdk-21.11.2.tar.xz
-       $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+       $ wget https://fast.dpdk.org/rel/dpdk-22.11.tar.xz
+       $ tar xf dpdk-22.11.tar.xz
+       $ export DPDK_DIR=/usr/src/dpdk-22.11
        $ cd $DPDK_DIR
 
 #. Configure and install DPDK using Meson
@@ -121,7 +121,7 @@  Install DPDK
 
 .. _DPDK sources: http://dpdk.org/rel
 .. _DPDK documentation:
-   https://doc.dpdk.org/guides-21.11/linux_gsg/build_dpdk.html
+   https://doc.dpdk.org/guides-22.11/linux_gsg/build_dpdk.html
 
 Install OVS
 ~~~~~~~~~~~
@@ -722,7 +722,7 @@  Limitations
   release notes`_.
 
 .. _DPDK release notes:
-   https://doc.dpdk.org/guides-21.11/rel_notes/release_21_11.html
+   https://doc.dpdk.org/guides-22.11/rel_notes/release_22_11.html
 
 - Upper bound MTU: DPDK device drivers differ in how the L2 frame for a
   given MTU value is calculated e.g. i40e driver includes 2 x vlan headers in
diff --git a/Documentation/topics/dpdk/phy.rst b/Documentation/topics/dpdk/phy.rst
index 8fc34a378..cb2d5bcb7 100644
--- a/Documentation/topics/dpdk/phy.rst
+++ b/Documentation/topics/dpdk/phy.rst
@@ -117,7 +117,7 @@  tool::
 
 For more information, refer to the `DPDK documentation <dpdk-drivers>`__.
 
-.. _dpdk-drivers: https://doc.dpdk.org/guides-21.11/linux_gsg/linux_drivers.html
+.. _dpdk-drivers: https://doc.dpdk.org/guides-22.11/linux_gsg/linux_drivers.html
 
 .. _dpdk-phy-multiqueue:
 
@@ -235,7 +235,7 @@  To hotplug a port with igb_uio in this case, DPDK must be configured to use
 physical addressing for IOVA mode. For more information regarding IOVA modes
 in DPDK please refer to the `DPDK IOVA Mode Detection`__.
 
-__ https://doc.dpdk.org/guides-21.11/prog_guide/env_abstraction_layer.html#iova-mode-detection
+__ https://doc.dpdk.org/guides-22.11/prog_guide/env_abstraction_layer.html#iova-mode-detection
 
 To configure OVS DPDK to use physical addressing for IOVA::
 
@@ -267,7 +267,7 @@  Representors are multi devices created on top of one PF.
 
 For more information, refer to the `DPDK documentation`__.
 
-__ https://doc.dpdk.org/guides-21.11/prog_guide/switch_representation.html#port-representors
+__ https://doc.dpdk.org/guides-22.11/prog_guide/switch_representation.html#port-representors
 
 Prior to port representors there was a one-to-one relationship between the PF
 and the eth device. With port representors the relationship becomes one PF to
@@ -401,7 +401,7 @@  in the ``options`` column of the ``Interface`` table.
    kernel netdevice, and be inherited from it when Open vSwitch is restarted,
    even if the options described in this section are unset from Open vSwitch.
 
-.. _bifurcated-drivers: https://doc.dpdk.org/guides-21.11/linux_gsg/linux_drivers.html#bifurcated-driver
+.. _bifurcated-drivers: https://doc.dpdk.org/guides-22.11/linux_gsg/linux_drivers.html#bifurcated-driver
 
 - Configure the VF MAC address::
 
diff --git a/NEWS b/NEWS
index ff77ee404..88bc04588 100644
--- a/NEWS
+++ b/NEWS
@@ -6,23 +6,7 @@  Post-v3.0.0
    - Windows:
      * Conntrack IPv6 fragment support.
    - DPDK:
-     * OVS validated with DPDK 21.11.2.
-       DPDK 21.11.2 contains fixes for the following CVEs:
-       CVE-2022-28199 cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-28199
-       CVE-2022-2132 cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2132
-       A bug was introduced in DPDK 21.11.1 by the commit
-       01e3dee29c02 ("vhost: fix unsafe vring addresses modifications").
-       This bug can cause a deadlock when vIOMMU is enabled and NUMA
-       reallocation of the virtqueues happen.
-       A fix has been posted and pushed to the DPDK 21.11 branch.
-       It can be found here:
-       https://patches.dpdk.org/project/dpdk/patch/20220725203206.427083-2-david.marchand@redhat.com/.
-       If a user wishes to avoid the issue then it is recommended to use
-       DPDK 21.11.0 until the release of DPDK 21.11.3.
-       It should be noted that DPDK 21.11.0 does not benefit from the numerous
-       bug and CVE fixes addressed since its release.
-       If a user wishes to benefit from these fixes it is recommended to use
-       DPDK 21.11.2.
+       * Add support for DPDK 22.11.
 
 
 v3.0.0 - 15 Aug 2022
diff --git a/debian/control.in b/debian/control.in
index db52c8a99..19f590d06 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -21,7 +21,7 @@  Build-Depends:
  iproute2,
  libcap-ng-dev,
  libdbus-1-dev [amd64 i386 ppc64el arm64],
-# DPDK_NETDEV  libdpdk-dev (>= 21.11) [amd64 i386 ppc64el arm64],
+# DPDK_NETDEV  libdpdk-dev (>= 22.11) [amd64 i386 ppc64el arm64],
  libnuma-dev [amd64 i386 ppc64el arm64],
  libpcap-dev [amd64 i386 ppc64el arm64],
  libssl-dev,
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index e4b3465e0..7284e0c7c 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -26,9 +26,10 @@ 
 #include <sys/socket.h>
 #include <linux/if.h>
 
-#include <rte_bus_pci.h>
+#include <rte_bus.h>
 #include <rte_config.h>
 #include <rte_cycles.h>
+#include <rte_dev.h>
 #include <rte_errno.h>
 #include <rte_ethdev.h>
 #include <rte_flow.h>
@@ -159,7 +160,6 @@  typedef uint16_t dpdk_port_t;
 
 static const struct rte_eth_conf port_conf = {
     .rxmode = {
-        .split_hdr_size = 0,
         .offloads = 0,
     },
     .rx_adv_conf = {
@@ -3639,6 +3639,7 @@  netdev_dpdk_get_status(const struct netdev *netdev, struct smap *args)
 {
     struct netdev_dpdk *dev = netdev_dpdk_cast(netdev);
     struct rte_eth_dev_info dev_info;
+    const char *bus_info;
     uint32_t link_speed;
     uint32_t dev_flags;
 
@@ -3651,19 +3652,8 @@  netdev_dpdk_get_status(const struct netdev *netdev, struct smap *args)
     rte_eth_dev_info_get(dev->port_id, &dev_info);
     link_speed = dev->link.link_speed;
     dev_flags = *dev_info.dev_flags;
+    bus_info = rte_dev_bus_info(dev_info.device);
     ovs_mutex_unlock(&dev->mutex);
-    const struct rte_bus *bus;
-    const struct rte_pci_device *pci_dev;
-    uint16_t vendor_id = RTE_PCI_ANY_ID;
-    uint16_t device_id = RTE_PCI_ANY_ID;
-    bus = rte_bus_find_by_device(dev_info.device);
-    if (bus && !strcmp(bus->name, "pci")) {
-        pci_dev = RTE_DEV_TO_PCI(dev_info.device);
-        if (pci_dev) {
-            vendor_id = pci_dev->id.vendor_id;
-            device_id = pci_dev->id.device_id;
-        }
-    }
     ovs_mutex_unlock(&dpdk_mutex);
 
     smap_add_format(args, "port_no", DPDK_PORT_ID_FMT, dev->port_id);
@@ -3687,8 +3677,10 @@  netdev_dpdk_get_status(const struct netdev *netdev, struct smap *args)
     smap_add_format(args, "if_type", "%"PRIu32, IF_TYPE_ETHERNETCSMACD);
     smap_add_format(args, "if_descr", "%s %s", rte_version(),
                                                dev_info.driver_name);
-    smap_add_format(args, "pci-vendor_id", "0x%x", vendor_id);
-    smap_add_format(args, "pci-device_id", "0x%x", device_id);
+    smap_add_format(args, "bus_info", "bus_name=%s%s%s",
+                    rte_bus_name(rte_dev_bus(dev_info.device)),
+                    bus_info != NULL ? ", " : "",
+                    bus_info != NULL ? bus_info : "");
 
     /* Not all link speeds are defined in the OpenFlow specs e.g. 25 Gbps.
      * In that case the speed will not be reported as part of the usual
diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in
index 67268cb78..de6cb30ea 100644
--- a/rhel/openvswitch-fedora.spec.in
+++ b/rhel/openvswitch-fedora.spec.in
@@ -71,7 +71,7 @@  BuildRequires: libcap-ng libcap-ng-devel
 %endif
 %if %{with dpdk}
 BuildRequires: libpcap-devel numactl-devel
-BuildRequires: dpdk-devel >= 21.11
+BuildRequires: dpdk-devel >= 22.11
 Provides: %{name}-dpdk = %{version}-%{release}
 %endif
 %if %{with afxdp}
diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index fd7884e0f..8dc187a61 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -78,14 +78,14 @@  AT_CHECK([ovs-vsctl show], [], [stdout])
 sleep 2
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 ])")
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
@@ -112,11 +112,11 @@  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuser0 -- set Interface dpdkvhostuser0
 AT_CHECK([ovs-vsctl show], [], [stdout])
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user server: socket created" \
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostuser0) vhost-user server: socket created" \
           ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "Socket $OVS_RUNDIR/dpdkvhostuser0 created for vhost-user port dpdkvhostuser0" \
           ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: bind to $OVS_RUNDIR/dpdkvhostuser0" ovs-vswitchd.log], [],
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostuser0) binding succeeded" ovs-vswitchd.log], [],
          [stdout])
 
 dnl Set up namespaces
@@ -157,8 +157,8 @@  pkill -f -x -9 'tail -f /dev/null'
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuser0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: recvmsg failed@d
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostuser0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostuser0) recvmsg failed@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostuser0) failed to connect: No such file or directory@d
 \@dpdkvhostuser ports are considered deprecated;  please migrate to dpdkvhostuserclient ports.@d
 \@failed to enumerate system datapaths: No such file or directory@d
 ])")
@@ -187,9 +187,9 @@  AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface \
 AT_CHECK([ovs-vsctl show], [], [stdout])
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Set up namespaces
 ADD_NAMESPACES(ns1, ns2)
@@ -229,8 +229,8 @@  pkill -f -x -9 'tail -f /dev/null'
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: recvmsg failed@d
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) recvmsg failed@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 \@dpdkvhostuser ports are considered deprecated;  please migrate to dpdkvhostuserclient ports.@d
 \@failed to enumerate system datapaths: No such file or directory@d
 ])")
@@ -304,14 +304,14 @@  AT_CHECK([ovs-vsctl list interface dpdkvhostuserclient0], [], [stdout])
 AT_CHECK([grep -E 'ingress_policing_rate: 0' stdout], [], [stdout])
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 ])")
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
@@ -345,14 +345,14 @@  AT_CHECK([grep -E 'ingress_policing_rate: 0' stdout], [], [stdout])
 
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 ])")
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
@@ -385,14 +385,14 @@  AT_CHECK([ovs-vsctl list interface dpdkvhostuserclient0], [], [stdout])
 AT_CHECK([grep -E 'ingress_policing_rate: 10000' stdout], [], [stdout])
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 ])")
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
@@ -448,9 +448,9 @@  AT_CHECK([ovs-appctl -t ovs-vswitchd qos/show dpdkvhostuserclient0], [], [stdout
 sleep 2
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Fail if egress policer could not be created
 AT_FAIL_IF([grep "Could not create rte meter for egress policer" ovs-vswitchd.log], [], [stdout])
@@ -465,7 +465,7 @@  AT_CHECK([grep -E 'QoS not configured on dpdkvhostuserclient0' stdout], [], [std
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 ])")
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
@@ -487,9 +487,9 @@  OVS_WAIT_UNTIL([ovs-vsctl set port dpdkvhostuserclient0 qos=@newqos -- --id=@new
 sleep 2
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Check egress policer was not created
 AT_CHECK([ovs-appctl -t ovs-vswitchd qos/show dpdkvhostuserclient0], [], [stdout])
@@ -498,7 +498,7 @@  AT_CHECK([grep -E 'QoS not configured on dpdkvhostuserclient0' stdout], [], [std
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 \@Could not create rte meter for egress policer@d
 \@Failed to set QoS type egress-policer on port dpdkvhostuserclient0: Invalid argument@d
 ])")
@@ -522,9 +522,9 @@  OVS_WAIT_UNTIL([ovs-vsctl set port dpdkvhostuserclient0 qos=@newqos -- --id=@new
 sleep 2
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Check egress policer was not created
 AT_CHECK([ovs-appctl -t ovs-vswitchd qos/show dpdkvhostuserclient0], [], [stdout])
@@ -533,7 +533,7 @@  AT_CHECK([grep -E 'QoS not configured on dpdkvhostuserclient0' stdout], [], [std
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 \@Could not create rte meter for egress policer@d
 \@Failed to set QoS type egress-policer on port dpdkvhostuserclient0: Invalid argument@d
 ])")
@@ -646,9 +646,9 @@  AT_CHECK([ovs-vsctl show], [], [stdout])
 sleep 2
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Execute testpmd in background
 on_exit "pkill -f -x -9 'tail -f /dev/null'"
@@ -675,7 +675,7 @@  pkill -f -x -9 'tail -f /dev/null'
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 ])")
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
@@ -703,9 +703,9 @@  AT_CHECK([ovs-vsctl show], [], [stdout])
 sleep 2
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Execute testpmd in background
 on_exit "pkill -f -x -9 'tail -f /dev/null'"
@@ -732,7 +732,7 @@  pkill -f -x -9 'tail -f /dev/null'
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 ])")
 AT_CLEANUP
 dnl --------------------------------------------------------------------------
@@ -864,7 +864,7 @@  pkill -f -x -9 'tail -f /dev/null'
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 \@dpdkvhostuserclient0: unsupported MTU 9711@d
 \@failed to set MTU for network device dpdkvhostuserclient0: Invalid argument@d
 ])")
@@ -894,9 +894,9 @@  AT_CHECK([ovs-vsctl show], [], [stdout])
 sleep 2
 
 dnl Parse log file
-AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) vhost-user client: socket created" ovs-vswitchd.log], [], [stdout])
 AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
-AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0: reconnecting..." ovs-vswitchd.log], [], [stdout])
+AT_CHECK([grep "VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) reconnecting..." ovs-vswitchd.log], [], [stdout])
 
 dnl Execute testpmd in background
 on_exit "pkill -f -x -9 'tail -f /dev/null'"
@@ -921,7 +921,7 @@  pkill -f -x -9 'tail -f /dev/null'
 dnl Clean up
 AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
 OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
-\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d
+\@VHOST_CONFIG: ($OVS_RUNDIR/dpdkvhostclient0) failed to connect: No such file or directory@d
 \@dpdkvhostuserclient0: unsupported MTU 67@d
 \@failed to set MTU for network device dpdkvhostuserclient0: Invalid argument@d
 ])")