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 0C6F9FA48 for ; Mon, 16 Jan 2017 04:19:00 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP; 15 Jan 2017 19:18:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,237,1477983600"; d="scan'208";a="30965724" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga002.jf.intel.com with ESMTP; 15 Jan 2017 19:18:59 -0800 Received: from fmsmsx117.amr.corp.intel.com (10.18.116.17) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 15 Jan 2017 19:18:59 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx117.amr.corp.intel.com (10.18.116.17) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 15 Jan 2017 19:18:59 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.88]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.132]) with mapi id 14.03.0248.002; Mon, 16 Jan 2017 11:18:57 +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: AQHSb6Ww2J24XLO7N0K33leXqXAMTKE6bzcg Importance: low X-Priority: 5 Date: Mon, 16 Jan 2017 03:18:56 +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: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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 03:19:01 -0000 ok > -----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 >=20 > Yufen, > Please make sure all lines in test plan and commit are limited to 79 char= acters. > And some comments and questions below. >=20 > Thanks, > Marvin >=20 > > -----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 >=20 > Typo issue, "parametersm" should be ? >=20 > > +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. >=20 > > +* 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 --port- > > topology=3Dchained > > + testpmd> set fwd io > > + testpmd> start > > + > Recommend to remove targets which will be change between executions. >=20 > > +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* >=20 > 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 --port- > > 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 >=20 > Underscore please align with test case name. >=20 > > +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 >=20 > Same as previous comment, add basic descriptions for these parameters. >=20 > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port- > > 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 --port- > > 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 --port- > > 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. >=20 > Typo issue, should be "memory". > Should here to verify what will be happened when packet size is over mbuf= size? > Suggest add one case for jumbo frame packet capture, not sure whether jum= bo frame should be validated here. >=20 > > + > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port- > > 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] >=20 > 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? >=20 > > + > > +Boot up dpdk's testpmd with chained option:: > > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --port- > > 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