From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CC39245CF8; Wed, 13 Nov 2024 17:25:53 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A723540E54; Wed, 13 Nov 2024 17:25:31 +0100 (CET) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 22A5740E32 for ; Wed, 13 Nov 2024 17:25:29 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 770BF150C; Wed, 13 Nov 2024 08:25:58 -0800 (PST) Received: from localhost.localdomain (unknown [10.57.58.116]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id B44E03F66E; Wed, 13 Nov 2024 08:25:27 -0800 (PST) From: Luca Vizzarro To: dev@dpdk.org Cc: Paul Szczepanek , Patrick Robb , Luca Vizzarro , Thomas Wilks , Dean Marx Subject: [PATCH v4 3/3] dts: add l2fwd test suite Date: Wed, 13 Nov 2024 16:25:17 +0000 Message-ID: <20241113162518.643764-6-luca.vizzarro@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241113162518.643764-1-luca.vizzarro@arm.com> References: <20240806125140.2582859-1-luca.vizzarro@arm.com> <20241113162518.643764-1-luca.vizzarro@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add a basic L2 forwarding test suite which tests the correct functionality of the forwarding facility built-in in the DPDK. The tests are performed with different queues numbers per port. Signed-off-by: Luca Vizzarro Signed-off-by: Thomas Wilks Reviewed-by: Paul Szczepanek Reviewed-by: Dean Marx Reviewed-by: Patrick Robb Tested-by: Patrick Robb --- dts/tests/TestSuite_l2fwd.py | 63 ++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 dts/tests/TestSuite_l2fwd.py diff --git a/dts/tests/TestSuite_l2fwd.py b/dts/tests/TestSuite_l2fwd.py new file mode 100644 index 0000000000..0f6ff18907 --- /dev/null +++ b/dts/tests/TestSuite_l2fwd.py @@ -0,0 +1,63 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2024 Arm Limited + +"""Basic L2 forwarding test suite. + +This testing suites runs basic L2 forwarding on testpmd across multiple different queue sizes. +The forwarding test is performed with several packets being sent at once. +""" + +from framework.params.testpmd import EthPeer, SimpleForwardingModes +from framework.remote_session.testpmd_shell import TestPmdShell +from framework.test_suite import TestSuite, func_test +from framework.testbed_model.capability import requires +from framework.testbed_model.cpu import LogicalCoreCount +from framework.testbed_model.topology import TopologyType +from framework.utils import generate_random_packets + + +@requires(topology_type=TopologyType.two_links) +class TestL2fwd(TestSuite): + """L2 forwarding test suite.""" + + #: The total number of packets to generate and send for forwarding. + NUMBER_OF_PACKETS_TO_SEND = 50 + #: The payload size to use for the generated packets in bytes. + PAYLOAD_SIZE = 100 + + def set_up_suite(self) -> None: + """Set up the test suite. + + Setup: + Generate the random packets that will be sent. + """ + self.packets = generate_random_packets(self.NUMBER_OF_PACKETS_TO_SEND, self.PAYLOAD_SIZE) + + @func_test + def l2fwd_integrity(self) -> None: + """Test the L2 forwarding integrity. + + Test: + Configure a testpmd shell with a different numbers of queues (1, 2, 4 and 8) per run. + Start up L2 forwarding, send random packets from the TG and verify they were all + received back. + """ + queues = [1, 2, 4, 8] + + with TestPmdShell( + self.sut_node, + lcore_filter_specifier=LogicalCoreCount(cores_per_socket=4), + forward_mode=SimpleForwardingModes.mac, + eth_peer=[EthPeer(1, self.tg_node.ports[1].mac_address)], + disable_device_start=True, + ) as shell: + for queues_num in queues: + self._logger.info(f"Testing L2 forwarding with {queues_num} queue(s)") + shell.set_ports_queues(queues_num) + shell.start() + + received_packets = self.send_packets_and_capture(self.packets) + expected_packets = self.get_expected_packets(self.packets) + self.match_all_packets(expected_packets, received_packets) + + shell.stop() -- 2.43.0