From patchwork Mon Apr 17 17:41:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jiale, SongX" X-Patchwork-Id: 126172 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7A8D74296C; Mon, 17 Apr 2023 11:24:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 737EF42C24; Mon, 17 Apr 2023 11:24:27 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 89D5B40144 for ; Mon, 17 Apr 2023 11:24:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681723466; x=1713259466; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=tDcJXC024CZpJ36l/s/YMJBCicBb0sAX8r4+SWpdEfM=; b=Kb3WeHc5g2BE5vetOfJEjYSPaHP+Db/SdGcw3OXOSlPhs4Ota06jq3Wv 862ywt5Q+ij8OhdwAun37pzmABmTOh3zIn82rUJSbJC4vQtUKjXp/W47l jo7BfL4n+bOcume1lizPm2z4JkN5AKiGuxEKO0eUPGs53Iznc7iK4w6zV HhZNBq4Q96igKN+bC3V2uyAFPiESWWuWPBWiFUDu3o5eyhMHXmjP0Hf6a pRciZpNPhaQB4Y1E0K9a0bp9qwkcYR8ZGDF1S99asgH2E+3Dos/Rhl8NC fNWWV3ksVWOY/YISmEE+NXM61dHmGmmLoEAVd/mBzWQXtcR+VTeWt6koh Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10682"; a="333642310" X-IronPort-AV: E=Sophos;i="5.99,203,1677571200"; d="scan'208";a="333642310" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2023 02:24:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10682"; a="640897833" X-IronPort-AV: E=Sophos;i="5.99,203,1677571200"; d="scan'208";a="640897833" Received: from unknown (HELO localhost.localdomain) ([10.239.252.96]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2023 02:24:24 -0700 From: Jiale Song To: dts@dpdk.org Cc: Jiale Song Subject: [dts] [PATCH V1 4/4] tests/dual_vlan: add a case to test vlan priority value Date: Mon, 17 Apr 2023 17:41:55 +0000 Message-Id: <20230417174155.146540-5-songx.jiale@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230417174155.146540-1-songx.jiale@intel.com> References: <20230417174155.146540-1-songx.jiale@intel.com> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org add a case to test vlan priority value. Signed-off-by: Jiale Song Acked-by: Yuan Peng Acked-by: Lijuan Tu --- tests/TestSuite_dual_vlan.py | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tests/TestSuite_dual_vlan.py b/tests/TestSuite_dual_vlan.py index 70395663..59b39eb3 100644 --- a/tests/TestSuite_dual_vlan.py +++ b/tests/TestSuite_dual_vlan.py @@ -14,6 +14,7 @@ import re import time import framework.utils as utils +from framework.packet import Packet from framework.pmd_output import PmdOutput from framework.test_case import TestCase @@ -68,6 +69,7 @@ class TestDualVlan(TestCase): out = self.dut.send_expect("set fwd mac", "testpmd> ") self.verify("Set mac packet forwarding mode" in out, "set fwd mac error") + self.dut.send_expect("set verbose 1", "testpmd> ") out = self.dut.send_expect("start", "testpmd> ", 120) # Vlan id @@ -387,6 +389,25 @@ class TestDualVlan(TestCase): for line in resultList: self.verify(line in out, "receive packet is wrong:%s" % out) + def send_pkts_get_testpmd_tcpdump_output( + self, dut_rx_port, dut_tx_port, pkts, count=1 + ): + tester_tx_port = self.tester.get_local_port(dut_rx_port) + tester_tx_port_iface = self.tester.get_interface(tester_tx_port) + tester_rx_port = self.tester.get_local_port(dut_tx_port) + tester_rx_port_ifac = self.tester.get_interface(tester_rx_port) + self.start_tcpdump(tester_rx_port_ifac) + self.pkt = Packet() + self.pkt.update_pkt(pkts) + self.pkt.send_pkt(crb=self.tester, tx_port=tester_tx_port_iface, count=count) + time.sleep(1) + out = self.pmdout.get_output() + port_stats = self.pmdout.execute_cmd("show port stats all") + self.pmdout.execute_cmd("clear port stats all") + pmd_out = out + port_stats + tcpdump_out = self.get_tcpdump_package() + return pmd_out, tcpdump_out + def set_up(self): """ Run before each test case. @@ -674,6 +695,32 @@ class TestDualVlan(TestCase): rand = random.randint(0, 15) self.multimode_test(rand) + def test_dual_vlan_priority_rxtx(self): + """ + Test Case: dual vlan priority rx/tx test + """ + mac = self.dut.get_mac_address(dutRxPortId) + pkts = [ + 'Ether(dst="%s",type=0x8100)/Dot1Q(vlan=1,type=0x8100,prio=1)/Dot1Q(vlan=2,type=0x0800,prio=2)/IP(src="196.222.232.221")/("X"*480)' + % mac, + ] + self.mode_config(filter="off", extend="off", strip="off") + pmd_output, tcpdump_out = self.send_pkts_get_testpmd_tcpdump_output( + dutRxPortId, dutTxPortId, pkts, count=1 + ) + receive_pkt = re.findall("(?i)dst=%s" % mac, pmd_output) + self.verify(len(receive_pkt) == 1, "Failed error received vlan packet!") + tester_pkt = re.findall("vlan\s+\d+, p\s+\d+", tcpdump_out) + vlan_prio_1 = re.findall("vlan\s+\d+, p\s+1", tcpdump_out) + vlan_prio_2 = re.findall("vlan\s+\d+, p\s+2", tcpdump_out) + self.verify(len(tester_pkt) == 2, "Received incorrect vlan packet!") + self.verify( + len(vlan_prio_1) == 1, "Received incorrect priority 1 vlan packet!!" + ) + self.verify( + len(vlan_prio_2) == 1, "Received incorrect priority 2 vlan packet!!!" + ) + def tear_down(self): """ Run after each test case.