From patchwork Sat Sep 18 02:08:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yu Jiang X-Patchwork-Id: 99249 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 4EAE3A0C4B; Sat, 18 Sep 2021 04:08:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DEF65406B4; Sat, 18 Sep 2021 04:08:28 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 7322D4014E for ; Sat, 18 Sep 2021 04:08:27 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10110"; a="222955153" X-IronPort-AV: E=Sophos;i="5.85,303,1624345200"; d="scan'208";a="222955153" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Sep 2021 19:08:26 -0700 X-IronPort-AV: E=Sophos;i="5.85,303,1624345200"; d="scan'208";a="510191183" Received: from unknown (HELO localhost.localdomain) ([10.240.183.163]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 17 Sep 2021 19:08:25 -0700 From: Yu Jiang To: dts@dpdk.org Cc: Yu Jiang Date: Sat, 18 Sep 2021 10:08:02 +0800 Message-Id: <1631930882-12140-2-git-send-email-yux.jiang@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1631930882-12140-1-git-send-email-yux.jiang@intel.com> References: <1631930882-12140-1-git-send-email-yux.jiang@intel.com> Subject: [dts] [PATCH V1] test_plans/netmap_compat: remove example 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" According to DPDK commit id d82610b940("examples/netmap-compat: remove example"), remove this plan and suite. Signed-off-by: Yu Jiang --- conf/app_name.cfg | 1 - test_plans/index.rst | 1 - test_plans/netmap_compat_test_plan.rst | 104 ------------------------- tests/TestSuite_netmap_compat.py | 136 --------------------------------- 4 files changed, 242 deletions(-) delete mode 100644 test_plans/netmap_compat_test_plan.rst delete mode 100644 tests/TestSuite_netmap_compat.py diff --git a/conf/app_name.cfg b/conf/app_name.cfg index 1de492b..e1fc497 100644 --- a/conf/app_name.cfg +++ b/conf/app_name.cfg @@ -65,7 +65,6 @@ simple_mp=target/examples/dpdk-simple_mp symmetric_mp=target/examples/dpdk-symmetric_mp cmdline=target/examples/dpdk-cmdline distributor=target/examples/dpdk-distributor -netmap_compat=target/examples/dpdk-netmap_compat node=target/examples/dpdk-efd_node server=target/examples/dpdk-efd_server testpmd_vf=target/app/dpdk-testpmd-vf diff --git a/test_plans/index.rst b/test_plans/index.rst index d9dbc2a..9cff854 100644 --- a/test_plans/index.rst +++ b/test_plans/index.rst @@ -276,7 +276,6 @@ The following are the test plans for the DPDK DTS automated test system. hello_world_test_plan keep_alive_test_plan multiprocess_test_plan - netmap_compat_test_plan rxtx_callbacks_test_plan skeleton_test_plan timer_test_plan diff --git a/test_plans/netmap_compat_test_plan.rst b/test_plans/netmap_compat_test_plan.rst deleted file mode 100644 index d733004..0000000 --- a/test_plans/netmap_compat_test_plan.rst +++ /dev/null @@ -1,104 +0,0 @@ -.. Copyright (c) <2010-2017>, Intel Corporation - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Intel Corporation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. - -============================================== -Sample Application Tests: Netmap Compatibility -============================================== - -Introduction -============ - -The Netmap compatibility library provides a minimal set of APIs to give programs written against the Netmap APIs -the ability to be run, with minimal changes to their source code, using the DPDK to perform the actual packet I/O. - -Since Netmap applications use regular system calls, like ``open()``, ``ioctl()`` and -``mmap()`` to communicate with the Netmap kernel module performing the packet I/O, -the ``compat_netmap`` library provides a set of similar APIs to use in place of those system calls, -effectively turning a Netmap application into a DPDK application. - -The provided library is currently minimal and doesn't support all the features that Netmap supports, -but is enough to run simple applications, such as the bridge example detailed below. - -Knowledge of Netmap is required to understand the rest of this section. -Please refer to the Netmap distribution for details about Netmap. - -Running the "bridge" Sample Application -======================================= - -The application requires a single command line option:: - - ./build/bridge [EAL options] -- -i INTERFACE_A [-i INTERFACE_B] - -Where: - -* ``-i INTERFACE``: Interface (DPDK port number) to use. - - If a single ``-i`` parameter is given, the interface will send back all the traffic it receives. - If two ``-i`` parameters are given, the two interfaces form a bridge, - where traffic received on one interface is replicated and sent to the other interface. - -For example, to run the application in a linuxapp environment using port 0 and 2:: - - ./build/bridge [EAL options] -- -i 0 -i 2 - -Refer to the *DPDK Getting Started Guide for Linux* for general information on running applications and -the Environment Abstraction Layer (EAL) options. - -Test Case1: netmap compat with one port -======================================= -Run bridge with one port:: - - ./examples/netmap_compat/build/bridge -c 0x1e -n 4 -- -i 0 - -waked up:: - - Port 0 now in Netmap mode - Bridge up and running! - -Send one packet on Port0,check this port receive packet. -It receive one packet that it send. - -Test Case2: netmap compat with two port -======================================= - -Run bridge with two ports:: - - ./examples/netmap_compat/build/bridge -c 0x1e -n 4 -- -i 0 -i 1 - -waked up:: - - Port 0 now in Netmap mode - Port 1 now in Netmap mode - Bridge up and running! - -Send one packet on Port0,check the port1 receive packet. -It receive one packet that the port0 send. diff --git a/tests/TestSuite_netmap_compat.py b/tests/TestSuite_netmap_compat.py deleted file mode 100644 index 31fa684..0000000 --- a/tests/TestSuite_netmap_compat.py +++ /dev/null @@ -1,136 +0,0 @@ -#BSD LICENSE -# -# Copyright(c) 2010-2016 Intel Corporation. All rights reserved. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Intel Corporation nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -""" -DPDK Test suite. -Test Netmap_compat. -""" - -import utils -import string -import time -import re -from test_case import TestCase - -class TestNetmapCompat(TestCase): - - def set_up_all(self): - """ - Run at the start of each test suite. - """ - self.dut_ports = self.dut.get_ports(self.nic) - self.verify(len(self.dut_ports) >= 2, "Insufficient ports") - cores = self.dut.get_core_list("1S/4C/1T") - self.coremask = utils.create_mask(cores) - - self.path = "./examples/netmap_compat/build/bridge" - - # build sample app - out = self.dut.build_dpdk_apps("./examples/netmap_compat") - 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. - """ - pass - - def test_netmap_compat_oneport(self): - """ - Verify netmap compatibility with one port - """ - cmd = self.path + " -c %s -n %d -- -i %s" % (self.coremask,self.dut.get_memory_channels(),self.dut_ports[0]) - - #start netmap_compat with one port - self.dut.send_expect(cmd,"Port %s now in Netmap mode" % self.dut_ports[0],60) - - self.rxItf = self.tester.get_interface(self.tester.get_local_port(self.dut_ports[0])) - - self.inst = self.tester.tcpdump_sniff_packets(self.rxItf) - - self.scapy_send_packet() - - out = self.get_tcpdump_package() - mac = self.dut.get_mac_address(self.dut_ports[0]) - self.verify(mac in out, "Wrong: can't get <%s> package" % mac) - - def test_netmap_compat_twoport(self): - """ - Verify netmap compatibility with two port - """ - cmd = self.path + " -c %s -n %d -- -i %s -i %s" % (self.coremask,self.dut.get_memory_channels(),self.dut_ports[0],self.dut_ports[1]) - - #start netmap_compat with two port - self.dut.send_expect(cmd,"Port %s now in Netmap mode" % self.dut_ports[0], 60) - - self.rxItf = self.tester.get_interface(self.tester.get_local_port(self.dut_ports[1])) - self.inst = self.tester.tcpdump_sniff_packets(self.rxItf) - - self.scapy_send_packet() - - out = self.get_tcpdump_package() - mac = self.dut.get_mac_address(self.dut_ports[0]) - self.verify(mac in out, "Wrong: can't get <%s> package" % mac) - def scapy_send_packet(self): - """ - Send a packet to port - """ - txport = self.tester.get_local_port(self.dut_ports[0]) - mac = self.dut.get_mac_address(self.dut_ports[0]) - txItf = self.tester.get_interface(txport) - self.tester.scapy_append('sendp([Ether(dst="%s")/IP()/UDP()/Raw(\'X\'*18)], iface="%s", count=4)' % (mac, txItf)) - self.tester.scapy_execute() - - - def get_tcpdump_package(self): - pkts = self.tester.load_tcpdump_sniff_packets(self.inst) - dsts = [] - for i in range(len(pkts)): - dst = pkts.strip_element_layer2("dst", p_index=i) - dsts.append(dst) - return dsts - - def tear_down(self): - """ - Run after each test case. - """ - self.dut.kill_all() - time.sleep(2) - pass - - def tear_down_all(self): - """ - Run after each test suite. - """ - pass -