test suite reviews and discussions
 help / color / Atom feed
* [dts] [PATCH v2] tests/TestSuite_rss_to_rte_flow:modify flow rule commands
@ 2020-05-06  6:49 Xu Hailin
  2020-05-07  3:01 ` Xu, HailinX
  0 siblings, 1 reply; 2+ messages in thread
From: Xu Hailin @ 2020-05-06  6:49 UTC (permalink / raw)
  To: dts; +Cc: xu,hailin

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

Because i40e driver changed.so create rss flow rule commands need change.
Remove the code of "Disable RSS hash function" in test_disable_enable_rss, around line 188,because disable rss hash command is invalid

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

diff --git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rte_flow.py
index dd7c869..de3eebb 100644
--- a/tests/TestSuite_rss_to_rte_flow.py
+++ b/tests/TestSuite_rss_to_rte_flow.py
@@ -109,6 +109,7 @@ class TestRSS_to_Rteflow(TestCase):
         self.tester.scapy_append('sendp(%s, iface="%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
 
@@ -187,22 +188,24 @@ class TestRSS_to_Rteflow(TestCase):
         self.check_packet_queue("all", out)
         self.dut.send_expect("start", "testpmd> ", 120)
 
-        # Disable RSS hash function
-        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
-        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)
-
         # 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'
+            if rule == "l2-payload":
+                self.dut.send_expect(
+                    "flow create 0 ingress pattern eth / end actions rss types l2-payload  end queues end  / end", "created")
+            else:
+                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 +252,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 +281,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 +299,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 +320,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 types end queues 3 end / end", "created")
         self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss queues 3 end / end", "created")
+            "flow create 0 ingress pattern eth / ipv4 / udp / end  actions rss types ipv4-udp end queues end / end",
+            "created")
         # Send the packets and verify the results
         if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
                          "fortville_spirit_single", "fortpark_TLV","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 +360,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 +386,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 +440,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 +466,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 +478,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 +506,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 +525,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 +553,23 @@ 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'
+            if rule == "l2-payload":
+                self.dut.send_expect(
+                    "flow create 0 ingress pattern eth / end actions rss types l2-payload  end queues end  / end", "created")
+            else:
+                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 +581,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 +659,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 +693,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 +710,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 +741,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 +761,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 +799,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] 2+ messages in thread

* Re: [dts] [PATCH v2] tests/TestSuite_rss_to_rte_flow:modify flow rule commands
  2020-05-06  6:49 [dts] [PATCH v2] tests/TestSuite_rss_to_rte_flow:modify flow rule commands Xu Hailin
@ 2020-05-07  3:01 ` Xu, HailinX
  0 siblings, 0 replies; 2+ messages in thread
From: Xu, HailinX @ 2020-05-07  3:01 UTC (permalink / raw)
  To: dts

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

Regards,
Xu, Hailin


-----Original Message-----
From: Xu, HailinX 
Sent: Wednesday, May 6, 2020 2:49 PM
To: dts@dpdk.org
Cc: Xu, HailinX <hailinx.xu@intel.com>
Subject: [dts][PATCH v2] tests/TestSuite_rss_to_rte_flow:modify flow rule commands

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

Because i40e driver changed.so create rss flow rule commands need change.
Remove the code of "Disable RSS hash function" in test_disable_enable_rss, around line 188,because disable rss hash command is invalid

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

diff --git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rte_flow.py
index dd7c869..de3eebb 100644
--- a/tests/TestSuite_rss_to_rte_flow.py
+++ b/tests/TestSuite_rss_to_rte_flow.py
@@ -109,6 +109,7 @@ class TestRSS_to_Rteflow(TestCase):
         self.tester.scapy_append('sendp(%s, iface="%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
 
@@ -187,22 +188,24 @@ class TestRSS_to_Rteflow(TestCase):
         self.check_packet_queue("all", out)
         self.dut.send_expect("start", "testpmd> ", 120)
 
-        # Disable RSS hash function
-        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
-        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)
-
         # 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'
+            if rule == "l2-payload":
+                self.dut.send_expect(
+                    "flow create 0 ingress pattern eth / end actions rss types l2-payload  end queues end  / end", "created")
+            else:
+                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 +252,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 +281,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 +299,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 +320,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 types end 
+ queues 3 end / end", "created")
         self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss queues 3 end / end", "created")
+            "flow create 0 ingress pattern eth / ipv4 / udp / end  actions rss types ipv4-udp end queues end / end",
+            "created")
         # Send the packets and verify the results
         if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
                          "fortville_spirit_single", "fortpark_TLV","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 +360,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 +386,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 +440,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 +466,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 +478,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 +506,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 +525,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 +553,23 @@ 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'
+            if rule == "l2-payload":
+                self.dut.send_expect(
+                    "flow create 0 ingress pattern eth / end actions rss types l2-payload  end queues end  / end", "created")
+            else:
+                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 +581,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 +659,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 +693,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 +710,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 +741,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 +761,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 +799,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] 2+ messages in thread

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-06  6:49 [dts] [PATCH v2] tests/TestSuite_rss_to_rte_flow:modify flow rule commands Xu Hailin
2020-05-07  3:01 ` Xu, HailinX

test suite reviews and discussions

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/dts/0 dts/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dts dts/ http://inbox.dpdk.org/dts \
		dts@dpdk.org
	public-inbox-index dts


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dts


AGPL code for this site: git clone https://public-inbox.org/ public-inbox