From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id F3E252BA7 for ; Fri, 18 Nov 2016 04:18:54 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP; 17 Nov 2016 19:18:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,655,1473145200"; d="scan'208";a="1060945211" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga001.jf.intel.com with ESMTP; 17 Nov 2016 19:18:53 -0800 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 17 Nov 2016 19:18:52 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 17 Nov 2016 19:18:52 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.96]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.142]) with mapi id 14.03.0248.002; Fri, 18 Nov 2016 11:18:50 +0800 From: "Liu, Yong" To: "Xu, GangX" , "dts@dpdk.org" CC: "Xu, GangX" Thread-Topic: [dts] [PATCH V1] add test suite l2fwd-jobstats Thread-Index: AQHSQUe0QayXjSeF4ku8e8xKOcfTEKDeEIpg Date: Fri, 18 Nov 2016 03:18:50 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E6032B647@SHSMSX103.ccr.corp.intel.com> References: <1479437968-4538-1-git-send-email-gangx.xu@intel.com> <1479437968-4538-2-git-send-email-gangx.xu@intel.com> In-Reply-To: <1479437968-4538-2-git-send-email-gangx.xu@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmFiMGQ5NDEtZDQ0ZS00ODFkLTkzMDAtNGYzMmQ4MDc3YzhkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IjB4clYyWmp5eHdXV0NyYzdGYmVwNVQ0T09tdWZMUmlQUENkVjVndUJDTHc9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V1] add test suite l2fwd-jobstats X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Nov 2016 03:18:55 -0000 > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of xu,gang > Sent: Friday, November 18, 2016 10:59 AM > To: dts@dpdk.org > Cc: Xu, GangX > Subject: [dts] [PATCH V1] add test suite l2fwd-jobstats >=20 > Signed-off-by: xu,gang > --- > test_plans/l2fwd-jobstats_test_plan.rst | 84 +++++++++++++++++++++++ > tests/TestSuite_l2fwd-jobstats.py | 115 > ++++++++++++++++++++++++++++++++ > 2 files changed, 199 insertions(+) > create mode 100644 test_plans/l2fwd-jobstats_test_plan.rst > create mode 100644 tests/TestSuite_l2fwd-jobstats.py >=20 > diff --git a/test_plans/l2fwd-jobstats_test_plan.rst b/test_plans/l2fwd- > jobstats_test_plan.rst > new file mode 100644 > index 0000000..d61a9e7 > --- /dev/null > +++ b/test_plans/l2fwd-jobstats_test_plan.rst > @@ -0,0 +1,84 @@ > +.. BSD LICENSE > + Copyright(c) 2010-2015 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 FO= R > + 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 AN= Y > + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE US= E > + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > + > +L2 Forwarding Sample Application (in Real and Virtualized Environments) > with core load statistics. > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D > + > +The L2 Forwarding sample application is a simple example of packet > processing using > +the Data Plane Development Kit (DPDK) which > +also takes advantage of Single Root I/O Virtualization (SR-IOV) features > in a virtualized environment. Jobstats seem not related to SR-IOV, you need to describe what's the usage= of job stats library.=20 > + > +.. note:: > + > + This application is a variation of L2 Forwarding sample application. > It demonstrate possible > + scheme of job stats library usage therefore some parts of this > document is identical with original > + L2 forwarding application. > + > +Overview > +-------- > + > +The L2 Forwarding sample application, which can operate in real and > virtualized environments, > +performs L2 forwarding for each packet that is received. > +The destination port is the adjacent port from the enabled portmask, tha= t > is, > +if the first four ports are enabled (portmask 0xf), > +ports 1 and 2 forward into each other, and ports 3 and 4 forward into > each other. > +Also, the MAC addresses are affected as follows: > + > +* The source MAC address is replaced by the TX port MAC address > + > +* The destination MAC address is replaced by 02:00:00:00:00:TX_PORT_I= D > + > +Running the Application > +----------------------- > + > +The application requires a number of command line options: > + > +.. code-block:: console > + > + ./build/l2fwd-jobstats [EAL options] -- -p PORTMASK [-q NQ] [-l] > + > +where, > + > +* p PORTMASK: A hexadecimal bitmask of the ports to configure > + > +* q NQ: A number of queues (=3Dports) per lcore (default is 1) > + > +* l: Use locale thousands separator when formatting big numbers. > + > +To run the application in linuxapp environment with 4 lcores, 16 ports, = 8 > RX queues per lcore and > +thousands separator printing, issue the command: > + > +.. code-block:: console > + > + $ ./build/l2fwd-jobstats -c f -n 4 -- -q 8 -p ffff -l > + > +Refer to the *DPDK Getting Started Guide* for general information on > running applications > +and the Environment Abstraction Layer (EAL) options. > + > diff --git a/tests/TestSuite_l2fwd-jobstats.py b/tests/TestSuite_l2fwd- > jobstats.py > new file mode 100644 > index 0000000..493c507 > --- /dev/null > +++ b/tests/TestSuite_l2fwd-jobstats.py > @@ -0,0 +1,115 @@ > +#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 l2fwd-jobstats > +""" > + > +import dts Please remove dts dependency.=20 > +import string > +import time > +import re > +import utils > +from test_case import TestCase > +from plotting import Plotting > +from settings import HEADER_SIZE > +from etgen import IxiaPacketGenerator > +from packet import Packet, sniff_packets, load_sniff_packets > + > +class TestL2fwdJobstats(TestCase): > + > + def set_up_all(self): > + """ > + Run at the start of each test suite. > + """ > + > + self.dut_ports =3D self.dut.get_ports(self.nic) > + self.verify(len(self.dut_ports) >=3D 2, "Insufficient ports") > + cores =3D self.dut.get_core_list("1S/4C/1T") > + self.coremask =3D utils.create_mask(cores) > + self.portmask =3D utils.create_mask(self.dut_ports) > + self.path =3D "./examples/l2fwd-jobstats/build/l2fwd-jobstats" > + > + # build sample app > + out =3D self.dut.build_dpdk_apps("./examples/l2fwd-jobstats") > + 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_l2fwd_jobstats(self): > + """ > + Verify netmap compatibility with one port > + """ > + cmd =3D self.path + " -c %s -n %d -- -q 8 -p %s -l" % > (self.coremask, self.dut.get_memory_channels(), self.portmask) > + > + #start netmap_compat with one port > + self.dut.send_expect(cmd,"Port statistics",60) > + > + self.scapy_send_packet() > + out =3D self.dut.get_session_output(timeout=3D10) > + p =3D re.compile(r'\d+') > + result =3D p.findall(out) > + amount =3D 100 * len(self.dut_ports) > + self.verify(str(amount) in result, "Wrong: can't get <%s> > package") > + > + def scapy_send_packet(self): Please replace scapy command with send_pkt function in framework/packet.py. > + """ > + Send a packet to port > + """ > + for i in range(len(self.dut_ports)): > + txport =3D self.tester.get_local_port(self.dut_ports[i]) > + mac =3D self.dut.get_mac_address(self.dut_ports[i]) > + txItf =3D self.tester.get_interface(txport) > + > self.tester.scapy_append('sendp([Ether(dst=3D"%s")/IP()/UDP()/Raw(\'X\'*1= 8)], > iface=3D"%s",count=3D100)' % (mac, txItf)) > + self.tester.scapy_execute() >=20 > + > + 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 > + > -- > 1.9.3