test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands
@ 2020-04-30  8:35 Xu Hailin
  2020-04-30  8:45 ` Xu, HailinX
  2020-05-06  5:41 ` Tu, Lijuan
  0 siblings, 2 replies; 3+ messages in thread
From: Xu Hailin @ 2020-04-30  8:35 UTC (permalink / raw)
  To: dts; +Cc: xu,hailin

From: "xu,hailin" <hailinx.xu@intel.com>

i04e driver changed,so create rss flow rule need change.

Signed-off-by: xu,hailin <hailinx.xu@intel.com>
---
 tests/TestSuite_rss_to_rte_flow.py | 211 ++++++++++++++++++++++++++++---------
 1 file changed, 161 insertions(+), 50 deletions(-)

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="%s")' % (pkt, self.tester_itf))
         self.tester.scapy_execute()
         queue = self.get_queue_number()
+        print('queue=%s' % queue)
         self.verify(queue in rss_queue, "the packet doesn't enter the expected RSS queue.")
         return queue
 
@@ -188,21 +189,32 @@ class TestRSS_to_Rteflow(TestCase):
         self.dut.send_expect("start", "testpmd> ", 120)
 
         # Disable RSS hash function
-        self.dut.send_expect(
+        """self.dut.send_expect(
             "flow create 0 ingress pattern end actions rss types none end / end", "created")
         if self.nic == '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 = 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)"""
 
         # Enable RSS hash function all
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types all end / end", "created")
+        rule_list = ["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 = rule.replace('-', ' / ')
+            if rule == "ipv4-other" or rule == "ipv4-frag":
+                parameter = 'ipv4'
+            elif rule == "ipv6-frag" or rule == "ipv6-other":
+                parameter = '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 rss types %s  end queues end / end" % (
+                    parameter, rule), "created")
         if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
             self.dut.send_expect(
@@ -249,7 +261,9 @@ class TestRSS_to_Rteflow(TestCase):
 
         # 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  queues 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  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 queues 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")
 
         # 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", "carlsville",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
             self.send_and_check(self.pkt4, rss_queue)
-            self.send_and_check(self.pkt8, rss_queue)
             rss_queue = ["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)
 
         # 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 queues 3 end / end", "error")
+        #self.dut.send_expect(
+        #    "flow create 0 ingress pattern eth / ipv4 / udp / end  actions 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 queues 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")
         # Send the packets and verify the results
         if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
             rss_queue = ["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 = ["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):
 
         # 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")
 
     def test_different_types_rss_queue_rule(self):
         """
@@ -367,13 +395,26 @@ 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 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 ipv4-tcp ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created")
+            rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+            for rule in rule_list:
+                parameter = rule.replace('-', ' / ')
+                if rule == "ipv4-other":
+                    parameter = '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  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 ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
-
+            rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+            for rule in rule_list:
+                parameter = rule.replace('-', ' / ')
+                if rule == "ipv4-other":
+                    parameter = '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 = ["1", "4", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
@@ -408,8 +449,10 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt8, rss_queue)
 
         # 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-other end queues 3 end / end", "error")
+        #self.dut.send_expect(
+        #    "flow create 0 ingress pattern end actions rss types end  queues 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")
 
     def test_set_key_keylen(self):
         """
@@ -432,8 +475,11 @@ class TestRSS_to_Rteflow(TestCase):
 
         # 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  queues 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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out1=%s' % out1)
         rss_queue = ["0", "1", "2", "3"]
         queue1 = self.send_and_check(pkt1, rss_queue)
         queue2 = self.send_and_check(pkt2, rss_queue)
@@ -441,19 +487,26 @@ class TestRSS_to_Rteflow(TestCase):
         queue4 = self.send_and_check(pkt4, rss_queue)
         queue5 = self.send_and_check(pkt5, rss_queue)
         list1 = [queue1, queue2, queue3, queue4, queue5]
+        print('list1=%s' % list1)
 
         # Create a rss key rule
         self.dut.send_expect("flow flush 0", "testpmd> ")
         key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
+
         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" % key, 'testpmd>')
         out2 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out2=%s' % out2)
         key_queue1 = self.send_and_check(pkt1, rss_queue)
         key_queue2 = self.send_and_check(pkt2, rss_queue)
         key_queue3 = self.send_and_check(pkt3, rss_queue)
         key_queue4 = self.send_and_check(pkt4, rss_queue)
         key_queue5 = self.send_and_check(pkt5, rss_queue)
         list2 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+        print('list2=%s' % list2)
 
         self.verify((key in out2) and (out1 != out2) and (list1 != list2), "the key setting doesn't take effect.")
 
@@ -462,14 +515,17 @@ class TestRSS_to_Rteflow(TestCase):
         key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
         key_len = "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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out3=%s' % out3)
         key_queue1 = self.send_and_check(pkt1, rss_queue)
         key_queue2 = self.send_and_check(pkt2, rss_queue)
         key_queue3 = self.send_and_check(pkt3, rss_queue)
         key_queue4 = self.send_and_check(pkt4, rss_queue)
         key_queue5 = self.send_and_check(pkt5, rss_queue)
         list3 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+        print('list3=%s' % list3)
 
         self.verify((key not in out3) and (out3 != out1 != out2) and (list3 != list1 != list2), "the key setting doesn't take effect.")
 
@@ -478,17 +534,22 @@ class TestRSS_to_Rteflow(TestCase):
         key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFF"
         key_len = "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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out=%s' % out4)
         key_queue1 = self.send_and_check(pkt1, rss_queue)
         key_queue2 = self.send_and_check(pkt2, rss_queue)
         key_queue3 = self.send_and_check(pkt3, rss_queue)
         key_queue4 = self.send_and_check(pkt4, rss_queue)
         key_queue5 = self.send_and_check(pkt5, rss_queue)
         list4 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+        print('list4=%s' % list4)
 
         self.verify((key in out4) and (out4 != out1 != out2 != out3) and (list4 != list1 != list2), "the key setting doesn't take effect.")
 
+
     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)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types all end / end", "created")
+        rule_list = ["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 = rule.replace('-', ' / ')
+            if rule == "ipv4-other" or rule == "ipv4-frag":
+                parameter = 'ipv4'
+            elif rule == "ipv6-frag" or rule == "ipv6-other":
+                parameter = '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 rss types %s  end queues end / end" % (
+                    parameter, rule), "created")
         self.send_packet("ipv4-udp", self.tester_itf)
         out = 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 = ["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 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 = rule.replace('-', ' / ')
+                if rule == "ipv6-other":
+                    parameter = '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  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 = rule.replace('-', ' / ')
+                if rule == "ipv6-other":
+                    parameter = '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  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 = ["5", "6", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
@@ -570,12 +664,21 @@ class TestRSS_to_Rteflow(TestCase):
         time.sleep(2)
 
         # Create a rss queue rule
+        rule_list = ["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 = 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 = 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 = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue)
@@ -595,7 +698,7 @@ class TestRSS_to_Rteflow(TestCase):
             rss_queue = ["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 = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue)
 
@@ -612,8 +715,14 @@ class TestRSS_to_Rteflow(TestCase):
         time.sleep(2)
 
         # 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 = ["ipv4-tcp", "ipv6-tcp"]
+        for rule in rule_list:
+            parameter = 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 = ["7", "8", "10", "11", "12", "14", "15"]
         queue1 = self.send_and_check(self.prio_pkt1, rss_queue)
@@ -637,8 +746,8 @@ class TestRSS_to_Rteflow(TestCase):
         queue3 = self.send_and_check(self.prio_pkt3, rss_queue)
 
         # Destroy one queue region rule, all the rules become invalid.
-        self.dut.send_expect("flow destroy 0 rule 2", "testpmd> ")
-        rss_queue = ["0"]
+        self.dut.send_expect("flow destroy 0 rule 6", "testpmd> ")
+        rss_queue = ["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):
 
         # 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  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 actions rss queues 8 9 end / end", "error")
@@ -695,7 +804,9 @@ class TestRSS_to_Rteflow(TestCase):
 
         # 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  queues  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 = ["1"]
         self.send_and_check(self.pkt2, rss_queue)
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands
  2020-04-30  8:35 [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands Xu Hailin
@ 2020-04-30  8:45 ` Xu, HailinX
  2020-05-06  5:41 ` Tu, Lijuan
  1 sibling, 0 replies; 3+ messages in thread
From: Xu, HailinX @ 2020-04-30  8:45 UTC (permalink / raw)
  To: dts

[-- Attachment #1: Type: text/plain, Size: 25771 bytes --]

Tested-by: Xu, Hailin <hailinx.xu@intel.com>

Regards,
Xu, Hailin

Regards,
Xu, Hailin


-----Original Message-----
From: Xu, HailinX 
Sent: Thursday, April 30, 2020 4:35 PM
To: dts@dpdk.org
Cc: Xu, HailinX <hailinx.xu@intel.com>
Subject: [dts][PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands

From: "xu,hailin" <hailinx.xu@intel.com>

i04e driver changed,so create rss flow rule need change.

Signed-off-by: xu,hailin <hailinx.xu@intel.com>
---
 tests/TestSuite_rss_to_rte_flow.py | 211 ++++++++++++++++++++++++++++---------
 1 file changed, 161 insertions(+), 50 deletions(-)

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="%s")' % (pkt, self.tester_itf))
         self.tester.scapy_execute()
         queue = self.get_queue_number()
+        print('queue=%s' % queue)
         self.verify(queue in rss_queue, "the packet doesn't enter the expected RSS queue.")
         return queue
 
@@ -188,21 +189,32 @@ class TestRSS_to_Rteflow(TestCase):
         self.dut.send_expect("start", "testpmd> ", 120)
 
         # Disable RSS hash function
-        self.dut.send_expect(
+        """self.dut.send_expect(
             "flow create 0 ingress pattern end actions rss types none end / end", "created")
         if self.nic == '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 = 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)"""
 
         # Enable RSS hash function all
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types all end / end", "created")
+        rule_list = ["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 = rule.replace('-', ' / ')
+            if rule == "ipv4-other" or rule == "ipv4-frag":
+                parameter = 'ipv4'
+            elif rule == "ipv6-frag" or rule == "ipv6-other":
+                parameter = '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 rss types %s  end queues end / end" % (
+                    parameter, rule), "created")
         if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
             self.dut.send_expect(
@@ -249,7 +261,9 @@ class TestRSS_to_Rteflow(TestCase):
 
         # 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  queues 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  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 queues 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")
 
         # 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", "carlsville",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
             self.send_and_check(self.pkt4, rss_queue)
-            self.send_and_check(self.pkt8, rss_queue)
             rss_queue = ["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)
 
         # 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 queues 3 end / end", "error")
+        #self.dut.send_expect(
+        #    "flow create 0 ingress pattern eth / ipv4 / udp / end  actions 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 queues 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")
         # Send the packets and verify the results
         if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
             rss_queue = ["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 = ["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):
 
         # 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")
 
     def test_different_types_rss_queue_rule(self):
         """
@@ -367,13 +395,26 @@ 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 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 ipv4-tcp ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created")
+            rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+            for rule in rule_list:
+                parameter = rule.replace('-', ' / ')
+                if rule == "ipv4-other":
+                    parameter = '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  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 ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
-
+            rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+            for rule in rule_list:
+                parameter = rule.replace('-', ' / ')
+                if rule == "ipv4-other":
+                    parameter = '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 = ["1", "4", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -408,8 +449,10 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt8, rss_queue)
 
         # 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-other end queues 3 end / end", "error")
+        #self.dut.send_expect(
+        #    "flow create 0 ingress pattern end actions rss types end  queues 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")
 
     def test_set_key_keylen(self):
         """
@@ -432,8 +475,11 @@ class TestRSS_to_Rteflow(TestCase):
 
         # 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  queues 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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out1=%s' % out1)
         rss_queue = ["0", "1", "2", "3"]
         queue1 = self.send_and_check(pkt1, rss_queue)
         queue2 = self.send_and_check(pkt2, rss_queue) @@ -441,19 +487,26 @@ class TestRSS_to_Rteflow(TestCase):
         queue4 = self.send_and_check(pkt4, rss_queue)
         queue5 = self.send_and_check(pkt5, rss_queue)
         list1 = [queue1, queue2, queue3, queue4, queue5]
+        print('list1=%s' % list1)
 
         # Create a rss key rule
         self.dut.send_expect("flow flush 0", "testpmd> ")
         key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
+
         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" % 
+ key, 'testpmd>')
         out2 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out2=%s' % out2)
         key_queue1 = self.send_and_check(pkt1, rss_queue)
         key_queue2 = self.send_and_check(pkt2, rss_queue)
         key_queue3 = self.send_and_check(pkt3, rss_queue)
         key_queue4 = self.send_and_check(pkt4, rss_queue)
         key_queue5 = self.send_and_check(pkt5, rss_queue)
         list2 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+        print('list2=%s' % list2)
 
         self.verify((key in out2) and (out1 != out2) and (list1 != list2), "the key setting doesn't take effect.")
 
@@ -462,14 +515,17 @@ class TestRSS_to_Rteflow(TestCase):
         key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
         key_len = "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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out3=%s' % out3)
         key_queue1 = self.send_and_check(pkt1, rss_queue)
         key_queue2 = self.send_and_check(pkt2, rss_queue)
         key_queue3 = self.send_and_check(pkt3, rss_queue)
         key_queue4 = self.send_and_check(pkt4, rss_queue)
         key_queue5 = self.send_and_check(pkt5, rss_queue)
         list3 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+        print('list3=%s' % list3)
 
         self.verify((key not in out3) and (out3 != out1 != out2) and (list3 != list1 != list2), "the key setting doesn't take effect.")
 
@@ -478,17 +534,22 @@ class TestRSS_to_Rteflow(TestCase):
         key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFF"
         key_len = "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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+        print('out=%s' % out4)
         key_queue1 = self.send_and_check(pkt1, rss_queue)
         key_queue2 = self.send_and_check(pkt2, rss_queue)
         key_queue3 = self.send_and_check(pkt3, rss_queue)
         key_queue4 = self.send_and_check(pkt4, rss_queue)
         key_queue5 = self.send_and_check(pkt5, rss_queue)
         list4 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+        print('list4=%s' % list4)
 
         self.verify((key in out4) and (out4 != out1 != out2 != out3) and (list4 != list1 != list2), "the key setting doesn't take effect.")
 
+
     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)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types all end / end", "created")
+        rule_list = ["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 = rule.replace('-', ' / ')
+            if rule == "ipv4-other" or rule == "ipv4-frag":
+                parameter = 'ipv4'
+            elif rule == "ipv6-frag" or rule == "ipv6-other":
+                parameter = '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 rss types %s  end queues end / end" % (
+                    parameter, rule), "created")
         self.send_packet("ipv4-udp", self.tester_itf)
         out = 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 = ["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 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 = rule.replace('-', ' / ')
+                if rule == "ipv6-other":
+                    parameter = '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  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 = rule.replace('-', ' / ')
+                if rule == "ipv6-other":
+                    parameter = '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  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 = ["5", "6", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -570,12 +664,21 @@ class TestRSS_to_Rteflow(TestCase):
         time.sleep(2)
 
         # Create a rss queue rule
+        rule_list = ["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 = 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 = 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 = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue) @@ -595,7 +698,7 @@ class TestRSS_to_Rteflow(TestCase):
             rss_queue = ["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 = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue)
 
@@ -612,8 +715,14 @@ class TestRSS_to_Rteflow(TestCase):
         time.sleep(2)
 
         # 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 = ["ipv4-tcp", "ipv6-tcp"]
+        for rule in rule_list:
+            parameter = 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 = ["7", "8", "10", "11", "12", "14", "15"]
         queue1 = self.send_and_check(self.prio_pkt1, rss_queue) @@ -637,8 +746,8 @@ class TestRSS_to_Rteflow(TestCase):
         queue3 = self.send_and_check(self.prio_pkt3, rss_queue)
 
         # Destroy one queue region rule, all the rules become invalid.
-        self.dut.send_expect("flow destroy 0 rule 2", "testpmd> ")
-        rss_queue = ["0"]
+        self.dut.send_expect("flow destroy 0 rule 6", "testpmd> ")
+        rss_queue = ["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):
 
         # 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  
+ 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 actions rss queues 8 9 end / end", "error") @@ -695,7 +804,9 @@ class TestRSS_to_Rteflow(TestCase):
 
         # 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  queues  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 = ["1"]
         self.send_and_check(self.pkt2, rss_queue)
--
1.8.3.1


[-- Attachment #2: TestRSS_to_Rteflow.log --]
[-- Type: application/octet-stream, Size: 943903 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands
  2020-04-30  8:35 [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands Xu Hailin
  2020-04-30  8:45 ` Xu, HailinX
@ 2020-05-06  5:41 ` Tu, Lijuan
  1 sibling, 0 replies; 3+ messages in thread
From: Tu, Lijuan @ 2020-05-06  5:41 UTC (permalink / raw)
  To: Xu, HailinX, dts; +Cc: Xu, HailinX

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 <hailinx.xu@intel.com>
> Subject: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow
> rule commands
> 
> From: "xu,hailin" <hailinx.xu@intel.com>
> 
> i04e driver changed,so create rss flow rule need change.
> 
> Signed-off-by: xu,hailin <hailinx.xu@intel.com>
> ---
>  tests/TestSuite_rss_to_rte_flow.py | 211 ++++++++++++++++++++++++++++--
> -------
>  1 file changed, 161 insertions(+), 50 deletions(-)
> 
> 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="%s")' % (pkt, self.tester_itf))
>          self.tester.scapy_execute()
>          queue = self.get_queue_number()
> +        print('queue=%s' % queue)
>          self.verify(queue in rss_queue, "the packet doesn't enter the expected
> RSS queue.")
>          return queue
> 
> @@ -188,21 +189,32 @@ class TestRSS_to_Rteflow(TestCase):
>          self.dut.send_expect("start", "testpmd> ", 120)
> 
>          # Disable RSS hash function
> -        self.dut.send_expect(
> +        """self.dut.send_expect(
>              "flow create 0 ingress pattern end actions rss types none end / end",
> "created")
>          if self.nic == '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 = 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 match case name " test_disable_enable_rss"
> 
>          # Enable RSS hash function all
> -        self.dut.send_expect(
> -            "flow create 0 ingress pattern end actions rss types all end / end",
> "created")
> +        rule_list = ["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 = rule.replace('-', ' / ')
> +            if rule == "ipv4-other" or rule == "ipv4-frag":
> +                parameter = 'ipv4'
> +            elif rule == "ipv6-frag" or rule == "ipv6-other":
> +                parameter = '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 rss types %s
> end queues end / end" % (
> +                    parameter, rule), "created")
>          if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
>                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
>              self.dut.send_expect(
> @@ -249,7 +261,9 @@ class TestRSS_to_Rteflow(TestCase):
> 
>          # 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  queues 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  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 queues 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")
> 
>          # 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", "carlsville",
>                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
>              self.send_and_check(self.pkt4, rss_queue)
> -            self.send_and_check(self.pkt8, rss_queue)
>              rss_queue = ["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)
> 
>          # 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 queues 3
> end / end", "error")
> +        #self.dut.send_expect(
> +        #    "flow create 0 ingress pattern eth / ipv4 / udp / end  actions 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 queues 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")
>          # Send the packets and verify the results
>          if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
>                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
>              rss_queue = ["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 = ["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):
> 
>          # 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")
> 
>      def test_different_types_rss_queue_rule(self):
>          """
> @@ -367,13 +395,26 @@ 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 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 ipv4-tcp
> ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created")
> +            rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-
> other"]
> +            for rule in rule_list:
> +                parameter = rule.replace('-', ' / ')
> +                if rule == "ipv4-other":
> +                    parameter = '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  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 ipv4-tcp
> ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
> -
> +            rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-
> other"]
> +            for rule in rule_list:
> +                parameter = rule.replace('-', ' / ')
> +                if rule == "ipv4-other":
> +                    parameter = '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 = ["1", "4", "7"]
>          if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -408,8
> +449,10 @@ class TestRSS_to_Rteflow(TestCase):
>              self.send_and_check(self.pkt8, rss_queue)
> 
>          # 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-other end
> queues 3 end / end", "error")
> +        #self.dut.send_expect(
> +        #    "flow create 0 ingress pattern end actions rss types end  queues 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")
> 
>      def test_set_key_keylen(self):
>          """
> @@ -432,8 +475,11 @@ class TestRSS_to_Rteflow(TestCase):
> 
>          # 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  queues 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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> +        print('out1=%s' % out1)
>          rss_queue = ["0", "1", "2", "3"]
>          queue1 = self.send_and_check(pkt1, rss_queue)
>          queue2 = self.send_and_check(pkt2, rss_queue) @@ -441,19 +487,26
> @@ class TestRSS_to_Rteflow(TestCase):
>          queue4 = self.send_and_check(pkt4, rss_queue)
>          queue5 = self.send_and_check(pkt5, rss_queue)
>          list1 = [queue1, queue2, queue3, queue4, queue5]
> +        print('list1=%s' % list1)
> 
>          # Create a rss key rule
>          self.dut.send_expect("flow flush 0", "testpmd> ")
>          key =
> "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012
> 3456789012345678901234567890FFFFFFFFFFFF"
> +
>          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" %
> + key, 'testpmd>')
>          out2 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> +        print('out2=%s' % out2)
>          key_queue1 = self.send_and_check(pkt1, rss_queue)
>          key_queue2 = self.send_and_check(pkt2, rss_queue)
>          key_queue3 = self.send_and_check(pkt3, rss_queue)
>          key_queue4 = self.send_and_check(pkt4, rss_queue)
>          key_queue5 = self.send_and_check(pkt5, rss_queue)
>          list2 = [key_queue1, key_queue2, key_queue3, key_queue4,
> key_queue5]
> +        print('list2=%s' % list2)
> 
>          self.verify((key in out2) and (out1 != out2) and (list1 != list2), "the key
> setting doesn't take effect.")
> 
> @@ -462,14 +515,17 @@ class TestRSS_to_Rteflow(TestCase):
>          key =
> "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012
> 3456789012345678901234567890FFFFFFFFFFFF"
>          key_len = "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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> +        print('out3=%s' % out3)
>          key_queue1 = self.send_and_check(pkt1, rss_queue)
>          key_queue2 = self.send_and_check(pkt2, rss_queue)
>          key_queue3 = self.send_and_check(pkt3, rss_queue)
>          key_queue4 = self.send_and_check(pkt4, rss_queue)
>          key_queue5 = self.send_and_check(pkt5, rss_queue)
>          list3 = [key_queue1, key_queue2, key_queue3, key_queue4,
> key_queue5]
> +        print('list3=%s' % list3)
> 
>          self.verify((key not in out3) and (out3 != out1 != out2) and (list3 !=
> list1 != list2), "the key setting doesn't take effect.")
> 
> @@ -478,17 +534,22 @@ class TestRSS_to_Rteflow(TestCase):
>          key =
> "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012
> 3456789012345678901234567890FFFFFF"
>          key_len = "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 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> +        print('out=%s' % out4)
>          key_queue1 = self.send_and_check(pkt1, rss_queue)
>          key_queue2 = self.send_and_check(pkt2, rss_queue)
>          key_queue3 = self.send_and_check(pkt3, rss_queue)
>          key_queue4 = self.send_and_check(pkt4, rss_queue)
>          key_queue5 = self.send_and_check(pkt5, rss_queue)
>          list4 = [key_queue1, key_queue2, key_queue3, key_queue4,
> key_queue5]
> +        print('list4=%s' % list4)
> 
>          self.verify((key in out4) and (out4 != out1 != out2 != out3) and (list4 !=
> list1 != list2), "the key setting doesn't take effect.")
> 
> +
>      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)
> 
>          # Create a rss queue rule
> -        self.dut.send_expect(
> -            "flow create 0 ingress pattern end actions rss types all end / end",
> "created")
> +        rule_list = ["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 = rule.replace('-', ' / ')
> +            if rule == "ipv4-other" or rule == "ipv4-frag":
> +                parameter = 'ipv4'
> +            elif rule == "ipv6-frag" or rule == "ipv6-other":
> +                parameter = '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 rss types %s
> end queues end / end" % (
> +                    parameter, rule), "created")
>          self.send_packet("ipv4-udp", self.tester_itf)
>          out = 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 = ["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 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 = rule.replace('-', ' / ')
> +                if rule == "ipv6-other":
> +                    parameter = '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  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 = rule.replace('-', ' / ')
> +                if rule == "ipv6-other":
> +                    parameter = '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  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 = ["5", "6", "7"]
>          if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -570,12
> +664,21 @@ class TestRSS_to_Rteflow(TestCase):
>          time.sleep(2)
> 
>          # Create a rss queue rule
> +        rule_list = ["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 = 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 = 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 = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3",
> "4", "5"]
>          self.send_and_check(self.pkt2, rss_queue) @@ -595,7 +698,7 @@ class
> TestRSS_to_Rteflow(TestCase):
>              rss_queue = ["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 = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3",
> "4", "5"]
>          self.send_and_check(self.pkt2, rss_queue)
> 
> @@ -612,8 +715,14 @@ class TestRSS_to_Rteflow(TestCase):
>          time.sleep(2)
> 
>          # 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 = ["ipv4-tcp", "ipv6-tcp"]
> +        for rule in rule_list:
> +            parameter = 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 = ["7", "8", "10", "11", "12", "14", "15"]
>          queue1 = self.send_and_check(self.prio_pkt1, rss_queue) @@ -637,8
> +746,8 @@ class TestRSS_to_Rteflow(TestCase):
>          queue3 = self.send_and_check(self.prio_pkt3, rss_queue)
> 
>          # Destroy one queue region rule, all the rules become invalid.
> -        self.dut.send_expect("flow destroy 0 rule 2", "testpmd> ")
> -        rss_queue = ["0"]
> +        self.dut.send_expect("flow destroy 0 rule 6", "testpmd> ")
> +        rss_queue = ["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):
> 
>          # 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
> + 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 actions rss
> queues 8 9 end / end", "error") @@ -695,7 +804,9 @@ class
> TestRSS_to_Rteflow(TestCase):
> 
>          # 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  queues  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 = ["1"]
>          self.send_and_check(self.pkt2, rss_queue)
> --
> 1.8.3.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-05-06  5:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-30  8:35 [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands Xu Hailin
2020-04-30  8:45 ` Xu, HailinX
2020-05-06  5:41 ` Tu, Lijuan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).