From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5B332A0352; Wed, 6 May 2020 07:42:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 458131D6D9; Wed, 6 May 2020 07:42:00 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 10A511D69E for ; Wed, 6 May 2020 07:41:57 +0200 (CEST) IronPort-SDR: dJvmJWrWWEV3JKAXCL/33Ar0BPWlrGpOs4JCbOKiuShi+L/AhV0OElv4kiex+oYSP1RpXLgrc4 LBPzTv/sIahQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 May 2020 22:41:57 -0700 IronPort-SDR: aNn4wGsJWTZbuj+Z4qQnSUJUwBJEEXOpvROa1KsdYpaEucCgU+p2+Y0/4vU2F38DaN/io+xoaC g12lzZA0JLxA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,358,1583222400"; d="scan'208";a="304696951" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by FMSMGA003.fm.intel.com with ESMTP; 05 May 2020 22:41:57 -0700 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 5 May 2020 22:41:56 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 5 May 2020 22:41:56 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.225]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.181]) with mapi id 14.03.0439.000; Wed, 6 May 2020 13:41:54 +0800 From: "Tu, Lijuan" To: "Xu, HailinX" , "dts@dpdk.org" CC: "Xu, HailinX" Thread-Topic: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands Thread-Index: AQHWHst74A1zRTzF5Umih3/051t/g6iakxoA Date: Wed, 6 May 2020 05:41:53 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0BC220EE@SHSMSX101.ccr.corp.intel.com> References: <1588235706-142813-1-git-send-email-hailinx.xu@intel.com> In-Reply-To: <1588235706-142813-1-git-send-email-hailinx.xu@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 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 v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands 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: , Errors-To: dts-bounces@dpdk.org Sender: "dts" 1, please remove your commented code. 2, why commented the code of " Disable RSS hash function " in test_disable_= enable_rss, around line 188. > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Xu Hailin > Sent: Thursday, April 30, 2020 4:35 PM > To: dts@dpdk.org > Cc: Xu, HailinX > Subject: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create f= low > rule commands >=20 > From: "xu,hailin" >=20 > i04e driver changed,so create rss flow rule need change. >=20 > Signed-off-by: xu,hailin > --- > tests/TestSuite_rss_to_rte_flow.py | 211 ++++++++++++++++++++++++++++-- > ------- > 1 file changed, 161 insertions(+), 50 deletions(-) >=20 > diff --git a/tests/TestSuite_rss_to_rte_flow.py > b/tests/TestSuite_rss_to_rte_flow.py > index dd7c869..56b2266 100644 > --- a/tests/TestSuite_rss_to_rte_flow.py > +++ b/tests/TestSuite_rss_to_rte_flow.py > @@ -109,6 +109,7 @@ class TestRSS_to_Rteflow(TestCase): > self.tester.scapy_append('sendp(%s, iface=3D"%s")' % (pkt, self.= tester_itf)) > self.tester.scapy_execute() > queue =3D self.get_queue_number() > + print('queue=3D%s' % queue) > self.verify(queue in rss_queue, "the packet doesn't enter the ex= pected > RSS queue.") > return queue >=20 > @@ -188,21 +189,32 @@ class TestRSS_to_Rteflow(TestCase): > self.dut.send_expect("start", "testpmd> ", 120) >=20 > # Disable RSS hash function > - self.dut.send_expect( > + """self.dut.send_expect( > "flow create 0 ingress pattern end actions rss types none en= d / end", > "created") > if self.nic =3D=3D 'foxville': > self.dut.send_expect("flow flush 0", "testpmd> ") > self.dut.send_expect( > - "show port 0 rss-hash", "RSS disabled") > - # send the packets and verify the results > + "show port 0 rss-hash key", "RSS disabled") > + send the packets and verify the results > self.send_packet("ipv4-other", self.tester_itf) > out =3D self.dut.send_expect("stop", "testpmd> ", 120) > self.check_packet_queue("0", out) > - self.dut.send_expect("start", "testpmd> ", 120) > + self.dut.send_expect("start", "testpmd> ", 120)""" [Lijuan] why commented these code ? if commented them , the case is not mat= ch case name " test_disable_enable_rss" >=20 > # Enable RSS hash function all > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types all end= / end", > "created") > + rule_list =3D ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp",= "ipv4-other", > "ipv6-frag", "ipv6-tcp", "ipv6-udp" > + , "ipv6-sctp", "ipv6-other", "l2-payload"] > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + if rule =3D=3D "ipv4-other" or rule =3D=3D "ipv4-frag": > + parameter =3D 'ipv4' > + elif rule =3D=3D "ipv6-frag" or rule =3D=3D "ipv6-other": > + parameter =3D 'ipv6' > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types end= queues 0 1 > 2 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end actions r= ss types %s > end queues end / end" % ( > + parameter, rule), "created") > if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsvi= lle", > "fortville_spirit_single", "fortpark_TLV","fort= park_BASE-T", > "fortville_25g"]): > self.dut.send_expect( > @@ -249,7 +261,9 @@ class TestRSS_to_Rteflow(TestCase): >=20 > # enable ipv4-udp rss function > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4-ud= p end / > end", "created") > + "flow create 0 ingress pattern end actions rss types end qu= eues 0 1 2 > 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / udp / end > + actions rss types ipv4-udp end queues end / end", "created") > self.dut.send_expect( > "show port 0 rss-hash", "ipv4-udp udp") > # send the packets and verify the results @@ -276,11 +290,16 @@ = class > TestRSS_to_Rteflow(TestCase): > # Create a rss queue rule > if self.nic in ['foxville',"springville"]: > self.dut.send_expect( > - #"flow create 0 ingress pattern end actions rss queues 1= 4 7 end / > end", "created") > - "flow create 0 ingress pattern end actions rss queues 1 = 2 3 end / > end", "created") > + "flow create 0 ingress pattern end actions rss types end= queues 1 2 > 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / end action= s rss types > ipv4-other end queues end / end", > + "created") > else: > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 1 = 4 7 end / > end", "created") > + "flow create 0 ingress pattern end actions rss types end= queues 1 4 > 7 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / end action= s rss types > ipv4-other end queues end / end", > + "created") >=20 > # send the packets and verify the results > # ipv4-other and ipv6-other is enabled by default. > @@ -289,8 +308,8 @@ class TestRSS_to_Rteflow(TestCase): > if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsvi= lle", > "fortville_spirit_single", "fortpark_TLV","fort= park_BASE-T", > "fortville_25g"]): > self.send_and_check(self.pkt4, rss_queue) > - self.send_and_check(self.pkt8, rss_queue) > rss_queue =3D ["0"] > + self.send_and_check(self.pkt8, rss_queue) > self.send_and_check(self.pkt1, rss_queue) > self.send_and_check(self.pkt2, rss_queue) > self.send_and_check(self.pkt3, rss_queue) @@ -310,23 +329,28= @@ > class TestRSS_to_Rteflow(TestCase): > self.send_and_check(self.pkt8, rss_queue) >=20 > # There can't be more than one RSS queue rule existing. > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 3 end = / end", > "error") > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4-ud= p end > queues 3 end / end", "error") > + #self.dut.send_expect( > + # "flow create 0 ingress pattern end actions rss types end qu= eues 3 > end / end", "error") > + #self.dut.send_expect( > + # "flow create 0 ingress pattern eth / ipv4 / udp / end acti= ons rss > types ipv4-udp end queues end / end", "error") > + > + > # Flush the rules and create a new RSS queue rule. > - self.dut.send_expect("flow flush 0", "testpmd> ") > + #self.dut.send_expect("flow flush 0", "testpmd> ") > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 3 end = / end", > "created") > + "flow create 0 ingress pattern end actions rss types end que= ues 3 end > / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / udp / end actio= ns rss types > ipv4-udp end queues end / end", > + "created") > # Send the packets and verify the results > if (self.nic in ["fortville_eagle", "fortville_spirit","carlsvil= le", > "fortville_spirit_single", "fortpark_TLV","fort= park_BASE-T", > "fortville_25g"]): > rss_queue =3D ["3"] > self.send_and_check(self.pkt4, rss_queue) > - self.send_and_check(self.pkt8, rss_queue) > + self.send_and_check(self.pkt2, rss_queue) > rss_queue =3D ["0"] > + self.send_and_check(self.pkt8, rss_queue) > self.send_and_check(self.pkt1, rss_queue) > - self.send_and_check(self.pkt2, rss_queue) > self.send_and_check(self.pkt3, rss_queue) > self.send_and_check(self.pkt5, rss_queue) > self.send_and_check(self.pkt6, rss_queue) @@ -345,14 +369,18= @@ > class TestRSS_to_Rteflow(TestCase): >=20 > # Set a wrong parameter: queue ID is 16 > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 8 end = / end", > "error") > + "flow create 0 ingress pattern end actions rss types end > + queues 8 end / end", "error") > # Set all the queues to the rule > if self.nic in ['foxville', 'springville']: > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 0 = 1 2 3 end / > end", "created") > + "flow create 0 ingress pattern end actions rss types end= queues 0 1 > 2 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / end > + actions rss types ipv4-other end queues end / end", "created") > else: > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 0 = 1 2 3 4 5 6 7 > end / end", "created") > + "flow create 0 ingress pattern end actions rss types end= queues 0 1 > 2 3 4 5 6 7 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / end > + actions rss types ipv4-other end queues end / end ", "created") >=20 > def test_different_types_rss_queue_rule(self): > """ > @@ -367,13 +395,26 @@ class TestRSS_to_Rteflow(TestCase): >=20 > # Create a rss queue rule > if self.nic in ['foxville', 'springville']: > - self.dut.send_expect( > - #"flow create 0 ingress pattern end actions rss types ud= p ipv4-tcp > ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created") > - "flow create 0 ingress pattern end actions rss types udp= ipv4-tcp > ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created") > + rule_list =3D ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-ud= p", "ipv4- > other"] > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + if rule =3D=3D "ipv4-other": > + parameter =3D 'ipv4' > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types= end queues > 1 2 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end actio= ns rss types %s > end queues end / end" % ( > + parameter, rule), "created") > else: > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types udp= ipv4-tcp > ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created") > - > + rule_list =3D ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-ud= p", "ipv4- > other"] > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + if rule =3D=3D "ipv4-other": > + parameter =3D 'ipv4' > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types= end queues > 1 4 7 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end > + actions rss types %s end queues end / end" % (parameter, rule), > + "created") > # send the packets and verify the results > rss_queue =3D ["1", "4", "7"] > if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsvi= lle", @@ -408,8 > +449,10 @@ class TestRSS_to_Rteflow(TestCase): > self.send_and_check(self.pkt8, rss_queue) >=20 > # There can't be more than one RSS queue rule existing. > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv6-ot= her end > queues 3 end / end", "error") > + #self.dut.send_expect( > + # "flow create 0 ingress pattern end actions rss types end q= ueues 3 > end / end", "error") > + #self.dut.send_expect( > + # "flow create 0 ingress pattern eth / ipv6 / end actions = rss types > ipv6-other end queues end / end", "error") >=20 > def test_set_key_keylen(self): > """ > @@ -432,8 +475,11 @@ class TestRSS_to_Rteflow(TestCase): >=20 > # Create a rss rule > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4-ud= p end / > end", "created") > + "flow create 0 ingress pattern end actions rss types end qu= eues 0 1 2 > 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / udp / end > + actions rss types ipv4-udp end queues end / end", "created") > out1 =3D self.dut.send_expect("show port 0 rss-hash key", "testp= md> ", > 120) > + print('out1=3D%s' % out1) > rss_queue =3D ["0", "1", "2", "3"] > queue1 =3D self.send_and_check(pkt1, rss_queue) > queue2 =3D self.send_and_check(pkt2, rss_queue) @@ -441,19 +487,= 26 > @@ class TestRSS_to_Rteflow(TestCase): > queue4 =3D self.send_and_check(pkt4, rss_queue) > queue5 =3D self.send_and_check(pkt5, rss_queue) > list1 =3D [queue1, queue2, queue3, queue4, queue5] > + print('list1=3D%s' % list1) >=20 > # Create a rss key rule > self.dut.send_expect("flow flush 0", "testpmd> ") > key =3D > "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012 > 3456789012345678901234567890FFFFFFFFFFFF" > + > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4-ud= p end > key %s / end" % key, "created") > + "flow create 0 ingress pattern eth / ipv4 / udp / end action= s rss types > ipv4-udp end queues end key %s / end" % key, > + #"flow create 0 ingress pattern eth / ipv4 / udp / end actio= ns rss > types ipv4-udp end queues end key %s / end" % key, > + "created") > + #self.dut.send_expect("port config 0 rss-hash-key ipv4 %s" % > + key, 'testpmd>') > out2 =3D self.dut.send_expect("show port 0 rss-hash key", "testp= md> ", > 120) > + print('out2=3D%s' % out2) > key_queue1 =3D self.send_and_check(pkt1, rss_queue) > key_queue2 =3D self.send_and_check(pkt2, rss_queue) > key_queue3 =3D self.send_and_check(pkt3, rss_queue) > key_queue4 =3D self.send_and_check(pkt4, rss_queue) > key_queue5 =3D self.send_and_check(pkt5, rss_queue) > list2 =3D [key_queue1, key_queue2, key_queue3, key_queue4, > key_queue5] > + print('list2=3D%s' % list2) >=20 > self.verify((key in out2) and (out1 !=3D out2) and (list1 !=3D l= ist2), "the key > setting doesn't take effect.") >=20 > @@ -462,14 +515,17 @@ class TestRSS_to_Rteflow(TestCase): > key =3D > "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012 > 3456789012345678901234567890FFFFFFFFFFFF" > key_len =3D "50" > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4-ud= p end > key %s key_len %s / end" % (key, key_len), "created") > + "flow create 0 ingress pattern eth / ipv4 / udp / end action= s rss types > ipv4-udp end queues end key %s key_len %s / end " % (key, key_len), > + "created") > out3 =3D self.dut.send_expect("show port 0 rss-hash key", "testp= md> ", > 120) > + print('out3=3D%s' % out3) > key_queue1 =3D self.send_and_check(pkt1, rss_queue) > key_queue2 =3D self.send_and_check(pkt2, rss_queue) > key_queue3 =3D self.send_and_check(pkt3, rss_queue) > key_queue4 =3D self.send_and_check(pkt4, rss_queue) > key_queue5 =3D self.send_and_check(pkt5, rss_queue) > list3 =3D [key_queue1, key_queue2, key_queue3, key_queue4, > key_queue5] > + print('list3=3D%s' % list3) >=20 > self.verify((key not in out3) and (out3 !=3D out1 !=3D out2) and= (list3 !=3D > list1 !=3D list2), "the key setting doesn't take effect.") >=20 > @@ -478,17 +534,22 @@ class TestRSS_to_Rteflow(TestCase): > key =3D > "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012 > 3456789012345678901234567890FFFFFF" > key_len =3D "52" > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4-ud= p end > key %s key_len %s / end" % (key, key_len), "created") > + "flow create 0 ingress pattern eth / ipv4 / udp / end action= s rss types > ipv4-udp end queues end key %s key_len %s / end " % ( > + key, key_len), > + "created") > out4 =3D self.dut.send_expect("show port 0 rss-hash key", "testp= md> ", > 120) > + print('out=3D%s' % out4) > key_queue1 =3D self.send_and_check(pkt1, rss_queue) > key_queue2 =3D self.send_and_check(pkt2, rss_queue) > key_queue3 =3D self.send_and_check(pkt3, rss_queue) > key_queue4 =3D self.send_and_check(pkt4, rss_queue) > key_queue5 =3D self.send_and_check(pkt5, rss_queue) > list4 =3D [key_queue1, key_queue2, key_queue3, key_queue4, > key_queue5] > + print('list4=3D%s' % list4) >=20 > self.verify((key in out4) and (out4 !=3D out1 !=3D out2 !=3D out= 3) and (list4 !=3D > list1 !=3D list2), "the key setting doesn't take effect.") >=20 > + > def test_disable_rss_in_commandline(self): > """ > Set RSS queue rule while disable RSS in command-line. > @@ -501,8 +562,19 @@ class TestRSS_to_Rteflow(TestCase): > time.sleep(2) >=20 > # Create a rss queue rule > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types all end= / end", > "created") > + rule_list =3D ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp",= "ipv4-other", > "ipv6-frag", "ipv6-tcp", "ipv6-udp" > + , "ipv6-sctp", "ipv6-other", "l2-payload"] > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + if rule =3D=3D "ipv4-other" or rule =3D=3D "ipv4-frag": > + parameter =3D 'ipv4' > + elif rule =3D=3D "ipv6-frag" or rule =3D=3D "ipv6-other": > + parameter =3D 'ipv6' > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types end= queues 0 1 > 2 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end actions r= ss types %s > end queues end / end" % ( > + parameter, rule), "created") > self.send_packet("ipv4-udp", self.tester_itf) > out =3D self.dut.send_expect("stop", "testpmd> ", 120) > self.check_packet_queue("all", out) @@ -514,12 +586,34 @@ class > TestRSS_to_Rteflow(TestCase): > self.dut.send_expect("start", "testpmd> ", 120) > time.sleep(2) > # Create a rss queue rule > + rule_list =3D ["ipv6-tcp", "ipv4-udp", "ipv4-sctp", "ipv6-other"= , > + "ipv6-sctp"] > if self.nic in ['foxville', 'springville']: > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv= 6-tcp ipv4- > udp sctp ipv6-other end queues 1 2 3 end / end", "created") > + #self.dut.send_expect( > + # "flow create 0 ingress pattern end actions rss types ip= v6-tcp ipv4- > udp sctp ipv6-other end queues 1 2 3 end / end", "created") > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + if rule =3D=3D "ipv6-other": > + parameter =3D 'ipv6' > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types= end queues > 1 2 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end actio= ns rss types %s > end queues end / end" % ( > + parameter, rule), "created") > else: > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv= 6-tcp ipv4- > udp sctp ipv6-other end queues 5 6 7 end / end", "created") > + "flow create 0 ingress pattern end actions rss types end= queues 5 6 > 7 end / end", "created") > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + if rule =3D=3D "ipv6-other": > + parameter =3D 'ipv6' > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types= end queues > 5 6 7 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end actio= ns rss types %s > end queues end / end" % ( > + parameter, rule), "created") > + #self.dut.send_expect( > + # "flow create 0 ingress pattern end actions rss types ip= v6-tcp ipv4- > udp sctp ipv6-other end queues 5 6 7 end / end", > + # "created") > # send the packets and verify the results > rss_queue =3D ["5", "6", "7"] > if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsvi= lle", @@ -570,12 > +664,21 @@ class TestRSS_to_Rteflow(TestCase): > time.sleep(2) >=20 > # Create a rss queue rule > + rule_list =3D ["ipv4-udp", "ipv6-udp"] > if self.nic in ['foxville', 'springville']: > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types udp= end queues > 1 2 3 end / end", "created") > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types= end queues > 1 2 3 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end > + actions rss types %s end queues end / end" % (parameter, rule), > + "created") > else: > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types udp= end queues > 3 4 5 end / end", "created") > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types= end queues > 3 4 5 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end > + actions rss types %s end queues end / end" % (parameter, rule), > + "created") > # send the packets and verify the results > rss_queue =3D ["1", "2", "3"] if self.nic in ['foxville', 'sprin= gville'] else ["3", > "4", "5"] > self.send_and_check(self.pkt2, rss_queue) @@ -595,7 +698,7 @@ cl= ass > TestRSS_to_Rteflow(TestCase): > rss_queue =3D ["1"] > self.send_and_check(self.pkt2, rss_queue) > # There can't be more than one RSS queue rule existing. > - self.dut.send_expect("flow destroy 0 rule 1", "testpmd> ") > + self.dut.send_expect("flow destroy 0 rule 4", "testpmd> ") > rss_queue =3D ["1", "2", "3"] if self.nic in ['foxville', 'sprin= gville'] else ["3", > "4", "5"] > self.send_and_check(self.pkt2, rss_queue) >=20 > @@ -612,8 +715,14 @@ class TestRSS_to_Rteflow(TestCase): > time.sleep(2) >=20 > # Create a rss queue rule. > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types tcp end= queues 7 > 8 10 11 12 14 15 end / end", "created") > + rule_list =3D ["ipv4-tcp", "ipv6-tcp"] > + for rule in rule_list: > + parameter =3D rule.replace('-', ' / ') > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types end= queues 7 8 > 10 11 12 14 15 end / end", "created") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / %s / end actions rs= s types %s > end queues end / end" % (parameter, rule), > + "created") > # send the packets and verify the results > rss_queue =3D ["7", "8", "10", "11", "12", "14", "15"] > queue1 =3D self.send_and_check(self.prio_pkt1, rss_queue) @@ -63= 7,8 > +746,8 @@ class TestRSS_to_Rteflow(TestCase): > queue3 =3D self.send_and_check(self.prio_pkt3, rss_queue) >=20 > # Destroy one queue region rule, all the rules become invalid. > - self.dut.send_expect("flow destroy 0 rule 2", "testpmd> ") > - rss_queue =3D ["0"] > + self.dut.send_expect("flow destroy 0 rule 6", "testpmd> ") > + rss_queue =3D ["7", "8", "10", "11", "12", "14", "15"] > self.send_and_check(self.prio_pkt1, rss_queue) > self.send_and_check(self.prio_pkt2, rss_queue) > self.send_and_check(self.prio_pkt3, rss_queue) @@ -657,7 +766,7 = @@ > class TestRSS_to_Rteflow(TestCase): >=20 > # Create a rss queue rule. > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 8 10 1= 1 12 15 > end / end", "created") > + "flow create 0 ingress pattern end actions rss types end > + queues 8 10 11 12 15 end / end", "created") > # Set a queue region with invalid queue ID > self.dut.send_expect( > "flow create 0 ingress pattern vlan tci is 0x2000 / end acti= ons rss > queues 8 9 end / end", "error") @@ -695,7 +804,9 @@ class > TestRSS_to_Rteflow(TestCase): >=20 > # Create a RSS queue rule. > self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 6 7 en= d / end", > "testpmd> ") > + "flow create 0 ingress pattern end actions rss types end qu= eues 6 7 > end / end", "testpmd> ") > + self.dut.send_expect( > + "flow create 0 ingress pattern eth / ipv4 / udp / end > + actions rss types ipv4-udp end queues end / end", "testpmd> ") > # send the packets and verify the results > rss_queue =3D ["1"] > self.send_and_check(self.pkt2, rss_queue) > -- > 1.8.3.1