test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V1] DTS adapts to foxville network card
@ 2020-04-21  6:21 Zhou Jun
  0 siblings, 0 replies; 3+ messages in thread
From: Zhou Jun @ 2020-04-21  6:21 UTC (permalink / raw)
  To: dts; +Cc: Zhou jun

From: Zhou jun <junx.w.zhou@intel.com>

DTS adapts to foxville network card

Signed-off-by: Zhou jun <junx.w.zhou@intel.com>
---
 conf/test_case_checklist.json            | 426 +++++++++++++++++++++++++++++--
 conf/test_case_supportlist.json          |  52 ++--
 framework/settings.py                    |   2 +
 tests/TestSuite_dual_vlan.py             |   2 +
 tests/TestSuite_fdir.py                  |   8 +-
 tests/TestSuite_flexible_rxd.py          |   6 +-
 tests/TestSuite_flow_classify.py         |   2 +-
 tests/TestSuite_generic_filter.py        |  16 +-
 tests/TestSuite_generic_flow_api.py      |  42 +--
 tests/TestSuite_jumboframes.py           |   2 +-
 tests/TestSuite_pmdrss_hash.py           |   9 +-
 tests/TestSuite_pmdrssreta.py            |   9 +-
 tests/TestSuite_qinq_filter.py           |   2 +-
 tests/TestSuite_rss_to_rte_flow.py       |  85 ++++--
 tests/TestSuite_rxtx_offload.py          |  15 +-
 tests/TestSuite_uni_pkt.py               |   6 +-
 tests/TestSuite_unit_tests_loopback.py   |   2 +
 tests/TestSuite_vlan_ethertype_config.py |   2 +-
 18 files changed, 571 insertions(+), 117 deletions(-)

diff --git a/conf/test_case_checklist.json b/conf/test_case_checklist.json
index 4dd9978..d29d235 100644
--- a/conf/test_case_checklist.json
+++ b/conf/test_case_checklist.json
@@ -21,7 +21,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -41,7 +42,8 @@
                 "springfountain",
                 "cavium_a034",
                 "cavium_a011",
-                "twinpond"
+                "twinpond",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -70,7 +72,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -99,7 +102,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -151,7 +155,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -206,7 +211,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -233,7 +239,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -262,7 +269,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -317,7 +325,8 @@
                 "powerville",
                 "columbiaville_25g",
                 "columbiaville_100g",
-                "springville"
+                "springville",
+	        "foxville"
             ],
             "Target": [
                 "ALL"
@@ -360,7 +369,8 @@
                 "ironpond",
                 "cavium_a034",
                 "cavium_0011",
-                "cavium_a064"
+                "cavium_a064",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -456,7 +466,8 @@
                 "cavium_a034",
                 "cavium_0011",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -492,7 +503,8 @@
                 "kawela_4",
                 "springville",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -511,7 +523,8 @@
                 "kawela_4",
                 "springville",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -702,7 +715,8 @@
                 "springfountain",
                 "twinpond",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -843,7 +857,8 @@
                 "springfountain",
                 "twinpond",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -867,7 +882,8 @@
                 "niantic",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -1453,6 +1469,19 @@
             ],
             "Bug ID": "",
             "Comments": "32 bit not support this case/not enough queue"
+        },
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "nic not support this case"
         }
     ],
     "simple_symmetric": [
@@ -1476,7 +1505,8 @@
             "NIC": [
                 "redrockcanyou",
                 "atwood",
-                "boulderrapid"
+                "boulderrapid",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -1507,7 +1537,8 @@
             "NIC": [
                 "redrockcanyou",
                 "atwood",
-                "boulderrapid"
+                "boulderrapid",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -1538,7 +1569,8 @@
             "NIC": [
                 "redrockcanyou",
                 "atwood",
-                "boulderrapid"
+                "boulderrapid",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -1909,6 +1941,19 @@
             ],
             "Bug ID": "",
             "Comments": "link_status_interrupt application assumes one certain CPU frequency, test fails on thunder boards"
+        },
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "arm64-thunderx-linuxapp-gcc"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
         }
     ],
     "add_remove_mac_address": [
@@ -2280,7 +2325,8 @@
                 "fortpark_TLV_vf",
                 "cavium_a064",
                 "columbiaville_25g",
-                "columbiaville_100g"
+                "columbiaville_100g",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2316,6 +2362,7 @@
                 "twinville",
                 "sagepond",
                 "sageville",
+		"foxville",
 		"springville"
             ],
             "Target": [
@@ -2380,7 +2427,8 @@
             ],
             "NIC": [
                 "cavium_a063",
-                "cavium_a064"
+                "cavium_a064",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2481,7 +2529,8 @@
             ],
             "NIC": [
                 "cavium_a063",
-                "cavium_a064"
+                "cavium_a064",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2712,7 +2761,8 @@
                 "powerville",
                 "springville",
                 "columbiaville_25g",
-                "columbiaville_100g"
+                "columbiaville_100g",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2721,6 +2771,126 @@
             "Comments": "only i40e and ixgbe driver support this case"
         }
     ],
+    "hash_readwrite_perf": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"ipv6_5tuple_hash_table": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+    "fdir_for_vlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_nvgre": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"L2_tunnel_filter": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_L2_payload": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"n_tuple_filter": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"flexbytes_filter": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
     "perf_pvp_split_ring_dequeue_zero_copy": [
         {
             "OS": [
@@ -2781,5 +2951,215 @@
             "Bug ID": "",
             "Comments": "only i40e and ixgbe driver support this case"
         }
+	],
+    "tunnel_filter_nvgre": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_flexbytes": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_mac_vlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"tunnel_filter_vxlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_ipv4": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_vxlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"link_status_interrupt_change": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"load_balancer": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"multicast_forwarding": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"update_system": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"ptpclient": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"IPv4_L4": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"l2pkt_detect": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"dump_driver_info": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
     ]
 }
diff --git a/conf/test_case_supportlist.json b/conf/test_case_supportlist.json
index a6300e4..e89069f 100644
--- a/conf/test_case_supportlist.json
+++ b/conf/test_case_supportlist.json
@@ -130,6 +130,7 @@
             ],
             "NIC": [
                 "forrpark_TLV",
+                "foxville",
                 "fortville_eagle",
                 "fortville_spirit",
                 "fortville_spirit_single",
@@ -183,7 +184,8 @@
                 "fortpark_BASE-T",
                 "carlsville",
                 "columbiaville_25g",
-                "columbiaville_100g"
+                "columbiaville_100g",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -521,6 +523,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -540,6 +543,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -559,6 +563,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -684,7 +689,8 @@
                 "niantic",
                 "twinpond",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -700,6 +706,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -721,6 +728,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
@@ -740,7 +748,8 @@
             ],
             "NIC": [
                 "bartonhills",
-                "powerville"
+                "powerville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -757,7 +766,8 @@
             "NIC": [
                 "twinville",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -774,7 +784,8 @@
             "NIC": [
                 "twinville",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -792,7 +803,8 @@
                 "niantic",
                 "kawela_4",
                 "kawela",
-                "twinville"
+                "twinville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -808,6 +820,7 @@
             ],
             "NIC": [
                 "niantic",
+                "foxville",
                 "twinville",
                 "sagepond",
                 "sageville",
@@ -834,7 +847,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -857,7 +871,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -874,7 +889,8 @@
             "NIC": [
                 "twinville",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -893,7 +909,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -921,7 +938,8 @@
                 "fortville_spirit_single",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-		"carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -937,7 +955,8 @@
             ],
             "NIC": [
                 "bartonhills",
-                "powerville"
+                "powerville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -953,7 +972,8 @@
             ],
             "NIC": [
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -976,7 +996,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -995,7 +1016,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
diff --git a/framework/settings.py b/framework/settings.py
index c31a937..d82b684 100644
--- a/framework/settings.py
+++ b/framework/settings.py
@@ -111,6 +111,7 @@ NICS = {
     'fastlinq_ql41000_vf': '1077:8090',
     'carlsville': '8086:15ff',
     'hi1822': '19e5:1822',
+    'foxville': '8086:15f2'
 }
 
 DRIVERS = {
@@ -176,6 +177,7 @@ DRIVERS = {
     'fastlinq_ql41000_vf': 'qede',
     'carlsville': 'i40e',
     'hi1822': 'hinic',
+    'foxville':'igc'
 }
 
 """
diff --git a/tests/TestSuite_dual_vlan.py b/tests/TestSuite_dual_vlan.py
index 93ef241..daa23d3 100644
--- a/tests/TestSuite_dual_vlan.py
+++ b/tests/TestSuite_dual_vlan.py
@@ -361,6 +361,8 @@ class TestDualVlan(TestCase):
         self.verify("vlan %s" % outvlan not in out, "vlan strip enable error: " + out)
 
         self.mode_config(stripq="off")
+        if self.nic == 'foxville':
+            self.mode_config(strip="off")
         self.vlan_send_packet(outvlan)
         out = self.get_tcpdump_package()
         self.verify("vlan %s" % outvlan in out, "vlan strip queue disable error: " + out)
diff --git a/tests/TestSuite_fdir.py b/tests/TestSuite_fdir.py
index ecda94d..a7c98bd 100644
--- a/tests/TestSuite_fdir.py
+++ b/tests/TestSuite_fdir.py
@@ -235,7 +235,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         Fdir get flexbytes and payload according NIC
         """
 
-        if(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville"]):
+        if(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville", "foxville"]):
             if not sctp:
                 self.flexbytes = "0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x77,0x77"
             else:
@@ -784,7 +784,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         """
         Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4 TTL
         """
-        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville"]:
+        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
             self.verify(False, "This case only support fortville nic")
         self.dut.kill_all()
         self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect" % (self.target, self.coreMask, utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
@@ -905,7 +905,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         """
         Expand Flow Director for fortville to support ipv6 TC, next-header, hop-limits
         """
-        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville"]:
+        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
             self.verify(False, "This case only support fortville nic")
         self.dut.kill_all()
         self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect" % (self.target, self.coreMask, utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
@@ -1026,7 +1026,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         """
         Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4 TTL
         """
-        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville"]:
+        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
             self.verify(False, "This case only support fortville nic")
         self.dut.kill_all()
         self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect" % (self.target, self.coreMask, utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
diff --git a/tests/TestSuite_flexible_rxd.py b/tests/TestSuite_flexible_rxd.py
index 77001ab..4a2d6f2 100644
--- a/tests/TestSuite_flexible_rxd.py
+++ b/tests/TestSuite_flexible_rxd.py
@@ -43,7 +43,7 @@ class TestFlexibleRxd(TestCase):
         """
         run at the start of each test suite.
         """
-        self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g"],
+        self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g", "foxville"],
                     "flexible rxd only supports CVL NIC.")
         self.nb_core = 2
         self.pkg_count = 1
@@ -88,7 +88,8 @@ class TestFlexibleRxd(TestCase):
         """
         start testpmd
         """
-        para = '--rxq=32 --txq=32 --portmask=0x1 --nb-cores=%d' % self.nb_core
+        num = '4' if self.nic == 'foxville' else '32'
+        para = '--rxq=%s --txq=%s --portmask=0x1 --nb-cores=%d' % (num, num, self.nb_core)
         self.pmdout.start_testpmd("1S/3C/1T", param=para, ports=[self.pci_info], port_options={self.pci_info: 'proto_xtr=%s' % proto_xdr})
         self.pmdout.execute_cmd("set verbose 1", "testpmd> ", 120)
         self.pmdout.execute_cmd("set fwd io", "testpmd> ", 120)
@@ -107,6 +108,7 @@ class TestFlexibleRxd(TestCase):
     def send_pkts_and_get_output(self, pkts_str):
         pkt = Packet(pkts_str)
         pkt.send_pkt(self.tester, tx_port=self.tx_interface, count=self.pkg_count, timeout=30)
+        time.sleep(3)
         out_info = self.dut.get_session_output(timeout=3)
         return out_info
 
diff --git a/tests/TestSuite_flow_classify.py b/tests/TestSuite_flow_classify.py
index 2853f5d..e6320b0 100644
--- a/tests/TestSuite_flow_classify.py
+++ b/tests/TestSuite_flow_classify.py
@@ -452,7 +452,7 @@ class TestFlowClassify(TestCase):
         self.verify_traffic(stm_types=stream_list, flow_type="multi_stream")
 
     def verify_supported_nic(self):
-        supported_drivers = ['i40e', 'ixgbe']
+        supported_drivers = ['i40e', 'ixgbe', 'igc']
         result = all([self.dut.ports_info[index]['port'].default_driver in
                       supported_drivers
                       for index in self.dut_ports])
diff --git a/tests/TestSuite_generic_filter.py b/tests/TestSuite_generic_filter.py
index 59d7372..2d61f5b 100644
--- a/tests/TestSuite_generic_filter.py
+++ b/tests/TestSuite_generic_filter.py
@@ -204,7 +204,7 @@ class TestGeneric_filter(TestCase):
         """
         Enable receipt of SYN packets
         """
-        self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", "powerville", "sagepond"], "%s nic not support syn filter" % self.nic)
+        self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", "powerville", "sagepond", "foxville"], "%s nic not support syn filter" % self.nic)
         self.pmdout.start_testpmd(
             "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
         self.port_config()
@@ -285,7 +285,7 @@ class TestGeneric_filter(TestCase):
             self.filter_send_packet("fivetuple")
             out = self.dut.send_expect("stop", "testpmd> ")
             self.verify_result(out, tx_pkts="1", expect_queue="3")
-        elif self.nic in ["bartonhills", "powerville"]:
+        elif self.nic in ["bartonhills", "powerville", "foxville"]:
             self.dut.send_expect(
                 "flex_filter %s add len 16 bytes 0x0123456789abcdef0000000008000000 mask 000C priority 2 queue 1" % (valports[0]), "testpmd> ")
             self.dut.send_expect(
@@ -307,7 +307,7 @@ class TestGeneric_filter(TestCase):
         """
         five tuple filter
         """
-        if self.nic in ["niantic", "kawela_4", "sagepond"]:
+        if self.nic in ["niantic", "kawela_4", "sagepond", "foxville"]:
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
             self.port_config()
@@ -372,7 +372,7 @@ class TestGeneric_filter(TestCase):
 
         self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", "sagepond",
                            "powerville", "fortville_eagle", "fortville_spirit",
-                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g","cavium_a063", "carlsville"], "%s nic not support syn filter" % self.nic)
+                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g","cavium_a063", "carlsville", "foxville"], "%s nic not support syn filter" % self.nic)
         self.pmdout.start_testpmd(
             "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
         self.port_config()
@@ -501,7 +501,7 @@ class TestGeneric_filter(TestCase):
 
     def test_twotuple_filter(self):
 
-        if self.nic in ["powerville", "bartonhills", "cavium_a063", "sagepond"]:
+        if self.nic in ["powerville", "bartonhills", "cavium_a063", "sagepond", "foxville"]:
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
             self.port_config()
@@ -534,7 +534,7 @@ class TestGeneric_filter(TestCase):
             self.verify(False, "%s nic not support two tuple filter" % self.nic)
 
     def test_flex_filter(self):
-        self.verify(self.nic in ["powerville", "bartonhills", "cavium_a063", "sagepond"], '%s not support flex filter' % self.nic)
+        self.verify(self.nic in ["powerville", "bartonhills", "cavium_a063", "sagepond", "foxville"], '%s not support flex filter' % self.nic)
 
         masks = ['000C', '000C']
         self.pmdout.start_testpmd(
@@ -589,7 +589,7 @@ class TestGeneric_filter(TestCase):
 
     def test_multiple_filters_1GB(self):
 
-        if self.nic in ["powerville", "kawela_4", "bartonhills", "sagepond"]:
+        if self.nic in ["powerville", "kawela_4", "bartonhills", "sagepond", "foxville"]:
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
             self.port_config()
@@ -634,7 +634,7 @@ class TestGeneric_filter(TestCase):
     def test_jumbo_frame_size(self):
         
         self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "fortpark_TLV","fortpark_BASE-T", "carlsville"], "%s nic not support this test" % self.nic)
-        if (self.nic in ["cavium_a063", "cavium_a064"]):
+        if (self.nic in ["cavium_a063", "cavium_a064", "foxville"]):
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1 --mbcache=200 --mbuf-size=2048 --max-pkt-len=9200" % portMask)
         else:
diff --git a/tests/TestSuite_generic_flow_api.py b/tests/TestSuite_generic_flow_api.py
index 4e82202..a8a7956 100644
--- a/tests/TestSuite_generic_flow_api.py
+++ b/tests/TestSuite_generic_flow_api.py
@@ -78,7 +78,8 @@ class TestGeneric_flow_api(TestCase):
         global MAX_QUEUE
         if self.nic in ["powerville", "bartonhills", "kawela", "kawela_4"]:
             MAX_QUEUE = 7
-
+        elif self.nic in ['foxville']:
+            MAX_QUEUE = 3
         # Based on h/w type, choose how many ports to use
         self.dut_ports = self.dut.get_ports(self.nic)
         # Verify that enough ports are available
@@ -664,7 +665,7 @@ class TestGeneric_flow_api(TestCase):
         Only supported by ixgbe and igb.
         """
         self.verify(self.nic in ["niantic", "kawela_4", "kawela", "bartonhills", "twinville", "sagepond", "sageville",
-                                 "powerville"], "%s nic not support SYN filter" % self.nic)
+                                 "powerville", "foxville"], "%s nic not support SYN filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -687,12 +688,13 @@ class TestGeneric_flow_api(TestCase):
         self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ", 120)
 
         # create the flow rules
+        q_idx = '2' if self.nic == 'foxville' else '4'
         self.dut.send_expect(
-            "flow create 0 ingress pattern eth / ipv6 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index 4 / end",
+            "flow create 0 ingress pattern eth / ipv6 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index %s / end" %(q_idx),
             "created")
         # send the packets and verify the results
         self.sendpkt(pktstr='Ether(dst="%s")/IPv6(src="2001::1", dst="2001::2")/TCP(dport=80,flags="S")/Raw("x" * 20)' % self.pf_mac)
-        self.verify_result("pf", expect_rxpkts="1", expect_queue="4", verify_mac=self.pf_mac)
+        self.verify_result("pf", expect_rxpkts="1", expect_queue=q_idx, verify_mac=self.pf_mac)
 
         self.sendpkt(pktstr='Ether(dst="%s")/IPv6(src="2001::1", dst="2001::2")/TCP(dport=80,flags="PA")/Raw("x" * 20)' % self.pf_mac)
         self.verify_result("pf", expect_rxpkts="1", expect_queue="0", verify_mac=self.pf_mac)
@@ -704,7 +706,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by ixgbe and igb
         """
         self.verify(self.nic in ["niantic", "kawela_4", "kawela",
-                                 "twinville"], "%s nic not support n-tuple filter" % self.nic)
+                                 "twinville", "foxville"], "%s nic not support n-tuple filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -741,7 +743,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by igb
         """
-        self.verify(self.nic in ["bartonhills", "powerville"], "%s nic not support 2-tuple filter" % self.nic)
+        self.verify(self.nic in ["bartonhills", "powerville", "foxville"], "%s nic not support 2-tuple filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -772,7 +774,7 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "columbiaville_25g","columbiaville_100g","kawela_4", "kawela", "bartonhills", "twinville", "sagepond", "sageville",
                                  "powerville", "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"], "%s nic not support ethertype filter" % self.nic)
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"], "%s nic not support ethertype filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=test1" % self.pf_pci)
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -823,7 +825,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["sagepond", "sageville"], "%s nic not support fdir L2 tunnel filter" % self.nic)
+        self.verify(self.nic in ["sagepond", "sageville", "foxville"], "%s nic not support fdir L2 tunnel filter" % self.nic)
 
         self.setup_env()
         # start testpmd on pf
@@ -868,7 +870,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"], "%s nic not support fdir L2 payload filter" % self.nic)
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"], "%s nic not support fdir L2 payload filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.pf_cores, "--pkt-filter-mode=perfect --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=test1" % self.pf_pci)
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1316,7 +1318,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"], "%s nic not support fdir vlan filter" % self.nic)
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"], "%s nic not support fdir vlan filter" % self.nic)
         self.setup_env()
         # start testpmd on pf
         self.pmdout.start_testpmd("%s" % self.pf_cores, "--pkt-filter-mode=perfect --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=pf --socket-mem 1024,1024 --legacy-mem" % self.pf_pci)
@@ -1408,11 +1410,11 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "columbiaville_25g","columbiaville_100g","twinville", "sagepond", "sageville",
                                  "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support fdir ipv4 filter" % self.nic)
         # i40e
         if (self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
-                         "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"]):
+                         "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"]):
             self.setup_env()
             # start testpmd on pf
             self.pmdout.start_testpmd("%s" % self.pf_cores, "--pkt-filter-mode=perfect --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=pf --socket-mem 1024,1024 --legacy-mem" % self.pf_pci)
@@ -1517,7 +1519,7 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "twinville", "sagepond", "sageville","columbiaville_25g","columbiaville_100g",
                                  "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support fdir ipv6 filter" % self.nic)
         # i40e
         if (self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
@@ -1637,7 +1639,7 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "twinville", "sagepond", "sageville",
                                  "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support fdir flexbytes filter" % self.nic)
         # i40e
         if (self.nic in ["fortville_eagle", "fortville_spirit",
@@ -1809,7 +1811,7 @@ class TestGeneric_flow_api(TestCase):
         """
         The filter structure is different between igb, ixgbe and i40e
         """
-        self.verify(self.nic in ["bartonhills", "powerville"], "%s nic not support flexbytes filter" % self.nic)
+        self.verify(self.nic in ["bartonhills", "powerville", "foxville"], "%s nic not support flexbytes filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.pf_cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1899,7 +1901,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["twinville", "sagepond", "sageville"], "%s nic not support fdir mac vlan filter" % self.nic)
+        self.verify(self.nic in ["twinville", "sagepond", "sageville", "foxville"], "%s nic not support fdir mac vlan filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-mode=perfect-mac-vlan --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1922,7 +1924,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["twinville", "sagepond", "sageville","columbiaville_25g","columbiaville_100g"], "%s nic not support fdir vxlan filter" % self.nic)
+        self.verify(self.nic in ["twinville", "sagepond", "sageville","columbiaville_25g","columbiaville_100g", "foxville"], "%s nic not support fdir vxlan filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-mode=perfect-tunnel --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1943,7 +1945,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["twinville", "sagepond", "sageville"], "%s nic not support fdir nvgre filter" % self.nic)
+        self.verify(self.nic in ["twinville", "sagepond", "sageville", "foxville"], "%s nic not support fdir nvgre filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-mode=perfect-tunnel --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1965,7 +1967,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support tunnel vxlan filter" % self.nic)
 
         self.setup_env()
@@ -2029,7 +2031,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support tunnel nvgre filter" % self.nic)
 
         self.setup_env()
diff --git a/tests/TestSuite_jumboframes.py b/tests/TestSuite_jumboframes.py
index 8555dd9..181908d 100644
--- a/tests/TestSuite_jumboframes.py
+++ b/tests/TestSuite_jumboframes.py
@@ -218,7 +218,7 @@ class TestJumboframes(TestCase):
         """
         On 1G NICs, when the jubmo frame MTU set as 9000, the software adjust it to 9004.
         """
-        if self.nic in ["powerville", "springville", "kawela_4"]:
+        if self.nic in ["powerville", "springville", "kawela_4", "foxville"]:
             self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 4 + 1, False)
         else:
             self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 1, False)
diff --git a/tests/TestSuite_pmdrss_hash.py b/tests/TestSuite_pmdrss_hash.py
index 204edd0..b3c1d66 100644
--- a/tests/TestSuite_pmdrss_hash.py
+++ b/tests/TestSuite_pmdrss_hash.py
@@ -415,14 +415,17 @@ class TestPmdrssHash(TestCase):
 
         self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g","fortville_eagle", "fortville_spirit",
                     "fortville_spirit_single", "redrockcanyou", "atwood",
-                    "boulderrapid", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "niantic", "carlsville"],
+                    "boulderrapid", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "niantic", "carlsville", "foxville"],
                     "NIC Unsupported: " + str(self.nic))
         global reta_num
         global iptypes
+        global queue
+        if self.nic in ["foxville"]:
+            queue = 4
 
         if self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville"]:
             reta_num = 512
-        elif self.nic in ["niantic"]:
+        elif self.nic in ["niantic", "foxville"]:
             reta_num = 128
             iptypes = {'ipv4-other': 'ip',
                        'ipv4-frag': 'ip',
@@ -614,7 +617,7 @@ class TestPmdrssHash(TestCase):
         
         # setup testpmd and finish bond config
         self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g","fortville_eagle", "fortville_spirit",
-                    "fortpark_TLV","fortpark_BASE-T", "fortville_25g", "carlsville"],
+                    "fortpark_TLV","fortpark_BASE-T", "fortville_25g", "carlsville", "foxville"],
                     "NIC Unsupported: " + str(self.nic))
 
         self.dut.send_expect("./%s/app/testpmd -c %s -n %d -- -i" % (self.target, self.coremask, self.dut.get_memory_channels()), "testpmd> ", 120)
diff --git a/tests/TestSuite_pmdrssreta.py b/tests/TestSuite_pmdrssreta.py
index 050c753..8227961 100644
--- a/tests/TestSuite_pmdrssreta.py
+++ b/tests/TestSuite_pmdrssreta.py
@@ -160,7 +160,7 @@ class TestPmdrssreta(TestCase):
                 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"]):
+            elif (self.nic in ["niantic", "redrockcanyou", "atwood", "boulderrapid", "foxville"]):
                 # compute the hash result of five tuple into the 7 LSBs value.
                 hash_index = int(tmp_reta_line["RSS hash"], 16) % 128
             else:
@@ -212,7 +212,8 @@ class TestPmdrssreta(TestCase):
                    }
 
         self.dut.kill_all()
-
+        if self.nic == 'foxville':
+            testQueues = [2]
         # test with different rss queues
         for queue in testQueues:
             if(queue == 16):
@@ -243,7 +244,7 @@ class TestPmdrssreta(TestCase):
                         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 ["niantic", "redrockcanyou", "atwood", "boulderrapid"]):
+                elif (self.nic in ["niantic", "redrockcanyou", "atwood", "boulderrapid", "foxville"]):
                     for i in range(128):
                         reta_entries.insert(i, random.randint(0, queue - 1))
                         self.dut.send_expect(
@@ -259,7 +260,7 @@ class TestPmdrssreta(TestCase):
             self.dut.send_expect("quit", "# ", 30)
 
     def test_rss_key_size(self):
-        nic_rss_key_size = {"columbiaville_25g": 52, "columbiaville_100g": 52, "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,"fortpark_BASE-T": 52, "hi1822": 40, "cavium_a063": 48, "cavium_a064": 48, "carlsville": 52, "sagepond": 40, "sageville": 40}
+        nic_rss_key_size = {"columbiaville_25g": 52, "columbiaville_100g": 52, "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,"fortpark_BASE-T": 52, "hi1822": 40, "cavium_a063": 48, "cavium_a064": 48, "carlsville": 52, "sagepond": 40, "sageville": 40, "foxville": 40}
         self.verify(self.nic in list(nic_rss_key_size.keys()), "Not supporte rss key on %s" % self.nic)
 
         dutPorts = self.dut.get_ports(self.nic)
diff --git a/tests/TestSuite_qinq_filter.py b/tests/TestSuite_qinq_filter.py
index fac8488..4450ea0 100644
--- a/tests/TestSuite_qinq_filter.py
+++ b/tests/TestSuite_qinq_filter.py
@@ -51,7 +51,7 @@ class TestQinqFilter(TestCase):
         global dutRxPortId
         global dutTxPortId
 
-        self.verify(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g"], 
+        self.verify(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", 'foxville'],
                     "NIC %s not support this test" % self.nic)
         print('this case only supports fortville with 6.0.0+ firmware and dpdk17.05+')
         ports = self.dut.get_ports()
diff --git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rte_flow.py
index 0eabc98..be2c72e 100644
--- a/tests/TestSuite_rss_to_rte_flow.py
+++ b/tests/TestSuite_rss_to_rte_flow.py
@@ -190,6 +190,8 @@ class TestRSS_to_Rteflow(TestCase):
         # 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
@@ -264,21 +266,28 @@ class TestRSS_to_Rteflow(TestCase):
         """
         Set valid and invalid parameter.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
+        if self.nic == 'foxville':
+            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")
+        else:
+            self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
+
         # send the packets and verify the results
         # ipv4-other and ipv6-other is enabled by default.
         # i40e
+        rss_queue = ["1", "4", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
-            rss_queue = ["1", "4", "7"]
             self.send_and_check(self.pkt4, rss_queue)
             self.send_and_check(self.pkt8, rss_queue)
             rss_queue = ["0"]
@@ -289,7 +298,8 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt6, rss_queue)
             self.send_and_check(self.pkt7, rss_queue)
         else:
-            rss_queue = ["1", "4", "7"]
+            if self.nic == 'foxville':
+			    rss_queue = ["1", "2", "3"]
             self.send_and_check(self.pkt1, rss_queue)
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
@@ -337,26 +347,37 @@ class TestRSS_to_Rteflow(TestCase):
         self.dut.send_expect(
             "flow create 0 ingress pattern end actions rss queues 8 end / end", "error")
         # Set all the queues to the rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end / end", "created")
+        if self.nic == 'foxville':
+            self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss queues 0 1 2 3 end / end", "created")
+        else:
+            self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end / end", "created")
 
     def test_different_types_rss_queue_rule(self):
         """
         Set valid and invalid parameter.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
+        if self.nic == 'foxville':
+            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")
+        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")
+
         # send the packets and verify the results
+        rss_queue = ["1", "4", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
-            rss_queue = ["1", "4", "7"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
             self.send_and_check(self.pkt4, rss_queue)
@@ -367,12 +388,15 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt7, rss_queue)
             self.send_and_check(self.pkt8, rss_queue)
         elif(self.nic in ["cavium_a063", "cavium_a064"]):
-            rss_queue = ["1", "4", "7"]
+            self.send_and_check(self.pkt2, rss_queue)
+            self.send_and_check(self.pkt3, rss_queue)
+            self.send_and_check(self.pkt6, rss_queue)
+	    elif(self.nic in ["foxville"]):
+            rss_queue = ["1", "2", "3"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
             self.send_and_check(self.pkt6, rss_queue)
         else:
-            rss_queue = ["1", "4", "7"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
             self.send_and_check(self.pkt6, rss_queue)
@@ -469,7 +493,8 @@ class TestRSS_to_Rteflow(TestCase):
         """
         Set RSS queue rule while disable RSS in command-line.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-rss --port-topology=chained")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --disable-rss --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
@@ -483,18 +508,22 @@ class TestRSS_to_Rteflow(TestCase):
         self.check_packet_queue("all", out)
         self.dut.send_expect("quit", "# ")
 
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-rss --port-topology=chained")
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --disable-rss --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 5 6 7 end / end", "created")
+		if self.nic == 'foxville':
+		    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")
+	    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")
         # send the packets and verify the results
+		rss_queue = ["5", "6", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
-            rss_queue = ["5", "6", "7"]
             self.send_and_check(self.pkt1, rss_queue)
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt5, rss_queue)
@@ -505,7 +534,8 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt4, rss_queue)
             self.send_and_check(self.pkt6, rss_queue)
         else:
-            rss_queue = ["5", "6", "7"]
+		    if self.nic == 'foxville':
+			    rss_queue = ["1", "2", "3"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt7, rss_queue)
             rss_queue = ["0"]
@@ -532,20 +562,25 @@ class TestRSS_to_Rteflow(TestCase):
         """
         Set RSS queue rule and flow director rule in meantime.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --pkt-filter-mode=perfect")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --pkt-filter-mode=perfect" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types udp end queues 3 4 5 end / end", "created")
+		if self.nic == 'foxville':
+		    self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss types udp end queues 1 2 3 end / end", "created")
+		else:
+	        self.dut.send_expect(
+	            "flow create 0 ingress pattern end actions rss types udp end queues 3 4 5 end / end", "created")
         # send the packets and verify the results
-        rss_queue = ["3", "4", "5"]
+        rss_queue = ["1", "2", "3"] if self.nic == 'foxville' else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue)
         # Create a flow director rule
-        if (self.nic in ["bartonhills", "powerville"]):
+        if (self.nic in ["bartonhills", "powerville", "foxville"]):
             # Create a flow director rule
             self.dut.send_expect(
                 "flow create 0 ingress pattern eth / ipv4 proto is 6 / udp dst is 50 / end actions queue index 1 / end", "created")
@@ -561,7 +596,7 @@ class TestRSS_to_Rteflow(TestCase):
             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> ")
-        rss_queue = ["3", "4", "5"]
+        rss_queue = ["1", "2", "3"] if self.nic == 'foxville' else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue)
 
     def test_queue_region_with_rss_rule_api(self):
diff --git a/tests/TestSuite_rxtx_offload.py b/tests/TestSuite_rxtx_offload.py
index d3ac2da..f387995 100644
--- a/tests/TestSuite_rxtx_offload.py
+++ b/tests/TestSuite_rxtx_offload.py
@@ -90,7 +90,7 @@ class TestRxTx_Offload(TestCase):
         # Support i40e/ixgbe NICs
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit","fortville_25g",
                                  "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
-                                 "niantic", "twinpond", "sagepond", "sageville"], "NIC Unsupported: " + str(self.nic))
+                                 "niantic", "twinpond", "sagepond", "sageville", "foxville"], "NIC Unsupported: " + str(self.nic))
         # Based on h/w type, choose how many ports to use
         self.dut_ports = self.dut.get_ports(self.nic)
         # Verify that enough ports are available
@@ -345,10 +345,11 @@ class TestRxTx_Offload(TestCase):
         pkt1_queue = self.get_queue_number(self.jumbo_pkt1)
         pkt2_queue = self.get_queue_number(self.jumbo_pkt2)
 
-        # Failed to disable jumboframe per_queue
-        self.dut.send_expect("port stop 0", "testpmd> ")
-        self.dut.send_expect("port 0 rxq %s rx_offload jumbo_frame off" % pkt1_queue, "testpmd> ")
-        self.verify_result(self.jumbo_pkt1, 1, pkt1_queue)
+        # Failed to disable jumboframe per_queue, foxvillee 2.5g not support
+        if self.nic != 'foxville':
+            self.dut.send_expect("port stop 0", "testpmd> ")
+            self.dut.send_expect("port 0 rxq %s rx_offload jumbo_frame off" % pkt1_queue, "testpmd> ")
+            self.verify_result(self.jumbo_pkt1, 1, pkt1_queue)
 
         # Succeed to disable jumboframe per_port
         self.dut.send_expect("port stop 0", "testpmd> ")
@@ -430,6 +431,8 @@ class TestRxTx_Offload(TestCase):
         self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4")
         capabilities = self.check_port_capability("rx")
         for capability in capabilities:
+            if self.nic == 'foxville' and capability == 'sctp_cksum':
+                continue
             if capability != "jumboframe":
                 self.dut.send_expect("port stop 0", "testpmd> ")
                 self.dut.send_expect("port config 0 rx_offload %s on" % capability, "testpmd> ")
@@ -444,7 +447,7 @@ class TestRxTx_Offload(TestCase):
         Set Rx offload by queue.
         """
         # Only support ixgbe NICs
-        self.verify(self.nic in ["niantic", "twinpond", "sagepond", "sageville"], "%s nic not support rx offload setting by queue." % self.nic)
+        self.verify(self.nic in ["niantic", "twinpond", "sagepond", "sageville", "foxville"], "%s nic not support rx offload setting by queue." % self.nic)
         # Define the vlan packets
         self.vlan_pkt1 = r'sendp([Ether(dst="%s")/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.3")/UDP(sport=33, dport=34)/Raw("x"*20)], iface="%s")' % (self.pf_mac, self.tester_itf0)
         self.vlan_pkt2 = r'sendp([Ether(dst="%s")/Dot1Q(vlan=1)/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=33, dport=34)/Raw("x"*20)], iface="%s")' % (self.pf_mac, self.tester_itf0)
diff --git a/tests/TestSuite_uni_pkt.py b/tests/TestSuite_uni_pkt.py
index f664c08..6770f18 100644
--- a/tests/TestSuite_uni_pkt.py
+++ b/tests/TestSuite_uni_pkt.py
@@ -131,7 +131,7 @@ class TestUniPacket(TestCase):
            "x722" in self.nic or "fortpark_BASE-T" in self.nic :
             outerL4Type = "L4_NONFRAG"
             ipv4_default_packet_type = ["L2_ETHER", "L3_IPV4_EXT_UNKNOWN"]
-        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower():
+        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower() or 'foxville' in self.nic.lower():
             outerL4Type = ""
             ipv4_default_packet_type = ["L2_ETHER", "L3_IPV4"]
         pktType = {
@@ -166,7 +166,7 @@ class TestUniPacket(TestCase):
            "x722" in self.nic or "fortpark_BASE-T" in self.nic:
             outerL4Type = "L4_NONFRAG"
             ipv6_default_packet_type = ["L2_ETHER", "L3_IPV6_EXT_UNKNOWN"]
-        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower():
+        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower() or 'foxville' in self.nic.lower():
             outerL4Type = ""
             ipv6_default_packet_type = ["L2_ETHER", "L3_IPV6"]
 
@@ -221,7 +221,7 @@ class TestUniPacket(TestCase):
         detected.
         """
         self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g", "niantic", "fortville_eagle", "fortville_spirit","powerville", "fortpark_TLV","fortpark_BASE-T",
-            "fortville_25g", "fortville_spirit_single", "carlsville"], "not support %s" % self.nic)
+            "fortville_25g", "fortville_spirit_single", "carlsville", "foxville"], "not support %s" % self.nic)
         pktType = {
             "MAC_IP_IPv6_PKT":            ["L2_ETHER", "L3_IPV4", "TUNNEL_IP",  "INNER_L3_IPV6"],
             "MAC_IP_IPv6EXT2_PKT":        ["L2_ETHER", "L3_IPV4", "TUNNEL_IP",  "INNER_L3_IPV6_EXT"],
diff --git a/tests/TestSuite_unit_tests_loopback.py b/tests/TestSuite_unit_tests_loopback.py
index 22e6bee..68b1f30 100644
--- a/tests/TestSuite_unit_tests_loopback.py
+++ b/tests/TestSuite_unit_tests_loopback.py
@@ -112,6 +112,7 @@ class TestUnitTestsLoopback(TestCase):
         Run pmd stream control mode burst test case.
         """
         self.dut.send_expect("sed -i -e 's/lpbk_mode = 1/lpbk_mode = 0/' app/test/test_pmd_perf.c", "# ", 30)
+        self.dut.send_expect("sed -i -e '/check_all_ports_link_status(nb_ports, RTE_PORT_ALL);/a\        sleep(6);' app/test/test_pmd_perf.c", "# ", 30)
         out = self.dut.build_dpdk_apps('app/test')
         self.verify("Error" not in out, "Compilation error")
         self.verify("No such" not in out, "Compilation error")
@@ -139,6 +140,7 @@ class TestUnitTestsLoopback(TestCase):
         Run after each test suite.
         """
         self.dut.send_expect("sed -i -e 's/lpbk_mode = 0/lpbk_mode = 1/' app/test/test_pmd_perf.c", "# ", 30)
+        self.dut.send_expect("sed -i -e '/sleep(6)/d' app/test/test_pmd_perf.c", "# ", 30)
         self.dut.send_expect("sed -i -e 's/#define MAX_TRAFFIC_BURST              32/#define MAX_TRAFFIC_BURST              %s/' app/test/test_pmd_perf.c" % self.max_traffic_burst, "# ", 30)
         out = self.dut.build_dpdk_apps('app/test')
         self.verify("Error" not in out, "Compilation error")
diff --git a/tests/TestSuite_vlan_ethertype_config.py b/tests/TestSuite_vlan_ethertype_config.py
index a18f7c8..c31f585 100644
--- a/tests/TestSuite_vlan_ethertype_config.py
+++ b/tests/TestSuite_vlan_ethertype_config.py
@@ -290,7 +290,7 @@ class TestVlanEthertypeConfig(TestCase):
         self.dut.send_expect("start", "testpmd> ")
 
         # caium_a063 card support only default '0x8100' tpid in rx mode
-        if (self.nic in ["cavium_a063", "cavium_a064"]):
+        if (self.nic in ["cavium_a063", "cavium_a064", "foxville"]):
             tpids = [0x8100]
         else:
             tpids = [0x8100, 0xA100]
-- 
1.8.3.1


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

* Re: [dts] [PATCH V1] DTS adapts to foxville network card
  2020-04-20  7:05 Zhou Jun
@ 2020-04-21  3:31 ` Tu, Lijuan
  0 siblings, 0 replies; 3+ messages in thread
From: Tu, Lijuan @ 2020-04-21  3:31 UTC (permalink / raw)
  To: Zhou, JunX W, dts; +Cc: Zhou, JunX W

Applied failed, could you please rework it, thanks

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Zhou Jun
> Sent: Monday, April 20, 2020 3:05 PM
> To: dts@dpdk.org
> Cc: Zhou, JunX W <junx.w.zhou@intel.com>
> Subject: [dts] [PATCH V1] DTS adapts to foxville network card
> 
> From: Zhou jun <junx.w.zhou@intel.com>
> 
> DTS adapts to foxville network card
> 
> Signed-off-by: Zhou jun <junx.w.zhou@intel.com>
> ---
>  conf/test_case_checklist.json            | 428
> +++++++++++++++++++++++++++++--
>  conf/test_case_supportlist.json          |  52 ++--
>  framework/settings.py                    |   2 +
>  tests/TestSuite_dual_vlan.py             |   2 +
>  tests/TestSuite_fdir.py                  |   8 +-
>  tests/TestSuite_flexible_rxd.py          |   5 +-
>  tests/TestSuite_flow_classify.py         |   2 +-
>  tests/TestSuite_generic_filter.py        |  20 +-
>  tests/TestSuite_generic_flow_api.py      |  40 +--
>  tests/TestSuite_jumboframes.py           |   2 +-
>  tests/TestSuite_pmdrss_hash.py           |   6 +-
>  tests/TestSuite_pmdrssreta.py            |   9 +-
>  tests/TestSuite_qinq_filter.py           |   2 +-
>  tests/TestSuite_queue_region.py          |   2 +-
>  tests/TestSuite_rss_to_rte_flow.py       |  85 ++++--
>  tests/TestSuite_rxtx_offload.py          |  15 +-
>  tests/TestSuite_uni_pkt.py               |   6 +-
>  tests/TestSuite_unit_tests_loopback.py   |   2 +
>  tests/TestSuite_vlan_ethertype_config.py |   2 +-
>  19 files changed, 570 insertions(+), 120 deletions(-)
> 
> diff --git a/conf/test_case_checklist.json b/conf/test_case_checklist.json
> index 44bf8af..6bd6783 100644
> --- a/conf/test_case_checklist.json
> +++ b/conf/test_case_checklist.json
> @@ -20,7 +20,8 @@
>                  "cavium_a011",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -                "carlsville"
> +                "carlsville",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -40,7 +41,8 @@
>                  "springfountain",
>                  "cavium_a034",
>                  "cavium_a011",
> -                "twinpond"
> +                "twinpond",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -69,7 +71,8 @@
>                  "cavium_a011",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -                "carlsville"
> +                "carlsville",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -98,7 +101,8 @@
>                  "cavium_a011",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -                "carlsville"
> +                "carlsville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -150,7 +154,8 @@
>                  "cavium_a011",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -                "carlsville"
> +                "carlsville",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -205,7 +210,8 @@
>                  "cavium_a011",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -                "carlsville"
> +                "carlsville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -232,7 +238,8 @@
>                  "cavium_a011",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -                "carlsville"
> +                "carlsville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -261,7 +268,8 @@
>                  "cavium_a011",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -                "carlsville"
> +                "carlsville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -316,7 +324,8 @@
>                  "powerville",
>                  "columbiaville_25g",
>                  "columbiaville_100g",
> -                "springville"
> +                "springville",
> +	        "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -359,7 +368,8 @@
>                  "ironpond",
>                  "cavium_a034",
>                  "cavium_0011",
> -                "cavium_a064"
> +                "cavium_a064",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -455,7 +465,8 @@
>                  "cavium_a034",
>                  "cavium_0011",
>                  "fortpark_TLV",
> -                "fortpark_BASE-T"
> +                "fortpark_BASE-T",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -491,7 +502,8 @@
>                  "kawela_4",
>                  "springville",
>                  "cavium_a034",
> -                "cavium_0011"
> +                "cavium_0011",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -510,7 +522,8 @@
>                  "kawela_4",
>                  "springville",
>                  "cavium_a034",
> -                "cavium_0011"
> +                "cavium_0011",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -701,7 +714,8 @@
>                  "springfountain",
>                  "twinpond",
>                  "cavium_a034",
> -                "cavium_0011"
> +                "cavium_0011",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -842,7 +856,8 @@
>                  "springfountain",
>                  "twinpond",
>                  "cavium_a034",
> -                "cavium_0011"
> +                "cavium_0011",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -865,14 +880,13 @@
>                  "twinpond",
>                  "niantic",
>                  "fortville_spirit_single",
> -                "fortpark_TLV",
> -                "fortpark_BASE-T"
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
>              ],
>              "Bug ID": "",
> -            "Comments": "the nic not support this case,(x722 know ND
> issue,DPDK-15118)"
> +            "Comments": "the nic not support this case"
>          }
>      ],
>      "pmdrss_reta": [
> @@ -1452,6 +1466,19 @@
>              ],
>              "Bug ID": "",
>              "Comments": "32 bit not support this case/not enough queue"
> +        },
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "nic not support this case"
>          }
>      ],
>      "simple_symmetric": [
> @@ -1475,7 +1502,8 @@
>              "NIC": [
>                  "redrockcanyou",
>                  "atwood",
> -                "boulderrapid"
> +                "boulderrapid",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -1506,7 +1534,8 @@
>              "NIC": [
>                  "redrockcanyou",
>                  "atwood",
> -                "boulderrapid"
> +                "boulderrapid",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -1537,7 +1566,8 @@
>              "NIC": [
>                  "redrockcanyou",
>                  "atwood",
> -                "boulderrapid"
> +                "boulderrapid",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -1908,6 +1938,19 @@
>              ],
>              "Bug ID": "",
>              "Comments": "link_status_interrupt application assumes one certain
> CPU frequency, test fails on thunder boards"
> +        },
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "arm64-thunderx-linuxapp-gcc"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
>          }
>      ],
>      "add_remove_mac_address": [
> @@ -2279,7 +2322,8 @@
>                  "fortpark_TLV_vf",
>                  "cavium_a064",
>                  "columbiaville_25g",
> -                "columbiaville_100g"
> +                "columbiaville_100g",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -2315,6 +2359,7 @@
>                  "twinville",
>                  "sagepond",
>                  "sageville",
> +		"foxville",
>  		"springville"
>              ],
>              "Target": [
> @@ -2379,7 +2424,8 @@
>              ],
>              "NIC": [
>                  "cavium_a063",
> -                "cavium_a064"
> +                "cavium_a064",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -2480,7 +2526,8 @@
>              ],
>              "NIC": [
>                  "cavium_a063",
> -                "cavium_a064"
> +                "cavium_a064",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -2711,7 +2758,8 @@
>                  "powerville",
>                  "springville",
>                  "columbiaville_25g",
> -                "columbiaville_100g"
> +                "columbiaville_100g",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -2720,6 +2768,126 @@
>              "Comments": "only i40e and ixgbe driver support this case"
>          }
>      ],
> +    "hash_readwrite_perf": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"ipv6_5tuple_hash_table": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +    "fdir_for_vlan": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"fdir_for_nvgre": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"L2_tunnel_filter": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"fdir_for_L2_payload": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"n_tuple_filter": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"flexbytes_filter": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
>      "perf_pvp_split_ring_dequeue_zero_copy": [
>          {
>              "OS": [
> @@ -2749,5 +2917,215 @@
>              "Bug ID": "",
>              "Comments": "niantic not support this case"
>          }
> +    ],
> +    "tunnel_filter_nvgre": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"fdir_for_flexbytes": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"fdir_for_mac_vlan": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"tunnel_filter_vxlan": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"fdir_for_ipv4": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"fdir_for_vxlan": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"link_status_interrupt_change": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"load_balancer": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "Feature will be ready in next stage(P3)"
> +        }
> +    ],
> +	"multicast_forwarding": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "Feature will be ready in next stage(P3)"
> +        }
> +    ],
> +	"update_system": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "Feature will be ready in next stage(P3)"
> +        }
> +    ],
> +	"ptpclient": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "Feature will be ready in next stage(P3)"
> +        }
> +    ],
> +	"IPv4_L4": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
> +    ],
> +	"l2pkt_detect": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "Feature will be ready in next stage(P3)"
> +        }
> +    ],
> +	"dump_driver_info": [
> +        {
> +            "OS": [
> +                "ALL"
> +            ],
> +            "NIC": [
> +                "foxville"
> +            ],
> +            "Target": [
> +                "ALL"
> +            ],
> +            "Bug ID": "",
> +            "Comments": "NIC not support this case"
> +        }
>      ]
>  }
> diff --git a/conf/test_case_supportlist.json b/conf/test_case_supportlist.json
> index a6300e4..95ca036 100644
> --- a/conf/test_case_supportlist.json
> +++ b/conf/test_case_supportlist.json
> @@ -130,6 +130,7 @@
>              ],
>              "NIC": [
>                  "forrpark_TLV",
> +                "foxville",
>                  "fortville_eagle",
>                  "fortville_spirit",
>                  "fortville_spirit_single",
> @@ -183,7 +184,8 @@
>                  "fortpark_BASE-T",
>                  "carlsville",
>                  "columbiaville_25g",
> -                "columbiaville_100g"
> +                "columbiaville_100g",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -521,6 +523,7 @@
>              ],
>              "NIC": [
>                  "fortville_eagle",
> +                "foxville",
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortville_25g",
> @@ -540,6 +543,7 @@
>              ],
>              "NIC": [
>                  "fortville_eagle",
> +                "foxville",
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortville_25g",
> @@ -559,6 +563,7 @@
>              ],
>              "NIC": [
>                  "fortville_eagle",
> +                "foxville",
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortville_25g",
> @@ -684,7 +689,8 @@
>                  "niantic",
>                  "twinpond",
>                  "sagepond",
> -                "sageville"
> +                "sageville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -700,6 +706,7 @@
>              ],
>              "NIC": [
>                  "fortville_eagle",
> +                "foxville",
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortville_25g",
> @@ -721,6 +728,7 @@
>              ],
>              "NIC": [
>                  "fortville_eagle",
> +                "foxville",
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortpark_TLV",
> @@ -740,7 +748,8 @@
>              ],
>              "NIC": [
>                  "bartonhills",
> -                "powerville"
> +                "powerville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -757,7 +766,8 @@
>              "NIC": [
>                  "twinville",
>                  "sagepond",
> -                "sageville"
> +                "sageville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -774,7 +784,8 @@
>              "NIC": [
>                  "twinville",
>                  "sagepond",
> -                "sageville"
> +                "sageville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -792,7 +803,8 @@
>                  "niantic",
>                  "kawela_4",
>                  "kawela",
> -                "twinville"
> +                "twinville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -808,6 +820,7 @@
>              ],
>              "NIC": [
>                  "niantic",
> +                "foxville",
>                  "twinville",
>                  "sagepond",
>                  "sageville",
> @@ -834,7 +847,8 @@
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortpark_TLV",
> -                "fortpark_BASE-T"
> +                "fortpark_BASE-T",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -857,7 +871,8 @@
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortpark_TLV",
> -                "fortpark_BASE-T"
> +                "fortpark_BASE-T",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -874,7 +889,8 @@
>              "NIC": [
>                  "twinville",
>                  "sagepond",
> -                "sageville"
> +                "sageville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -893,7 +909,8 @@
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortpark_TLV",
> -                "fortpark_BASE-T"
> +                "fortpark_BASE-T",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -921,7 +938,8 @@
>                  "fortville_spirit_single",
>                  "fortpark_TLV",
>                  "fortpark_BASE-T",
> -		"carlsville"
> +		"carlsville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -937,7 +955,8 @@
>              ],
>              "NIC": [
>                  "bartonhills",
> -                "powerville"
> +                "powerville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -953,7 +972,8 @@
>              ],
>              "NIC": [
>                  "sagepond",
> -                "sageville"
> +                "sageville",
> +                "foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -976,7 +996,8 @@
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortpark_TLV",
> -                "fortpark_BASE-T"
> +                "fortpark_BASE-T",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> @@ -995,7 +1016,8 @@
>                  "fortville_spirit",
>                  "fortville_spirit_single",
>                  "fortpark_TLV",
> -                "fortpark_BASE-T"
> +                "fortpark_BASE-T",
> +		"foxville"
>              ],
>              "Target": [
>                  "ALL"
> diff --git a/framework/settings.py b/framework/settings.py
> index c31a937..d82b684 100644
> --- a/framework/settings.py
> +++ b/framework/settings.py
> @@ -111,6 +111,7 @@ NICS = {
>      'fastlinq_ql41000_vf': '1077:8090',
>      'carlsville': '8086:15ff',
>      'hi1822': '19e5:1822',
> +    'foxville': '8086:15f2'
>  }
> 
>  DRIVERS = {
> @@ -176,6 +177,7 @@ DRIVERS = {
>      'fastlinq_ql41000_vf': 'qede',
>      'carlsville': 'i40e',
>      'hi1822': 'hinic',
> +    'foxville':'igc'
>  }
> 
>  """
> diff --git a/tests/TestSuite_dual_vlan.py b/tests/TestSuite_dual_vlan.py
> index 93ef241..daa23d3 100644
> --- a/tests/TestSuite_dual_vlan.py
> +++ b/tests/TestSuite_dual_vlan.py
> @@ -361,6 +361,8 @@ class TestDualVlan(TestCase):
>          self.verify("vlan %s" % outvlan not in out, "vlan strip enable error: " +
> out)
> 
>          self.mode_config(stripq="off")
> +        if self.nic == 'foxville':
> +            self.mode_config(strip="off")
>          self.vlan_send_packet(outvlan)
>          out = self.get_tcpdump_package()
>          self.verify("vlan %s" % outvlan in out, "vlan strip queue disable error: " +
> out)
> diff --git a/tests/TestSuite_fdir.py b/tests/TestSuite_fdir.py
> index ecda94d..a7c98bd 100644
> --- a/tests/TestSuite_fdir.py
> +++ b/tests/TestSuite_fdir.py
> @@ -235,7 +235,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
>          Fdir get flexbytes and payload according NIC
>          """
> 
> -        if(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single",
> "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville"]):
> +        if(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single",
> "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville", "foxville"]):
>              if not sctp:
>                  self.flexbytes =
> "0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,
> 0x77,0x77"
>              else:
> @@ -784,7 +784,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
>          """
>          Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4
> TTL
>          """
> -        if not self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "carlsville"]:
> +        if not self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
>              self.verify(False, "This case only support fortville nic")
>          self.dut.kill_all()
>          self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s -
> -disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-
> mode=perfect" % (self.target, self.coreMask,
> utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
> @@ -905,7 +905,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
>          """
>          Expand Flow Director for fortville to support ipv6 TC, next-header, hop-
> limits
>          """
> -        if not self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "carlsville"]:
> +        if not self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
>              self.verify(False, "This case only support fortville nic")
>          self.dut.kill_all()
>          self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s -
> -disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-
> mode=perfect" % (self.target, self.coreMask,
> utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
> @@ -1026,7 +1026,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
>          """
>          Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4
> TTL
>          """
> -        if not self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "carlsville"]:
> +        if not self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
>              self.verify(False, "This case only support fortville nic")
>          self.dut.kill_all()
>          self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s -
> -disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-
> mode=perfect" % (self.target, self.coreMask,
> utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
> diff --git a/tests/TestSuite_flexible_rxd.py b/tests/TestSuite_flexible_rxd.py
> index 77001ab..108bbc5 100644
> --- a/tests/TestSuite_flexible_rxd.py
> +++ b/tests/TestSuite_flexible_rxd.py
> @@ -43,7 +43,7 @@ class TestFlexibleRxd(TestCase):
>          """
>          run at the start of each test suite.
>          """
> -        self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g"],
> +        self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g",
> "foxville"],
>                      "flexible rxd only supports CVL NIC.")
>          self.nb_core = 2
>          self.pkg_count = 1
> @@ -88,7 +88,8 @@ class TestFlexibleRxd(TestCase):
>          """
>          start testpmd
>          """
> -        para = '--rxq=32 --txq=32 --portmask=0x1 --nb-cores=%d' % self.nb_core
> +        num = '4' if self.nic == 'foxville' else '32'
> +        para = '--rxq=%s --txq=%s --portmask=0x1 --nb-cores=%d' % (num, num,
> self.nb_core)
>          self.pmdout.start_testpmd("1S/3C/1T", param=para,
> ports=[self.pci_info], port_options={self.pci_info: 'proto_xtr=%s' %
> proto_xdr})
>          self.pmdout.execute_cmd("set verbose 1", "testpmd> ", 120)
>          self.pmdout.execute_cmd("set fwd io", "testpmd> ", 120)
> diff --git a/tests/TestSuite_flow_classify.py b/tests/TestSuite_flow_classify.py
> index 2853f5d..e6320b0 100644
> --- a/tests/TestSuite_flow_classify.py
> +++ b/tests/TestSuite_flow_classify.py
> @@ -452,7 +452,7 @@ class TestFlowClassify(TestCase):
>          self.verify_traffic(stm_types=stream_list, flow_type="multi_stream")
> 
>      def verify_supported_nic(self):
> -        supported_drivers = ['i40e', 'ixgbe']
> +        supported_drivers = ['i40e', 'ixgbe', 'igc']
>          result = all([self.dut.ports_info[index]['port'].default_driver in
>                        supported_drivers
>                        for index in self.dut_ports])
> diff --git a/tests/TestSuite_generic_filter.py
> b/tests/TestSuite_generic_filter.py
> index ddc5eb8..35def99 100644
> --- a/tests/TestSuite_generic_filter.py
> +++ b/tests/TestSuite_generic_filter.py
> @@ -204,7 +204,8 @@ class TestGeneric_filter(TestCase):
>          """
>          Enable receipt of SYN packets
>          """
> -        self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", "powerville"],
> "%s nic not support syn filter" % self.nic)
> +        self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", "powerville",
> "foxville"],
> +                    "%s nic not support syn filter" % self.nic)
>          self.pmdout.start_testpmd(
>              "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-
> cores=4 --nb-ports=1" % portMask)
>          self.port_config()
> @@ -285,7 +286,7 @@ class TestGeneric_filter(TestCase):
>              self.filter_send_packet("fivetuple")
>              out = self.dut.send_expect("stop", "testpmd> ")
>              self.verify_result(out, tx_pkts="1", expect_queue="3")
> -        elif self.nic in ["bartonhills", "powerville"]:
> +        elif self.nic in ["bartonhills", "powerville", "foxville"]:
>              self.dut.send_expect(
>                  "flex_filter %s add len 16 bytes
> 0x0123456789abcdef0000000008000000 mask 000C priority 2 queue 1" %
> (valports[0]), "testpmd> ")
>              self.dut.send_expect(
> @@ -307,7 +308,7 @@ class TestGeneric_filter(TestCase):
>          """
>          five tuple filter
>          """
> -        if self.nic in ["niantic", "kawela_4"]:
> +        if self.nic in ["niantic", "kawela_4", "foxville"]:
>              self.pmdout.start_testpmd(
>                  "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --
> nb-cores=4 --nb-ports=1" % portMask)
>              self.port_config()
> @@ -372,7 +373,7 @@ class TestGeneric_filter(TestCase):
> 
>          self.verify(self.nic in ["niantic", "kawela_4", "bartonhills",
>                             "powerville", "fortville_eagle", "fortville_spirit",
> -                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g","cavium_a063", "carlsville"], "%s nic not support syn filter" %
> self.nic)
> +                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g","cavium_a063", "carlsville", "foxville"], "%s nic not support
> syn filter" % self.nic)
>          self.pmdout.start_testpmd(
>              "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-
> cores=4 --nb-ports=1" % portMask)
>          self.port_config()
> @@ -501,7 +502,7 @@ class TestGeneric_filter(TestCase):
> 
>      def test_twotuple_filter(self):
> 
> -        if self.nic in ["powerville", "bartonhills", "cavium_a063"]:
> +        if self.nic in ["powerville", "bartonhills", "cavium_a063", "foxville"]:
>              self.pmdout.start_testpmd(
>                  "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --
> nb-cores=4 --nb-ports=1" % portMask)
>              self.port_config()
> @@ -534,7 +535,8 @@ class TestGeneric_filter(TestCase):
>              self.verify(False, "%s nic not support two tuple filter" % self.nic)
> 
>      def test_flex_filter(self):
> -        self.verify(self.nic in ["powerville", "bartonhills", "cavium_a063"], '%s
> not support flex filter' % self.nic)
> +        self.verify(self.nic in ["powerville", "bartonhills", "cavium_a063",
> "foxville"],
> +                    '%s not support flex filter' % self.nic)
> 
>          masks = ['000C', '000C']
>          self.pmdout.start_testpmd(
> @@ -589,7 +591,7 @@ class TestGeneric_filter(TestCase):
> 
>      def test_multiple_filters_1GB(self):
> 
> -        if self.nic in ["powerville", "kawela_4", "bartonhills"]:
> +        if self.nic in ["powerville", "kawela_4", "bartonhills", "foxville"]:
>              self.pmdout.start_testpmd(
>                  "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --
> nb-cores=4 --nb-ports=1" % portMask)
>              self.port_config()
> @@ -633,8 +635,8 @@ class TestGeneric_filter(TestCase):
>              self.verify(False, "%s nic not support this test" % self.nic)
>      def test_jumbo_frame_size(self):
> 
> -        self.verify(self.nic not in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "fortpark_TLV","fortpark_BASE-T",
> "carlsville"], "%s nic not support this test" % self.nic)
> -        if (self.nic in ["cavium_a063", "cavium_a064"]):
> +        self.verify(self.nic not in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", "fortpark_TLV", "carlsville"], "%s nic
> not support this test" % self.nic)
> +        if (self.nic in ["cavium_a063", "cavium_a064", "foxville"]):
>              self.pmdout.start_testpmd(
>                  "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --
> nb-cores=4 --nb-ports=1 --mbcache=200 --mbuf-size=2048 --max-pkt-
> len=9200" % portMask)
>          else:
> diff --git a/tests/TestSuite_generic_flow_api.py
> b/tests/TestSuite_generic_flow_api.py
> index 4e82202..5dbf261 100644
> --- a/tests/TestSuite_generic_flow_api.py
> +++ b/tests/TestSuite_generic_flow_api.py
> @@ -78,7 +78,8 @@ class TestGeneric_flow_api(TestCase):
>          global MAX_QUEUE
>          if self.nic in ["powerville", "bartonhills", "kawela", "kawela_4"]:
>              MAX_QUEUE = 7
> -
> +        elif self.nic in ['foxville']:
> +            MAX_QUEUE = 3
>          # Based on h/w type, choose how many ports to use
>          self.dut_ports = self.dut.get_ports(self.nic)
>          # Verify that enough ports are available
> @@ -664,7 +665,7 @@ class TestGeneric_flow_api(TestCase):
>          Only supported by ixgbe and igb.
>          """
>          self.verify(self.nic in ["niantic", "kawela_4", "kawela", "bartonhills",
> "twinville", "sagepond", "sageville",
> -                                 "powerville"], "%s nic not support SYN filter" % self.nic)
> +                                 "powerville", "foxville"], "%s nic not support SYN filter" %
> self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --
> txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -687,12 +688,13 @@ class TestGeneric_flow_api(TestCase):
>          self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ", 120)
> 
>          # create the flow rules
> +        q_idx = '2' if self.nic == 'foxville' else '4'
>          self.dut.send_expect(
> -            "flow create 0 ingress pattern eth / ipv6 / tcp flags spec 0x02 flags
> mask 0x02 / end actions queue index 4 / end",
> +            "flow create 0 ingress pattern eth / ipv6 / tcp flags spec 0x02 flags
> mask 0x02 / end actions queue index %s / end" %(q_idx),
>              "created")
>          # send the packets and verify the results
>          self.sendpkt(pktstr='Ether(dst="%s")/IPv6(src="2001::1",
> dst="2001::2")/TCP(dport=80,flags="S")/Raw("x" * 20)' % self.pf_mac)
> -        self.verify_result("pf", expect_rxpkts="1", expect_queue="4",
> verify_mac=self.pf_mac)
> +        self.verify_result("pf", expect_rxpkts="1", expect_queue=q_idx,
> verify_mac=self.pf_mac)
> 
>          self.sendpkt(pktstr='Ether(dst="%s")/IPv6(src="2001::1",
> dst="2001::2")/TCP(dport=80,flags="PA")/Raw("x" * 20)' % self.pf_mac)
>          self.verify_result("pf", expect_rxpkts="1", expect_queue="0",
> verify_mac=self.pf_mac)
> @@ -704,7 +706,7 @@ class TestGeneric_flow_api(TestCase):
>          only supported by ixgbe and igb
>          """
>          self.verify(self.nic in ["niantic", "kawela_4", "kawela",
> -                                 "twinville"], "%s nic not support n-tuple filter" % self.nic)
> +                                 "twinville", "foxville"], "%s nic not support n-tuple filter" %
> self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --
> txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -741,7 +743,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          only supported by igb
>          """
> -        self.verify(self.nic in ["bartonhills", "powerville"], "%s nic not support 2-
> tuple filter" % self.nic)
> +        self.verify(self.nic in ["bartonhills", "powerville", "foxville"], "%s nic not
> support 2-tuple filter" % self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --
> txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -772,7 +774,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          self.verify(self.nic in ["niantic",
> "columbiaville_25g","columbiaville_100g","kawela_4", "kawela",
> "bartonhills", "twinville", "sagepond", "sageville",
>                                   "powerville", "fortville_eagle", "fortville_spirit",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"], "%s nic not support ethertype filter" % self.nic)
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"], "%s nic not support ethertype filter" % self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --
> txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=test1" %
> self.pf_pci)
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -823,7 +825,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          only supported by ixgbe
>          """
> -        self.verify(self.nic in ["sagepond", "sageville"], "%s nic not support fdir
> L2 tunnel filter" % self.nic)
> +        self.verify(self.nic in ["sagepond", "sageville", "foxville"], "%s nic not
> support fdir L2 tunnel filter" % self.nic)
> 
>          self.setup_env()
>          # start testpmd on pf
> @@ -868,7 +870,7 @@ class TestGeneric_flow_api(TestCase):
>          only supported by i40e
>          """
>          self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"], "%s nic not support fdir L2 payload filter" % self.nic)
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"], "%s nic not support fdir L2 payload filter" % self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.pf_cores, "--pkt-filter-
> mode=perfect --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-
> w %s --file-prefix=test1" % self.pf_pci)
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -1316,7 +1318,7 @@ class TestGeneric_flow_api(TestCase):
>          only supported by i40e
>          """
>          self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"], "%s nic not support fdir vlan filter" % self.nic)
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"], "%s nic not support fdir vlan filter" % self.nic)
>          self.setup_env()
>          # start testpmd on pf
>          self.pmdout.start_testpmd("%s" % self.pf_cores, "--pkt-filter-
> mode=perfect --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1,
> MAX_QUEUE+1), "-w %s --file-prefix=pf --socket-mem 1024,1024 --legacy-
> mem" % self.pf_pci)
> @@ -1408,7 +1410,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          self.verify(self.nic in ["niantic",
> "columbiaville_25g","columbiaville_100g","twinville", "sagepond", "sageville",
>                                   "fortville_eagle", "fortville_spirit",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"],
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"],
>                      "%s nic not support fdir ipv4 filter" % self.nic)
>          # i40e
>          if (self.nic in ["fortville_eagle",
> "fortville_spirit","columbiaville_25g","columbiaville_100g",
> @@ -1517,7 +1519,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          self.verify(self.nic in ["niantic", "twinville", "sagepond",
> "sageville","columbiaville_25g","columbiaville_100g",
>                                   "fortville_eagle", "fortville_spirit",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"],
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"],
>                      "%s nic not support fdir ipv6 filter" % self.nic)
>          # i40e
>          if (self.nic in ["fortville_eagle",
> "fortville_spirit","columbiaville_25g","columbiaville_100g",
> @@ -1637,7 +1639,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          self.verify(self.nic in ["niantic", "twinville", "sagepond", "sageville",
>                                   "fortville_eagle", "fortville_spirit",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"],
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"],
>                      "%s nic not support fdir flexbytes filter" % self.nic)
>          # i40e
>          if (self.nic in ["fortville_eagle", "fortville_spirit",
> @@ -1809,7 +1811,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          The filter structure is different between igb, ixgbe and i40e
>          """
> -        self.verify(self.nic in ["bartonhills", "powerville"], "%s nic not support
> flexbytes filter" % self.nic)
> +        self.verify(self.nic in ["bartonhills", "powerville", "foxville"], "%s nic not
> support flexbytes filter" % self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.pf_cores, "--disable-rss --rxq=%d
> --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -1899,7 +1901,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          only supported by ixgbe
>          """
> -        self.verify(self.nic in ["twinville", "sagepond", "sageville"], "%s nic not
> support fdir mac vlan filter" % self.nic)
> +        self.verify(self.nic in ["twinville", "sagepond", "sageville", "foxville"],
> "%s nic not support fdir mac vlan filter" % self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-
> mode=perfect-mac-vlan --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1,
> MAX_QUEUE+1))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -1922,7 +1924,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          only supported by ixgbe
>          """
> -        self.verify(self.nic in ["twinville", "sagepond",
> "sageville","columbiaville_25g","columbiaville_100g"], "%s nic not support
> fdir vxlan filter" % self.nic)
> +        self.verify(self.nic in ["twinville", "sagepond",
> "sageville","columbiaville_25g","columbiaville_100g", "foxville"], "%s nic not
> support fdir vxlan filter" % self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-
> mode=perfect-tunnel --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1,
> MAX_QUEUE+1))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -1943,7 +1945,7 @@ class TestGeneric_flow_api(TestCase):
>          """
>          only supported by ixgbe
>          """
> -        self.verify(self.nic in ["twinville", "sagepond", "sageville"], "%s nic not
> support fdir nvgre filter" % self.nic)
> +        self.verify(self.nic in ["twinville", "sagepond", "sageville", "foxville"],
> "%s nic not support fdir nvgre filter" % self.nic)
> 
>          self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-
> mode=perfect-tunnel --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1,
> MAX_QUEUE+1))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
> @@ -1965,7 +1967,7 @@ class TestGeneric_flow_api(TestCase):
>          only supported by i40e
>          """
>          self.verify(self.nic in ["fortville_eagle",
> "fortville_spirit","columbiaville_25g","columbiaville_100g",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"],
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"],
>                      "%s nic not support tunnel vxlan filter" % self.nic)
> 
>          self.setup_env()
> @@ -2029,7 +2031,7 @@ class TestGeneric_flow_api(TestCase):
>          only supported by i40e
>          """
>          self.verify(self.nic in ["fortville_eagle",
> "fortville_spirit","columbiaville_25g","columbiaville_100g",
> -                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T"],
> +                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-
> T", "foxville"],
>                      "%s nic not support tunnel nvgre filter" % self.nic)
> 
>          self.setup_env()
> diff --git a/tests/TestSuite_jumboframes.py
> b/tests/TestSuite_jumboframes.py
> index 8555dd9..181908d 100644
> --- a/tests/TestSuite_jumboframes.py
> +++ b/tests/TestSuite_jumboframes.py
> @@ -218,7 +218,7 @@ class TestJumboframes(TestCase):
>          """
>          On 1G NICs, when the jubmo frame MTU set as 9000, the software
> adjust it to 9004.
>          """
> -        if self.nic in ["powerville", "springville", "kawela_4"]:
> +        if self.nic in ["powerville", "springville", "kawela_4", "foxville"]:
>              self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 4 + 1,
> False)
>          else:
>              self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 1,
> False)
> diff --git a/tests/TestSuite_pmdrss_hash.py
> b/tests/TestSuite_pmdrss_hash.py
> index 204edd0..e9f1a23 100644
> --- a/tests/TestSuite_pmdrss_hash.py
> +++ b/tests/TestSuite_pmdrss_hash.py
> @@ -415,14 +415,14 @@ class TestPmdrssHash(TestCase):
> 
>          self.verify(self.nic in ["columbiaville_25g",
> "columbiaville_100g","fortville_eagle", "fortville_spirit",
>                      "fortville_spirit_single", "redrockcanyou", "atwood",
> -                    "boulderrapid", "fortpark_TLV", "fortpark_BASE-
> T","fortville_25g", "niantic", "carlsville"],
> +                    "boulderrapid", "fortpark_TLV", "fortpark_BASE-
> T","fortville_25g", "niantic", "carlsville", "foxville"],
>                      "NIC Unsupported: " + str(self.nic))
>          global reta_num
>          global iptypes
> 
>          if self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single",
> "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville"]:
>              reta_num = 512
> -        elif self.nic in ["niantic"]:
> +        elif self.nic in ["niantic", "foxville"]:
>              reta_num = 128
>              iptypes = {'ipv4-other': 'ip',
>                         'ipv4-frag': 'ip',
> @@ -614,7 +614,7 @@ class TestPmdrssHash(TestCase):
> 
>          # setup testpmd and finish bond config
>          self.verify(self.nic in ["columbiaville_25g",
> "columbiaville_100g","fortville_eagle", "fortville_spirit",
> -                    "fortpark_TLV","fortpark_BASE-T", "fortville_25g", "carlsville"],
> +                    "fortpark_TLV","fortpark_BASE-T", "fortville_25g", "carlsville",
> "foxville"],
>                      "NIC Unsupported: " + str(self.nic))
> 
>          self.dut.send_expect("./%s/app/testpmd -c %s -n %d -- -i" % (self.target,
> self.coremask, self.dut.get_memory_channels()), "testpmd> ", 120)
> diff --git a/tests/TestSuite_pmdrssreta.py b/tests/TestSuite_pmdrssreta.py
> index 050c753..8227961 100644
> --- a/tests/TestSuite_pmdrssreta.py
> +++ b/tests/TestSuite_pmdrssreta.py
> @@ -160,7 +160,7 @@ class TestPmdrssreta(TestCase):
>                  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"]):
> +            elif (self.nic in ["niantic", "redrockcanyou", "atwood", "boulderrapid",
> "foxville"]):
>                  # compute the hash result of five tuple into the 7 LSBs value.
>                  hash_index = int(tmp_reta_line["RSS hash"], 16) % 128
>              else:
> @@ -212,7 +212,8 @@ class TestPmdrssreta(TestCase):
>                     }
> 
>          self.dut.kill_all()
> -
> +        if self.nic == 'foxville':
> +            testQueues = [2]
>          # test with different rss queues
>          for queue in testQueues:
>              if(queue == 16):
> @@ -243,7 +244,7 @@ class TestPmdrssreta(TestCase):
>                          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 ["niantic", "redrockcanyou", "atwood",
> "boulderrapid"]):
> +                elif (self.nic in ["niantic", "redrockcanyou", "atwood",
> "boulderrapid", "foxville"]):
>                      for i in range(128):
>                          reta_entries.insert(i, random.randint(0, queue - 1))
>                          self.dut.send_expect(
> @@ -259,7 +260,7 @@ class TestPmdrssreta(TestCase):
>              self.dut.send_expect("quit", "# ", 30)
> 
>      def test_rss_key_size(self):
> -        nic_rss_key_size = {"columbiaville_25g": 52, "columbiaville_100g": 52,
> "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,"fortpark_BASE-T": 52, "hi1822":
> 40, "cavium_a063": 48, "cavium_a064": 48, "carlsville": 52, "sagepond": 40,
> "sageville": 40}
> +        nic_rss_key_size = {"columbiaville_25g": 52, "columbiaville_100g": 52,
> "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,"fortpark_BASE-T": 52, "hi1822":
> 40, "cavium_a063": 48, "cavium_a064": 48, "carlsville": 52, "sagepond": 40,
> "sageville": 40, "foxville": 40}
>          self.verify(self.nic in list(nic_rss_key_size.keys()), "Not supporte rss key
> on %s" % self.nic)
> 
>          dutPorts = self.dut.get_ports(self.nic)
> diff --git a/tests/TestSuite_qinq_filter.py b/tests/TestSuite_qinq_filter.py
> index fac8488..4450ea0 100644
> --- a/tests/TestSuite_qinq_filter.py
> +++ b/tests/TestSuite_qinq_filter.py
> @@ -51,7 +51,7 @@ class TestQinqFilter(TestCase):
>          global dutRxPortId
>          global dutTxPortId
> 
> -        self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g"],
> +        self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
> "fortville_spirit_single", "fortville_25g", 'foxville'],
>                      "NIC %s not support this test" % self.nic)
>          print('this case only supports fortville with 6.0.0+ firmware and
> dpdk17.05+')
>          ports = self.dut.get_ports()
> diff --git a/tests/TestSuite_queue_region.py
> b/tests/TestSuite_queue_region.py
> index 29adaf4..007cb6b 100644
> --- a/tests/TestSuite_queue_region.py
> +++ b/tests/TestSuite_queue_region.py
> @@ -58,7 +58,7 @@ class TestQueue_region(TestCase):
>          Queue region Prerequisites
>          """
>          self.verify(self.nic in ["fortville_eagle", "fortville_spirit","fortville_25g",
> -                                 "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-
> T","carlsville"], "NIC Unsupported: " + str(self.nic))
> +                                 "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-
> T","carlsville", "foxville"], "NIC Unsupported: " + str(self.nic))
> 
>          # Based on h/w type, choose how many ports to use
>          self.dut_ports = self.dut.get_ports(self.nic)
> diff --git a/tests/TestSuite_rss_to_rte_flow.py
> b/tests/TestSuite_rss_to_rte_flow.py
> index 0eabc98..be2c72e 100644
> --- a/tests/TestSuite_rss_to_rte_flow.py
> +++ b/tests/TestSuite_rss_to_rte_flow.py
> @@ -190,6 +190,8 @@ class TestRSS_to_Rteflow(TestCase):
>          # 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
> @@ -264,21 +266,28 @@ class TestRSS_to_Rteflow(TestCase):
>          """
>          Set valid and invalid parameter.
>          """
> -        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-
> topology=chained")
> +        num = '4' if self.nic == "foxville" else '8'
> +        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --
> port-topology=chained" % (num, num))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
>          self.dut.send_expect("set verbose 1", "testpmd> ", 120)
>          self.dut.send_expect("start", "testpmd> ", 120)
>          time.sleep(2)
> 
>          # Create a rss queue rule
> -        self.dut.send_expect(
> -            "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end",
> "created")
> +        if self.nic == 'foxville':
> +            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")
> +        else:
> +            self.dut.send_expect(
> +                "flow create 0 ingress pattern end actions rss queues 1 4 7 end /
> end", "created")
> +
>          # send the packets and verify the results
>          # ipv4-other and ipv6-other is enabled by default.
>          # i40e
> +        rss_queue = ["1", "4", "7"]
>          if (self.nic in ["fortville_eagle", "fortville_spirit",
>                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
> -            rss_queue = ["1", "4", "7"]
>              self.send_and_check(self.pkt4, rss_queue)
>              self.send_and_check(self.pkt8, rss_queue)
>              rss_queue = ["0"]
> @@ -289,7 +298,8 @@ class TestRSS_to_Rteflow(TestCase):
>              self.send_and_check(self.pkt6, rss_queue)
>              self.send_and_check(self.pkt7, rss_queue)
>          else:
> -            rss_queue = ["1", "4", "7"]
> +            if self.nic == 'foxville':
> +			    rss_queue = ["1", "2", "3"]
>              self.send_and_check(self.pkt1, rss_queue)
>              self.send_and_check(self.pkt2, rss_queue)
>              self.send_and_check(self.pkt3, rss_queue)
> @@ -337,26 +347,37 @@ class TestRSS_to_Rteflow(TestCase):
>          self.dut.send_expect(
>              "flow create 0 ingress pattern end actions rss queues 8 end / end",
> "error")
>          # Set all the queues to the rule
> -        self.dut.send_expect(
> -            "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7
> end / end", "created")
> +        if self.nic == 'foxville':
> +            self.dut.send_expect(
> +                "flow create 0 ingress pattern end actions rss queues 0 1 2 3 end /
> end", "created")
> +        else:
> +            self.dut.send_expect(
> +                "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7
> end / end", "created")
> 
>      def test_different_types_rss_queue_rule(self):
>          """
>          Set valid and invalid parameter.
>          """
> -        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-
> topology=chained")
> +        num = '4' if self.nic == "foxville" else '8'
> +        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --
> port-topology=chained" % (num, num))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
>          self.dut.send_expect("set verbose 1", "testpmd> ", 120)
>          self.dut.send_expect("start", "testpmd> ", 120)
>          time.sleep(2)
> 
>          # Create a rss queue rule
> -        self.dut.send_expect(
> -            "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-
> sctp ipv4-other end queues 1 4 7 end / end", "created")
> +        if self.nic == 'foxville':
> +            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")
> +        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")
> +
>          # send the packets and verify the results
> +        rss_queue = ["1", "4", "7"]
>          if (self.nic in ["fortville_eagle", "fortville_spirit",
>                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
> -            rss_queue = ["1", "4", "7"]
>              self.send_and_check(self.pkt2, rss_queue)
>              self.send_and_check(self.pkt3, rss_queue)
>              self.send_and_check(self.pkt4, rss_queue)
> @@ -367,12 +388,15 @@ class TestRSS_to_Rteflow(TestCase):
>              self.send_and_check(self.pkt7, rss_queue)
>              self.send_and_check(self.pkt8, rss_queue)
>          elif(self.nic in ["cavium_a063", "cavium_a064"]):
> -            rss_queue = ["1", "4", "7"]
> +            self.send_and_check(self.pkt2, rss_queue)
> +            self.send_and_check(self.pkt3, rss_queue)
> +            self.send_and_check(self.pkt6, rss_queue)
> +	    elif(self.nic in ["foxville"]):
> +            rss_queue = ["1", "2", "3"]
>              self.send_and_check(self.pkt2, rss_queue)
>              self.send_and_check(self.pkt3, rss_queue)
>              self.send_and_check(self.pkt6, rss_queue)
>          else:
> -            rss_queue = ["1", "4", "7"]
>              self.send_and_check(self.pkt2, rss_queue)
>              self.send_and_check(self.pkt3, rss_queue)
>              self.send_and_check(self.pkt6, rss_queue)
> @@ -469,7 +493,8 @@ class TestRSS_to_Rteflow(TestCase):
>          """
>          Set RSS queue rule while disable RSS in command-line.
>          """
> -        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-
> rss --port-topology=chained")
> +        num = '4' if self.nic == "foxville" else '8'
> +        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --
> disable-rss --port-topology=chained" % (num, num))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
>          self.dut.send_expect("set verbose 1", "testpmd> ", 120)
>          self.dut.send_expect("start", "testpmd> ", 120)
> @@ -483,18 +508,22 @@ class TestRSS_to_Rteflow(TestCase):
>          self.check_packet_queue("all", out)
>          self.dut.send_expect("quit", "# ")
> 
> -        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-
> rss --port-topology=chained")
> +        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --
> disable-rss --port-topology=chained" % (num, num))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
>          self.dut.send_expect("set verbose 1", "testpmd> ", 120)
>          self.dut.send_expect("start", "testpmd> ", 120)
>          time.sleep(2)
>          # Create a rss queue rule
> -        self.dut.send_expect(
> -            "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp
> sctp ipv6-other end queues 5 6 7 end / end", "created")
> +		if self.nic == 'foxville':
> +		    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")
> +	    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")
>          # send the packets and verify the results
> +		rss_queue = ["5", "6", "7"]
>          if (self.nic in ["fortville_eagle", "fortville_spirit",
>                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
> -            rss_queue = ["5", "6", "7"]
>              self.send_and_check(self.pkt1, rss_queue)
>              self.send_and_check(self.pkt2, rss_queue)
>              self.send_and_check(self.pkt5, rss_queue)
> @@ -505,7 +534,8 @@ class TestRSS_to_Rteflow(TestCase):
>              self.send_and_check(self.pkt4, rss_queue)
>              self.send_and_check(self.pkt6, rss_queue)
>          else:
> -            rss_queue = ["5", "6", "7"]
> +		    if self.nic == 'foxville':
> +			    rss_queue = ["1", "2", "3"]
>              self.send_and_check(self.pkt2, rss_queue)
>              self.send_and_check(self.pkt7, rss_queue)
>              rss_queue = ["0"]
> @@ -532,20 +562,25 @@ class TestRSS_to_Rteflow(TestCase):
>          """
>          Set RSS queue rule and flow director rule in meantime.
>          """
> -        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --pkt-
> filter-mode=perfect")
> +        num = '4' if self.nic == "foxville" else '8'
> +        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --pkt-
> filter-mode=perfect" % (num, num))
>          self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
>          self.dut.send_expect("set verbose 1", "testpmd> ", 120)
>          self.dut.send_expect("start", "testpmd> ", 120)
>          time.sleep(2)
> 
>          # Create a rss queue rule
> -        self.dut.send_expect(
> -            "flow create 0 ingress pattern end actions rss types udp end queues 3
> 4 5 end / end", "created")
> +		if self.nic == 'foxville':
> +		    self.dut.send_expect(
> +                "flow create 0 ingress pattern end actions rss types udp end
> queues 1 2 3 end / end", "created")
> +		else:
> +	        self.dut.send_expect(
> +	            "flow create 0 ingress pattern end actions rss types udp end
> queues 3 4 5 end / end", "created")
>          # send the packets and verify the results
> -        rss_queue = ["3", "4", "5"]
> +        rss_queue = ["1", "2", "3"] if self.nic == 'foxville' else ["3", "4", "5"]
>          self.send_and_check(self.pkt2, rss_queue)
>          # Create a flow director rule
> -        if (self.nic in ["bartonhills", "powerville"]):
> +        if (self.nic in ["bartonhills", "powerville", "foxville"]):
>              # Create a flow director rule
>              self.dut.send_expect(
>                  "flow create 0 ingress pattern eth / ipv4 proto is 6 / udp dst is 50 /
> end actions queue index 1 / end", "created")
> @@ -561,7 +596,7 @@ class TestRSS_to_Rteflow(TestCase):
>              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> ")
> -        rss_queue = ["3", "4", "5"]
> +        rss_queue = ["1", "2", "3"] if self.nic == 'foxville' else ["3", "4", "5"]
>          self.send_and_check(self.pkt2, rss_queue)
> 
>      def test_queue_region_with_rss_rule_api(self):
> diff --git a/tests/TestSuite_rxtx_offload.py b/tests/TestSuite_rxtx_offload.py
> index d3ac2da..f387995 100644
> --- a/tests/TestSuite_rxtx_offload.py
> +++ b/tests/TestSuite_rxtx_offload.py
> @@ -90,7 +90,7 @@ class TestRxTx_Offload(TestCase):
>          # Support i40e/ixgbe NICs
>          self.verify(self.nic in ["fortville_eagle", "fortville_spirit","fortville_25g",
>                                   "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> -                                 "niantic", "twinpond", "sagepond", "sageville"], "NIC
> Unsupported: " + str(self.nic))
> +                                 "niantic", "twinpond", "sagepond", "sageville", "foxville"],
> "NIC Unsupported: " + str(self.nic))
>          # Based on h/w type, choose how many ports to use
>          self.dut_ports = self.dut.get_ports(self.nic)
>          # Verify that enough ports are available
> @@ -345,10 +345,11 @@ class TestRxTx_Offload(TestCase):
>          pkt1_queue = self.get_queue_number(self.jumbo_pkt1)
>          pkt2_queue = self.get_queue_number(self.jumbo_pkt2)
> 
> -        # Failed to disable jumboframe per_queue
> -        self.dut.send_expect("port stop 0", "testpmd> ")
> -        self.dut.send_expect("port 0 rxq %s rx_offload jumbo_frame off" %
> pkt1_queue, "testpmd> ")
> -        self.verify_result(self.jumbo_pkt1, 1, pkt1_queue)
> +        # Failed to disable jumboframe per_queue, foxvillee 2.5g not support
> +        if self.nic != 'foxville':
> +            self.dut.send_expect("port stop 0", "testpmd> ")
> +            self.dut.send_expect("port 0 rxq %s rx_offload jumbo_frame off" %
> pkt1_queue, "testpmd> ")
> +            self.verify_result(self.jumbo_pkt1, 1, pkt1_queue)
> 
>          # Succeed to disable jumboframe per_port
>          self.dut.send_expect("port stop 0", "testpmd> ")
> @@ -430,6 +431,8 @@ class TestRxTx_Offload(TestCase):
>          self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4")
>          capabilities = self.check_port_capability("rx")
>          for capability in capabilities:
> +            if self.nic == 'foxville' and capability == 'sctp_cksum':
> +                continue
>              if capability != "jumboframe":
>                  self.dut.send_expect("port stop 0", "testpmd> ")
>                  self.dut.send_expect("port config 0 rx_offload %s on" % capability,
> "testpmd> ")
> @@ -444,7 +447,7 @@ class TestRxTx_Offload(TestCase):
>          Set Rx offload by queue.
>          """
>          # Only support ixgbe NICs
> -        self.verify(self.nic in ["niantic", "twinpond", "sagepond", "sageville"],
> "%s nic not support rx offload setting by queue." % self.nic)
> +        self.verify(self.nic in ["niantic", "twinpond", "sagepond", "sageville",
> "foxville"], "%s nic not support rx offload setting by queue." % self.nic)
>          # Define the vlan packets
>          self.vlan_pkt1 =
> r'sendp([Ether(dst="%s")/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.
> 0.3")/UDP(sport=33, dport=34)/Raw("x"*20)], iface="%s")' % (self.pf_mac,
> self.tester_itf0)
>          self.vlan_pkt2 =
> r'sendp([Ether(dst="%s")/Dot1Q(vlan=1)/IP(src="192.168.0.2",dst="192.168.
> 0.3")/UDP(sport=33, dport=34)/Raw("x"*20)], iface="%s")' % (self.pf_mac,
> self.tester_itf0)
> diff --git a/tests/TestSuite_uni_pkt.py b/tests/TestSuite_uni_pkt.py
> index f664c08..6770f18 100644
> --- a/tests/TestSuite_uni_pkt.py
> +++ b/tests/TestSuite_uni_pkt.py
> @@ -131,7 +131,7 @@ class TestUniPacket(TestCase):
>             "x722" in self.nic or "fortpark_BASE-T" in self.nic :
>              outerL4Type = "L4_NONFRAG"
>              ipv4_default_packet_type = ["L2_ETHER", "L3_IPV4_EXT_UNKNOWN"]
> -        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or
> "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in
> self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in
> self.nic.lower() or "springville" in self.nic.lower():
> +        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or
> "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in
> self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in
> self.nic.lower() or "springville" in self.nic.lower() or 'foxville' in
> self.nic.lower():
>              outerL4Type = ""
>              ipv4_default_packet_type = ["L2_ETHER", "L3_IPV4"]
>          pktType = {
> @@ -166,7 +166,7 @@ class TestUniPacket(TestCase):
>             "x722" in self.nic or "fortpark_BASE-T" in self.nic:
>              outerL4Type = "L4_NONFRAG"
>              ipv6_default_packet_type = ["L2_ETHER", "L3_IPV6_EXT_UNKNOWN"]
> -        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or
> "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in
> self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in
> self.nic.lower() or "springville" in self.nic.lower():
> +        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or
> "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in
> self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in
> self.nic.lower() or "springville" in self.nic.lower() or 'foxville' in
> self.nic.lower():
>              outerL4Type = ""
>              ipv6_default_packet_type = ["L2_ETHER", "L3_IPV6"]
> 
> @@ -221,7 +221,7 @@ class TestUniPacket(TestCase):
>          detected.
>          """
>          self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g",
> "niantic", "fortville_eagle", "fortville_spirit","powerville",
> "fortpark_TLV","fortpark_BASE-T",
> -            "fortville_25g", "fortville_spirit_single", "carlsville"], "not support %s" %
> self.nic)
> +            "fortville_25g", "fortville_spirit_single", "carlsville", "foxville"], "not
> support %s" % self.nic)
>          pktType = {
>              "MAC_IP_IPv6_PKT":            ["L2_ETHER", "L3_IPV4", "TUNNEL_IP",
> "INNER_L3_IPV6"],
>              "MAC_IP_IPv6EXT2_PKT":        ["L2_ETHER", "L3_IPV4", "TUNNEL_IP",
> "INNER_L3_IPV6_EXT"],
> diff --git a/tests/TestSuite_unit_tests_loopback.py
> b/tests/TestSuite_unit_tests_loopback.py
> index 22e6bee..68b1f30 100644
> --- a/tests/TestSuite_unit_tests_loopback.py
> +++ b/tests/TestSuite_unit_tests_loopback.py
> @@ -112,6 +112,7 @@ class TestUnitTestsLoopback(TestCase):
>          Run pmd stream control mode burst test case.
>          """
>          self.dut.send_expect("sed -i -e 's/lpbk_mode = 1/lpbk_mode = 0/'
> app/test/test_pmd_perf.c", "# ", 30)
> +        self.dut.send_expect("sed -i -e '/check_all_ports_link_status(nb_ports,
> RTE_PORT_ALL);/a\        sleep(6);' app/test/test_pmd_perf.c", "# ", 30)
>          out = self.dut.build_dpdk_apps('app/test')
>          self.verify("Error" not in out, "Compilation error")
>          self.verify("No such" not in out, "Compilation error")
> @@ -139,6 +140,7 @@ class TestUnitTestsLoopback(TestCase):
>          Run after each test suite.
>          """
>          self.dut.send_expect("sed -i -e 's/lpbk_mode = 0/lpbk_mode = 1/'
> app/test/test_pmd_perf.c", "# ", 30)
> +        self.dut.send_expect("sed -i -e '/sleep(6)/d' app/test/test_pmd_perf.c",
> "# ", 30)
>          self.dut.send_expect("sed -i -e 's/#define MAX_TRAFFIC_BURST
> 32/#define MAX_TRAFFIC_BURST              %s/' app/test/test_pmd_perf.c" %
> self.max_traffic_burst, "# ", 30)
>          out = self.dut.build_dpdk_apps('app/test')
>          self.verify("Error" not in out, "Compilation error")
> diff --git a/tests/TestSuite_vlan_ethertype_config.py
> b/tests/TestSuite_vlan_ethertype_config.py
> index a18f7c8..c31f585 100644
> --- a/tests/TestSuite_vlan_ethertype_config.py
> +++ b/tests/TestSuite_vlan_ethertype_config.py
> @@ -290,7 +290,7 @@ class TestVlanEthertypeConfig(TestCase):
>          self.dut.send_expect("start", "testpmd> ")
> 
>          # caium_a063 card support only default '0x8100' tpid in rx mode
> -        if (self.nic in ["cavium_a063", "cavium_a064"]):
> +        if (self.nic in ["cavium_a063", "cavium_a064", "foxville"]):
>              tpids = [0x8100]
>          else:
>              tpids = [0x8100, 0xA100]
> --
> 1.8.3.1


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

* [dts] [PATCH V1] DTS adapts to foxville network card
@ 2020-04-20  7:05 Zhou Jun
  2020-04-21  3:31 ` Tu, Lijuan
  0 siblings, 1 reply; 3+ messages in thread
From: Zhou Jun @ 2020-04-20  7:05 UTC (permalink / raw)
  To: dts; +Cc: Zhou jun

From: Zhou jun <junx.w.zhou@intel.com>

DTS adapts to foxville network card

Signed-off-by: Zhou jun <junx.w.zhou@intel.com>
---
 conf/test_case_checklist.json            | 428 +++++++++++++++++++++++++++++--
 conf/test_case_supportlist.json          |  52 ++--
 framework/settings.py                    |   2 +
 tests/TestSuite_dual_vlan.py             |   2 +
 tests/TestSuite_fdir.py                  |   8 +-
 tests/TestSuite_flexible_rxd.py          |   5 +-
 tests/TestSuite_flow_classify.py         |   2 +-
 tests/TestSuite_generic_filter.py        |  20 +-
 tests/TestSuite_generic_flow_api.py      |  40 +--
 tests/TestSuite_jumboframes.py           |   2 +-
 tests/TestSuite_pmdrss_hash.py           |   6 +-
 tests/TestSuite_pmdrssreta.py            |   9 +-
 tests/TestSuite_qinq_filter.py           |   2 +-
 tests/TestSuite_queue_region.py          |   2 +-
 tests/TestSuite_rss_to_rte_flow.py       |  85 ++++--
 tests/TestSuite_rxtx_offload.py          |  15 +-
 tests/TestSuite_uni_pkt.py               |   6 +-
 tests/TestSuite_unit_tests_loopback.py   |   2 +
 tests/TestSuite_vlan_ethertype_config.py |   2 +-
 19 files changed, 570 insertions(+), 120 deletions(-)

diff --git a/conf/test_case_checklist.json b/conf/test_case_checklist.json
index 44bf8af..6bd6783 100644
--- a/conf/test_case_checklist.json
+++ b/conf/test_case_checklist.json
@@ -20,7 +20,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -40,7 +41,8 @@
                 "springfountain",
                 "cavium_a034",
                 "cavium_a011",
-                "twinpond"
+                "twinpond",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -69,7 +71,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -98,7 +101,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -150,7 +154,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -205,7 +210,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -232,7 +238,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -261,7 +268,8 @@
                 "cavium_a011",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-                "carlsville"
+                "carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -316,7 +324,8 @@
                 "powerville",
                 "columbiaville_25g",
                 "columbiaville_100g",
-                "springville"
+                "springville",
+	        "foxville"
             ],
             "Target": [
                 "ALL"
@@ -359,7 +368,8 @@
                 "ironpond",
                 "cavium_a034",
                 "cavium_0011",
-                "cavium_a064"
+                "cavium_a064",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -455,7 +465,8 @@
                 "cavium_a034",
                 "cavium_0011",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -491,7 +502,8 @@
                 "kawela_4",
                 "springville",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -510,7 +522,8 @@
                 "kawela_4",
                 "springville",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -701,7 +714,8 @@
                 "springfountain",
                 "twinpond",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -842,7 +856,8 @@
                 "springfountain",
                 "twinpond",
                 "cavium_a034",
-                "cavium_0011"
+                "cavium_0011",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -865,14 +880,13 @@
                 "twinpond",
                 "niantic",
                 "fortville_spirit_single",
-                "fortpark_TLV",
-                "fortpark_BASE-T"
+		"foxville"
             ],
             "Target": [
                 "ALL"
             ],
             "Bug ID": "",
-            "Comments": "the nic not support this case,(x722 know ND issue,DPDK-15118)"
+            "Comments": "the nic not support this case"
         }
     ],
     "pmdrss_reta": [
@@ -1452,6 +1466,19 @@
             ],
             "Bug ID": "",
             "Comments": "32 bit not support this case/not enough queue"
+        },
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "nic not support this case"
         }
     ],
     "simple_symmetric": [
@@ -1475,7 +1502,8 @@
             "NIC": [
                 "redrockcanyou",
                 "atwood",
-                "boulderrapid"
+                "boulderrapid",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -1506,7 +1534,8 @@
             "NIC": [
                 "redrockcanyou",
                 "atwood",
-                "boulderrapid"
+                "boulderrapid",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -1537,7 +1566,8 @@
             "NIC": [
                 "redrockcanyou",
                 "atwood",
-                "boulderrapid"
+                "boulderrapid",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -1908,6 +1938,19 @@
             ],
             "Bug ID": "",
             "Comments": "link_status_interrupt application assumes one certain CPU frequency, test fails on thunder boards"
+        },
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "arm64-thunderx-linuxapp-gcc"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
         }
     ],
     "add_remove_mac_address": [
@@ -2279,7 +2322,8 @@
                 "fortpark_TLV_vf",
                 "cavium_a064",
                 "columbiaville_25g",
-                "columbiaville_100g"
+                "columbiaville_100g",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2315,6 +2359,7 @@
                 "twinville",
                 "sagepond",
                 "sageville",
+		"foxville",
 		"springville"
             ],
             "Target": [
@@ -2379,7 +2424,8 @@
             ],
             "NIC": [
                 "cavium_a063",
-                "cavium_a064"
+                "cavium_a064",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2480,7 +2526,8 @@
             ],
             "NIC": [
                 "cavium_a063",
-                "cavium_a064"
+                "cavium_a064",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2711,7 +2758,8 @@
                 "powerville",
                 "springville",
                 "columbiaville_25g",
-                "columbiaville_100g"
+                "columbiaville_100g",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -2720,6 +2768,126 @@
             "Comments": "only i40e and ixgbe driver support this case"
         }
     ],
+    "hash_readwrite_perf": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"ipv6_5tuple_hash_table": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+    "fdir_for_vlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_nvgre": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"L2_tunnel_filter": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_L2_payload": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"n_tuple_filter": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"flexbytes_filter": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
     "perf_pvp_split_ring_dequeue_zero_copy": [
         {
             "OS": [
@@ -2749,5 +2917,215 @@
             "Bug ID": "",
             "Comments": "niantic not support this case"
         }
+    ],
+    "tunnel_filter_nvgre": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_flexbytes": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_mac_vlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"tunnel_filter_vxlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_ipv4": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"fdir_for_vxlan": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"link_status_interrupt_change": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"load_balancer": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"multicast_forwarding": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"update_system": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"ptpclient": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"IPv4_L4": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
+    ],
+	"l2pkt_detect": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "Feature will be ready in next stage(P3)"
+        }
+    ],
+	"dump_driver_info": [
+        {
+            "OS": [
+                "ALL"
+            ],
+            "NIC": [
+                "foxville"
+            ],
+            "Target": [
+                "ALL"
+            ],
+            "Bug ID": "",
+            "Comments": "NIC not support this case"
+        }
     ]
 }
diff --git a/conf/test_case_supportlist.json b/conf/test_case_supportlist.json
index a6300e4..95ca036 100644
--- a/conf/test_case_supportlist.json
+++ b/conf/test_case_supportlist.json
@@ -130,6 +130,7 @@
             ],
             "NIC": [
                 "forrpark_TLV",
+                "foxville",
                 "fortville_eagle",
                 "fortville_spirit",
                 "fortville_spirit_single",
@@ -183,7 +184,8 @@
                 "fortpark_BASE-T",
                 "carlsville",
                 "columbiaville_25g",
-                "columbiaville_100g"
+                "columbiaville_100g",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -521,6 +523,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -540,6 +543,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -559,6 +563,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -684,7 +689,8 @@
                 "niantic",
                 "twinpond",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -700,6 +706,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortville_25g",
@@ -721,6 +728,7 @@
             ],
             "NIC": [
                 "fortville_eagle",
+                "foxville",
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
@@ -740,7 +748,8 @@
             ],
             "NIC": [
                 "bartonhills",
-                "powerville"
+                "powerville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -757,7 +766,8 @@
             "NIC": [
                 "twinville",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -774,7 +784,8 @@
             "NIC": [
                 "twinville",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -792,7 +803,8 @@
                 "niantic",
                 "kawela_4",
                 "kawela",
-                "twinville"
+                "twinville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -808,6 +820,7 @@
             ],
             "NIC": [
                 "niantic",
+                "foxville",
                 "twinville",
                 "sagepond",
                 "sageville",
@@ -834,7 +847,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -857,7 +871,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -874,7 +889,8 @@
             "NIC": [
                 "twinville",
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -893,7 +909,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -921,7 +938,8 @@
                 "fortville_spirit_single",
                 "fortpark_TLV",
                 "fortpark_BASE-T",
-		"carlsville"
+		"carlsville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -937,7 +955,8 @@
             ],
             "NIC": [
                 "bartonhills",
-                "powerville"
+                "powerville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -953,7 +972,8 @@
             ],
             "NIC": [
                 "sagepond",
-                "sageville"
+                "sageville",
+                "foxville"
             ],
             "Target": [
                 "ALL"
@@ -976,7 +996,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
@@ -995,7 +1016,8 @@
                 "fortville_spirit",
                 "fortville_spirit_single",
                 "fortpark_TLV",
-                "fortpark_BASE-T"
+                "fortpark_BASE-T",
+		"foxville"
             ],
             "Target": [
                 "ALL"
diff --git a/framework/settings.py b/framework/settings.py
index c31a937..d82b684 100644
--- a/framework/settings.py
+++ b/framework/settings.py
@@ -111,6 +111,7 @@ NICS = {
     'fastlinq_ql41000_vf': '1077:8090',
     'carlsville': '8086:15ff',
     'hi1822': '19e5:1822',
+    'foxville': '8086:15f2'
 }
 
 DRIVERS = {
@@ -176,6 +177,7 @@ DRIVERS = {
     'fastlinq_ql41000_vf': 'qede',
     'carlsville': 'i40e',
     'hi1822': 'hinic',
+    'foxville':'igc'
 }
 
 """
diff --git a/tests/TestSuite_dual_vlan.py b/tests/TestSuite_dual_vlan.py
index 93ef241..daa23d3 100644
--- a/tests/TestSuite_dual_vlan.py
+++ b/tests/TestSuite_dual_vlan.py
@@ -361,6 +361,8 @@ class TestDualVlan(TestCase):
         self.verify("vlan %s" % outvlan not in out, "vlan strip enable error: " + out)
 
         self.mode_config(stripq="off")
+        if self.nic == 'foxville':
+            self.mode_config(strip="off")
         self.vlan_send_packet(outvlan)
         out = self.get_tcpdump_package()
         self.verify("vlan %s" % outvlan in out, "vlan strip queue disable error: " + out)
diff --git a/tests/TestSuite_fdir.py b/tests/TestSuite_fdir.py
index ecda94d..a7c98bd 100644
--- a/tests/TestSuite_fdir.py
+++ b/tests/TestSuite_fdir.py
@@ -235,7 +235,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         Fdir get flexbytes and payload according NIC
         """
 
-        if(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville"]):
+        if(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville", "foxville"]):
             if not sctp:
                 self.flexbytes = "0x11,0x11,0x22,0x22,0x33,0x33,0x44,0x44,0x55,0x55,0x66,0x66,0x77,0x77,0x77,0x77"
             else:
@@ -784,7 +784,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         """
         Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4 TTL
         """
-        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville"]:
+        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
             self.verify(False, "This case only support fortville nic")
         self.dut.kill_all()
         self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect" % (self.target, self.coreMask, utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
@@ -905,7 +905,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         """
         Expand Flow Director for fortville to support ipv6 TC, next-header, hop-limits
         """
-        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville"]:
+        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
             self.verify(False, "This case only support fortville nic")
         self.dut.kill_all()
         self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect" % (self.target, self.coreMask, utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
@@ -1026,7 +1026,7 @@ class TestFdir(TestCase, IxiaPacketGenerator):
         """
         Expand Flow Director for fortville to support ipv4 TOS, ipv4 PROTO, ipv4 TTL
         """
-        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville"]:
+        if not self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "carlsville", "foxville"]:
             self.verify(False, "This case only support fortville nic")
         self.dut.kill_all()
         self.dut.send_expect("./%s/app/testpmd -c %s -n 4 -- -i --portmask=%s --disable-rss --rxq=4 --txq=4 --nb-cores=4 --nb-ports=1 --pkt-filter-mode=perfect" % (self.target, self.coreMask, utils.create_mask([self.dut_ports[0]])), "testpmd>", 120)
diff --git a/tests/TestSuite_flexible_rxd.py b/tests/TestSuite_flexible_rxd.py
index 77001ab..108bbc5 100644
--- a/tests/TestSuite_flexible_rxd.py
+++ b/tests/TestSuite_flexible_rxd.py
@@ -43,7 +43,7 @@ class TestFlexibleRxd(TestCase):
         """
         run at the start of each test suite.
         """
-        self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g"],
+        self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g", "foxville"],
                     "flexible rxd only supports CVL NIC.")
         self.nb_core = 2
         self.pkg_count = 1
@@ -88,7 +88,8 @@ class TestFlexibleRxd(TestCase):
         """
         start testpmd
         """
-        para = '--rxq=32 --txq=32 --portmask=0x1 --nb-cores=%d' % self.nb_core
+        num = '4' if self.nic == 'foxville' else '32'
+        para = '--rxq=%s --txq=%s --portmask=0x1 --nb-cores=%d' % (num, num, self.nb_core)
         self.pmdout.start_testpmd("1S/3C/1T", param=para, ports=[self.pci_info], port_options={self.pci_info: 'proto_xtr=%s' % proto_xdr})
         self.pmdout.execute_cmd("set verbose 1", "testpmd> ", 120)
         self.pmdout.execute_cmd("set fwd io", "testpmd> ", 120)
diff --git a/tests/TestSuite_flow_classify.py b/tests/TestSuite_flow_classify.py
index 2853f5d..e6320b0 100644
--- a/tests/TestSuite_flow_classify.py
+++ b/tests/TestSuite_flow_classify.py
@@ -452,7 +452,7 @@ class TestFlowClassify(TestCase):
         self.verify_traffic(stm_types=stream_list, flow_type="multi_stream")
 
     def verify_supported_nic(self):
-        supported_drivers = ['i40e', 'ixgbe']
+        supported_drivers = ['i40e', 'ixgbe', 'igc']
         result = all([self.dut.ports_info[index]['port'].default_driver in
                       supported_drivers
                       for index in self.dut_ports])
diff --git a/tests/TestSuite_generic_filter.py b/tests/TestSuite_generic_filter.py
index ddc5eb8..35def99 100644
--- a/tests/TestSuite_generic_filter.py
+++ b/tests/TestSuite_generic_filter.py
@@ -204,7 +204,8 @@ class TestGeneric_filter(TestCase):
         """
         Enable receipt of SYN packets
         """
-        self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", "powerville"], "%s nic not support syn filter" % self.nic)
+        self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", "powerville", "foxville"],
+                    "%s nic not support syn filter" % self.nic)
         self.pmdout.start_testpmd(
             "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
         self.port_config()
@@ -285,7 +286,7 @@ class TestGeneric_filter(TestCase):
             self.filter_send_packet("fivetuple")
             out = self.dut.send_expect("stop", "testpmd> ")
             self.verify_result(out, tx_pkts="1", expect_queue="3")
-        elif self.nic in ["bartonhills", "powerville"]:
+        elif self.nic in ["bartonhills", "powerville", "foxville"]:
             self.dut.send_expect(
                 "flex_filter %s add len 16 bytes 0x0123456789abcdef0000000008000000 mask 000C priority 2 queue 1" % (valports[0]), "testpmd> ")
             self.dut.send_expect(
@@ -307,7 +308,7 @@ class TestGeneric_filter(TestCase):
         """
         five tuple filter
         """
-        if self.nic in ["niantic", "kawela_4"]:
+        if self.nic in ["niantic", "kawela_4", "foxville"]:
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
             self.port_config()
@@ -372,7 +373,7 @@ class TestGeneric_filter(TestCase):
 
         self.verify(self.nic in ["niantic", "kawela_4", "bartonhills", 
                            "powerville", "fortville_eagle", "fortville_spirit",
-                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g","cavium_a063", "carlsville"], "%s nic not support syn filter" % self.nic)
+                           "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g","cavium_a063", "carlsville", "foxville"], "%s nic not support syn filter" % self.nic)
         self.pmdout.start_testpmd(
             "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
         self.port_config()
@@ -501,7 +502,7 @@ class TestGeneric_filter(TestCase):
 
     def test_twotuple_filter(self):
 
-        if self.nic in ["powerville", "bartonhills", "cavium_a063"]:
+        if self.nic in ["powerville", "bartonhills", "cavium_a063", "foxville"]:
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
             self.port_config()
@@ -534,7 +535,8 @@ class TestGeneric_filter(TestCase):
             self.verify(False, "%s nic not support two tuple filter" % self.nic)
 
     def test_flex_filter(self):
-        self.verify(self.nic in ["powerville", "bartonhills", "cavium_a063"], '%s not support flex filter' % self.nic)
+        self.verify(self.nic in ["powerville", "bartonhills", "cavium_a063", "foxville"],
+                    '%s not support flex filter' % self.nic)
 
         masks = ['000C', '000C']
         self.pmdout.start_testpmd(
@@ -589,7 +591,7 @@ class TestGeneric_filter(TestCase):
 
     def test_multiple_filters_1GB(self):
 
-        if self.nic in ["powerville", "kawela_4", "bartonhills"]:
+        if self.nic in ["powerville", "kawela_4", "bartonhills", "foxville"]:
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1" % portMask)
             self.port_config()
@@ -633,8 +635,8 @@ class TestGeneric_filter(TestCase):
             self.verify(False, "%s nic not support this test" % self.nic)
     def test_jumbo_frame_size(self):
         
-        self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "fortpark_TLV","fortpark_BASE-T", "carlsville"], "%s nic not support this test" % self.nic)
-        if (self.nic in ["cavium_a063", "cavium_a064"]):
+        self.verify(self.nic not in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "fortpark_TLV", "carlsville"], "%s nic not support this test" % self.nic)
+        if (self.nic in ["cavium_a063", "cavium_a064", "foxville"]):
             self.pmdout.start_testpmd(
                 "%s" % self.cores, "--disable-rss --rxq=4 --txq=4 --portmask=%s --nb-cores=4 --nb-ports=1 --mbcache=200 --mbuf-size=2048 --max-pkt-len=9200" % portMask)
         else:
diff --git a/tests/TestSuite_generic_flow_api.py b/tests/TestSuite_generic_flow_api.py
index 4e82202..5dbf261 100644
--- a/tests/TestSuite_generic_flow_api.py
+++ b/tests/TestSuite_generic_flow_api.py
@@ -78,7 +78,8 @@ class TestGeneric_flow_api(TestCase):
         global MAX_QUEUE
         if self.nic in ["powerville", "bartonhills", "kawela", "kawela_4"]:
             MAX_QUEUE = 7
-
+        elif self.nic in ['foxville']:
+            MAX_QUEUE = 3
         # Based on h/w type, choose how many ports to use
         self.dut_ports = self.dut.get_ports(self.nic)
         # Verify that enough ports are available
@@ -664,7 +665,7 @@ class TestGeneric_flow_api(TestCase):
         Only supported by ixgbe and igb.
         """
         self.verify(self.nic in ["niantic", "kawela_4", "kawela", "bartonhills", "twinville", "sagepond", "sageville",
-                                 "powerville"], "%s nic not support SYN filter" % self.nic)
+                                 "powerville", "foxville"], "%s nic not support SYN filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -687,12 +688,13 @@ class TestGeneric_flow_api(TestCase):
         self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ", 120)
 
         # create the flow rules
+        q_idx = '2' if self.nic == 'foxville' else '4'
         self.dut.send_expect(
-            "flow create 0 ingress pattern eth / ipv6 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index 4 / end",
+            "flow create 0 ingress pattern eth / ipv6 / tcp flags spec 0x02 flags mask 0x02 / end actions queue index %s / end" %(q_idx),
             "created")
         # send the packets and verify the results
         self.sendpkt(pktstr='Ether(dst="%s")/IPv6(src="2001::1", dst="2001::2")/TCP(dport=80,flags="S")/Raw("x" * 20)' % self.pf_mac)
-        self.verify_result("pf", expect_rxpkts="1", expect_queue="4", verify_mac=self.pf_mac)
+        self.verify_result("pf", expect_rxpkts="1", expect_queue=q_idx, verify_mac=self.pf_mac)
 
         self.sendpkt(pktstr='Ether(dst="%s")/IPv6(src="2001::1", dst="2001::2")/TCP(dport=80,flags="PA")/Raw("x" * 20)' % self.pf_mac)
         self.verify_result("pf", expect_rxpkts="1", expect_queue="0", verify_mac=self.pf_mac)
@@ -704,7 +706,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by ixgbe and igb
         """
         self.verify(self.nic in ["niantic", "kawela_4", "kawela",
-                                 "twinville"], "%s nic not support n-tuple filter" % self.nic)
+                                 "twinville", "foxville"], "%s nic not support n-tuple filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -741,7 +743,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by igb
         """
-        self.verify(self.nic in ["bartonhills", "powerville"], "%s nic not support 2-tuple filter" % self.nic)
+        self.verify(self.nic in ["bartonhills", "powerville", "foxville"], "%s nic not support 2-tuple filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -772,7 +774,7 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "columbiaville_25g","columbiaville_100g","kawela_4", "kawela", "bartonhills", "twinville", "sagepond", "sageville",
                                  "powerville", "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"], "%s nic not support ethertype filter" % self.nic)
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"], "%s nic not support ethertype filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=test1" % self.pf_pci)
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -823,7 +825,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["sagepond", "sageville"], "%s nic not support fdir L2 tunnel filter" % self.nic)
+        self.verify(self.nic in ["sagepond", "sageville", "foxville"], "%s nic not support fdir L2 tunnel filter" % self.nic)
 
         self.setup_env()
         # start testpmd on pf
@@ -868,7 +870,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"], "%s nic not support fdir L2 payload filter" % self.nic)
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"], "%s nic not support fdir L2 payload filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.pf_cores, "--pkt-filter-mode=perfect --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=test1" % self.pf_pci)
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1316,7 +1318,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"], "%s nic not support fdir vlan filter" % self.nic)
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"], "%s nic not support fdir vlan filter" % self.nic)
         self.setup_env()
         # start testpmd on pf
         self.pmdout.start_testpmd("%s" % self.pf_cores, "--pkt-filter-mode=perfect --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1), "-w %s --file-prefix=pf --socket-mem 1024,1024 --legacy-mem" % self.pf_pci)
@@ -1408,7 +1410,7 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "columbiaville_25g","columbiaville_100g","twinville", "sagepond", "sageville",
                                  "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support fdir ipv4 filter" % self.nic)
         # i40e
         if (self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
@@ -1517,7 +1519,7 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "twinville", "sagepond", "sageville","columbiaville_25g","columbiaville_100g",
                                  "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support fdir ipv6 filter" % self.nic)
         # i40e
         if (self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
@@ -1637,7 +1639,7 @@ class TestGeneric_flow_api(TestCase):
         """
         self.verify(self.nic in ["niantic", "twinville", "sagepond", "sageville",
                                  "fortville_eagle", "fortville_spirit",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support fdir flexbytes filter" % self.nic)
         # i40e
         if (self.nic in ["fortville_eagle", "fortville_spirit",
@@ -1809,7 +1811,7 @@ class TestGeneric_flow_api(TestCase):
         """
         The filter structure is different between igb, ixgbe and i40e
         """
-        self.verify(self.nic in ["bartonhills", "powerville"], "%s nic not support flexbytes filter" % self.nic)
+        self.verify(self.nic in ["bartonhills", "powerville", "foxville"], "%s nic not support flexbytes filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.pf_cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1899,7 +1901,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["twinville", "sagepond", "sageville"], "%s nic not support fdir mac vlan filter" % self.nic)
+        self.verify(self.nic in ["twinville", "sagepond", "sageville", "foxville"], "%s nic not support fdir mac vlan filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-mode=perfect-mac-vlan --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1922,7 +1924,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["twinville", "sagepond", "sageville","columbiaville_25g","columbiaville_100g"], "%s nic not support fdir vxlan filter" % self.nic)
+        self.verify(self.nic in ["twinville", "sagepond", "sageville","columbiaville_25g","columbiaville_100g", "foxville"], "%s nic not support fdir vxlan filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-mode=perfect-tunnel --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1943,7 +1945,7 @@ class TestGeneric_flow_api(TestCase):
         """
         only supported by ixgbe
         """
-        self.verify(self.nic in ["twinville", "sagepond", "sageville"], "%s nic not support fdir nvgre filter" % self.nic)
+        self.verify(self.nic in ["twinville", "sagepond", "sageville", "foxville"], "%s nic not support fdir nvgre filter" % self.nic)
 
         self.pmdout.start_testpmd("%s" % self.cores, "--pkt-filter-mode=perfect-tunnel --disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
@@ -1965,7 +1967,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support tunnel vxlan filter" % self.nic)
 
         self.setup_env()
@@ -2029,7 +2031,7 @@ class TestGeneric_flow_api(TestCase):
         only supported by i40e
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit","columbiaville_25g","columbiaville_100g",
-                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T"],
+                                 "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "foxville"],
                     "%s nic not support tunnel nvgre filter" % self.nic)
 
         self.setup_env()
diff --git a/tests/TestSuite_jumboframes.py b/tests/TestSuite_jumboframes.py
index 8555dd9..181908d 100644
--- a/tests/TestSuite_jumboframes.py
+++ b/tests/TestSuite_jumboframes.py
@@ -218,7 +218,7 @@ class TestJumboframes(TestCase):
         """
         On 1G NICs, when the jubmo frame MTU set as 9000, the software adjust it to 9004.
         """
-        if self.nic in ["powerville", "springville", "kawela_4"]:
+        if self.nic in ["powerville", "springville", "kawela_4", "foxville"]:
             self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 4 + 1, False)
         else:
             self.jumboframes_send_packet(ETHER_JUMBO_FRAME_MTU + 1, False)
diff --git a/tests/TestSuite_pmdrss_hash.py b/tests/TestSuite_pmdrss_hash.py
index 204edd0..e9f1a23 100644
--- a/tests/TestSuite_pmdrss_hash.py
+++ b/tests/TestSuite_pmdrss_hash.py
@@ -415,14 +415,14 @@ class TestPmdrssHash(TestCase):
 
         self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g","fortville_eagle", "fortville_spirit",
                     "fortville_spirit_single", "redrockcanyou", "atwood",
-                    "boulderrapid", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "niantic", "carlsville"],
+                    "boulderrapid", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "niantic", "carlsville", "foxville"],
                     "NIC Unsupported: " + str(self.nic))
         global reta_num
         global iptypes
 
         if self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","fortville_25g", "carlsville"]:
             reta_num = 512
-        elif self.nic in ["niantic"]:
+        elif self.nic in ["niantic", "foxville"]:
             reta_num = 128
             iptypes = {'ipv4-other': 'ip',
                        'ipv4-frag': 'ip',
@@ -614,7 +614,7 @@ class TestPmdrssHash(TestCase):
         
         # setup testpmd and finish bond config
         self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g","fortville_eagle", "fortville_spirit",
-                    "fortpark_TLV","fortpark_BASE-T", "fortville_25g", "carlsville"],
+                    "fortpark_TLV","fortpark_BASE-T", "fortville_25g", "carlsville", "foxville"],
                     "NIC Unsupported: " + str(self.nic))
 
         self.dut.send_expect("./%s/app/testpmd -c %s -n %d -- -i" % (self.target, self.coremask, self.dut.get_memory_channels()), "testpmd> ", 120)
diff --git a/tests/TestSuite_pmdrssreta.py b/tests/TestSuite_pmdrssreta.py
index 050c753..8227961 100644
--- a/tests/TestSuite_pmdrssreta.py
+++ b/tests/TestSuite_pmdrssreta.py
@@ -160,7 +160,7 @@ class TestPmdrssreta(TestCase):
                 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"]):
+            elif (self.nic in ["niantic", "redrockcanyou", "atwood", "boulderrapid", "foxville"]):
                 # compute the hash result of five tuple into the 7 LSBs value.
                 hash_index = int(tmp_reta_line["RSS hash"], 16) % 128
             else:
@@ -212,7 +212,8 @@ class TestPmdrssreta(TestCase):
                    }
 
         self.dut.kill_all()
-
+        if self.nic == 'foxville':
+            testQueues = [2]
         # test with different rss queues
         for queue in testQueues:
             if(queue == 16):
@@ -243,7 +244,7 @@ class TestPmdrssreta(TestCase):
                         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 ["niantic", "redrockcanyou", "atwood", "boulderrapid"]):
+                elif (self.nic in ["niantic", "redrockcanyou", "atwood", "boulderrapid", "foxville"]):
                     for i in range(128):
                         reta_entries.insert(i, random.randint(0, queue - 1))
                         self.dut.send_expect(
@@ -259,7 +260,7 @@ class TestPmdrssreta(TestCase):
             self.dut.send_expect("quit", "# ", 30)
 
     def test_rss_key_size(self):
-        nic_rss_key_size = {"columbiaville_25g": 52, "columbiaville_100g": 52, "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,"fortpark_BASE-T": 52, "hi1822": 40, "cavium_a063": 48, "cavium_a064": 48, "carlsville": 52, "sagepond": 40, "sageville": 40}
+        nic_rss_key_size = {"columbiaville_25g": 52, "columbiaville_100g": 52, "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,"fortpark_BASE-T": 52, "hi1822": 40, "cavium_a063": 48, "cavium_a064": 48, "carlsville": 52, "sagepond": 40, "sageville": 40, "foxville": 40}
         self.verify(self.nic in list(nic_rss_key_size.keys()), "Not supporte rss key on %s" % self.nic)
 
         dutPorts = self.dut.get_ports(self.nic)
diff --git a/tests/TestSuite_qinq_filter.py b/tests/TestSuite_qinq_filter.py
index fac8488..4450ea0 100644
--- a/tests/TestSuite_qinq_filter.py
+++ b/tests/TestSuite_qinq_filter.py
@@ -51,7 +51,7 @@ class TestQinqFilter(TestCase):
         global dutRxPortId
         global dutTxPortId
 
-        self.verify(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g"], 
+        self.verify(self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", 'foxville'],
                     "NIC %s not support this test" % self.nic)
         print('this case only supports fortville with 6.0.0+ firmware and dpdk17.05+')
         ports = self.dut.get_ports()
diff --git a/tests/TestSuite_queue_region.py b/tests/TestSuite_queue_region.py
index 29adaf4..007cb6b 100644
--- a/tests/TestSuite_queue_region.py
+++ b/tests/TestSuite_queue_region.py
@@ -58,7 +58,7 @@ class TestQueue_region(TestCase):
         Queue region Prerequisites
         """
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit","fortville_25g",
-                                 "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","carlsville"], "NIC Unsupported: " + str(self.nic))
+                                 "fortville_spirit_single", "fortpark_TLV", "fortpark_BASE-T","carlsville", "foxville"], "NIC Unsupported: " + str(self.nic))
 
         # Based on h/w type, choose how many ports to use
         self.dut_ports = self.dut.get_ports(self.nic)
diff --git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rte_flow.py
index 0eabc98..be2c72e 100644
--- a/tests/TestSuite_rss_to_rte_flow.py
+++ b/tests/TestSuite_rss_to_rte_flow.py
@@ -190,6 +190,8 @@ class TestRSS_to_Rteflow(TestCase):
         # 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
@@ -264,21 +266,28 @@ class TestRSS_to_Rteflow(TestCase):
         """
         Set valid and invalid parameter.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
+        if self.nic == 'foxville':
+            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")
+        else:
+            self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
+
         # send the packets and verify the results
         # ipv4-other and ipv6-other is enabled by default.
         # i40e
+        rss_queue = ["1", "4", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
-            rss_queue = ["1", "4", "7"]
             self.send_and_check(self.pkt4, rss_queue)
             self.send_and_check(self.pkt8, rss_queue)
             rss_queue = ["0"]
@@ -289,7 +298,8 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt6, rss_queue)
             self.send_and_check(self.pkt7, rss_queue)
         else:
-            rss_queue = ["1", "4", "7"]
+            if self.nic == 'foxville':
+			    rss_queue = ["1", "2", "3"]
             self.send_and_check(self.pkt1, rss_queue)
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
@@ -337,26 +347,37 @@ class TestRSS_to_Rteflow(TestCase):
         self.dut.send_expect(
             "flow create 0 ingress pattern end actions rss queues 8 end / end", "error")
         # Set all the queues to the rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end / end", "created")
+        if self.nic == 'foxville':
+            self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss queues 0 1 2 3 end / end", "created")
+        else:
+            self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end / end", "created")
 
     def test_different_types_rss_queue_rule(self):
         """
         Set valid and invalid parameter.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --port-topology=chained")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
+        if self.nic == 'foxville':
+            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")
+        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")
+
         # send the packets and verify the results
+        rss_queue = ["1", "4", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
-            rss_queue = ["1", "4", "7"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
             self.send_and_check(self.pkt4, rss_queue)
@@ -367,12 +388,15 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt7, rss_queue)
             self.send_and_check(self.pkt8, rss_queue)
         elif(self.nic in ["cavium_a063", "cavium_a064"]):
-            rss_queue = ["1", "4", "7"]
+            self.send_and_check(self.pkt2, rss_queue)
+            self.send_and_check(self.pkt3, rss_queue)
+            self.send_and_check(self.pkt6, rss_queue)
+	    elif(self.nic in ["foxville"]):
+            rss_queue = ["1", "2", "3"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
             self.send_and_check(self.pkt6, rss_queue)
         else:
-            rss_queue = ["1", "4", "7"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt3, rss_queue)
             self.send_and_check(self.pkt6, rss_queue)
@@ -469,7 +493,8 @@ class TestRSS_to_Rteflow(TestCase):
         """
         Set RSS queue rule while disable RSS in command-line.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-rss --port-topology=chained")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --disable-rss --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
@@ -483,18 +508,22 @@ class TestRSS_to_Rteflow(TestCase):
         self.check_packet_queue("all", out)
         self.dut.send_expect("quit", "# ")
 
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --disable-rss --port-topology=chained")
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --disable-rss --port-topology=chained" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 5 6 7 end / end", "created")
+		if self.nic == 'foxville':
+		    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")
+	    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")
         # send the packets and verify the results
+		rss_queue = ["5", "6", "7"]
         if (self.nic in ["fortville_eagle", "fortville_spirit",
                          "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
-            rss_queue = ["5", "6", "7"]
             self.send_and_check(self.pkt1, rss_queue)
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt5, rss_queue)
@@ -505,7 +534,8 @@ class TestRSS_to_Rteflow(TestCase):
             self.send_and_check(self.pkt4, rss_queue)
             self.send_and_check(self.pkt6, rss_queue)
         else:
-            rss_queue = ["5", "6", "7"]
+		    if self.nic == 'foxville':
+			    rss_queue = ["1", "2", "3"]
             self.send_and_check(self.pkt2, rss_queue)
             self.send_and_check(self.pkt7, rss_queue)
             rss_queue = ["0"]
@@ -532,20 +562,25 @@ class TestRSS_to_Rteflow(TestCase):
         """
         Set RSS queue rule and flow director rule in meantime.
         """
-        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=8 --txq=8 --pkt-filter-mode=perfect")
+        num = '4' if self.nic == "foxville" else '8'
+        self.pmdout.start_testpmd("%s" % self.cores, "--rxq=%s --txq=%s --pkt-filter-mode=perfect" % (num, num))
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 120)
         self.dut.send_expect("set verbose 1", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
         time.sleep(2)
 
         # Create a rss queue rule
-        self.dut.send_expect(
-            "flow create 0 ingress pattern end actions rss types udp end queues 3 4 5 end / end", "created")
+		if self.nic == 'foxville':
+		    self.dut.send_expect(
+                "flow create 0 ingress pattern end actions rss types udp end queues 1 2 3 end / end", "created")
+		else:
+	        self.dut.send_expect(
+	            "flow create 0 ingress pattern end actions rss types udp end queues 3 4 5 end / end", "created")
         # send the packets and verify the results
-        rss_queue = ["3", "4", "5"]
+        rss_queue = ["1", "2", "3"] if self.nic == 'foxville' else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue)
         # Create a flow director rule
-        if (self.nic in ["bartonhills", "powerville"]):
+        if (self.nic in ["bartonhills", "powerville", "foxville"]):
             # Create a flow director rule
             self.dut.send_expect(
                 "flow create 0 ingress pattern eth / ipv4 proto is 6 / udp dst is 50 / end actions queue index 1 / end", "created")
@@ -561,7 +596,7 @@ class TestRSS_to_Rteflow(TestCase):
             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> ")
-        rss_queue = ["3", "4", "5"]
+        rss_queue = ["1", "2", "3"] if self.nic == 'foxville' else ["3", "4", "5"]
         self.send_and_check(self.pkt2, rss_queue)
 
     def test_queue_region_with_rss_rule_api(self):
diff --git a/tests/TestSuite_rxtx_offload.py b/tests/TestSuite_rxtx_offload.py
index d3ac2da..f387995 100644
--- a/tests/TestSuite_rxtx_offload.py
+++ b/tests/TestSuite_rxtx_offload.py
@@ -90,7 +90,7 @@ class TestRxTx_Offload(TestCase):
         # Support i40e/ixgbe NICs
         self.verify(self.nic in ["fortville_eagle", "fortville_spirit","fortville_25g",
                                  "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
-                                 "niantic", "twinpond", "sagepond", "sageville"], "NIC Unsupported: " + str(self.nic))
+                                 "niantic", "twinpond", "sagepond", "sageville", "foxville"], "NIC Unsupported: " + str(self.nic))
         # Based on h/w type, choose how many ports to use
         self.dut_ports = self.dut.get_ports(self.nic)
         # Verify that enough ports are available
@@ -345,10 +345,11 @@ class TestRxTx_Offload(TestCase):
         pkt1_queue = self.get_queue_number(self.jumbo_pkt1)
         pkt2_queue = self.get_queue_number(self.jumbo_pkt2)
 
-        # Failed to disable jumboframe per_queue
-        self.dut.send_expect("port stop 0", "testpmd> ")
-        self.dut.send_expect("port 0 rxq %s rx_offload jumbo_frame off" % pkt1_queue, "testpmd> ")
-        self.verify_result(self.jumbo_pkt1, 1, pkt1_queue)
+        # Failed to disable jumboframe per_queue, foxvillee 2.5g not support
+        if self.nic != 'foxville':
+            self.dut.send_expect("port stop 0", "testpmd> ")
+            self.dut.send_expect("port 0 rxq %s rx_offload jumbo_frame off" % pkt1_queue, "testpmd> ")
+            self.verify_result(self.jumbo_pkt1, 1, pkt1_queue)
 
         # Succeed to disable jumboframe per_port
         self.dut.send_expect("port stop 0", "testpmd> ")
@@ -430,6 +431,8 @@ class TestRxTx_Offload(TestCase):
         self.pmdout.start_testpmd("%s" % self.cores, "--rxq=4 --txq=4")
         capabilities = self.check_port_capability("rx")
         for capability in capabilities:
+            if self.nic == 'foxville' and capability == 'sctp_cksum':
+                continue
             if capability != "jumboframe":
                 self.dut.send_expect("port stop 0", "testpmd> ")
                 self.dut.send_expect("port config 0 rx_offload %s on" % capability, "testpmd> ")
@@ -444,7 +447,7 @@ class TestRxTx_Offload(TestCase):
         Set Rx offload by queue.
         """
         # Only support ixgbe NICs
-        self.verify(self.nic in ["niantic", "twinpond", "sagepond", "sageville"], "%s nic not support rx offload setting by queue." % self.nic)
+        self.verify(self.nic in ["niantic", "twinpond", "sagepond", "sageville", "foxville"], "%s nic not support rx offload setting by queue." % self.nic)
         # Define the vlan packets
         self.vlan_pkt1 = r'sendp([Ether(dst="%s")/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.3")/UDP(sport=33, dport=34)/Raw("x"*20)], iface="%s")' % (self.pf_mac, self.tester_itf0)
         self.vlan_pkt2 = r'sendp([Ether(dst="%s")/Dot1Q(vlan=1)/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=33, dport=34)/Raw("x"*20)], iface="%s")' % (self.pf_mac, self.tester_itf0)
diff --git a/tests/TestSuite_uni_pkt.py b/tests/TestSuite_uni_pkt.py
index f664c08..6770f18 100644
--- a/tests/TestSuite_uni_pkt.py
+++ b/tests/TestSuite_uni_pkt.py
@@ -131,7 +131,7 @@ class TestUniPacket(TestCase):
            "x722" in self.nic or "fortpark_BASE-T" in self.nic :
             outerL4Type = "L4_NONFRAG"
             ipv4_default_packet_type = ["L2_ETHER", "L3_IPV4_EXT_UNKNOWN"]
-        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower():
+        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower() or 'foxville' in self.nic.lower():
             outerL4Type = ""
             ipv4_default_packet_type = ["L2_ETHER", "L3_IPV4"]
         pktType = {
@@ -166,7 +166,7 @@ class TestUniPacket(TestCase):
            "x722" in self.nic or "fortpark_BASE-T" in self.nic:
             outerL4Type = "L4_NONFRAG"
             ipv6_default_packet_type = ["L2_ETHER", "L3_IPV6_EXT_UNKNOWN"]
-        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower():
+        elif "niantic" in self.nic.lower() or "powerville" in self.nic.lower() or "cavium" in self.nic.lower() or "twinpond" in self.nic.lower() or "twinville" in self.nic.lower() or "sageville" in self.nic.lower() or "sagepond" in self.nic.lower() or "springville" in self.nic.lower() or 'foxville' in self.nic.lower():
             outerL4Type = ""
             ipv6_default_packet_type = ["L2_ETHER", "L3_IPV6"]
 
@@ -221,7 +221,7 @@ class TestUniPacket(TestCase):
         detected.
         """
         self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g", "niantic", "fortville_eagle", "fortville_spirit","powerville", "fortpark_TLV","fortpark_BASE-T",
-            "fortville_25g", "fortville_spirit_single", "carlsville"], "not support %s" % self.nic)
+            "fortville_25g", "fortville_spirit_single", "carlsville", "foxville"], "not support %s" % self.nic)
         pktType = {
             "MAC_IP_IPv6_PKT":            ["L2_ETHER", "L3_IPV4", "TUNNEL_IP",  "INNER_L3_IPV6"],
             "MAC_IP_IPv6EXT2_PKT":        ["L2_ETHER", "L3_IPV4", "TUNNEL_IP",  "INNER_L3_IPV6_EXT"],
diff --git a/tests/TestSuite_unit_tests_loopback.py b/tests/TestSuite_unit_tests_loopback.py
index 22e6bee..68b1f30 100644
--- a/tests/TestSuite_unit_tests_loopback.py
+++ b/tests/TestSuite_unit_tests_loopback.py
@@ -112,6 +112,7 @@ class TestUnitTestsLoopback(TestCase):
         Run pmd stream control mode burst test case.
         """
         self.dut.send_expect("sed -i -e 's/lpbk_mode = 1/lpbk_mode = 0/' app/test/test_pmd_perf.c", "# ", 30)
+        self.dut.send_expect("sed -i -e '/check_all_ports_link_status(nb_ports, RTE_PORT_ALL);/a\        sleep(6);' app/test/test_pmd_perf.c", "# ", 30)
         out = self.dut.build_dpdk_apps('app/test')
         self.verify("Error" not in out, "Compilation error")
         self.verify("No such" not in out, "Compilation error")
@@ -139,6 +140,7 @@ class TestUnitTestsLoopback(TestCase):
         Run after each test suite.
         """
         self.dut.send_expect("sed -i -e 's/lpbk_mode = 0/lpbk_mode = 1/' app/test/test_pmd_perf.c", "# ", 30)
+        self.dut.send_expect("sed -i -e '/sleep(6)/d' app/test/test_pmd_perf.c", "# ", 30)
         self.dut.send_expect("sed -i -e 's/#define MAX_TRAFFIC_BURST              32/#define MAX_TRAFFIC_BURST              %s/' app/test/test_pmd_perf.c" % self.max_traffic_burst, "# ", 30)
         out = self.dut.build_dpdk_apps('app/test')
         self.verify("Error" not in out, "Compilation error")
diff --git a/tests/TestSuite_vlan_ethertype_config.py b/tests/TestSuite_vlan_ethertype_config.py
index a18f7c8..c31f585 100644
--- a/tests/TestSuite_vlan_ethertype_config.py
+++ b/tests/TestSuite_vlan_ethertype_config.py
@@ -290,7 +290,7 @@ class TestVlanEthertypeConfig(TestCase):
         self.dut.send_expect("start", "testpmd> ")
 
         # caium_a063 card support only default '0x8100' tpid in rx mode
-        if (self.nic in ["cavium_a063", "cavium_a064"]):
+        if (self.nic in ["cavium_a063", "cavium_a064", "foxville"]):
             tpids = [0x8100]
         else:
             tpids = [0x8100, 0xA100]
-- 
1.8.3.1


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

end of thread, other threads:[~2020-04-21  6:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-21  6:21 [dts] [PATCH V1] DTS adapts to foxville network card Zhou Jun
  -- strict thread matches above, loose matches on Subject: below --
2020-04-20  7:05 Zhou Jun
2020-04-21  3:31 ` 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).