From patchwork Tue Aug 31 08:22:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yufen.Mo" X-Patchwork-Id: 97594 X-Patchwork-Delegate: lijuan.tu@intel.com 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 9E68DA0C46; Tue, 31 Aug 2021 10:21:44 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 983F240E01; Tue, 31 Aug 2021 10:21:44 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id A71D140041 for ; Tue, 31 Aug 2021 10:21:41 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10092"; a="216576704" X-IronPort-AV: E=Sophos;i="5.84,365,1620716400"; d="scan'208";a="216576704" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2021 01:21:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,365,1620716400"; d="scan'208";a="540921810" Received: from dpdk-moyufen06.sh.intel.com ([10.67.116.208]) by fmsmga002.fm.intel.com with ESMTP; 31 Aug 2021 01:21:38 -0700 From: Yufen Mo To: dts@dpdk.org, lijuan.tu@intel.com, yingyax.han@intel.com, junx.w.zhou@intel.com Cc: Yufen Mo Date: Tue, 31 Aug 2021 16:22:18 +0800 Message-Id: <20210831082220.47375-5-yufengx.mo@intel.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210831082220.47375-1-yufengx.mo@intel.com> References: <20210831082220.47375-1-yufengx.mo@intel.com> MIME-Version: 1.0 Subject: [dts] [PATCH V2 4/6] tests/eventdev_perf: move to pktgen from etgen 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" #. remove etgen relevant source code. #. update perf test cases to pktgen. #. update compile bin to meson build. Signed-off-by: Yufen Mo --- tests/TestSuite_eventdev_perf.py | 293 ++++++++++++++++++++----------- 1 file changed, 195 insertions(+), 98 deletions(-) diff --git a/tests/TestSuite_eventdev_perf.py b/tests/TestSuite_eventdev_perf.py index fd142e89..7730cd1e 100644 --- a/tests/TestSuite_eventdev_perf.py +++ b/tests/TestSuite_eventdev_perf.py @@ -43,14 +43,14 @@ from test_case import TestCase from time import sleep from settings import HEADER_SIZE from pmd_output import PmdOutput -from etgen import IxiaPacketGenerator +from pktgen import PacketGeneratorHelper from settings import FOLDERS from system_info import SystemInfo import perf_report from datetime import datetime -class TestEventdevPerf(TestCase,IxiaPacketGenerator): +class TestEventdevPerf(TestCase): def set_up_all(self): """ @@ -58,7 +58,6 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): PMD prerequisites. """ - self.tester.extend_external_packet_generator(TestEventdevPerf, self) self.frame_sizes = [64, 128, 256, 512, 1024, 1518] @@ -111,6 +110,30 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): self.pmdout = PmdOutput(self.dut) + self.build_eventdev_app() + + if self.logger.log_path.startswith(os.sep): + self.output_path = self.logger.log_path + else: + cur_path = os.path.dirname( + os.path.dirname(os.path.realpath(__file__))) + self.output_path = os.sep.join([cur_path, self.logger.log_path]) + + self.pktgen_helper = PacketGeneratorHelper() + + def suite_measure_throughput(self, tgen_input, rate_percent, delay): + streams = self.pktgen_helper.prepare_stream_from_tginput(tgen_input, rate_percent, + None, self.tester.pktgen) + result = self.tester.pktgen.measure_throughput(stream_ids=streams) + + return result + + def build_eventdev_app(self): + self.app_command = self.dut.apps_name["eventdev_pipeline"] + out = self.dut.build_dpdk_apps("examples/eventdev_pipeline") + self.verify("Error" not in out, "compilation error 1") + self.verify("No such file" not in out, "compilation error 2") + def set_up(self): """ Run before each test case. @@ -120,7 +143,7 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): def eventdev_cmd(self, test_type, stlist, nports, worker_cores): self.Port_pci_ids = [] - command_line1 = "dpdk-test-eventdev -l %s -w %s" + command_line1 = self.app_command + " -l %s -w %s" for i in range(0, nports): self.Port_pci_ids.append(self.dut.ports_info[i]['pci']) ## Adding core-list and pci-ids @@ -144,7 +167,7 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -174,12 +197,13 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -221,7 +245,7 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -251,12 +275,13 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -299,7 +324,7 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -329,12 +354,13 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -377,7 +403,7 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -407,12 +433,13 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -455,7 +482,7 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -485,12 +512,13 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -533,7 +561,7 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -563,12 +591,13 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -611,10 +640,10 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -645,11 +674,15 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % ( + os.sep.join([self.output_path, "event_test1.pcap"]), payload_size)) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % ( + os.sep.join([self.output_path, "event_test2.pcap"]), payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -692,10 +725,10 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -725,12 +758,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -773,10 +810,10 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -806,12 +843,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -854,10 +895,10 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -887,12 +928,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -935,10 +980,10 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -968,12 +1013,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1016,10 +1065,10 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -1049,12 +1098,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1098,16 +1151,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[2]), self.tester.get_local_port(self.dut_ports[3]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test3.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[3]), self.tester.get_local_port(self.dut_ports[2]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test4.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -1137,12 +1190,22 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test3.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:02")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test4.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:03")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1184,16 +1247,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[2]), self.tester.get_local_port(self.dut_ports[3]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test3.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[3]), self.tester.get_local_port(self.dut_ports[2]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test4.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -1223,12 +1286,22 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test3.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:02")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test4.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:03")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1271,16 +1344,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[2]), self.tester.get_local_port(self.dut_ports[3]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test3.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[3]), self.tester.get_local_port(self.dut_ports[2]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test4.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -1310,12 +1383,22 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test3.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:02")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test4.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:03")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1358,16 +1441,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[2]), self.tester.get_local_port(self.dut_ports[3]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test3.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[3]), self.tester.get_local_port(self.dut_ports[2]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test4.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -1397,12 +1480,22 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test3.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:02")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test4.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:03")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1445,16 +1538,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[2]), self.tester.get_local_port(self.dut_ports[3]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test3.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[3]), self.tester.get_local_port(self.dut_ports[2]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test4.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: core_config = test_cycle['cores'] @@ -1483,12 +1576,22 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test3.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:02")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test4.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:03")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1531,16 +1634,16 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): tgen_input = [] tgen_input.append((self.tester.get_local_port(self.dut_ports[0]), self.tester.get_local_port(self.dut_ports[1]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test1.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[2]), self.tester.get_local_port(self.dut_ports[3]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test2.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[1]), self.tester.get_local_port(self.dut_ports[0]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test3.pcap"]))) tgen_input.append((self.tester.get_local_port(self.dut_ports[3]), self.tester.get_local_port(self.dut_ports[2]), - "event_test.pcap")) + os.sep.join([self.output_path, "event_test4.pcap"]))) # run testpmd for each core config for test_cycle in self.test_cycles: @@ -1570,12 +1673,22 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): # create pcap file self.logger.info("Running with frame size %d " % frame_size) payload_size = frame_size - self.headers_size + pcap = os.sep.join([self.output_path, "event_test1.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test2.pcap"]) self.tester.scapy_append( - 'wrpcap("event_test.pcap", [Ether(src="52:00:00:00:00:00")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (payload_size)) + 'wrpcap("%s", [Ether(src="52:00:00:00:00:01")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test3.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:02")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) + pcap = os.sep.join([self.output_path, "event_test4.pcap"]) + self.tester.scapy_append( + 'wrpcap("%s", [Ether(src="52:00:00:00:00:03")/IP(src="1.2.3.4",dst="1.1.1.1")/TCP()/("X"*%d)])' % (pcap, payload_size)) self.tester.scapy_execute() # run traffic generator - _, pps = self.tester.traffic_generator_throughput(tgen_input, rate_percent=100, delay=60) + _, pps = self.suite_measure_throughput(tgen_input, 100, 60) pps /= 1000000.0 pct = pps * 100 / wirespeed test_cycle['Mpps'][frame_size] = float('%.3f' % pps) @@ -1603,22 +1716,6 @@ class TestEventdevPerf(TestCase,IxiaPacketGenerator): self.result_table_print() - def ip(self, port, frag, src, proto, tos, dst, chksum, len, options, version, flags, ihl, ttl, id): - self.add_tcl_cmd("protocol config -name ip") - self.add_tcl_cmd('ip config -sourceIpAddr "%s"' % src) - self.add_tcl_cmd("ip config -sourceIpAddrMode ipIncrHost") - self.add_tcl_cmd("ip config -sourceIpAddrRepeatCount 100") - self.add_tcl_cmd('ip config -destIpAddr "%s"' % dst) - self.add_tcl_cmd("ip config -destIpAddrMode ipIdle") - self.add_tcl_cmd("ip config -ttl %d" % ttl) - self.add_tcl_cmd("ip config -totalLength %d" % len) - self.add_tcl_cmd("ip config -fragment %d" % frag) - self.add_tcl_cmd("ip config -ipProtocol ipV4ProtocolReserved255") - self.add_tcl_cmd("ip config -identifier %d" % id) - self.add_tcl_cmd("stream config -framesize %d" % (len + 18)) - self.add_tcl_cmd("ip set %d %d %d" % (self.chasId, port['card'], port['port'])) - - def tear_down(self): """ Run after each test case.