From patchwork Tue Jun 21 10:20:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Phelan, Michael" X-Patchwork-Id: 1646015 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=dFnDOpla; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LS2bS0v2nz9sGP for ; Tue, 21 Jun 2022 20:20:51 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 1C1AD61054; Tue, 21 Jun 2022 10:20:49 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 1C1AD61054 Authentication-Results: smtp3.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=dFnDOpla X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LrHX6WscbhiE; Tue, 21 Jun 2022 10:20:47 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id AD48B6101F; Tue, 21 Jun 2022 10:20:46 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org AD48B6101F Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 7B2E8C0039; Tue, 21 Jun 2022 10:20:46 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 3AB6BC002D for ; Tue, 21 Jun 2022 10:20:45 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 07152404C7 for ; Tue, 21 Jun 2022 10:20:45 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 07152404C7 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=dFnDOpla X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sfkIJzOJQP7C for ; Tue, 21 Jun 2022 10:20:43 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org C42E64012D Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by smtp2.osuosl.org (Postfix) with ESMTPS id C42E64012D for ; Tue, 21 Jun 2022 10:20:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1655806843; x=1687342843; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=n0DCcCnOimjZtS5S+Q1jZDd21RHf1w5+Qkn6iTtkbWw=; b=dFnDOplaW5PJg0fAk28oKjSR4Dv5YhZJe/ugwGyXw8ErE10l6E5+lf1x dEcEVvcEY29rlLBbqEFREohMLJVy1zsPBBDEi3rwhS73vT8dtOaz6hlNM nwJ3/tgMbNBuas6DNsZaVf605uL3HlKs1DSgoiLlAqwuncMxR3ZHn7byF ebD6SC6F3oviv2rdAGlw5bvu3BG1aCA0Aa2tqL4RybfxQ3h8Z8lCpZsMx NfIH27kP4Y/eqf/P3NXl7KgagJDGBVKEEVRIL1RqTGpdKtfRqrseGCgSb kEtXcCIzlA4nkZLRkIxFxvqeN5b2c5LISSoL4vJAJVg3itvVBlIhRBrqU Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10384"; a="260516122" X-IronPort-AV: E=Sophos;i="5.92,209,1650956400"; d="scan'208";a="260516122" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2022 03:20:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,209,1650956400"; d="scan'208";a="764410258" Received: from silpixa00401063.ir.intel.com ([10.243.23.46]) by orsmga005.jf.intel.com with ESMTP; 21 Jun 2022 03:20:41 -0700 From: Michael Phelan To: dev@openvswitch.org Date: Tue, 21 Jun 2022 10:20:32 +0000 Message-Id: <20220621102032.3028111-1-michael.phelan@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Cc: maxime.coquelin@redhat.com, i.maximets@ovn.org Subject: [ovs-dev] [PATCH] tests: Add OVS-DPDK MTU unit tests. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" This adds 8 new unit tests to the 'check-dpdk' subsystem that will test Maximum Transmission Unit (MTU) functionality. Signed-off-by: Michael Phelan --- tests/system-dpdk.at | 344 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 344 insertions(+) diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at index 7d2715c4a..6a2c5f79f 100644 --- a/tests/system-dpdk.at +++ b/tests/system-dpdk.at @@ -222,6 +222,350 @@ OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [ AT_CLEANUP dnl -------------------------------------------------------------------------- + + +dnl -------------------------------------------------------------------------- +dnl MTU increase phy port +AT_SETUP([OVS-DPDK - MTU increase phy port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_PHY_SKIP() +OVS_DPDK_START() + +dnl First set MTU to its default value and confirm that value, then increase the MTU value and confirm the new value + +dnl Add userspace bridge and attach it to OVS with default MTU value +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) +AT_CHECK([ovs-vsctl add-port br10 phy0 -- set Interface phy0 type=dpdk options:dpdk-devargs=$(cat PCI_ADDR)], [], [stdout], [stderr]) +AT_CHECK([ovs-vsctl show], [], [stdout]) +sleep 2 + +dnl check defalt MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface phy0 mtu], [], [stdout]) +AT_CHECK([egrep '1500' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=1500,' stdout], [], [stdout]) + +dnl increase MTU value and check in DB and datapath +AT_CHECK(ovs-vsctl set Interface phy0 mtu_request=9000) +AT_CHECK([ovs-vsctl get Interface phy0 mtu], [], [stdout]) +AT_CHECK([egrep '9000' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=9000,' stdout], [], [stdout]) + + +dnl Clean up +AT_CHECK([ovs-vsctl del-port br10 phy0], [], [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 +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl MTU decrease phy port +AT_SETUP([OVS-DPDK - MTU decrease phy port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_PHY_SKIP() +OVS_DPDK_START() + +dnl First set an increased MTU value and confirm that value, then decrease the MTU value and confirm the new value + +dnl Add userspace bridge and attach it to OVS and modify MTU value +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) +AT_CHECK([ovs-vsctl add-port br10 phy0 -- set Interface phy0 type=dpdk options:dpdk-devargs=$(cat PCI_ADDR)], [], [stdout], [stderr]) +AT_CHECK(ovs-vsctl set Interface phy0 mtu_request=9000) +AT_CHECK([ovs-vsctl show], [], [stdout]) +sleep 2 + +dnl check MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface phy0 mtu], [], [stdout]) +AT_CHECK([egrep '9000' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=9000,' stdout], [], [stdout]) + +dnl decrease MTU value and check in DB and datapath +AT_CHECK(ovs-vsctl set Interface phy0 mtu_request=2000) +AT_CHECK([ovs-vsctl get Interface phy0 mtu], [], [stdout]) +AT_CHECK([egrep '2000' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=2000,' stdout], [], [stdout]) + + +dnl Clean up +AT_CHECK([ovs-vsctl del-port br10 phy0], [], [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 +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl MTU increase vport port +AT_SETUP([OVS-DPDK - MTU increase vport port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_CHECK() +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS with default MTU value +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]) +sleep 2 + +dnl check default MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [], [stdout]) +AT_CHECK([egrep '1500' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=1500,' stdout], [], [stdout]) + +dnl increase MTU value and check in DB and datapath +AT_CHECK(ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=9000) +AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [], [stdout]) +AT_CHECK([egrep '9000' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=9000,' stdout], [], [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 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 +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl MTU decrease vport port +AT_SETUP([OVS-DPDK - MTU decrease vport port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_CHECK() +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS and modify MTU value +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 set Interface dpdkvhostuserclient0 mtu_request=9000) +AT_CHECK([ovs-vsctl show], [], [stdout]) +sleep 2 + +dnl check MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [], [stdout]) +AT_CHECK([egrep '9000' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=9000,' stdout], [], [stdout]) + +dnl decrease MTU value and check in DB and datapath +AT_CHECK(ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=2000) +AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [], [stdout]) +AT_CHECK([egrep '2000' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=2000,' stdout], [], [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 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 +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl MTU upper bound phy port +AT_SETUP([OVS-DPDK - MTU upper bound phy port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_PHY_SKIP() +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS and set MTU value to max upper bound +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) +AT_CHECK([ovs-vsctl add-port br10 phy0 -- set Interface phy0 type=dpdk options:dpdk-devargs=$(cat PCI_ADDR)], [], [stdout], [stderr]) +AT_CHECK(ovs-vsctl set Interface phy0 mtu_request=9702) +AT_CHECK([ovs-vsctl show], [], [stdout]) +sleep 2 + +dnl check MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface phy0 mtu], [], [stdout]) +AT_CHECK([egrep '9702' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=9702,' stdout], [], [stdout]) + +dnl set MTU value above upper bound and check for error +AT_CHECK(ovs-vsctl set Interface phy0 mtu_request=9711) +AT_CHECK([grep "phy0: unsupported MTU 9711" ovs-vswitchd.log], [], [stdout]) + + +dnl Clean up +AT_CHECK([ovs-vsctl del-port br10 phy0], [], [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 +\@phy0: unsupported MTU 9711@d +\@failed to set MTU for network device phy0: Invalid argument@d +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl MTU lower bound phy port +AT_SETUP([OVS-DPDK - MTU lower bound phy port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_PHY_SKIP() +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS and set MTU value to min lower bound +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) +AT_CHECK([ovs-vsctl add-port br10 phy0 -- set Interface phy0 type=dpdk options:dpdk-devargs=$(cat PCI_ADDR)], [], [stdout], [stderr]) +AT_CHECK(ovs-vsctl set Interface phy0 mtu_request=68) +AT_CHECK([ovs-vsctl show], [], [stdout]) +sleep 2 + +dnl check MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface phy0 mtu], [], [stdout]) +AT_CHECK([egrep '68' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=68,' stdout], [], [stdout]) + +dnl set MTU value below lower bound and check for error +AT_CHECK(ovs-vsctl set Interface phy0 mtu_request=67) +AT_CHECK([grep "phy0: unsupported MTU 67" ovs-vswitchd.log], [], [stdout]) + + +dnl Clean up +AT_CHECK([ovs-vsctl del-port br10 phy0], [], [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 +\@phy0: unsupported MTU 67@d +\@failed to set MTU for network device phy0: Invalid argument@d +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl MTU upper bound vport port +AT_SETUP([OVS-DPDK - MTU upper bound vport port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_CHECK() +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS and set MTU value to max upper bound +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 set Interface dpdkvhostuserclient0 mtu_request=9702) +AT_CHECK([ovs-vsctl show], [], [stdout]) +sleep 2 + +dnl check MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [], [stdout]) +AT_CHECK([egrep '9702' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=9702,' stdout], [], [stdout]) + +dnl set MTU value above upper bound and check for error +AT_CHECK(ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=9711) +AT_CHECK([grep "dpdkvhostuserclient0: unsupported MTU 9711" ovs-vswitchd.log], [], [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 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 +\@dpdkvhostuserclient0: unsupported MTU 9711@d +\@failed to set MTU for network device dpdkvhostuserclient0: Invalid argument@d +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + +dnl -------------------------------------------------------------------------- +dnl MTU lower bound vport port +AT_SETUP([OVS-DPDK - MTU lower bound vport port]) +AT_KEYWORDS([dpdk]) + +OVS_DPDK_PRE_CHECK() +OVS_DPDK_START() + +dnl Add userspace bridge and attach it to OVS and set MTU value to min lower bound +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 set Interface dpdkvhostuserclient0 mtu_request=68) +AT_CHECK([ovs-vsctl show], [], [stdout]) +sleep 2 + +dnl check MTU value in DB and datapath +AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [], [stdout]) +AT_CHECK([egrep '68' stdout], [], [stdout]) + +AT_CHECK([ovs-appctl dpctl/show], [], [stdout]) +AT_CHECK([egrep 'mtu=68,' stdout], [], [stdout]) + +dnl set MTU value below lower bound and check for error +AT_CHECK(ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=67) +AT_CHECK([grep "dpdkvhostuserclient0: unsupported MTU 67" ovs-vswitchd.log], [], [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 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 +\@dpdkvhostuserclient0: unsupported MTU 67@d +\@failed to set MTU for network device dpdkvhostuserclient0: Invalid argument@d +])") +AT_CLEANUP +dnl -------------------------------------------------------------------------- + + + dnl -------------------------------------------------------------------------- dnl Add standard DPDK PHY port AT_SETUP([OVS-DPDK - MFEX Autovalidator])