From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 6BD478E9F for ; Wed, 4 Nov 2015 07:24:50 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 03 Nov 2015 22:24:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,241,1444719600"; d="scan'208";a="842163169" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga002.jf.intel.com with ESMTP; 03 Nov 2015 22:24:48 -0800 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 3 Nov 2015 22:24:38 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 3 Nov 2015 22:24:38 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.57]) by shsmsx102.ccr.corp.intel.com ([169.254.2.199]) with mapi id 14.03.0248.002; Wed, 4 Nov 2015 14:24:36 +0800 From: "Qiu, Michael" To: "Liu, Yong" , "dts@dpdk.org" Thread-Topic: [dts] [PATCH] TSO: Add RRC support and some bug fix Thread-Index: AQHRBljoTvx5YSJifkWXbKVCMpgDlg== Date: Wed, 4 Nov 2015 06:24:35 +0000 Message-ID: <533710CFB86FA344BFBF2D6802E6028621B658D5@SHSMSX101.ccr.corp.intel.com> References: <1444810688-19256-1-git-send-email-michael.qiu@intel.com> <86228AFD5BCD8E4EBFD2B90117B5E81E10F2A9FE@SHSMSX103.ccr.corp.intel.com> Accept-Language: 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] TSO: Add RRC support and some bug fix 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: Wed, 04 Nov 2015 06:24:51 -0000 Hi, Marvin=0A= =0A= I will update dpdk_test_case_checklist.xls in one patch, so would you=0A= please merge this first?=0A= =0A= Thanks,=0A= Michael=0A= On 2015/10/14 16:30, Liu, Yong wrote:=0A= > Hi Michael,=0A= > For those case not supported RRC, you can add them into dpdk_test_case_ch= ecklist.xls just in conf folder.=0A= >=0A= >=0A= >> -----Original Message-----=0A= >> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Michael Qiu=0A= >> Sent: Wednesday, October 14, 2015 9:18 AM=0A= >> To: dts@dpdk.org=0A= >> Subject: [dts] [PATCH] TSO: Add RRC support and some bug fix=0A= >>=0A= >> Add RRC support and some bug fix.=0A= >>=0A= >> Signed-off-by: Mihcael Qiu =0A= >> ---=0A= >> tests/TestSuite_tso.py | 37 +++++++++++++++++++++----------------=0A= >> 1 file changed, 21 insertions(+), 16 deletions(-)=0A= >>=0A= >> diff --git a/tests/TestSuite_tso.py b/tests/TestSuite_tso.py=0A= >> index 392157f..c3a13ee 100644=0A= >> --- a/tests/TestSuite_tso.py=0A= >> +++ b/tests/TestSuite_tso.py=0A= >> @@ -83,7 +83,8 @@ class TestTSO(TestCase):=0A= >> # this feature support Fortville, Niantic=0A= >> self.verify(self.nic in ["kawela_2", "niantic", "bartonhills",= =0A= >> "82545EM",=0A= >> "82540EM", "springfountain",=0A= >> "fortville_eagle",=0A= >> - "fortville_spirit",=0A= >> "fortville_spirit_single"],=0A= >> + "fortville_spirit",=0A= >> "fortville_spirit_single",=0A= >> + "redrockcanyou"],=0A= >> "NIC Unsupported: " + str(self.nic))=0A= >>=0A= >> # Based on h/w type, choose how many ports to use=0A= >> @@ -138,7 +139,7 @@ class TestTSO(TestCase):=0A= >>=0A= >> for iface in ifaces:=0A= >> command =3D ('tcpdump -w tcpdump_{0}.pcap -i {0}=0A= >> 2>tcpdump_{0}.out &').format(iface)=0A= >> - self.tester.send_expect('rm -f tcpdump_{0}.pcap',=0A= >> '#').format(iface)=0A= >> + self.tester.send_expect(('rm -f=0A= >> tcpdump_{0}.pcap').format(iface), '#')=0A= >> self.tester.send_expect(command, '#')=0A= >>=0A= >> def tcpdump_stop_sniff(self):=0A= >> @@ -182,7 +183,7 @@ class TestTSO(TestCase):=0A= >> self.verify(cores is not None, "Insufficient cores for speed=0A= >> testing")=0A= >> self.coreMask =3D dts.create_mask(cores)=0A= >>=0A= >> - padding =3D self.frame_sizes[0] - self.headers_size=0A= >> + padding =3D [self.frame_sizes[0] - self.headers_size,=0A= >> self.frame_sizes[1] - self.headers_size]=0A= >>=0A= >> self.tester.send_expect("ethtool -K %s rx off tx off tso off gs= o=0A= >> off gro off lro off" % tx_interface, "# ")=0A= >> self.tester.send_expect("ip l set %s up" % tx_interface, "# ")= =0A= >> @@ -206,6 +207,7 @@ class TestTSO(TestCase):=0A= >>=0A= >> self.dut.send_expect("tso set 800 %d" % self.dut_ports[1],=0A= >> "testpmd> ", 120)=0A= >> self.dut.send_expect("set fwd csum", "testpmd> ", 120)=0A= >> + self.dut.send_expect("set promisc all off", "testpmd> ", 120)=0A= >> self.dut.send_expect("start", "testpmd> ")=0A= >>=0A= >> self.tester.scapy_foreground()=0A= >> @@ -214,31 +216,34 @@ class TestTSO(TestCase):=0A= >> # IPv4 tcp test=0A= >>=0A= >> self.tcpdump_start_sniffing([tx_interface, rx_interface])=0A= >> -=0A= >> self.tester.scapy_append('sendp([Ether(dst=3D"%s",src=3D"52:00:00:00:00:= 00")/I=0A= >> P(src=3D"192.168.1.1",dst=3D"192.168.1.2")/TCP(sport=3D1021,dport=3D1021= )/("X"*%s)=0A= >> ], iface=3D"%s")' % (mac, padding, tx_interface))=0A= >> +=0A= >> self.tester.scapy_append('sendp([Ether(dst=3D"%s",src=3D"52:00:00:00:00:= 00")/I=0A= >> P(src=3D"192.168.1.1",dst=3D"192.168.1.2")/TCP(sport=3D1021,dport=3D1021= )/("X"*%s)=0A= >> ], iface=3D"%s")' % (mac, padding[0], tx_interface))=0A= >> out =3D self.tester.scapy_execute()=0A= >> out =3D self.dut.send_expect("show port stats all", "testpmd> "= ,=0A= >> 120)=0A= >> print out=0A= >> self.tcpdump_stop_sniff()=0A= >> rx_stats =3D self.number_of_packets(rx_interface)=0A= >> - if (rx_stats =3D=3D 2):=0A= >> - self.verify(1, "Pass")=0A= >> + self.verify(rx_stats =3D=3D 1, "FAIL")=0A= >>=0A= >> # IPv6 tcp test=0A= >>=0A= >> self.tcpdump_start_sniffing([tx_interface, rx_interface])=0A= >> - self.tester.scapy_append('sendp([Ether(dst=3D"%s",=0A= >> src=3D"52:00:00:00:00:00")/IPv6(src=3D"FE80:0:0:0:200:1FF:FE00:200",=0A= >> dst=3D"3555:5555:6666:6666:7777:7777:8888:8888")/TCP(sport=3D1021,dport= =3D1021)/=0A= >> ("X"*%s)], iface=3D"%s")' % (mac, padding, tx_interface))=0A= >> + self.tester.scapy_append('sendp([Ether(dst=3D"%s",=0A= >> src=3D"52:00:00:00:00:00")/IPv6(src=3D"FE80:0:0:0:200:1FF:FE00:200",=0A= >> dst=3D"3555:5555:6666:6666:7777:7777:8888:8888")/TCP(sport=3D1021,dport= =3D1021)/=0A= >> ("X"*%s)], iface=3D"%s")' % (mac, padding[1], tx_interface))=0A= >> out =3D self.tester.scapy_execute()=0A= >> out =3D self.dut.send_expect("show port stats all", "testpmd> "= ,=0A= >> 120)=0A= >> print out=0A= >> self.tcpdump_stop_sniff()=0A= >> rx_stats =3D self.number_of_packets(rx_interface)=0A= >> - if (rx_stats =3D=3D 2):=0A= >> - self.verify(1, "Pass")=0A= >> + self.verify(rx_stats =3D=3D 2, "FAIL")=0A= >>=0A= >> def test_tso_tunneling(self):=0A= >> """=0A= >> TSO IPv4 TCP, IPv6 TCP, VXLan testing=0A= >> """=0A= >> + # RedRockCanyou does not support Tunneling in DPDK yet.=0A= >> + if self.nic =3D=3D "redrockcanyou":=0A= >> + print dts.RED("fm10k not support this case\n")=0A= >> + return=0A= >> +=0A= >> tx_interface =3D=0A= >> self.tester.get_interface(self.tester.get_local_port(self.dut_ports[0]))= =0A= >> rx_interface =3D=0A= >> self.tester.get_interface(self.tester.get_local_port(self.dut_ports[1]))= =0A= >>=0A= >> @@ -248,7 +253,7 @@ class TestTSO(TestCase):=0A= >> self.verify(cores is not None, "Insufficient cores for speed=0A= >> testing")=0A= >> self.coreMask =3D dts.create_mask(cores)=0A= >>=0A= >> - padding =3D self.frame_sizes[0] - self.headers_size=0A= >> + padding =3D [self.frame_sizes[0] - self.headers_size,=0A= >> self.frame_sizes[1] - self.headers_size]=0A= >>=0A= >> self.tester.send_expect("ethtool -K %s rx off tx off tso off gs= o=0A= >> off gro off lro off" % tx_interface, "# ")=0A= >> self.tester.send_expect("ip l set %s up" % tx_interface, "# ")= =0A= >> @@ -272,6 +277,7 @@ class TestTSO(TestCase):=0A= >>=0A= >> self.dut.send_expect("tso set 800 %d" % self.dut_ports[1],=0A= >> "testpmd> ", 120)=0A= >> self.dut.send_expect("set fwd csum", "testpmd> ", 120)=0A= >> + self.dut.send_expect("set promisc all off", "testpmd> ", 120)= =0A= >> self.dut.send_expect("start", "testpmd> ")=0A= >>=0A= >> self.tester.scapy_foreground()=0A= >> @@ -279,25 +285,23 @@ class TestTSO(TestCase):=0A= >>=0A= >> # Vxlan test=0A= >> self.tcpdump_start_sniffing([tx_interface, rx_interface])=0A= >> -=0A= >> self.tester.scapy_append('sendp([Ether(dst=3D"%s",src=3D"52:00:00:00:00:= 00")/I=0A= >> P(src=3D"192.168.1.1",dst=3D"192.168.1.2")/UDP(sport=3D"1021",dport=3D"4= 789")/VXLA=0A= >> N()/Ether(dst=3D%s,src=3D"52:00:00:00:00:00")/IP(src=3D"192.168.1.1",dst= =3D"192.16=0A= >> 8.1.2")/TCP(sport=3D"1021",dport=3D"1021")/("X"*%s)], iface=3D"%s")' % (= mac, mac,=0A= >> padding, tx_interface))=0A= >> +=0A= >> self.tester.scapy_append('sendp([Ether(dst=3D"%s",src=3D"52:00:00:00:00:= 00")/I=0A= >> P(src=3D"192.168.1.1",dst=3D"192.168.1.2")/UDP(sport=3D"1021",dport=3D"4= 789")/VXLA=0A= >> N()/Ether(dst=3D%s,src=3D"52:00:00:00:00:00")/IP(src=3D"192.168.1.1",dst= =3D"192.16=0A= >> 8.1.2")/TCP(sport=3D"1021",dport=3D"1021")/("X"*%s)], iface=3D"%s")' % (= mac, mac,=0A= >> padding[0], tx_interface))=0A= >> out =3D self.tester.scapy_execute()=0A= >> out =3D self.dut.send_expect("show port stats all", "testpmd> "= ,=0A= >> 120)=0A= >> print out=0A= >> self.tcpdump_stop_sniff()=0A= >> rx_stats =3D self.number_of_packets(rx_interface)=0A= >> - if (rx_stats =3D=3D 2):=0A= >> - self.verify(1, "Pass")=0A= >> + self.verify(rx_stats =3D=3D 1, "FAIL")=0A= >>=0A= >> # Nvgre test=0A= >> self.tcpdump_start_sniffing([tx_interface, rx_interface])=0A= >> -=0A= >> self.tester.scapy_append('sendp([Ether(dst=3D"%s",src=3D"52:00:00:00:00:= 00")/I=0A= >> P(src=3D"192.168.1.1",dst=3D"192.168.1.2",proto=3D47)/NVGRE()/Ether(dst= =3D%s,src=3D"=0A= >> 52:00:00:00:00:00")/IP(src=3D"192.168.1.1",dst=3D"192.168.1.2")/TCP(spor= t=3D"102=0A= >> 1",dport=3D"1021")/("X"*%s)], iface=3D"%s")' % (mac, mac, padding,=0A= >> tx_interface))=0A= >> +=0A= >> self.tester.scapy_append('sendp([Ether(dst=3D"%s",src=3D"52:00:00:00:00:= 00")/I=0A= >> P(src=3D"192.168.1.1",dst=3D"192.168.1.2",proto=3D47)/NVGRE()/Ether(dst= =3D%s,src=3D"=0A= >> 52:00:00:00:00:00")/IP(src=3D"192.168.1.1",dst=3D"192.168.1.2")/TCP(spor= t=3D"102=0A= >> 1",dport=3D"1021")/("X"*%s)], iface=3D"%s")' % (mac, mac, padding[1],=0A= >> tx_interface))=0A= >> out =3D self.tester.scapy_execute()=0A= >> out =3D self.dut.send_expect("show port stats all", "testpmd> "= ,=0A= >> 120)=0A= >> print out=0A= >> self.tcpdump_stop_sniff()=0A= >> rx_stats =3D self.number_of_packets(rx_interface)=0A= >> - if (rx_stats =3D=3D 2):=0A= >> - self.verify(1, "Pass")=0A= >> + self.verify(rx_stats =3D=3D 2, "Pass")=0A= >>=0A= >> def test_perf_TSO_2ports(self):=0A= >> """=0A= >> @@ -347,6 +351,7 @@ class TestTSO(TestCase):=0A= >> self.dut.send_expect("csum parse_tunnel on %d" %=0A= >> self.dut_ports[1], "testpmd> ", 120)=0A= >> self.dut.send_expect("tso set 800 %d" % self.dut_ports[1],= =0A= >> "testpmd> ", 120)=0A= >> self.dut.send_expect("set fwd csum", "testpmd> ", 120)=0A= >> + self.dut.send_expect("set promisc all off", "testpmd> ", 12= 0)=0A= >> self.dut.send_expect("start", "testpmd> ")=0A= >> for frame_size in self.frame_sizes:=0A= >> wirespeed =3D self.wirespeed(self.nic, frame_size, 2)= =0A= >> --=0A= >> 1.9.3=0A= >=0A= =0A=