The spinville has only 4 queues, need to adapt in code Signed-off-by: ChenBo <box.c.chen@intel.com> --- tests/TestSuite_rss_to_rte_flow.py | 97 +++++++++++++++++++++++------- 1 file changed, 75 insertions(+), 22 deletions(-) diff --git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rte_flow.py index 469a271..21ba8dc 100644 --- a/tests/TestSuite_rss_to_rte_flow.py +++ b/tests/TestSuite_rss_to_rte_flow.py @@ -897,18 +897,28 @@ class TestRSS_to_Rteflow(TestCase): """ self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", "fortville_spirit_single", "fortpark_TLV", "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained") + if self.nic == 'springville': + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --port-topology=chained") + else: + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained") self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) self.dut.send_expect("set verbose 1", "testpmd> ", 120) self.dut.send_expect("start", "testpmd> ", 120) time.sleep(2) # Create a rss queue rule - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created") + if self.nic == 'springville': + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss queues 1 2 end / end", "created") + else: + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created") # send the packets and verify the results ptype_list1 = ["ipv4-other", "ipv4-frag", "ipv4-udp", "ipv4-tcp", "ipv4-sctp", "ipv6-other", "ipv6-frag", "ipv6-udp", "ipv6-tcp", "ipv6-sctp"] - self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], port_id=0) + if self.nic == 'springville': + self.send_check_100_packet_queue(ptype_list1, ["1", "2"], port_id=0) + else: + self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], port_id=0) # There can't be more than one RSS queue rule existing. self.dut.send_expect( @@ -930,8 +940,12 @@ class TestRSS_to_Rteflow(TestCase): self.dut.send_expect( "flow create 0 ingress pattern end actions rss queues 8 end / end", "error") # Set all the queues to the rule - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end / end", "created") + if self.nic == 'springville': + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss queues 0 1 2 3 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") self.send_check_100_packet_queue(ptype_list1, "all", port_id=0) def test_different_types_ixgbe_igb(self): @@ -940,15 +954,22 @@ class TestRSS_to_Rteflow(TestCase): """ self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", "fortville_spirit_single", "fortpark_TLV", "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained") + if self.nic == 'springville': + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --port-topology=chained") + else: + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained") self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) self.dut.send_expect("set verbose 1", "testpmd> ", 120) self.dut.send_expect("start", "testpmd> ", 120) time.sleep(2) # Create a rss queue rule - 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") + if self.nic == 'springville': + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 2 3 end / end","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") self.dut.send_expect( "show port 0 rss-hash", "all ipv4-tcp ipv4-udp ipv6-udp ipv6-udp-ex udp tcp") ptype_list1 = ["ipv4-udp", "ipv4-tcp", "ipv6-udp"] @@ -957,18 +978,29 @@ class TestRSS_to_Rteflow(TestCase): # send the packets and verify the results if(self.nic in ["cavium_a063", "cavium_a064"]): self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], port_id=0) + elif self.nic == 'springville': + self.send_check_100_packet_queue(ptype_list1, ["1", "2", "3"], port_id=0) + self.send_check_100_packet_queue(ptype_list2, "0", port_id=0) else: self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], port_id=0) self.send_check_100_packet_queue(ptype_list2, "0", port_id=0) # Create different ptype rss rule. self.dut.send_expect("flow flush 0", "testpmd> ") - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types ipv4 ipv6 end queues 3 7 end / end", "created") + + if self.nic == 'springville': + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types ipv4 ipv6 end queues 1 3 end / end", "created") + else: + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types ipv4 ipv6 end queues 3 7 end / end", "created") self.dut.send_expect( "show port 0 rss-hash", "all ipv4 ipv6 ip") ptype_list3 = ["ipv4-other", "ipv4-frag", "ipv4-udp", "ipv4-tcp", "ipv4-sctp", "ipv6-other", "ipv6-frag", "ipv6-udp", "ipv6-tcp", "ipv6-sctp"] - self.send_check_100_packet_queue(ptype_list3, ["3","7"], port_id=0) + if self.nic == 'springville': + self.send_check_100_packet_queue(ptype_list3, ["1", "3"], port_id=0) + else: + self.send_check_100_packet_queue(ptype_list3, ["3","7"], port_id=0) def test_disable_rss_in_commandline_ixgbe_igb(self): """ @@ -976,7 +1008,10 @@ class TestRSS_to_Rteflow(TestCase): """ self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", "fortville_spirit_single", "fortpark_TLV", "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-rss --port-topology=chained") + if self.nic == 'springville': + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --disable-rss --port-topology=chained") + else: + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-rss --port-topology=chained") self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) self.dut.send_expect("set verbose 1", "testpmd> ", 120) self.dut.send_expect("start", "testpmd> ", 120) @@ -995,15 +1030,22 @@ class TestRSS_to_Rteflow(TestCase): self.send_check_100_packet_queue(ptype_list1, "0", port_id=0) # Create a rss queue rule - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp end queues 5 6 7 end / end", "created") + if self.nic == 'springville': + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp end queues 1 2 3 end / end", "created") + else: + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp end queues 5 6 7 end / end", "created") self.dut.send_expect( "show port 0 rss-hash", "all ipv4-udp ipv6-tcp udp tcp") # send the packets and verify the results ptype_list2 = ["ipv4-udp", "ipv6-tcp"] ptype_list3 = ["ipv4-other", "ipv4-frag", "ipv4-tcp", "ipv4-sctp", "ipv6-other", "ipv6-frag", "ipv6-udp", "ipv6-sctp"] - self.send_check_100_packet_queue(ptype_list2, ["5","6","7"], port_id=0) + if self.nic == 'springville': + self.send_check_100_packet_queue(ptype_list2, ["1", "2", "3"], port_id=0) + else: + self.send_check_100_packet_queue(ptype_list2, ["5","6","7"], port_id=0) self.send_check_100_packet_queue(ptype_list3, "0", port_id=0) def test_flow_director_rss_rule_combination_ixgbe_igb(self): @@ -1012,19 +1054,27 @@ class TestRSS_to_Rteflow(TestCase): """ self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", "fortville_spirit_single", "fortpark_TLV", "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --pkt-filter-mode=perfect") + if self.nic == 'springville': + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --disable-rss --port-topology=chained") + else: + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --pkt-filter-mode=perfect") self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) self.dut.send_expect("set verbose 1", "testpmd> ", 120) self.dut.send_expect("start", "testpmd> ", 120) time.sleep(2) # Create a rss queue rule - self.dut.send_expect( - "flow create 0 ingress pattern end actions rss types ipv4-udp end queues 3 4 5 end / end", "created") - self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) + if self.nic == 'springville': + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types ipv4-udp end queues 2 3 end / end", "created") + self.send_and_check(self.pkt2, ["2", "3"], port_id=0) + else: + self.dut.send_expect( + "flow create 0 ingress pattern end actions rss types ipv4-udp end queues 3 4 5 end / end", "created") + self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) # Create a flow director rule - if (self.nic in ["bartonhills", "powerville"]): + if (self.nic in ["bartonhills", "powerville" , "springville"]): self.dut.send_expect( "flow create 0 ingress pattern eth / ipv4 proto is 17 / udp dst is 50 / end actions queue index 1 / end", "created") self.send_and_check(self.pkt2, ["1"], port_id=0) @@ -1034,7 +1084,10 @@ class TestRSS_to_Rteflow(TestCase): self.send_and_check(self.pkt2, ["1"], port_id=0) # Delete the fdir rule self.dut.send_expect("flow destroy 0 rule 1", "testpmd> ") - self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) + if self.nic == 'springville': + self.send_and_check(self.pkt2, ["2", "3"], port_id=0) + else: + self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) def tear_down(self): """ -- 2.17.1
[-- Attachment #1: Type: text/plain, Size: 12826 bytes --] Tested-by: Chen, BoX C <BoX.C.Chen@intel.com> Regards, Chen Bo > -----Original Message----- > From: Chen, BoX C <box.c.chen@intel.com> > Sent: June 30, 2020 13:55 > To: dts@dpdk.org > Cc: Chen, BoX C <box.c.chen@intel.com> > Subject: [dts][PATCH V1] test/rss_to_rte_flow: Support of network adapter > for sprinville > > The spinville has only 4 queues, need to adapt in code > > Signed-off-by: ChenBo <box.c.chen@intel.com> > --- > tests/TestSuite_rss_to_rte_flow.py | 97 +++++++++++++++++++++++------ > - > 1 file changed, 75 insertions(+), 22 deletions(-) > > diff --git a/tests/TestSuite_rss_to_rte_flow.py > b/tests/TestSuite_rss_to_rte_flow.py > index 469a271..21ba8dc 100644 > --- a/tests/TestSuite_rss_to_rte_flow.py > +++ b/tests/TestSuite_rss_to_rte_flow.py > @@ -897,18 +897,28 @@ class TestRSS_to_Rteflow(TestCase): > """ > self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", > "fortville_spirit_single", "fortpark_TLV", > "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) > - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port- > topology=chained") > + if self.nic == 'springville': > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 -- > port-topology=chained") > + else: > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 > + --txq=8 --port-topology=chained") > self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) > self.dut.send_expect("set verbose 1", "testpmd> ", 120) > self.dut.send_expect("start", "testpmd> ", 120) > time.sleep(2) > > # Create a rss queue rule > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", > "created") > + if self.nic == 'springville': > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss queues 1 2 end / end", > "created") > + else: > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss queues 1 > + 4 7 end / end", "created") > # send the packets and verify the results > ptype_list1 = ["ipv4-other", "ipv4-frag", "ipv4-udp", "ipv4-tcp", "ipv4- > sctp", "ipv6-other", "ipv6-frag", "ipv6-udp", "ipv6-tcp", "ipv6-sctp"] > - self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], > port_id=0) > + if self.nic == 'springville': > + self.send_check_100_packet_queue(ptype_list1, ["1", "2"], > port_id=0) > + else: > + self.send_check_100_packet_queue(ptype_list1, > + ["1","4","7"], port_id=0) > > # There can't be more than one RSS queue rule existing. > self.dut.send_expect( > @@ -930,8 +940,12 @@ class TestRSS_to_Rteflow(TestCase): > self.dut.send_expect( > "flow create 0 ingress pattern end actions rss queues 8 end / end", > "error") > # Set all the queues to the rule > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end > / end", "created") > + if self.nic == 'springville': > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss queues 0 1 2 3 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") > self.send_check_100_packet_queue(ptype_list1, "all", port_id=0) > > def test_different_types_ixgbe_igb(self): > @@ -940,15 +954,22 @@ class TestRSS_to_Rteflow(TestCase): > """ > self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", > "fortville_spirit_single", "fortpark_TLV", > "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) > - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port- > topology=chained") > + if self.nic == 'springville': > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 -- > port-topology=chained") > + else: > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 > + --txq=8 --port-topology=chained") > self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) > self.dut.send_expect("set verbose 1", "testpmd> ", 120) > self.dut.send_expect("start", "testpmd> ", 120) > time.sleep(2) > > # Create a rss queue rule > - 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") > + if self.nic == 'springville': > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types udp ipv4-tcp > ipv6-sctp ipv4-other end queues 1 2 3 end / end","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") > self.dut.send_expect( > "show port 0 rss-hash", "all ipv4-tcp ipv4-udp ipv6-udp ipv6-udp-ex > udp tcp") > ptype_list1 = ["ipv4-udp", "ipv4-tcp", "ipv6-udp"] @@ -957,18 +978,29 > @@ class TestRSS_to_Rteflow(TestCase): > # send the packets and verify the results > if(self.nic in ["cavium_a063", "cavium_a064"]): > self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], > port_id=0) > + elif self.nic == 'springville': > + self.send_check_100_packet_queue(ptype_list1, ["1", "2", "3"], > port_id=0) > + self.send_check_100_packet_queue(ptype_list2, "0", > + port_id=0) > else: > self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], > port_id=0) > self.send_check_100_packet_queue(ptype_list2, "0", port_id=0) > > # Create different ptype rss rule. > self.dut.send_expect("flow flush 0", "testpmd> ") > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4 ipv6 end > queues 3 7 end / end", "created") > + > + if self.nic == 'springville': > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types ipv4 ipv6 end > queues 1 3 end / end", "created") > + else: > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types > + ipv4 ipv6 end queues 3 7 end / end", "created") > self.dut.send_expect( > "show port 0 rss-hash", "all ipv4 ipv6 ip") > ptype_list3 = ["ipv4-other", "ipv4-frag", "ipv4-udp", "ipv4-tcp", "ipv4- > sctp", "ipv6-other", "ipv6-frag", "ipv6-udp", "ipv6-tcp", "ipv6-sctp"] > - self.send_check_100_packet_queue(ptype_list3, ["3","7"], port_id=0) > + if self.nic == 'springville': > + self.send_check_100_packet_queue(ptype_list3, ["1", "3"], > port_id=0) > + else: > + self.send_check_100_packet_queue(ptype_list3, ["3","7"], > + port_id=0) > > def test_disable_rss_in_commandline_ixgbe_igb(self): > """ > @@ -976,7 +1008,10 @@ class TestRSS_to_Rteflow(TestCase): > """ > self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", > "fortville_spirit_single", "fortpark_TLV", > "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) > - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 -- > disable-rss --port-topology=chained") > + if self.nic == 'springville': > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 -- > disable-rss --port-topology=chained") > + else: > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 > + --txq=8 --disable-rss --port-topology=chained") > self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) > self.dut.send_expect("set verbose 1", "testpmd> ", 120) > self.dut.send_expect("start", "testpmd> ", 120) @@ -995,15 +1030,22 > @@ class TestRSS_to_Rteflow(TestCase): > self.send_check_100_packet_queue(ptype_list1, "0", port_id=0) > > # Create a rss queue rule > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp > end queues 5 6 7 end / end", "created") > + if self.nic == 'springville': > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4- > udp end queues 1 2 3 end / end", "created") > + else: > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types > + ipv6-tcp ipv4-udp end queues 5 6 7 end / end", "created") > self.dut.send_expect( > "show port 0 rss-hash", "all ipv4-udp ipv6-tcp udp tcp") > > # send the packets and verify the results > ptype_list2 = ["ipv4-udp", "ipv6-tcp"] > ptype_list3 = ["ipv4-other", "ipv4-frag", "ipv4-tcp", "ipv4-sctp", "ipv6- > other", "ipv6-frag", "ipv6-udp", "ipv6-sctp"] > - self.send_check_100_packet_queue(ptype_list2, ["5","6","7"], > port_id=0) > + if self.nic == 'springville': > + self.send_check_100_packet_queue(ptype_list2, ["1", "2", "3"], > port_id=0) > + else: > + self.send_check_100_packet_queue(ptype_list2, > + ["5","6","7"], port_id=0) > self.send_check_100_packet_queue(ptype_list3, "0", port_id=0) > > def test_flow_director_rss_rule_combination_ixgbe_igb(self): > @@ -1012,19 +1054,27 @@ class TestRSS_to_Rteflow(TestCase): > """ > self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville", > "fortville_spirit_single", "fortpark_TLV", > "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic)) > - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --pkt- > filter-mode=perfect") > + if self.nic == 'springville': > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 -- > disable-rss --port-topology=chained") > + else: > + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 > + --txq=8 --pkt-filter-mode=perfect") > self.dut.send_expect("set fwd rxonly", "testpmd> ", 120) > self.dut.send_expect("set verbose 1", "testpmd> ", 120) > self.dut.send_expect("start", "testpmd> ", 120) > time.sleep(2) > > # Create a rss queue rule > - self.dut.send_expect( > - "flow create 0 ingress pattern end actions rss types ipv4-udp end > queues 3 4 5 end / end", "created") > - self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) > + if self.nic == 'springville': > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types ipv4-udp end > queues 2 3 end / end", "created") > + self.send_and_check(self.pkt2, ["2", "3"], port_id=0) > + else: > + self.dut.send_expect( > + "flow create 0 ingress pattern end actions rss types ipv4-udp end > queues 3 4 5 end / end", "created") > + self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) > > # Create a flow director rule > - if (self.nic in ["bartonhills", "powerville"]): > + if (self.nic in ["bartonhills", "powerville" , "springville"]): > self.dut.send_expect( > "flow create 0 ingress pattern eth / ipv4 proto is 17 / udp dst is 50 / > end actions queue index 1 / end", "created") > self.send_and_check(self.pkt2, ["1"], port_id=0) @@ -1034,7 +1084,10 > @@ class TestRSS_to_Rteflow(TestCase): > self.send_and_check(self.pkt2, ["1"], port_id=0) > # Delete the fdir rule > self.dut.send_expect("flow destroy 0 rule 1", "testpmd> ") > - self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) > + if self.nic == 'springville': > + self.send_and_check(self.pkt2, ["2", "3"], port_id=0) > + else: > + self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0) > > def tear_down(self): > """ > -- > 2.17.1 [-- Attachment #2: TestRSS_to_Rteflow.log --] [-- Type: application/octet-stream, Size: 7256540 bytes --]
Applied, thanks
> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of ChenBo
> Sent: 2020年6月30日 13:55
> To: dts@dpdk.org
> Cc: Chen, BoX C <box.c.chen@intel.com>
> Subject: [dts] [PATCH V1] test/rss_to_rte_flow: Support of network adapter for
> sprinville
>
> The spinville has only 4 queues, need to adapt in code
>
> Signed-off-by: ChenBo <box.c.chen@intel.com>
> ---
> tests/TestSuite_rss_to_rte_flow.py | 97 +++++++++++++++++++++++-------
> 1 file changed, 75 insertions(+), 22 deletions(-)
>
> diff --git a/tests/TestSuite_rss_to_rte_flow.py
> b/tests/TestSuite_rss_to_rte_flow.py
> index 469a271..21ba8dc 100644
> --- a/tests/TestSuite_rss_to_rte_flow.py
> +++ b/tests/TestSuite_rss_to_rte_flow.py
> @@ -897,18 +897,28 @@ class TestRSS_to_Rteflow(TestCase):
> """
> self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville",
> "fortville_spirit_single", "fortpark_TLV",
> "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic))
> - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-
> topology=chained")
> + if self.nic == 'springville':
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --port-
> topology=chained")
> + else:
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8
> + --txq=8 --port-topology=chained")
> self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> self.dut.send_expect("set verbose 1", "testpmd> ", 120)
> self.dut.send_expect("start", "testpmd> ", 120)
> time.sleep(2)
>
> # Create a rss queue rule
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end",
> "created")
> + if self.nic == 'springville':
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss queues 1 2 end / end",
> "created")
> + else:
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss queues 1
> + 4 7 end / end", "created")
> # send the packets and verify the results
> ptype_list1 = ["ipv4-other", "ipv4-frag", "ipv4-udp", "ipv4-tcp", "ipv4-sctp",
> "ipv6-other", "ipv6-frag", "ipv6-udp", "ipv6-tcp", "ipv6-sctp"]
> - self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], port_id=0)
> + if self.nic == 'springville':
> + self.send_check_100_packet_queue(ptype_list1, ["1", "2"], port_id=0)
> + else:
> + self.send_check_100_packet_queue(ptype_list1,
> + ["1","4","7"], port_id=0)
>
> # There can't be more than one RSS queue rule existing.
> self.dut.send_expect(
> @@ -930,8 +940,12 @@ class TestRSS_to_Rteflow(TestCase):
> self.dut.send_expect(
> "flow create 0 ingress pattern end actions rss queues 8 end / end",
> "error")
> # Set all the queues to the rule
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end /
> end", "created")
> + if self.nic == 'springville':
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss queues 0 1 2 3 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")
> self.send_check_100_packet_queue(ptype_list1, "all", port_id=0)
>
> def test_different_types_ixgbe_igb(self):
> @@ -940,15 +954,22 @@ class TestRSS_to_Rteflow(TestCase):
> """
> self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville",
> "fortville_spirit_single", "fortpark_TLV",
> "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic))
> - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-
> topology=chained")
> + if self.nic == 'springville':
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --port-
> topology=chained")
> + else:
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8
> + --txq=8 --port-topology=chained")
> self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> self.dut.send_expect("set verbose 1", "testpmd> ", 120)
> self.dut.send_expect("start", "testpmd> ", 120)
> time.sleep(2)
>
> # Create a rss queue rule
> - 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")
> + if self.nic == 'springville':
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-
> sctp ipv4-other end queues 1 2 3 end / end","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")
> self.dut.send_expect(
> "show port 0 rss-hash", "all ipv4-tcp ipv4-udp ipv6-udp ipv6-udp-ex udp
> tcp")
> ptype_list1 = ["ipv4-udp", "ipv4-tcp", "ipv6-udp"] @@ -957,18 +978,29 @@
> class TestRSS_to_Rteflow(TestCase):
> # send the packets and verify the results
> if(self.nic in ["cavium_a063", "cavium_a064"]):
> self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], port_id=0)
> + elif self.nic == 'springville':
> + self.send_check_100_packet_queue(ptype_list1, ["1", "2", "3"],
> port_id=0)
> + self.send_check_100_packet_queue(ptype_list2, "0",
> + port_id=0)
> else:
> self.send_check_100_packet_queue(ptype_list1, ["1","4","7"], port_id=0)
> self.send_check_100_packet_queue(ptype_list2, "0", port_id=0)
>
> # Create different ptype rss rule.
> self.dut.send_expect("flow flush 0", "testpmd> ")
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4 ipv6 end queues
> 3 7 end / end", "created")
> +
> + if self.nic == 'springville':
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types ipv4 ipv6 end
> queues 1 3 end / end", "created")
> + else:
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types
> + ipv4 ipv6 end queues 3 7 end / end", "created")
> self.dut.send_expect(
> "show port 0 rss-hash", "all ipv4 ipv6 ip")
> ptype_list3 = ["ipv4-other", "ipv4-frag", "ipv4-udp", "ipv4-tcp", "ipv4-sctp",
> "ipv6-other", "ipv6-frag", "ipv6-udp", "ipv6-tcp", "ipv6-sctp"]
> - self.send_check_100_packet_queue(ptype_list3, ["3","7"], port_id=0)
> + if self.nic == 'springville':
> + self.send_check_100_packet_queue(ptype_list3, ["1", "3"], port_id=0)
> + else:
> + self.send_check_100_packet_queue(ptype_list3, ["3","7"],
> + port_id=0)
>
> def test_disable_rss_in_commandline_ixgbe_igb(self):
> """
> @@ -976,7 +1008,10 @@ class TestRSS_to_Rteflow(TestCase):
> """
> self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville",
> "fortville_spirit_single", "fortpark_TLV",
> "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic))
> - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-rss
> --port-topology=chained")
> + if self.nic == 'springville':
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --disable-
> rss --port-topology=chained")
> + else:
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8
> + --txq=8 --disable-rss --port-topology=chained")
> self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> self.dut.send_expect("set verbose 1", "testpmd> ", 120)
> self.dut.send_expect("start", "testpmd> ", 120) @@ -995,15 +1030,22 @@
> class TestRSS_to_Rteflow(TestCase):
> self.send_check_100_packet_queue(ptype_list1, "0", port_id=0)
>
> # Create a rss queue rule
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp end
> queues 5 6 7 end / end", "created")
> + if self.nic == 'springville':
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp
> end queues 1 2 3 end / end", "created")
> + else:
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types
> + ipv6-tcp ipv4-udp end queues 5 6 7 end / end", "created")
> self.dut.send_expect(
> "show port 0 rss-hash", "all ipv4-udp ipv6-tcp udp tcp")
>
> # send the packets and verify the results
> ptype_list2 = ["ipv4-udp", "ipv6-tcp"]
> ptype_list3 = ["ipv4-other", "ipv4-frag", "ipv4-tcp", "ipv4-sctp", "ipv6-other",
> "ipv6-frag", "ipv6-udp", "ipv6-sctp"]
> - self.send_check_100_packet_queue(ptype_list2, ["5","6","7"], port_id=0)
> + if self.nic == 'springville':
> + self.send_check_100_packet_queue(ptype_list2, ["1", "2", "3"],
> port_id=0)
> + else:
> + self.send_check_100_packet_queue(ptype_list2,
> + ["5","6","7"], port_id=0)
> self.send_check_100_packet_queue(ptype_list3, "0", port_id=0)
>
> def test_flow_director_rss_rule_combination_ixgbe_igb(self):
> @@ -1012,19 +1054,27 @@ class TestRSS_to_Rteflow(TestCase):
> """
> self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "carlsville",
> "fortville_spirit_single", "fortpark_TLV",
> "fortville_25g","fortpark_BASE-T"], "NIC Unsupported: " + str(self.nic))
> - self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --pkt-filter-
> mode=perfect")
> + if self.nic == 'springville':
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4 --disable-
> rss --port-topology=chained")
> + else:
> + self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8
> + --txq=8 --pkt-filter-mode=perfect")
> self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> self.dut.send_expect("set verbose 1", "testpmd> ", 120)
> self.dut.send_expect("start", "testpmd> ", 120)
> time.sleep(2)
>
> # Create a rss queue rule
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4-udp end queues
> 3 4 5 end / end", "created")
> - self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0)
> + if self.nic == 'springville':
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types ipv4-udp end
> queues 2 3 end / end", "created")
> + self.send_and_check(self.pkt2, ["2", "3"], port_id=0)
> + else:
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types ipv4-udp end
> queues 3 4 5 end / end", "created")
> + self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0)
>
> # Create a flow director rule
> - if (self.nic in ["bartonhills", "powerville"]):
> + if (self.nic in ["bartonhills", "powerville" , "springville"]):
> self.dut.send_expect(
> "flow create 0 ingress pattern eth / ipv4 proto is 17 / udp dst is 50 / end
> actions queue index 1 / end", "created")
> self.send_and_check(self.pkt2, ["1"], port_id=0) @@ -1034,7 +1084,10
> @@ class TestRSS_to_Rteflow(TestCase):
> self.send_and_check(self.pkt2, ["1"], port_id=0)
> # Delete the fdir rule
> self.dut.send_expect("flow destroy 0 rule 1", "testpmd> ")
> - self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0)
> + if self.nic == 'springville':
> + self.send_and_check(self.pkt2, ["2", "3"], port_id=0)
> + else:
> + self.send_and_check(self.pkt2, ["3", "4", "5"], port_id=0)
>
> def tear_down(self):
> """
> --
> 2.17.1