[dts] [PATCH] TestSuite_pmdrssreta.py:Added hash_index calucation & rss key-size for cavium_a063.

thaq at marvell.com thaq at marvell.com
Tue Apr 23 11:56:38 CEST 2019


From: Thanseerulhaq <thaq at marvell.com>

Added hash_index calucation for cavium_a063 adaptor which use simple_xor algo.
Added rss key-size for cavium_a063 adaptor as 48.

Signed-off-by: Thanseerulhaq <thaq at marvell.com>
---
 tests/TestSuite_pmdrssreta.py | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/tests/TestSuite_pmdrssreta.py b/tests/TestSuite_pmdrssreta.py
index 4a2bfd3..03c54a2 100644
--- a/tests/TestSuite_pmdrssreta.py
+++ b/tests/TestSuite_pmdrssreta.py
@@ -37,6 +37,7 @@ import time
 import random
 import re
 import utils
+import textwrap
 testQueues = [2, 9, 16]
 reta_entries = []
 reta_lines = []
@@ -148,7 +149,16 @@ class TestPmdrssreta(TestCase):
         i = 0
         for tmp_reta_line in reta_lines:
             status = "false"
-            if(self.nic in ["hi1822"]):
+            if(self.nic in ["cavium_a063"]):
+                # compute the hash result using simple XOR.
+                hash_index_tmp = 0
+                index_tmp = tmp_reta_line["RSS hash"].strip("0x")
+                index_tmp = textwrap.wrap(index_tmp,2)
+                index_tmp = [hex(int(index,16)) for index in index_tmp]
+                for index in  index_tmp:
+                    hash_index_tmp = eval(str(hash_index_tmp)+'^'+index)
+                hash_index = int(hash_index_tmp) % 64
+            elif(self.nic in ["hi1822"]):
                 hash_index = int(tmp_reta_line["RSS hash"], 16) % 256
             elif (self.nic in ["niantic", "redrockcanyou", "atwood", "boulderrapid"]):
                 # compute the hash result of five tuple into the 7 LSBs value.
@@ -223,7 +233,12 @@ class TestPmdrssreta(TestCase):
                 self.verify("error" not in out, "Configuration of RSS hash failed: Invalid argument")
 
                 # configure the reta with specific mappings.
-                if(self.nic in ["hi1822"]):
+                if(self.nic in ["cavium_a063"]):
+                    for i in range(64):
+                        reta_entries.insert(i, random.randint(0, queue - 1))
+                        self.dut.send_expect(
+                            "port config 0 rss reta (%d,%d)" % (i, reta_entries[i]), "testpmd> ")
+                elif(self.nic in ["hi1822"]):
                     for i in range(256):
                         reta_entries.insert(i, random.randint(0, queue - 1))
                         self.dut.send_expect(
@@ -244,7 +259,7 @@ class TestPmdrssreta(TestCase):
             self.dut.send_expect("quit", "# ", 30)
 
     def test_rss_key_size(self):
-        nic_rss_key_size = {"fortville_eagle": 52, "fortville_spirit": 52, "fortville_spirit_single": 52, "fortville_25g": 52, "niantic": 40, "e1000": 40, "redrockcanyou": 40, "atwood": 40,  "boulderrapid": 40, "fortpark_TLV": 52, "hi1822": 40}
+        nic_rss_key_size = {"fortville_eagle": 52, "fortville_spirit": 52, "fortville_spirit_single": 52, "fortville_25g": 52, "niantic": 40, "e1000": 40, "redrockcanyou": 40, "atwood": 40,  "boulderrapid": 40, "fortpark_TLV": 52, "hi1822": 40, "cavium_a063": 48}
         self.verify(self.nic in nic_rss_key_size.keys(), "Not supporte rss key on %s" % self.nic)
 
         dutPorts = self.dut.get_ports(self.nic)
-- 
1.8.3.1



More information about the dts mailing list