From patchwork Fri Aug 31 15:55:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bala Sankaran X-Patchwork-Id: 964561 X-Patchwork-Delegate: ian.stokes@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4223rs6dSDz9ryn for ; Sat, 1 Sep 2018 01:57:01 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id BA0EBCD3; Fri, 31 Aug 2018 15:55:37 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 69C86C21 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B824A7C1 for ; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B341A4078B1B; Fri, 31 Aug 2018 15:55:32 +0000 (UTC) Received: from localhost.localdomain (unknown [10.18.25.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id 800182027EA3; Fri, 31 Aug 2018 15:55:32 +0000 (UTC) From: Bala Sankaran To: dev@openvswitch.org Date: Fri, 31 Aug 2018 11:55:26 -0400 Message-Id: <20180831155531.4327-2-bsankara@redhat.com> In-Reply-To: <20180831155531.4327-1-bsankara@redhat.com> References: <20180831155531.4327-1-bsankara@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Fri, 31 Aug 2018 15:55:32 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Fri, 31 Aug 2018 15:55:32 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'bsankara@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH v4 1/6] system-dpdk: Update test suite for non-phy testing X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org From: Aaron Conole This allows a system that doesn't have a dedicated DPDK nic to execute some DPDK tests. In this fashion, tests that operate on virtual ports (such as dpdkvhostuserclient) can be executed in a wider set of environments. Signed-off-by: Aaron Conole Co-authored-by: Bala Sankaran Signed-off-by: Bala Sankaran --- Documentation/topics/testing.rst | 8 +++++--- tests/system-dpdk-macros.at | 18 +++++++++++++++--- tests/system-dpdk.at | 16 ++++++++-------- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/Documentation/topics/testing.rst b/Documentation/topics/testing.rst index 9a6deb4..0c194ca 100644 --- a/Documentation/topics/testing.rst +++ b/Documentation/topics/testing.rst @@ -314,9 +314,11 @@ To see a list of all the available tests, run:: # make check-dpdk TESTSUITEFLAGS=--list -These tests require a `DPDK supported NIC`_ and proper DPDK variables -(``DPDK_DIR`` and ``DPDK_BUILD``). Moreover you need to have root privileges, -load the required modules and bind the NIC to the DPDK-compatible driver. +These tests support a `DPDK supported NIC`_. The tests operate on a wider set of +environments, for instance, when a virtual port is used. +They do require proper DPDK variables (``DPDK_DIR`` and ``DPDK_BUILD``). +Moreover you need to have root privileges to load the required modules and to bind +the NIC to the DPDK-compatible driver. .. _DPDK supported NIC: http://dpdk.org/doc/nics diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at index 0762ee0..2e5571f 100644 --- a/tests/system-dpdk-macros.at +++ b/tests/system-dpdk-macros.at @@ -2,7 +2,6 @@ # # Check prerequisites for DPDK tests. Following settings are checked: # - Hugepages -# - UIO driver # m4_define([OVS_DPDK_PRE_CHECK], [dnl Check Hugepages @@ -11,13 +10,26 @@ m4_define([OVS_DPDK_PRE_CHECK], AT_CHECK([mount], [], [stdout]) AT_CHECK([grep 'hugetlbfs' stdout], [], [stdout], []) +]) + + +# OVS_DPDK_PRE_PHY_SKIP() +# +# Skip any phy related tests if the PHY variable is not set. +# This is done by checking for a bound driver. +# +m4_define([OVS_DPDK_PRE_PHY_SKIP], + [dnl Perform the precheck + OVS_DPDK_PRE_CHECK() + dnl Check if VFIO or UIO driver is loaded - AT_CHECK([lsmod | grep -E "igb_uio|vfio"], [], [stdout]) + AT_SKIP_IF([ ! (lsmod | grep -E "igb_uio|vfio") ], [], [stdout]) dnl Find PCI address candidate, skip if there is no DPDK-compatible NIC AT_CHECK([$DPDK_DIR/usertools/dpdk-devbind.py -s | head -n +4 | tail -1], [], [stdout]) AT_CHECK([cat stdout | cut -d" " -s -f1 > PCI_ADDR]) - AT_CHECK([test -s PCI_ADDR || exit 77]) + AT_SKIP_IF([ ! test -s PCI_ADDR ]) + ]) diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index 3d21b01..6901d19 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -4,14 +4,14 @@ dnl -------------------------------------------------------------------------- dnl Check if EAL init is successfull AT_SETUP([OVS-DPDK datapath - EAL init]) AT_KEYWORDS([dpdk]) -dnl OVS_DPDK_PRE_CHECK() +OVS_DPDK_PRE_CHECK() OVS_DPDK_START() AT_CHECK([grep "DPDK Enabled - initializing..." ovs-vswitchd.log], [], [stdout]) AT_CHECK([grep "EAL" ovs-vswitchd.log], [], [stdout]) AT_CHECK([grep "DPDK Enabled - initialized" ovs-vswitchd.log], [], [stdout]) -OVS_VSWITCHD_STOP("/Global register is changed during/d -/EAL: No free hugepages reported in hugepages-1048576kB/d -") +OVS_VSWITCHD_STOP(["/Global register is changed during/d +/EAL: Invalid NUMA socket, default to 0/d +/EAL: No free hugepages reported in hugepages-1048576kB/d"]) AT_CLEANUP dnl -------------------------------------------------------------------------- @@ -22,7 +22,7 @@ dnl Add standard DPDK PHY port AT_SETUP([OVS-DPDK datapath - add standard DPDK port]) AT_KEYWORDS([dpdk]) -OVS_DPDK_PRE_CHECK() +OVS_DPDK_PRE_PHY_SKIP() OVS_DPDK_START() dnl Add userspace bridge and attach it to OVS @@ -63,11 +63,11 @@ AT_CHECK([grep "VHOST_CONFIG: /tmp/dpdkvhostclient0: reconnecting..." ovs-vswitc dnl Clean up AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr]) -OVS_VSWITCHD_STOP("/does not exist. The Open vSwitch kernel module is probably not loaded./d +OVS_VSWITCHD_STOP(["/does not exist. The Open vSwitch kernel module is probably not loaded./d /Failed to enable flow control/d /failed to connect to \/tmp\/dpdkvhostclient0: No such file or directory/d /Global register is changed during/d -/EAL: No free hugepages reported in hugepages-1048576kB/d -") +/EAL: Invalid NUMA socket, default to 0/d +/EAL: No free hugepages reported in hugepages-1048576kB/d"]) AT_CLEANUP dnl -------------------------------------------------------------------------- From patchwork Fri Aug 31 15:55:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bala Sankaran X-Patchwork-Id: 964559 X-Patchwork-Delegate: ian.stokes@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4223qp6x0Nz9ryn for ; Sat, 1 Sep 2018 01:56:06 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 2F7CDCBE; Fri, 31 Aug 2018 15:55:36 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 3FBACBC4 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B939C7E4 for ; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F0521A2CD0; Fri, 31 Aug 2018 15:55:32 +0000 (UTC) Received: from localhost.localdomain (unknown [10.18.25.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id B9A75202706C; Fri, 31 Aug 2018 15:55:32 +0000 (UTC) From: Bala Sankaran To: dev@openvswitch.org Date: Fri, 31 Aug 2018 11:55:27 -0400 Message-Id: <20180831155531.4327-3-bsankara@redhat.com> In-Reply-To: <20180831155531.4327-1-bsankara@redhat.com> References: <20180831155531.4327-1-bsankara@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'bsankara@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH v4 2/6] system-dpdk: Skip all tests if there are no hugepages X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org A failure is quite harsh in this scenario. It's better to simply skip all the tests and let the user look at the logs to understand the missing hugepages. Signed-off-by: Bala Sankaran Co-authored-by: Aaron Conole Signed-off-by: Aaron Conole --- Documentation/topics/testing.rst | 6 ++++++ tests/system-dpdk-macros.at | 2 +- tests/system-dpdk.at | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Documentation/topics/testing.rst b/Documentation/topics/testing.rst index 0c194ca..a8892e1 100644 --- a/Documentation/topics/testing.rst +++ b/Documentation/topics/testing.rst @@ -322,6 +322,12 @@ the NIC to the DPDK-compatible driver. .. _DPDK supported NIC: http://dpdk.org/doc/nics +All tests are skipped if no hugepages are configured. User must look into the DPDK +manual to figure out how to `Configure hugepages`_. +The phy test will skip if no compatible physical device is available. + +.. _Configure hugepages: http://doc.dpdk.org/guides/linux_gsg/sys_reqs.html + Kernel datapath ''''''''''''''' diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at index 2e5571f..f772a19 100644 --- a/tests/system-dpdk-macros.at +++ b/tests/system-dpdk-macros.at @@ -6,7 +6,7 @@ m4_define([OVS_DPDK_PRE_CHECK], [dnl Check Hugepages AT_CHECK([cat /proc/meminfo], [], [stdout]) - AT_CHECK([grep HugePages_ stdout], [], [stdout]) + AT_SKIP_IF([egrep 'HugePages_Free: *0' stdout], [], [stdout]) AT_CHECK([mount], [], [stdout]) AT_CHECK([grep 'hugetlbfs' stdout], [], [stdout], []) diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index 6901d19..c1c9084 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -47,7 +47,7 @@ dnl -------------------------------------------------------------------------- dnl Add vhost-user-client port AT_SETUP([OVS-DPDK datapath - add vhost-user-client port]) AT_KEYWORDS([dpdk]) - +OVS_DPDK_PRE_CHECK() OVS_DPDK_START() dnl Add userspace bridge and attach it to OVS From patchwork Fri Aug 31 15:55:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bala Sankaran X-Patchwork-Id: 964560 X-Patchwork-Delegate: ian.stokes@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4223rQ2kF8z9ryn for ; Sat, 1 Sep 2018 01:56:38 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id F17B6CC4; Fri, 31 Aug 2018 15:55:36 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 5603ABC1 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id ED9127E6 for ; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2D9254059FE2; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) Received: from localhost.localdomain (unknown [10.18.25.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id F066B20229C0; Fri, 31 Aug 2018 15:55:32 +0000 (UTC) From: Bala Sankaran To: dev@openvswitch.org Date: Fri, 31 Aug 2018 11:55:28 -0400 Message-Id: <20180831155531.4327-4-bsankara@redhat.com> In-Reply-To: <20180831155531.4327-1-bsankara@redhat.com> References: <20180831155531.4327-1-bsankara@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'bsankara@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH v4 3/6] system-dpdk: Allow running the dpdk tests from a VM X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org From: Aaron Conole Some VM configurations result in CPU flags that cause warnings to be issued by the DPDK libraries. When these warnings are issued, the tests will fail. This commit adds the unreliable tsc warning to the list of ignored warnings. Signed-off-by: Aaron Conole --- tests/system-dpdk.at | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index c1c9084..723ba79 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -11,6 +11,7 @@ AT_CHECK([grep "EAL" ovs-vswitchd.log], [], [stdout]) AT_CHECK([grep "DPDK Enabled - initialized" ovs-vswitchd.log], [], [stdout]) OVS_VSWITCHD_STOP(["/Global register is changed during/d /EAL: Invalid NUMA socket, default to 0/d +/EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !/d /EAL: No free hugepages reported in hugepages-1048576kB/d"]) AT_CLEANUP dnl -------------------------------------------------------------------------- @@ -36,6 +37,7 @@ AT_CHECK([ovs-vsctl del-port br10 phy0], [], [stdout], [stderr]) OVS_VSWITCHD_STOP("/does not exist. The Open vSwitch kernel module is probably not loaded./d /Failed to enable flow control/d /Global register is changed during/d +/EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !/d /EAL: No free hugepages reported in hugepages-1048576kB/d ") AT_CLEANUP @@ -68,6 +70,7 @@ OVS_VSWITCHD_STOP(["/does not exist. The Open vSwitch kernel module is probably /failed to connect to \/tmp\/dpdkvhostclient0: No such file or directory/d /Global register is changed during/d /EAL: Invalid NUMA socket, default to 0/d +/EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !/d /EAL: No free hugepages reported in hugepages-1048576kB/d"]) AT_CLEANUP dnl -------------------------------------------------------------------------- From patchwork Fri Aug 31 15:55:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bala Sankaran X-Patchwork-Id: 964562 X-Patchwork-Delegate: ian.stokes@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4223sL6vd5z9ryn for ; Sat, 1 Sep 2018 01:57:26 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 77EA3CAB; Fri, 31 Aug 2018 15:55:40 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 95608C23 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 3F1097C4 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 63D17818F04B; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) Received: from localhost.localdomain (unknown [10.18.25.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id 343152027EA3; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) From: Bala Sankaran To: dev@openvswitch.org Date: Fri, 31 Aug 2018 11:55:29 -0400 Message-Id: <20180831155531.4327-5-bsankara@redhat.com> In-Reply-To: <20180831155531.4327-1-bsankara@redhat.com> References: <20180831155531.4327-1-bsankara@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'bsankara@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH v4 4/6] system-dpdk: Use a different character marker for sed commands X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org From: Aaron Conole The default marker for sed commands according to the manual is /, but this is inconvenient when working with paths. The solution is either to escape all instances of / or use sed's \cREGEXc feature. Signed-off-by: Aaron Conole --- tests/system-dpdk.at | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index 723ba79..834ba06 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -65,12 +65,12 @@ AT_CHECK([grep "VHOST_CONFIG: /tmp/dpdkvhostclient0: reconnecting..." ovs-vswitc dnl Clean up AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr]) -OVS_VSWITCHD_STOP(["/does not exist. The Open vSwitch kernel module is probably not loaded./d -/Failed to enable flow control/d -/failed to connect to \/tmp\/dpdkvhostclient0: No such file or directory/d -/Global register is changed during/d -/EAL: Invalid NUMA socket, default to 0/d -/EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !/d -/EAL: No free hugepages reported in hugepages-1048576kB/d"]) +OVS_VSWITCHD_STOP(["\@does not exist. The Open vSwitch kernel module is probably not loaded.@d +\@Failed to enable flow control@d +\@VHOST_CONFIG: failed to connect to /tmp/dpdkvhostclient0: No such file or directory@d +\@Global register is changed during@d +\@EAL: Invalid NUMA socket, default to 0@d +\@EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !@d +\@EAL: No free hugepages reported in hugepages-1048576kB@d"]) AT_CLEANUP dnl -------------------------------------------------------------------------- From patchwork Fri Aug 31 15:55:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bala Sankaran X-Patchwork-Id: 964563 X-Patchwork-Delegate: ian.stokes@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4223sk6wgHz9ryn for ; Sat, 1 Sep 2018 01:57:46 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 2322FCF4; Fri, 31 Aug 2018 15:55:41 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id C6E34C23 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 69A077E4 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9B454400C3A2; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) Received: from localhost.localdomain (unknown [10.18.25.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6AFB72027EA3; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) From: Bala Sankaran To: dev@openvswitch.org Date: Fri, 31 Aug 2018 11:55:30 -0400 Message-Id: <20180831155531.4327-6-bsankara@redhat.com> In-Reply-To: <20180831155531.4327-1-bsankara@redhat.com> References: <20180831155531.4327-1-bsankara@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'bsankara@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH v4 5/6] system-dpdk: Convert /tmp to use OVS_RUNDIR X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org When multiple users run the DPDK testsuite their dependence on /tmp will cause conflicts. Use the RUNDIR as a dynamic path to overcome this. NOTE: This still doesn't solve the dependency on /var/run that DPDK requires. Signed-off-by: Bala Sankaran Co-authored-by: Aaron Conole Signed-off-by: Aaron Conole --- tests/system-dpdk.at | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index 834ba06..58dc8aa 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -54,20 +54,20 @@ OVS_DPDK_START() dnl Add userspace bridge and attach it to OVS AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) -AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface dpdkvhostuserclient0 type=dpdkvhostuserclient options:vhost-server-path=/tmp/dpdkvhostclient0], [], [stdout], [stderr]) +AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface dpdkvhostuserclient0 type=dpdkvhostuserclient options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], [stdout], [stderr]) 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 User device 'dpdkvhostuserclient0' created in 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout]) -AT_CHECK([grep "VHOST_CONFIG: /tmp/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(["\@does not exist. The Open vSwitch kernel module is probably not loaded.@d \@Failed to enable flow control@d -\@VHOST_CONFIG: failed to connect to /tmp/dpdkvhostclient0: No such file or directory@d +\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d \@Global register is changed during@d \@EAL: Invalid NUMA socket, default to 0@d \@EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !@d From patchwork Fri Aug 31 15:55:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bala Sankaran X-Patchwork-Id: 964564 X-Patchwork-Delegate: ian.stokes@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4223t81TWCz9ryn for ; Sat, 1 Sep 2018 01:58:08 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id E3DABCFC; Fri, 31 Aug 2018 15:55:41 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 6E931CB8 for ; Fri, 31 Aug 2018 15:55:35 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id A0AB77C1 for ; Fri, 31 Aug 2018 15:55:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D2B554059FE3; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) Received: from localhost.localdomain (unknown [10.18.25.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id A19652027EA5; Fri, 31 Aug 2018 15:55:33 +0000 (UTC) From: Bala Sankaran To: dev@openvswitch.org Date: Fri, 31 Aug 2018 11:55:31 -0400 Message-Id: <20180831155531.4327-7-bsankara@redhat.com> In-Reply-To: <20180831155531.4327-1-bsankara@redhat.com> References: <20180831155531.4327-1-bsankara@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Fri, 31 Aug 2018 15:55:33 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'bsankara@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH v4 6/6] system-dpdk: Connect network namespaces via dpdkvhostuser ports X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org This adds a few unit tests to the 'check-dpdk' subsystem that will exercise allocations of two network namespaces, PMDs, and the vhost-user and vhost-user-client code path(separate tests). As part of the tests, userspace bridge is added and attached to OVS. Also, the tap devices created are added to the network namespaces. The ultimatum is to connect the two network namespaces by pinging them. Signed-off-by: Bala Sankaran Co-authored-by: Aaron Conole Signed-off-by: Aaron Conole --- tests/system-dpdk.at | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 151 insertions(+), 1 deletion(-) diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index 58dc8aa..baa74da 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -1,7 +1,10 @@ +m4_define([CONFIGURE_VETH_OFFLOADS], + [AT_CHECK([ethtool -K $1 tx off], [0], [ignore], [ignore])]) + AT_BANNER([OVS-DPDK unit tests]) dnl -------------------------------------------------------------------------- -dnl Check if EAL init is successfull +dnl Check if EAL init is successful AT_SETUP([OVS-DPDK datapath - EAL init]) AT_KEYWORDS([dpdk]) OVS_DPDK_PRE_CHECK() @@ -74,3 +77,150 @@ OVS_VSWITCHD_STOP(["\@does not exist. The Open vSwitch kernel module is probably \@EAL: No free hugepages reported in hugepages-1048576kB@d"]) AT_CLEANUP dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl Ping vhost-user port +AT_SETUP([OVS-DPDK datapath - ping vhost-user ports]) +AT_KEYWORDS([dpdk]) +OVS_DPDK_PRE_CHECK() +AT_SKIP_IF([! which testpmd >/dev/null 2>/dev/null]) +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) +AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuser0 -- set Interface dpdkvhostuser0 \ + type=dpdkvhostuser], [], + [stdout], [stderr]) +AT_CHECK([ovs-vsctl show], [], [stdout]) + +dnl Parse log file +AT_CHECK([grep "VHOST_CONFIG: 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], [], + [stdout]) + +dnl Set up namespaces +ADD_NAMESPACES(ns1, ns2) + +dnl Add veth device +ADD_VETH(tap1, ns2, br10, "172.31.110.12/24") + +dnl Execute testpmd in background +on_exit "pkill -f -x -9 'tail -f /dev/null'" +tail -f /dev/null | testpmd --socket-mem=512 \ + --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostuser0" \ + --vdev="net_tap0,iface=tap0" --file-prefix page0 \ + --single-file-segments -- -a >$OVS_RUNDIR/testpmd-dpdkvhostuser0.log 2>&1 & + +dnl Give settling time to the testpmd processes - NOTE: this is bad form. +sleep 10 + +dnl Move the tap devices to the namespaces +AT_CHECK([ps aux | grep testpmd], [], [stdout], [stderr]) +AT_CHECK([ip link show], [], [stdout], [stderr]) +AT_CHECK([ip link set tap0 netns ns1], [], [stdout], [stderr]) + +AT_CHECK([ip netns exec ns1 ip link show], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ip link show | grep tap0], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ip link set tap0 up], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ip addr add 172.31.110.11/24 dev tap0], [], + [stdout], [stderr]) + +AT_CHECK([ip netns exec ns1 ip link show], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns2 ip link show], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ping -c 4 -I tap0 172.31.110.12], [], [stdout], + [stderr]) + +dnl Clean up the testpmd now +pkill -f -x -9 'tail -f /dev/null' + +dnl Clean up +AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuser0], [], [stdout], [stderr]) +OVS_VSWITCHD_STOP(["\@does not exist. The Open vSwitch kernel module is probably not loaded.@d +\@Failed to enable flow control@d +\@VHOST_CONFIG: recvmsg failed@d +\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostuser0: No such file or directory@d +\@Global register is changed during@d +\@dpdkvhostuser ports are considered deprecated; please migrate to dpdkvhostuserclient ports.@d +\@failed to enumerate system datapaths: No such file or directory@d +\@EAL: Invalid NUMA socket, default to 0@d +\@EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !@d +\@EAL: No free hugepages reported in hugepages-1048576kB@d"]) +AT_CLEANUP +dnl -------------------------------------------------------------------------- + +dnl -------------------------------------------------------------------------- +dnl Ping vhost-user-client port +AT_SETUP([OVS-DPDK datapath - ping vhost-user-client ports]) +AT_KEYWORDS([dpdk]) +OVS_DPDK_PRE_CHECK() +AT_SKIP_IF([! which testpmd >/dev/null 2>/dev/null]) +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) +AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface \ + dpdkvhostuserclient0 \ + type=dpdkvhostuserclient \ + options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], + [stdout], [stderr]) +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 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]) + +dnl Set up namespaces +ADD_NAMESPACES(ns1, ns2) + +dnl Add veth device +ADD_VETH(tap1, ns2, br10, "172.31.110.12/24") + +dnl Execute testpmd in background +on_exit "pkill -f -x -9 'tail -f /dev/null'" +tail -f /dev/null | testpmd --socket-mem=512 \ + --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1" \ + --vdev="net_tap0,iface=tap0" --file-prefix page0 \ + --single-file-segments -- -a >$OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 & + +dnl Give settling time to the testpmd processes - NOTE: this is bad form. +sleep 10 + +dnl Move the tap devices to the namespaces +AT_CHECK([ps aux | grep testpmd], [], [stdout], [stderr]) +AT_CHECK([ip link show], [], [stdout], [stderr]) +AT_CHECK([ip link set tap0 netns ns1], [], [stdout], [stderr]) + +AT_CHECK([ip netns exec ns1 ip link show], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ip link show | grep tap0], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ip link set tap0 up], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ip addr add 172.31.110.11/24 dev tap0], [], + [stdout], [stderr]) + +AT_CHECK([ip netns exec ns1 ip link show], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns2 ip link show], [], [stdout], [stderr]) +AT_CHECK([ip netns exec ns1 ping -c 4 -I tap0 172.31.110.12], [], [stdout], + [stderr]) + +dnl Clean up the testpmd now +pkill -f -x -9 'tail -f /dev/null' + +dnl Clean up +AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr]) +OVS_VSWITCHD_STOP(["\@does not exist. The Open vSwitch kernel module is probably not loaded.@d +\@Failed to enable flow control@d +\@VHOST_CONFIG: recvmsg failed@d +\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such file or directory@d +\@Global register is changed during@d +\@dpdkvhostuser ports are considered deprecated; please migrate to dpdkvhostuserclient ports.@d +\@failed to enumerate system datapaths: No such file or directory@d +\@EAL: Invalid NUMA socket, default to 0@d +\@EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !@d +\@EAL: No free hugepages reported in hugepages-1048576kB@d"]) +AT_CLEANUP +dnl --------------------------------------------------------------------------