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 DAFE2A00C5; Thu, 7 May 2020 05:01:34 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A59481D9FD; Thu, 7 May 2020 05:01:34 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 04F161C1B3 for ; Thu, 7 May 2020 05:01:32 +0200 (CEST) IronPort-SDR: q3cAO1xqjx4hERz62cnnMR388xNneER9VUzfQ5HBgN1FFUq+rPoyuRYkgn2jNpPgaAwi3PQfCr ldoYJSPITv+A== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2020 20:01:31 -0700 IronPort-SDR: mZzPUKjcC0QBWTW1IllTYn22+LrKzBx7Bn3W+X3mcx8Q0QGPsjACGIK1VjzckZX/Gcp2SXN/to 850SzCxyvDIw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,361,1583222400"; d="scan'208";a="296402251" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga008.jf.intel.com with ESMTP; 06 May 2020 20:01:30 -0700 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 6 May 2020 20:01:28 -0700 Received: from shsmsx105.ccr.corp.intel.com (10.239.4.158) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 6 May 2020 20:01:28 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.210]) by SHSMSX105.ccr.corp.intel.com ([169.254.11.92]) with mapi id 14.03.0439.000; Thu, 7 May 2020 11:01:23 +0800 From: "Xu, HailinX" To: "dts@dpdk.org" Thread-Topic: [dts][PATCH v2] tests/TestSuite_rss_to_rte_flow:modify flow rule commands Thread-Index: AQHWI3O9rK/l8mAhkEqndAzpiF7jjKiaoOEg Date: Thu, 7 May 2020 03:01:23 +0000 Message-ID: References: <1588747756-273163-1-git-send-email-hailinx.xu@intel.com> In-Reply-To: <1588747756-273163-1-git-send-email-hailinx.xu@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 v2] tests/TestSuite_rss_to_rte_flow:modify 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" Tested-by: Xu, Hailin Regards, Xu, Hailin -----Original Message----- From: Xu, HailinX=20 Sent: Wednesday, May 6, 2020 2:49 PM To: dts@dpdk.org Cc: Xu, HailinX Subject: [dts][PATCH v2] tests/TestSuite_rss_to_rte_flow:modify flow rule c= ommands From: "xu,hailin" Because i40e driver changed.so create rss flow rule commands need change. Remove the code of "Disable RSS hash function" in test_disable_enable_rss, = around line 188,because disable rss hash command is invalid Signed-off-by: xu,hailin --- tests/TestSuite_rss_to_rte_flow.py | 224 +++++++++++++++++++++++++++------= ---- 1 file changed, 165 insertions(+), 59 deletions(-) diff --git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rt= e_flow.py index dd7c869..de3eebb 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.te= ster_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 expe= cted RSS queue.") return queue =20 @@ -187,22 +188,24 @@ class TestRSS_to_Rteflow(TestCase): self.check_packet_queue("all", out) self.dut.send_expect("start", "testpmd> ", 120) =20 - # Disable RSS hash function - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types none end = / 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 - 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) - # 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' + if rule =3D=3D "l2-payload": + self.dut.send_expect( + "flow create 0 ingress pattern eth / end actions rss t= ypes l2-payload end queues end / end", "created") + else: + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types e= nd queues 0 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") if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsvill= e", "fortville_spirit_single", "fortpark_TLV","fortpa= rk_BASE-T", "fortville_25g"]): self.dut.send_expect( @@ -249,7 +252,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-udp = end / end", "created") + "flow create 0 ingress pattern end actions rss types end queu= es 0 1 2 3 end / end", "created") + self.dut.send_expect( + "flow create 0 ingress pattern eth / ipv4 / udp / end=20 + 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 +281,16 @@ cl= ass 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 q= ueues 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 1 4 = 7 end / end", "created") + "flow create 0 ingress pattern end actions rss types end q= ueues 1 4 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 # send the packets and verify the results # ipv4-other and ipv6-other is enabled by default. @@ -289,8 +299,8 @@ class TestRSS_to_Rteflow(TestCase): if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsvill= e", "fortville_spirit_single", "fortpark_TLV","fortpa= rk_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 +320,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-udp = end queues 3 end / end", "error") + #self.dut.send_expect( + # "flow create 0 ingress pattern end actions rss types end queu= es 3 end / end", "error") + #self.dut.send_expect( + # "flow create 0 ingress pattern eth / ipv4 / udp / end action= s 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 types end=20 + queues 3 end / end", "created") self.dut.send_expect( - "flow create 0 ingress pattern end actions rss queues 3 end / = end", "created") + "flow create 0 ingress pattern eth / ipv4 / udp / end actions= rss types ipv4-udp end queues end / end", + "created") # Send the packets and verify the results if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville= ", "fortville_spirit_single", "fortpark_TLV","fortpa= rk_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 +360,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=20 + 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 q= ueues 0 1 2 3 end / end", "created") + self.dut.send_expect( + "flow create 0 ingress pattern eth / ipv4 / end =20 + 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 q= ueues 0 1 2 3 4 5 6 7 end / end", "created") + self.dut.send_expect( + "flow create 0 ingress pattern eth / ipv4 / end =20 + actions rss types ipv4-other end queues end / end ", "created") =20 def test_different_types_rss_queue_rule(self): """ @@ -367,13 +386,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 udp = ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created") - "flow create 0 ingress pattern end actions rss types udp i= pv4-tcp ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created") + rule_list =3D ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp"= , "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 e= nd 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 i= pv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created") - + rule_list =3D ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp"= , "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 e= nd queues 1 4 7 end / end", "created") + self.dut.send_expect( + "flow create 0 ingress pattern eth / %s / end =20 + actions rss types %s end queues end / end" % (parameter, rule),=20 + "created") # send the packets and verify the results rss_queue =3D ["1", "4", "7"] if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsvill= e", @@ -408,8 +440,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-othe= r end queues 3 end / end", "error") + #self.dut.send_expect( + # "flow create 0 ingress pattern end actions rss types end que= ues 3 end / end", "error") + #self.dut.send_expect( + # "flow create 0 ingress pattern eth / ipv6 / end actions rs= s types ipv6-other end queues end / end", "error") =20 def test_set_key_keylen(self): """ @@ -432,8 +466,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-udp = end / end", "created") + "flow create 0 ingress pattern end actions rss types end queu= es 0 1 2 3 end / end", "created") + self.dut.send_expect( + "flow create 0 ingress pattern eth / ipv4 / udp / end=20 + actions rss types ipv4-udp end queues end / end", "created") out1 =3D self.dut.send_expect("show port 0 rss-hash key", "testpmd= > ", 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 +478,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 "1234567890123456789012345678901234567890FFFFFFFFFFFF12345= 67890123456789012345678901234567890FFFFFFFFFFFF" + self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types ipv4-udp = end key %s / end" % key, "created") + "flow create 0 ingress pattern eth / ipv4 / udp / end actions = rss types ipv4-udp end queues end key %s / end" % key, + #"flow create 0 ingress pattern eth / ipv4 / udp / end actions= rss types ipv4-udp end queues end key %s / end" % key, + "created") + #self.dut.send_expect("port config 0 rss-hash-key ipv4 %s" %=20 + key, 'testpmd>') out2 =3D self.dut.send_expect("show port 0 rss-hash key", "testpmd= > ", 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_que= ue5] + print('list2=3D%s' % list2) =20 self.verify((key in out2) and (out1 !=3D out2) and (list1 !=3D lis= t2), "the key setting doesn't take effect.") =20 @@ -462,14 +506,17 @@ class TestRSS_to_Rteflow(TestCase): key =3D "1234567890123456789012345678901234567890FFFFFFFFFFFF12345= 67890123456789012345678901234567890FFFFFFFFFFFF" key_len =3D "50" self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types ipv4-udp = end key %s key_len %s / end" % (key, key_len), "created") + "flow create 0 ingress pattern eth / ipv4 / udp / end actions = 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", "testpmd= > ", 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_que= ue5] + 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 +525,22 @@ class TestRSS_to_Rteflow(TestCase): key =3D "1234567890123456789012345678901234567890FFFFFFFFFFFF12345= 67890123456789012345678901234567890FFFFFF" key_len =3D "52" self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types ipv4-udp = end key %s key_len %s / end" % (key, key_len), "created") + "flow create 0 ingress pattern eth / ipv4 / udp / end actions = 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", "testpmd= > ", 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_que= ue5] + print('list4=3D%s' % list4) =20 self.verify((key in out4) and (out4 !=3D out1 !=3D out2 !=3D out3)= 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 +553,23 @@ 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' + if rule =3D=3D "l2-payload": + self.dut.send_expect( + "flow create 0 ingress pattern eth / end actions rss t= ypes l2-payload end queues end / end", "created") + else: + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types e= nd queues 0 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") 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 +581,34 @@ class Te= stRSS_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",= =20 + "ipv6-sctp"] if self.nic in ['foxville', 'springville']: - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types ipv6-= 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 ipv6= -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 e= nd 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 ipv6-= 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 e= nd queues 5 6 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") + #self.dut.send_expect( + # "flow create 0 ingress pattern end actions rss types ipv6= -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", "carlsvill= e", @@ -570,12 +659,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 e= nd 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 e= nd queues 1 2 3 end / end", "created") + self.dut.send_expect( + "flow create 0 ingress pattern eth / %s / end=20 + actions rss types %s end queues end / end" % (parameter, rule),=20 + "created") else: - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types udp e= nd 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 e= nd queues 3 4 5 end / end", "created") + self.dut.send_expect( + "flow create 0 ingress pattern eth / %s / end=20 + actions rss types %s end queues end / end" % (parameter, rule),=20 + "created") # send the packets and verify the results rss_queue =3D ["1", "2", "3"] if self.nic in ['foxville', 'springv= ille'] else ["3", "4", "5"] self.send_and_check(self.pkt2, rss_queue) @@ -595,7 +693,7 @@ clas= s 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', 'springv= ille'] else ["3", "4", "5"] self.send_and_check(self.pkt2, rss_queue) =20 @@ -612,8 +710,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 q= ueues 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 rss = 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) @@ -637,= 8 +741,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 +761,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 11 = 12 15 end / end", "created") + "flow create 0 ingress pattern end actions rss types end =20 + 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 action= s rss queues 8 9 end / end", "error") @@ -695,7 +799,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 end = / end", "testpmd> ") + "flow create 0 ingress pattern end actions rss types end queu= es 6 7 end / end", "testpmd> ") + self.dut.send_expect( + "flow create 0 ingress pattern eth / ipv4 / udp / end=20 + 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