From patchwork Thu May 6 15:10:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chen, BoX C" X-Patchwork-Id: 92986 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 60E68A0524; Thu, 6 May 2021 09:08:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2750B410F2; Thu, 6 May 2021 09:08:29 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 4B276410EE for ; Thu, 6 May 2021 09:08:25 +0200 (CEST) IronPort-SDR: TCWIoEgd2CX5dWdokpWx1IVGZVlOuzA9TGcNEa+Eat8tSsJNMCUxRSp3jT2aPs7B1HQVSP/ZnC +sH0pQA1iIRg== X-IronPort-AV: E=McAfee;i="6200,9189,9975"; a="196373371" X-IronPort-AV: E=Sophos;i="5.82,276,1613462400"; d="scan'208";a="196373371" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2021 00:08:23 -0700 IronPort-SDR: AZD5LtvsyFSK0rgkEZUB7lxQW9YATyqw0aZbd4SCjWstk0fCO4d5GdBySwaAsDOwvzdAeAbqMg SK9FQrWFI8rw== X-IronPort-AV: E=Sophos;i="5.82,276,1613462400"; d="scan'208";a="434210766" Received: from unknown (HELO localhost.localdomain) ([10.240.183.77]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2021 00:08:21 -0700 From: Bo Chen To: dts@dpdk.org Cc: Bo Chen Date: Thu, 6 May 2021 15:10:15 +0000 Message-Id: <20210506151015.418101-1-BoX.C.Chen@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [dts] [PATCH V1] tests/generic_filter: use flow api replace legancy 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 Sender: "dts" use flow api replace legancy filter command Signed-off-by: Bo Chen Tested-by: Bo Chen --- tests/TestSuite_generic_filter.py | 41 ++++++++++++++++++------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/tests/TestSuite_generic_filter.py b/tests/TestSuite_generic_filter.py index d4ea8926..f3ea9774 100644 --- a/tests/TestSuite_generic_filter.py +++ b/tests/TestSuite_generic_filter.py @@ -119,6 +119,12 @@ class TestGeneric_filter(TestCase): """ Run before each test case. """ + if self._suite_result.test_case == "test_128_queues": + print('will rebuild dpdk') + self.dut.send_expect( + "sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128/' drivers/net/ixgbe/ixgbe_ethdev.h", + "# ", 30) + self.dut.build_install_dpdk(self.target) pass def filter_send_packet(self, type): @@ -711,8 +717,6 @@ class TestGeneric_filter(TestCase): set_filter_flag = 1 packet_flag = 1 if self.kdriver == "ixgbe": - self.dut.send_expect("sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128/' drivers/net/ixgbe/ixgbe_ethdev.h", "# ",30) - self.dut.build_install_dpdk(self.target) global valports total_mbufs = self.request_mbufs(128) * len(valports) self.pmdout.start_testpmd( @@ -729,7 +733,6 @@ class TestGeneric_filter(TestCase): "vlan set filter off %s" % valports[0], "testpmd> ") self.dut.send_expect( "vlan set filter off %s" % valports[1], "testpmd> ") - frames_to_send = 1 queue = ['64', '127', '128'] for i in [0, 1, 2]: @@ -739,35 +742,34 @@ class TestGeneric_filter(TestCase): if 'Invalid RX queue %s' % (queue[i]) not in out: set_filter_flag = 0 break - out = self.dut.send_expect( - "5tuple_filter %s add dst_ip 2.2.2.5 src_ip 2.2.2.4 dst_port %s src_port 1 protocol 0x06 mask 0x1f tcp_flags 0x0 priority 3 queue %s " % (valports[0], (i + 1), queue[i]), "testpmd> ") - if 'error' not in out: + cmd = "flow create {} ingress pattern eth / ".format( + valports[0]) + "ipv4 dst is 2.2.2.5 src is 2.2.2.4 / tcp dst is {} src is 1 / ".format( + i + 1) + "end actions queue index {} / end".format(queue[i]) + out = self.dut.send_expect(cmd, "testpmd> ") + if 'Invalid argument' not in out: set_filter_flag = 0 break continue else: self.dut.send_expect("set stat_qmap rx %s %s %s" % (valports[0], queue[i], (i + 1)), "testpmd> ") - out = self.dut.send_expect("5tuple_filter %s add dst_ip 2.2.2.5 src_ip 2.2.2.4 dst_port %s src_port 1 protocol 0x06 mask 0x1f tcp_flags 0x0 priority %d queue %s " % ( - valports[0], (i + 1), (3 - i), queue[i]), "testpmd> ") + cmd = "flow create {} ingress pattern eth / ".format( + valports[0]) + "ipv4 dst is 2.2.2.5 src is 2.2.2.4 / tcp dst is {} src is 1 / ".format( + i + 1) + "end actions queue index {} / end".format(queue[i]) + self.dut.send_expect(cmd, "testpmd> ") self.dut.send_expect("start", "testpmd> ", 120) global filters_index filters_index = i self.filter_send_packet("packet") time.sleep(1) out = self.dut.send_expect("stop", "testpmd> ") - cmd = "Stats reg %s RX-packets: ([0-9]+)" % ( - i + 1) - result_scanner = r"%s" % cmd - scanner = re.compile(result_scanner, re.DOTALL) - m = scanner.search(out) - cur_pkt = m.group(1) - if int(cur_pkt) != frames_to_send: + p = re.compile(r"Forward Stats for RX Port= \d+/Queue=(\s?\d+)") + res = p.findall(out) + queues = [int(i) for i in res] + if queues[0] != int(queue[i]): packet_flag = 0 break self.dut.send_expect("quit", "#", timeout=30) - self.dut.send_expect("sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64/' drivers/net/ixgbe/ixgbe_ethdev.h", "# ",30) - self.dut.build_install_dpdk(self.target) self.verify(set_filter_flag == 1, "set filters error") self.verify(packet_flag == 1, "packet pass assert error") else: @@ -853,6 +855,11 @@ class TestGeneric_filter(TestCase): Run after each test case. """ self.dut.kill_all() + if self._suite_result.test_case == "test_128_queues": + self.dut.send_expect( + "sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64/' drivers/net/ixgbe/ixgbe_ethdev.h", + "# ", 30) + self.dut.build_install_dpdk(self.target) def tear_down_all(self): pass