From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 41557FA47 for ; Mon, 16 Jan 2017 06:34:27 +0100 (CET) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP; 15 Jan 2017 21:34:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,237,1477983600"; d="scan'208,217";a="213775517" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 15 Jan 2017 21:34:25 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 15 Jan 2017 21:34:24 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.88]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.204]) with mapi id 14.03.0248.002; Mon, 16 Jan 2017 13:34:21 +0800 From: "Mo, YufengX" To: "Liu, Yong" CC: "dts@dpdk.org" Thread-Topic: [dts] [PATCH V1 1/2] Packet capture: upload automation test plan Thread-Index: AQHSb6Ww2J24XLO7N0K33leXqXAMTKE6kbRQ Importance: low X-Priority: 5 Date: Mon, 16 Jan 2017 05:34:20 +0000 Message-ID: References: <1484534927-45556-1-git-send-email-yufengx.mo@intel.com> <1484534927-45556-2-git-send-email-yufengx.mo@intel.com> <86228AFD5BCD8E4EBFD2B90117B5E81E62D479A0@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <86228AFD5BCD8E4EBFD2B90117B5E81E62D479A0@SHSMSX103.ccr.corp.intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: multipart/alternative; boundary="_000_B8B15C44A3F2C044966E545C7B73711539FB73D7shsmsx102ccrcor_" MIME-Version: 1.0 Subject: Re: [dts] [PATCH V1 1/2] Packet capture: upload automation test plan 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: Mon, 16 Jan 2017 05:34:28 -0000 --_000_B8B15C44A3F2C044966E545C7B73711539FB73D7shsmsx102ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable hi, Marvin see below. > -----Original Message----- > From: Liu, Yong > Sent: January 16, 2017 11:08 AM > To: Mo, YufengX; dts@dpdk.org > Cc: Mo, YufengX > Subject: RE: [dts] [PATCH V1 1/2] Packet capture: upload automation test = plan > > Yufen, > Please make sure all lines in test plan and commit are limited to 79 char= acters. > And some comments and questions below. > > Thanks, > Marvin > > > -----Original Message----- > > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of yufengx.mo@intel.c= om > > Sent: Monday, January 16, 2017 10:49 AM > > To: dts@dpdk.org > > Cc: Mo, YufengX > > Subject: [dts] [PATCH V1 1/2] Packet capture: upload automation test pl= an > > > > From: yufengmx > > > > > > Packet capture framework feature support packet capturing on dpdk ether= net > > devices. > > DPDK provides dpdk-pdump tool under app/pdump directory for packet > > capturing on dpdk. > > > > The tool is a Data Plane Development Kit (DPDK) tool that runs as a DP= DK > > secondary process and is capable of enabling packet capture on dpdk por= ts. > > * The tool depends on libpcap based PMD which is disabled > > by default in the build configuration files, > > owing to an external dependency on the libpcap development files > > which must be installed on the board. > > Once the libpcap development files are installed, the libpcap based= PMD > > can be enabled by setting CONFIG_RTE_LIBRTE_PMD_PCAP=3Dy and > > recompiling the DPDK. > > > > Signed-off-by: yufengmx > > --- > > test_plans/packet_capture_test_plan.rst | 376 > > ++++++++++++++++++++++++++++++++ > > 1 file changed, 376 insertions(+) > > create mode 100644 test_plans/packet_capture_test_plan.rst > > > > diff --git a/test_plans/packet_capture_test_plan.rst > > b/test_plans/packet_capture_test_plan.rst > > new file mode 100644 > > index 0000000..6a51cf9 > > --- /dev/null > > +++ b/test_plans/packet_capture_test_plan.rst > > @@ -0,0 +1,376 @@ > > +.. Copyright (c) <2016> 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. > > + > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > + packet capture framework feature > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > + > > +Packet capture framework feature support packet capturing on dpdk ethe= rnet > > devices. > > +DPDK provides dpdk-pdump tool under app/pdump directory for packet > > capturing on dpdk. > > + > > +The dpdk-pdump application will act as the secondary process. The EAL > > +thread polls for packet capture fd. If fd polled matches packet captur= e > > +fd, it will initiate packet capture processing. > > + > > +The testpmd application will act as the primary process. The primary > > +process create socket for packet capture connection with the secondary > > +process and registers socket with packet capture epoll event. Packet c= apture > > event will be polled as part of interrupt thread. > > + > > +The primary process creates mempool and two rte_rings for packets > > +duplication and sharing packet info with the secondary process respect= ively. > > + > > +Upon receiving packet capture event, the primary process receive eithe= r > > +register RX/TX callbacks or remove RX/TX callbacks message from the > > +secondary process on socket.If packet matches, reference count of > > +packet will be incremented and enqueued to second rte_ring for the sec= ondary > > process to use. > > + > > +Prerequisites > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > +* 2x NICs (2 full duplex ports per NIC) plugged into the available > > +slots on a platform, another two nic ports are linked with cables. > > + > > +Test cases > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > +The testpmd application act as server process with port-topology > > +chained mode, the dpdk-pdump act as client process to dump capture > > +packet with different options setting. Select one port of tester as tx > > +port, another port of tester as rx port, send different type packets > > +from two ports, check pcap files' content dumped by scapy and tcpdump = to > > confirm testpmd working correctly, check pcap files' content dumped by > > tcpdump and dpdk-pdump to confirm dpdk-pdump working correctly. > > + > > +dpdk-pdump command format > > +-------------------------- > > +* packet capture framework tool dpdk-pdump command format, parameters > > +inside the parenthesis represents the mandatory parametersm parameters > > Typo issue, "parametersm" should be ? > > > +inside the square brackets represents optional > > +parameters:: > > +./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump=3D '(port =3D > > + |device_id =3D ), (queue=3D), > > +(rx-dev=3D | tx-dev=3D), > > +[ring-size=3D], [mbuf-size=3D], [total-num-mbufs=3D]= ' > > + > > +transmission packets' format > > +-------------------------- > > +* IP_RAW > > + [Ether()/IP()/Raw('\0'*60)] > > +* TCP > > + [Ether()/IP()/TCP()/Raw('\0'*60)] > > +* UDP > > + [Ether()/IP()/UDP()/Raw('\0'*60)] > > +* SCTP > > + [Ether()/IP()/SCTP()/Raw('\0'*40)] > > +* IPv6_TCP > > + [Ether()/IPv6()/TCP()/Raw('\0'*60)] > > +* IPv6_UDP > > + [Ether()/IPv6()/UDP()/Raw('\0'*60)] > > +* IPv6_SCTP > > + [Ether()/IP()/IPv6()/SCTP()/Raw('\0'*40)] > > +* VLAN_UDP > > + [Ether()/Dot1Q()/IP()/UDP()/Raw('\0'*40)] > > +* TIMESYNC > > + [Ether(dst=3D'FF:FF:FF:FF:FF:FF',type=3D0x88f7)/"\\x00\\x02"] > > +* ARP > > + [Ether(dst=3D'FF:FF:FF:FF:FF:FF')/ARP()] > > +* LLDP > > + [Ether()/LLDP()/LLDPManagementAddress()] > > + notice: LLDP()/LLDPManagementAddress() method are in dts/dep/lldp.py > > + > > +port configuration > > +-------------------------- > > +* confirm two NICs physical link on a platform: > > + dut port 0 <---> tester port 0 > > + dut port 1 <---> tester port 1 > > + > > +* Bind two port on DUT:: > > + ./tools/dpdk_nic_bind.py --bind=3Digb_uio > +port 1 pci address> > > + > Tools folder has been changed to usertools. > > > +* On dut, use port 0 as rx/tx port. > > + If dut port 0 rx dump is set, scapy send packet from tester port 0 > > +and tcpdump dumps tester > > + port 1's packet. > > + > > + If dut port 0 tx dump is set, scapy send packet from tester port 1 > > + and tcpdump dumps tester port 0's packet. > > + > > +* If using interfaces as dpdk-pdump vdev, prepare two ports on DUT, > > +which haven't been binded > > + to dpdk and have been in linked status > > + > > +Test Case 1: test pdump port > > +=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 > > +test different port options:: > > +* port=3D > > +* device_id=3D > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --por= t- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > Recommend to remove targets which will be change between executions. > > > +When test VLAN_UDP type packet transmission, set vlan: > > + testpmd> vlan set filter off 1 > > + testpmd> start > > + > > +Boot up dpdk-pdump:: > > + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump ' > option>,queue=3D*,\ > > + tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx.pcap' > > + > > +Set up linux's tcpdump to receiver packet on tester:: > > + tcpdump -i -w /tmp/sniff-.pcap > > + tcpdump -i -w /tmp/sniff-.pcap > > + > > +Send packet on tester by port 0:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Send packet on tester by port 1:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Test Case 2: test pdump queue > > +=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 > > +test different queue options:: > > +* first queue: > > + queue=3D0 > > +* all: > > + queue=3D* > > Please add some basic description of this parameter. Like "Capture first = queue traffic". > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --por= t- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > > +When test VLAN_UDP type packet transmission, set vlan: > > + testpmd> vlan set filter off 1 > > + testpmd> start > > + > > +Boot up dpdk-pdump:: > > + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump 'port=3D0,= > option>,\ > > + tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx.pcap' > > + > > +Set up linux's tcpdump to receiver packet on tester:: > > + tcpdump -i -w /tmp/sniff-.pcap > > + tcpdump -i -w /tmp/sniff-.pcap > > + > > +Send packet on tester by port 0:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Send packet on tester by port 1:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Test Case 3: test pdump dev pcap > > +=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 > > Underscore please align with test case name. > > > +test different dump options:: > > +* tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx.pcap > > +* rx-dev=3D/tmp/pdump-rx.pcap > > +* tx-dev=3D/tmp/pdump-tx.pcap > > Same as previous comment, add basic descriptions for these parameters. > > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --por= t- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > > +When test VLAN_UDP type packet transmission, set vlan: > > + testpmd> vlan set filter off 1 > > + testpmd> start > > + > > +Boot up dpdk-pdump with pdump options:: > > + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump > > 'port=3D0,queue=3D*,' > > + > > +Set up linux's tcpdump to receiver packet on tester:: > > + tcpdump -i -w /tmp/sniff-.pcap > > + tcpdump -i -w /tmp/sniff-.pcap > > + > > +Send packet on tester by port 0:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by > > tcpdump(ignore when only set tx-dev). > > + > > +Send packet on tester by port 1:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by > > tcpdump(ignore when only set rx-dev). > > + > > +Test Case 4: test pdump dev iface > > +=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 > > +test different dump options:: > > +* tx-dev=3D,rx-dev=3D > > +* rx-dev=3D > > +* tx-dev=3D > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --por= t- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > > +When test VLAN_UDP type packet transmission, set vlan: > > + testpmd> vlan set filter off 1 > > + testpmd> start > > + > > +Boot up dpdk-pdump with pdump options:: > > + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump > > 'port=3D0,queue=3D*,' > > + > > +Set up linux's tcpdump to receiver packet on tester:: > > + tcpdump -i -w /tmp/sniff-.pcap > > + tcpdump -i -w /tmp/sniff-.pcap > > + > > +Set up linux's tcpdump to receiver packet of dpdk-pdump on Dut:: > > + when rx-dev is set > > + tcpdump -i -w /tmp/pdump-rx.pcap > > + > > + when tx-dev is set > > + tcpdump -i -w /tmp/pdump-tx.pcap > > + > > +Send packet on tester by port 0:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by > > tcpdump(ignore when only set tx-dev). > > + > > +Send packet on tester by port 1:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by > > tcpdump(ignore when only set rx-dev). > > + > > +Test Case 5: test pdump ring size > > +=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 > > +test ring size option, set value within 2^[1~27] > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --por= t- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > > +When test VLAN_UDP type packet transmission, set vlan: > > + testpmd> vlan set filter off 1 > > + testpmd> start > > + > > +Boot up dpdk-pdump with pdump options:: > > + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump > > 'port=3D0,queue=3D*,\ > > + tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx.pcap,ring-size= =3D1024' > > + > > +Set up linux's tcpdump to receiver packet on tester:: > > + tcpdump -i -w /tmp/sniff-.pcap > > + tcpdump -i -w /tmp/sniff-.pcap > > + > > +Send packet on tester by port 0:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Send packet on tester by port 1:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Test Case 6: test pdump mbuf size > > +=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 > > +test mbuf size option, set value within [252~59520]. min value is > > +decided by single packet size, max value is decided by test platform m= emery > > size. > > Typo issue, should be "memory". > Should here to verify what will be happened when packet size is over mbuf= size? [Mo, YufengX] when size is beyon the range, dpdk-pdump won't boot up. Do yo= u want to add a verification. will it do the same verification for other range checking? > Suggest add one case for jumbo frame packet capture, not sure whether jum= bo frame should be validated here. [Mo, YufengX] Do you mean to write a new case for jumbo frame? > > > + > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --por= t- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > > +When test VLAN_UDP type packet transmission, set vlan: > > + testpmd> vlan set filter off 1 > > + testpmd> start > > + > > +Boot up dpdk-pdump with pdump options:: > > + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump > > 'port=3D0,queue=3D*,\ > > + tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx.pcap,mbuf-size= =3D2048' > > + > > +Set up linux's tcpdump to receiver packet on tester:: > > + tcpdump -i -w /tmp/sniff-.pcap > > + tcpdump -i -w /tmp/sniff-.pcap > > + > > +Send packet on tester by port 0:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Send packet on tester by port 1:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Test Case 7: test pdump total num mbufs > > +=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 > > +test total-num-mbufs option, set value within [1025~65535] > > What will be affected when change the number? I think mbuf will be freed= after packet saved into pcap file. > Will it affect the performance? [Mo, YufengX] no things happen when total-num-mbufs changes. Currently, tes= t case will reboot dpdk-pdump/testpmd after each different option finish testing. Within those email discussed with Reshma, she has mentioned that dpdk-pdump= don't work for performance, you are are in maillist too. > > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --por= t- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > > +When test VLAN_UDP type packet transmission, set vlan: > > + testpmd> vlan set filter off 1 > > + testpmd> start > > + > > +Boot up dpdk-pdump with pdump options:: > > + ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump > > 'port=3D0,queue=3D*,\ > > + tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx.pcap,total-num- > > mbufs=3D8191' > > + > > +Set up linux's tcpdump to receiver packet on tester:: > > + tcpdump -i -w /tmp/sniff-.pcap > > + tcpdump -i -w /tmp/sniff-.pcap > > + > > +Send packet on tester by port 0:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > +Send packet on tester by port 1:: > > + sendp(, iface=3D) > > + > > +Compare pcap file of scapy with the pcap file dumped by tcpdump. > > +Compare pcap file dumped by dpdk-pdump with pcap files dumped by tcpdu= mp. > > + > > -- > > 1.9.3 --_000_B8B15C44A3F2C044966E545C7B73711539FB73D7shsmsx102ccrcor_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

hi, Marvin

 

see below.

 

> -----Original Message-----

> From: Liu, Yong

> Sent: January 16, 2017 11:08 AM

> To: Mo, YufengX; dts@dpdk.org

> Cc: Mo, YufengX

> Subject: RE: [dts] [PATCH V1 1/2] Packet capture: upload automation test plan<= /p>

>

> Yufen,

> Please make sure all lines in test plan and = commit are limited to 79 characters.

> And some comments and questions below.<= /o:p>

>

> Thanks,

> Marvin

>

> > -----Original Message-----

> > From: dts= [mailto:dts-bounces@dpdk.org] On Behalf Of yufengx.mo@intel.com=

> > Sent: Monday, January 16, 2017 10:49 AM=

> > To: dts@dpdk.org

> > Cc: Mo, YufengX<= /span> <yufengx.mo@intel.com>

> > Subject: [dts] [PATCH V1 1/2] Packet capture: upload automation test plan=

> >

> > From: yufengmx <yufengx.mo@intel.com>

> >

> >

> > Packet capture framework feature suppor= t packet capturing on dpdk ethernet

> > devices.

> > DPDK provides dp= dk-pdump tool under app/pdump director= y for packet

> > capturing on dpd= k.

> >

> > The&nb= sp; tool is a Data Plane Development Kit (DPDK) tool that runs as a = DPDK

> > secondary process and is capable of ena= bling packet capture on dpdk ports.

> > &= nbsp; * The  tool depends on libpcap based PMD whic= h is disabled

> > &= nbsp;   by default in the build configuration files,<= /o:p>

> > &= nbsp;   owing to an external dependency on the libpcap development files

> > &= nbsp;   which must be installed on the board.

> > &= nbsp;   Once the libpcap development files are installed, the = libpcap based PMD

> > &= nbsp;   can be enabled by setting CONFIG_RTE_LIBRTE_PMD_PC= AP=3Dy and

> > recompiling the DPDK.

> >

> > Signed-off-by: y= ufengmx <yufengx.mo@intel.com>

> > ---

> >  = test_plans/pack= et_capture_test_plan.rst | 376

> > ++++++++= ;+++++++++++++++= ;+++++++++

> >  = 1 file changed, 376 insertions(+)

> >  = create mode 100644 test_plans/packet_capt= ure_test_plan.rst

> >

> > diff --git a/test_plans/packet_= capture_test_plan.rst

> > b/test_plans/packet_capture_test_plan.rst

> > new file mode 100644

> > index 0000000..6a51cf9

> > --- /dev/= null

> > +++ b/test_plans/packet_capture_test_plan.rst

> > @@ -0,0 +1,376 @@

> > +.. Copyright (c) <2016> Inte= l Corporation

> > +&= nbsp;  All rights reserved.

> > +

> > +&= nbsp;  Redistribution and use in source and binary forms, with = or without

> > +&= nbsp;  modification, are permitted provided that the following = conditions

> > +&= nbsp;  are met:

> > +

> > +&= nbsp;  - Redistributions of source code must retain the above c= opyright

> > +&= nbsp;    notice, this list of conditions and the foll= owing disclaimer.

> > +

> > +&= nbsp;  - Redistributions in binary form must reproduce the abov= e copyright

> > +&= nbsp;    notice, this list of conditions and the foll= owing disclaimer in

> > +&= nbsp;    the documentation and/or other materials pro= vided with the

> > +&= nbsp;    distribution.

> > +

> > +&= nbsp;  - Neither the name of Intel Corporation nor the names of= its

> > +&= nbsp;    contributors may be used to endorse or promo= te products derived

> > +&= nbsp;    from this software without specific prior wr= itten permission.

> > +

> > +&= nbsp;  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND

> > CONTRIBUTORS

> > +&= nbsp;  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,= INCLUDING, BUT NOT

> > +&= nbsp;  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AN= D FITNESS

> > +&= nbsp;  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHA= LL THE

> > +&= nbsp;  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT= ,

> > INDIRECT,

> > +&= nbsp;  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES=

> > +&= nbsp;  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUT= E GOODS

> > OR

> > +&= nbsp;  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INT= ERRUPTION)

> > +&= nbsp;  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER I= N

> > CONTRACT,

> > +&= nbsp;  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER= WISE)

> > +&= nbsp;  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN= IF ADVISED

> > +&= nbsp;  OF THE POSSIBILITY OF SUCH DAMAGE.

> > +

> > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D

> > +&= nbsp; packet capture framework feature

> > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D

> > +

> > +Packet capture framework feature s= upport packet capturing on dpdk ethernet

> > devices.

> > +DPDK provides dpdk-pdump tool under app/pdump dir= ectory for packet

> > capturing on dpd= k.

> > +

> > +The dpdk-pd= ump application will act as the secondary process. The EAL

> > +thread polls for packet capture fd. If fd polled matches packet captur= e

> > +fd, = it will initiate packet capture processing.

> > +

> > +The testpmd= application will act as the primary process. The primary=

> > +process create socket for packet c= apture connection with the secondary

> > +process and registers socket with = packet capture epoll event. Packet capture

> > event will be polled as part of interru= pt thread.

> > +

> > +The primary process creates mempool and two rte_rings for packets

> > +duplication and sharing packet inf= o with the secondary process respectively.

> > +

> > +Upon receiving packet capture even= t, the primary process receive either

> > +register RX/TX callbacks or remove= RX/TX callbacks message from the

> > +secondary process on socket.If packet matches, reference count of<= /p>

> > +packet will be incremented and enqueued to second rte_ring for the se= condary

> > process to use.

> > +

> > +Prerequisites

> > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D

> > +* 2x NICs (2 full duplex ports per= NIC) plugged into the available

> > +slots on a platform, another two <= span class=3D"SpellE"> nic ports are linked with cables.

> > +

> > +Test cases

> > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D

> > +The testpmd= application act as server process with port-topology

> > +chained mode, the dpdk-pdump act as client process to dump capture

> > +packet with different options sett= ing. Select one port of tester as tx

> > +port, another port of tester as rx port, send different type packets

> > +from two ports, check pcap files' content dumped by scapy and tcpdump to

> > confirm testpmd<= /span> working correctly, check pcap files' content dumped by

> > tcpdump a= nd dpdk-pdump to confirm dpdk-pdump worki= ng correctly.

> > +

> > +dpdk-pdump<= /span> command format

> > +--------------------------

> > +* packet capture framework tool dpdk-pdump command format, parameters

> > +inside the parenthesis represents = the mandatory parametersm parameters

>

> Typo issue, "par= ametersm" should be ?

>

> > +inside the square brackets represe= nts optional

> > +parameters::

> > +./x86_64-native-linuxapp-gcc/app/<= span class=3D"SpellE">dpdk-pdump -- --pdump=3D '(port =3D

> > +<port_id= > |device_id =3D <pci address>), (queue=3D<queue number>),

> > +(rx-dev=3D<iface/path to pcap file> | tx-dev= =3D<iface/path to pcap file>),

> > +[ring-size=3D<size>], [mbuf-size=3D<size>], [total-num-mbufs=3D<size>]'=

> > +

> > +transmission packets' format<= /o:p>

> > +--------------------------

> > +* IP_RAW

> > +&= nbsp; [Ether()/IP()/Raw('\0'*60)]

> > +* TCP

> > +&= nbsp; [Ether()/IP()/TCP()/Raw('\0'*60)]

> > +* UDP

> > +&= nbsp; [Ether()/IP()/UDP()/Raw('\0'*60)]

> > +* SCTP

> > +&= nbsp; [Ether()/IP()/SCTP()/Raw('\0'*40)]

> > +* IPv6_TCP

> > +&= nbsp; [Ether()/IPv6()/TCP()/Raw('\0'*60)]

> > +* IPv6_UDP

> > +&= nbsp; [Ether()/IPv6()/UDP()/Raw('\0'*60)]

> > +* IPv6_SCTP

> > +&= nbsp; [Ether()/IP()/IPv6()/SCTP()/Raw('\0'*40)]

> > +* VLAN_UDP

> > +&= nbsp; [Ether()/Dot1Q()/IP()/UDP()/Raw('\0'*40)]

> > +* TIMESYNC

> > +&= nbsp; [Ether(dst=3D'FF:FF:FF:FF:FF:FF',type=3D0x88f7)/"\\x00\\x02"]<= /o:p>

> > +* ARP

> > +&= nbsp; [Ether(dst=3D'FF:FF:FF:FF:FF:FF'= )/ARP()]

> > +* LLDP

> > +&= nbsp; [Ether()/LLDP()/LLDPManagementAddress()]

> > +&= nbsp; notice: LLDP()/LLDPManagementAddress() method are in dts/dep/lldp.py

> > +

> > +port configuration

> > +--------------------------

> > +* confirm two NICs physical link o= n a platform:

> > +&= nbsp; dut port 0 <---> tester po= rt 0

> > +&= nbsp; dut port 1 <---> tester po= rt 1

> > +

> > +* Bind two port on DUT::

> > + ./tools/dpdk_nic_bind.py --bind= =3Digb_uio <dut port 0 pci address> <du= t

> > +port 1 pci<= /span> address>

> > +

> Tools folder has been changed to usertools.

>

> > +* On dut, use port 0 as rx/tx port.

> > +&= nbsp; If dut port 0 rx dump is set, scapy send packet from tester port 0

> > +and tcpdump= dumps tester

> > +&= nbsp; port 1's packet.

> > +

> > +&= nbsp; If dut port 0 tx dump is set, scapy send packet from tester port 1

> > + and tcpdum= p dumps tester  port 0's packet.

> > +

> > +* If using interfaces as dpdk-pdump vdev, prepare two ports on DUT,

> > +which haven't been binded

> > +&= nbsp; to dpdk and have been in linked status

> > +

> > +Test Case 1: test pdump port

> > +=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

> > +test different port options::=

> > +* port=3D<dut port id>

> > +* device_id= =3D<dut pci address>

> > +

> > +Boot up dpd= k's testpmd with chained option::

> > +&n= bsp;     ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port-

> > topology=3Dchained

> > +&n= bsp;     testpmd&g= t; set fwd io

> > +&n= bsp;     testpmd&g= t; start

> > +

> Recommend to remove targets which will be ch= ange between executions.

>

> > +When test VLAN_UDP type packet tra= nsmission, set vlan:

> > +&= nbsp;   testpmd> vlan set filter off 1

> > +&= nbsp;   testpmd> start

> > +

> > +Boot up dpd= k-pdump::

> > +&= nbsp;   ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump  '<port

> > option>,queue=3D*,\

> > +&= nbsp;   tx-dev=3D/tmp/pdump-tx.pcap,rx-dev= =3D/tmp/pdump-rx.pcap<= /span>'

> > +

> > +Set up linu= x's tcpdump to receiver packet on tester::

> > +&n= bsp;     tcpdump -= i <rx port n= ame> -w /tmp/sniff-<rx port name>.pcap

> > +&n= bsp;     tcpdump -= i <tx port n= ame> -w /tmp/sniff-<tx port name>.pcap

> > +

> > +Send packet on tester by port 0::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 0 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Send packet on tester by port 1::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 1 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Test Case 2: test pdump queue

> > +=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

> > +test different queue options::

> > +* first queue:

> > +&= nbsp; queue=3D0

> > +* all:

> > +&= nbsp; queue=3D*

>

> Please add some basic description of this pa= rameter. Like "Capture first queue traffic".

> > +

> > +Boot up dpd= k's testpmd with chained option::

> > +&n= bsp;     ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port-

> > topology=3Dchained

> > +&n= bsp;     testpmd&g= t; set fwd io

> > +&n= bsp;     testpmd&g= t; start

> > +

> > +When test VLAN_UDP type packet tra= nsmission, set vlan:

> > +&= nbsp;   testpmd> vlan set filter off 1

> > +&= nbsp;   testpmd> start

> > +

> > +Boot up dpd= k-pdump::

> > +&= nbsp;   ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump  'port=3D0,<queue

> > option>,\

> > +&= nbsp;   tx-dev=3D/tmp/pdump-tx.pcap,rx-dev= =3D/tmp/pdump-rx.pcap<= /span>'

> > +

> > +Set up linu= x's tcpdump to receiver packet on tester::

> > +&n= bsp;     tcpdump -= i <rx port n= ame> -w /tmp/sniff-<rx port name>.pcap

> > +&n= bsp;     tcpdump -= i <tx port n= ame> -w /tmp/sniff-<tx port name>.pcap

> > +

> > +Send packet on tester by port 0::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 0 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Send packet on tester by port 1::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 1 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Test Case 3: test pdump dev pcap

> > +=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

>

> Underscore please align with test case name.=

>

> > +test different dump options::=

> > +* tx-dev=3D/tmp/pdump-tx.p= cap,rx-dev=3D/tmp/pdump-rx.pcap

> > +* rx-dev=3D/tmp/pdump-rx.p= cap

> > +* tx-dev=3D/tmp/pdump-tx.p= cap

>

> Same as previous comment, add basic descript= ions for these parameters.

>

> > +

> > +Boot up dpd= k's testpmd with chained option::

> > +&n= bsp;     ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port-

> > topology=3Dchained

> > +&n= bsp;     testpmd&g= t; set fwd io

> > +&n= bsp;     testpmd&g= t; start

> > +

> > +When test VLAN_UDP type packet tra= nsmission, set vlan:

> > +&= nbsp;   testpmd> vlan set filter off 1

> > +&= nbsp;   testpmd> start

> > +

> > +Boot up dpd= k-pdump with pdump options::

> > +&= nbsp;   ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump=

> > 'port=3D0,queue=3D*,<dump object>= '

> > +

> > +Set up linu= x's tcpdump to receiver packet on tester::

> > +&n= bsp;     tcpdump -= i <rx port n= ame> -w /tmp/sniff-<rx port name>.pcap

> > +&n= bsp;     tcpdump -= i <tx port n= ame> -w /tmp/sniff-<tx port name>.pcap

> > +

> > +Send packet on tester by port 0::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 0 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by

> > tcpdump(i= gnore when only set tx-dev).

> > +

> > +Send packet on tester by port 1::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 1 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by

> > tcpdump(i= gnore when only set rx-dev).

> > +

> > +Test Case 4: test pdump dev iface

> > +=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

> > +test different dump options::=

> > +* tx-dev=3D<dut tx port name>,rx-de= v=3D<dut rx port name>

> > +* rx-dev=3D<dut rx port name>

> > +* tx-dev=3D<dut tx port name>

> > +

> > +Boot up dpd= k's testpmd with chained option::

> > +&n= bsp;     ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port-

> > topology=3Dchained

> > +&n= bsp;     testpmd&g= t; set fwd io

> > +&n= bsp;     testpmd&g= t; start

> > +

> > +When test VLAN_UDP type packet tra= nsmission, set vlan:

> > +&= nbsp;   testpmd> vlan set filter off 1

> > +&= nbsp;   testpmd> start

> > +

> > +Boot up dpd= k-pdump with pdump options::

> > +&= nbsp;   ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump=

> > 'port=3D0,queue=3D*,<dump object>= '

> > +

> > +Set up linu= x's tcpdump to receiver packet on tester::

> > +&n= bsp;     tcpdump -= i <rx port n= ame> -w /tmp/sniff-<rx port name>.pcap

> > +&n= bsp;     tcpdump -= i <tx port n= ame> -w /tmp/sniff-<tx port name>.pcap

> > +

> > +Set up linu= x's tcpdump to receiver packet of dpdk-pdump on Dut::

> > +&n= bsp;     when rx-dev is set

> > +&n= bsp;     tcpdump -= i <dut rx port name> -w /t= mp/pdump-rx.pcap

> > +

> > +&n= bsp;     when tx-dev is set

> > +&n= bsp;     tcpdump -= i <dut tx port name> -w /t= mp/pdump-tx.pcap

> > +

> > +Send packet on tester by port 0::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 0 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by

> > tcpdump(i= gnore when only set tx-dev).

> > +

> > +Send packet on tester by port 1::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 1 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by

> > tcpdump(i= gnore when only set rx-dev).

> > +

> > +Test Case 5: test pdump ring size

> > +=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

> > +test ring size option, set value w= ithin 2^[1~27]

> > +

> > +Boot up dpd= k's testpmd with chained option::

> > +&n= bsp;     ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port-

> > topology=3Dchained

> > +&n= bsp;     testpmd&g= t; set fwd io

> > +&n= bsp;     testpmd&g= t; start

> > +

> > +When test VLAN_UDP type packet tra= nsmission, set vlan:

> > +&= nbsp;   testpmd> vlan set filter off 1

> > +&= nbsp;   testpmd> start

> > +

> > +Boot up dpd= k-pdump with pdump options::

> > +&= nbsp;   ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump=

> > 'port=3D0,queue=3D*,\

> > +&= nbsp;   tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx= .pcap,ring-size=3D1024'

> > +

> > +Set up linu= x's tcpdump to receiver packet on tester::

> > +&n= bsp;     tcpdump -= i <rx port n= ame> -w /tmp/sniff-<rx port name>.pcap

> > +&n= bsp;     tcpdump -= i <tx port n= ame> -w /tmp/sniff-<tx port name>.pcap

> > +

> > +Send packet on tester by port 0::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 0 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Send packet on tester by port 1::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 1 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Test Case 6: test pdump mbuf size

> > +=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

> > +test mbuf size option, set value within [252~59520]. min value is

> > +decided by single packet size, max= value is decided by test platform memery

> > size.

>

> Typo issue, should be "memory".

> Should here to verify what will be happened = when packet size is over mbuf size?

[Mo, YufengX] when size is beyon the range, dpdk-pdump won't boot up. Do you want to add a verification.=

will it do the same= verification for other range checking?

> Suggest add one case for jumbo frame packet = capture, not sure whether jumbo frame should be validated here.<= /p>

[Mo, YufengX]  Do you mean to write a new case = for jumbo frame?

>

> > +

> > +

> > +Boot up dpd= k's testpmd with chained option::

 

> > +&n= bsp;     ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port-

> > topology=3Dchained

> > +&n= bsp;     testpmd&g= t; set fwd io

> > +&n= bsp;     testpmd&g= t; start

> > +

> > +When test VLAN_UDP type packet tra= nsmission, set vlan:

> > +&= nbsp;   testpmd> vlan set filter off 1

> > +&= nbsp;   testpmd> start

> > +

> > +Boot up dpd= k-pdump with pdump options::

> > +&= nbsp;   ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump=

> > 'port=3D0,queue=3D*,\

> > + =    tx-dev=3D/tmp/pdump-tx.pcap,rx-dev=3D/tmp/pdump-rx= .pcap,mbuf-size=3D2048'

> > +

> > +Set up linu= x's tcpdump to receiver packet on tester::

> > +&n= bsp;     tcpdump -= i <rx port n= ame> -w /tmp/sniff-<rx port name>.pcap

> > +&n= bsp;     tcpdump -= i <tx port n= ame> -w /tmp/sniff-<tx port name>.pcap

> > +

> > +Send packet on tester by port 0::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 0 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Send packet on tester by port 1::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 1 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Test Case 7: test pdump total num mbufs<= /o:p>

> > +=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

> > +test total-= num-mbufs option, set value within [10= 25~65535]

>

> What will be affected when change the number= ?  I think mbuf will be freed after packe= t saved into pcap file.

> Will it affect the performance?

[Mo, YufengX] no things happen when total-num-mbufs changes. Currently, test case will reboot dpdk-pdump/testpmd

after each differen= t option finish testing.

Within those email = discussed with Reshma, she has mentioned that dpdk-pdump don’t work for performance, you are are in=

maillist too.

>

> > +

> > +Boot up dpd= k's testpmd with chained option::

> > +&n= bsp;     ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port-

> > topology=3Dchained

> > +&n= bsp;     testpmd&g= t; set fwd io

> > +&n= bsp;     testpmd&g= t; start

> > +

> > +When test VLAN_UDP type packet tra= nsmission, set vlan:

> > +&= nbsp;   testpmd> vlan set filter off 1

> > +&= nbsp;   testpmd> start

> > +

> > +Boot up dpd= k-pdump with pdump options::

> > +&= nbsp;   ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -- --pdump=

> > 'port=3D0,queue=3D*,\

> > +&= nbsp;   tx-dev=3D/tmp/pdump-tx.pcap,rx-dev= =3D/tmp/pdump-rx.pcap,= total-num-

> > mbufs=3D8= 191'

> > +

> > +Set up linu= x's tcpdump to receiver packet on tester::

> > +&n= bsp;     tcpdump -= i <rx port n= ame> -w /tmp/sniff-<rx port name>.pcap

> > +&n= bsp;     tcpdump -= i <tx port n= ame> -w /tmp/sniff-<tx port name>.pcap

> > +

> > +Send packet on tester by port 0::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 0 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > +Send packet on tester by port 1::<= o:p>

> > +&= nbsp;   sendp(<packet for= mat>, iface=3D<port 1 name>)

> > +

> > +Compare pca= p file of scapy with the pcap file dumped by tcpdump.

> > +Compare pca= p file dumped by dpdk-pdump with pcap files dumped by tcpdump.

> > +

> > --

> > 1.9.3

 

--_000_B8B15C44A3F2C044966E545C7B73711539FB73D7shsmsx102ccrcor_--