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 0495C2BBF for ; Mon, 20 Aug 2018 07:33:36 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Aug 2018 22:33:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,263,1531810800"; d="scan'208";a="76725939" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga003.jf.intel.com with ESMTP; 19 Aug 2018 22:32:40 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 19 Aug 2018 22:32:40 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 19 Aug 2018 22:32:39 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.240]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.143]) with mapi id 14.03.0319.002; Mon, 20 Aug 2018 13:32:37 +0800 From: "Liu, Yong" To: "Peng, Yuan" , "dts@dpdk.org" CC: "Peng, Yuan" Thread-Topic: [dts] [PATCH] tests: Add verification after flush rule to TestSuite_queue_region.py Thread-Index: AQHUNU5+L06b8aaVLk+Aj1IeJqYkgaTIIC2g Date: Mon, 20 Aug 2018 05:32:37 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E63129A4A@SHSMSX103.ccr.corp.intel.com> References: <1534416487-122625-1-git-send-email-yuan.peng@intel.com> In-Reply-To: <1534416487-122625-1-git-send-email-yuan.peng@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmI4NzhlMjYtMDk5NS00YTVjLWJkM2YtOTA2OWJiYTMwYTJjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiRjhVOHBmcFFHbllmZHZWWmdXNk9vUkVDTDNrZ1ZnK1ZLeW80UnpicG9oMVFrR0xjWVwvWGFrdXUyT2trOGdFdlYifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action 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] tests: Add verification after flush rule to TestSuite_queue_region.py 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, 20 Aug 2018 05:33:37 -0000 Yuan,=20 Some comments below. Thanks, Marvin > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Peng Yuan > Sent: Thursday, August 16, 2018 6:48 PM > To: dts@dpdk.org > Cc: Peng, Yuan > Subject: [dts] [PATCH] tests: Add verification after flush rule to > TestSuite_queue_region.py >=20 > Add some verification after flush rule, > Change some actions for fortpark card. > The packet not match any queue region rule will go to queue region 0. >=20 > Signed-off-by: Peng Yuan >=20 > diff --git a/tests/TestSuite_queue_region.py > b/tests/TestSuite_queue_region.py > index 9615388..2e4348a 100644 > --- a/tests/TestSuite_queue_region.py > +++ b/tests/TestSuite_queue_region.py > @@ -196,20 +196,19 @@ class TestQueue_region(TestCase): >=20 > def test_pctype_map_queue_region(self): > # set queue region on a port > - self.dut.send_expect("set port 0 queue-region region_id 0 > queue_start_index 1 queue_num 1", "testpmd> ") > + self.dut.send_expect("set port 0 queue-region region_id 0 > queue_start_index 1 queue_num 2", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 1 > queue_start_index 3 queue_num 2", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 2 > queue_start_index 6 queue_num 2", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 3 > queue_start_index 8 queue_num 2", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 4 > queue_start_index 11 queue_num 4", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 5 > queue_start_index 15 queue_num 1", "testpmd> ") > - self.dut.send_expect("set port 0 queue-region region_id 6 > queue_start_index 2 queue_num 1", "testpmd> ") > + self.dut.send_expect("set port 0 queue-region region_id 6 > queue_start_index 5 queue_num 1", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 7 > queue_start_index 10 queue_num 1", "testpmd> ") >=20 > # Set the mapping of flowtype to region index on a port > self.dut.send_expect("set port 0 queue-region region_id 0 flowty= pe > 31", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 1 flowty= pe > 32", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 2 flowty= pe > 33", "testpmd> ") > - self.dut.send_expect("set port 0 queue-region region_id 3 flowty= pe > 34", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 4 flowty= pe > 35", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 6 flowty= pe > 36", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 2 flowty= pe > 41", "testpmd> ") > @@ -217,22 +216,16 @@ class TestQueue_region(TestCase): > self.dut.send_expect("set port 0 queue-region region_id 4 flowty= pe > 44", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 5 flowty= pe > 45", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 7 flowty= pe > 46", "testpmd> ") > - self.dut.send_expect("set port 0 queue-region region_id 1 flowty= pe > 63", "testpmd> ") > self.dut.send_expect("set port 0 queue-region flush on", "testpm= d> ") >=20 I found it's hard for me to link the flowtype and real packets.=20 Maybe one dictionary which tracking the queue region/flowtype/packet type w= ill make this case more clear. > # send the packets and verify the results > - queue_region =3D ["1"] > + queue_region =3D ["1", "2"] Not sure why enlarge this region, look like not match the test plan. > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "udp") >=20 > # fortville can't parse the TCP SYN type packet, fortpark can pa= rse > it. > - # but you need to update hardware defined pctype to software def= ined > - # flow type mapping table manully. > if(self.nic in ["fortpark_TLV"]): > - self.dut.send_expect("port config 0 pctype mapping update 32= 1", > "testpmd> ") > - self.dut.send_expect("port config all rss 1", "testpmd> ") > queue_region =3D ["3", "4"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, > pkt_type=3D"tcp", flags=3D"S") > - self.dut.send_expect("port config all rss all", "testpmd> ") > else: > queue_region =3D ["6", "7"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, > pkt_type=3D"tcp", flags=3D"S") > @@ -240,17 +233,25 @@ class TestQueue_region(TestCase): > queue_region =3D ["6", "7"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "tcp", > flags=3D"PA") >=20 > - queue_region =3D ["8", "9"] > + # not assign ipv4-sctp packet to any queue region, the packet to > queue region 0. > + queue_region =3D ["1", "2"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "sctp", > tag=3D1) >=20 > queue_region =3D ["11", "12", "13", "14"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "ipv4") >=20 > - queue_region =3D ["2"] > + queue_region =3D ["5"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "ipv4", > frag=3D1) >=20 > - queue_region =3D ["8", "9"] > - self.send_and_check(queue_region, mac=3Dself.pf_mac, > pkt_type=3D"ipv6_tcp") > + # fortville can't parse the TCP SYN type packet, fortpark can pa= rse > it. > + # default is SYN mode. > + # not assign ipv4-tcp SYN packet to any queue region, the packet= to > queue region 0. > + if(self.nic in ["fortpark_TLV"]): > + queue_region =3D ["1", "2"] > + self.send_and_check(queue_region, mac=3Dself.pf_mac, > pkt_type=3D"ipv6_tcp") > + else: > + queue_region =3D ["8", "9"] > + self.send_and_check(queue_region, mac=3Dself.pf_mac, > pkt_type=3D"ipv6_tcp") >=20 > queue_region =3D ["11", "12", "13", "14"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, > pkt_type=3D"ipv6_sctp", tag=3D2) > @@ -261,7 +262,8 @@ class TestQueue_region(TestCase): > queue_region =3D ["15"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "ipv6") >=20 > - queue_region =3D ["3", "4"] > + # not assign L2 packet to any queue region, the packet to queue > region 0. > + queue_region =3D ["1", "2"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "L2", > ethertype=3D0x88bb) >=20 > queue_region =3D ["11", "12", "13", "14"] > @@ -270,14 +272,28 @@ class TestQueue_region(TestCase): > # clear all the queue region configuration > # check if there is 1 flow rule have been created > out =3D self.dut.send_expect("show port 0 queue-region", "testpm= d> ") > - self.get_and_compare_rules(out, 8, 12, 0) > + self.get_and_compare_rules(out, 8, 10, 0) > self.dut.send_expect("set port 0 queue-region flush off", "testp= md> > ") > out =3D self.dut.send_expect("show port 0 queue-region", "testpm= d> ") > self.get_and_compare_rules(out, 0, 0, 0) >=20 > + # confirm packet not to the same queue after flush all the queue > region rull. > + self.send_packet_pctype(mac=3Dself.pf_mac, pkt_type=3D"udp") > + queue =3D self.get_queue_number() > + self.verify(queue not in ["1", "2"], "the queue regions have not > been flushed clearly.") > + self.send_packet_pctype(mac=3Dself.pf_mac, pkt_type=3D"sctp") > + queue =3D self.get_queue_number() > + self.verify(queue not in ["1", "2"], "the queue regions have not > been flushed clearly.") > + self.send_packet_pctype(mac=3Dself.pf_mac, pkt_type=3D"ipv4") > + queue =3D self.get_queue_number() > + self.verify(queue not in ["10", "11", "12", "13"], "the queue > regions have not been flushed clearly.") > + self.send_packet_pctype(mac=3Dself.pf_mac, pkt_type=3D"ipv6_tcp"= ) > + queue =3D self.get_queue_number() > + self.verify(queue not in ["8", "9"], "the queue regions have not > been flushed clearly.") > + > def test_up_map_queue_region(self): > # set queue region on a port > - self.dut.send_expect("set port 0 queue-region region_id 0 > queue_start_index 0 queue_num 1", "testpmd> ") > + self.dut.send_expect("set port 0 queue-region region_id 0 > queue_start_index 14 queue_num 2", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 6 > queue_start_index 1 queue_num 8", "testpmd> ") > self.dut.send_expect("set port 0 queue-region region_id 2 > queue_start_index 10 queue_num 4", "testpmd> ") >=20 > @@ -289,10 +305,10 @@ class TestQueue_region(TestCase): > self.dut.send_expect("set port 0 queue-region flush on", "testpm= d> ") >=20 > # send the packets and verify the results > - queue_region =3D ["0"] > + queue_region =3D ["14", "15"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "udp", > prio=3D4) >=20 > - queue_region =3D ["0"] > + queue_region =3D ["14", "15"] > self.send_and_check(queue_region, mac=3Dself.pf_mac, pkt_type=3D= "udp", > prio=3D3) >=20 > queue_region =3D ["1", "2", "3", "4", "5", "6", "7", "8"] > @@ -309,7 +325,7 @@ class TestQueue_region(TestCase): >=20 > self.send_packet_pctype(mac=3Dself.pf_mac, pkt_type=3D"udp") > queue =3D self.get_queue_number() > - self.verify(queue not in ["10", "11", "12", "13"], "the packet > doesn't enter the expected queue.") > + self.verify(queue in ["14", "15"], "the packet doesn't enter the > expected queue.") >=20 > # clear all the queue region configuration > out =3D self.dut.send_expect("show port 0 queue-region", "testpm= d> ") > @@ -318,10 +334,13 @@ class TestQueue_region(TestCase): > out =3D self.dut.send_expect("show port 0 queue-region", "testpm= d> ") > self.get_and_compare_rules(out, 0, 0, 0) >=20 > - # confirm packet can't into the previous queue_region > + # confirm packet not to the same queue after flush all the queue > region rull. > self.send_packet_up(mac=3Dself.pf_mac, pkt_type=3D"udp", prio=3D= 7) > queue =3D self.get_queue_number() > self.verify(queue not in ["10", "11", "12", "13"], "the queue > regions have not been flushed clearly.") > + self.send_packet_up(mac=3Dself.pf_mac, pkt_type=3D"tcp", prio=3D= 2) > + queue =3D self.get_queue_number() > + self.verify(queue not in ["10", "11", "12", "13"], "the queue > regions have not been flushed clearly.") >=20 > def test_boundary_values(self): > # boundary value testing of "Set a queue region on a port" > -- > 2.7.4