diff --git a/tests/TestSuite_cvl_ip_fragment_rte_flow.py b/tests/TestSuite_cvl_ip_fragment_rte_flow.py
index acf8e78e..e3c03b0f 100644
--- a/tests/TestSuite_cvl_ip_fragment_rte_flow.py
+++ b/tests/TestSuite_cvl_ip_fragment_rte_flow.py
@@ -42,7 +42,7 @@ LAUNCH_QUEUE = 16
 
 tv_mac_ipv4_frag_fdir_queue_index = {
     "name": "tv_mac_ipv4_frag_fdir_queue_index",
-    "rule": "flow create 0 ingress pattern eth / ipv4 packet_id spec 0 packet_id last 0xffff packet_id mask 0xffff fragment_offset spec 0x2000 fragment_offset last 0x1fff fragment_offset mask 0xffff / end actions queue index 1 / mark / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 fragment_offset spec 0x2000 fragment_offset mask 0x2000 / end actions queue index 1 / mark / end",
     "scapy_str": {"matched": ["Ether()/IP(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"]
                   },
@@ -51,8 +51,7 @@ tv_mac_ipv4_frag_fdir_queue_index = {
 
 tv_mac_ipv4_frag_fdir_rss_queues = {
     "name": "tv_mac_ipv4_frag_fdir_rss_queues",
-    "rule": ["flow create 0 ingress pattern eth / ipv4 packet_id spec 0 packet_id last 0xffff packet_id mask 0xffff fragment_offset spec 0x2000 fragment_offset last 0x1fff fragment_offset mask 0xffff / end actions rss queues 2 3 end / mark / end",
-            "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-frag end key_len 0 queues end / end"],
+    "rule": ["flow create 0 ingress pattern eth / ipv4 fragment_offset spec 0x2000 fragment_offset mask 0x2000 / end actions rss queues 2 3 end / mark / end",],
     "scapy_str": {"matched": ["Ether()/IP(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"]
                   },
@@ -61,16 +60,16 @@ tv_mac_ipv4_frag_fdir_rss_queues = {
 
 tv_mac_ipv4_frag_fdir_passthru = {
     "name": "tv_mac_ipv4_frag_fdir_passthru",
-    "rule": "flow create 0 ingress pattern eth / ipv4 packet_id spec 0 packet_id last 0xffff packet_id mask 0xffff fragment_offset spec 0x2000 fragment_offset last 0x1fff fragment_offset mask 0xffff / end actions passthru / mark / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 fragment_offset spec 0x2000 fragment_offset mask 0x2000 / end actions passthru / mark / end",
     "scapy_str": {"matched": ["Ether()/IP(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"]
                   },
-    "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0}
+    "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss": True}
 }
 
 tv_mac_ipv4_frag_fdir_drop = {
     "name": "tv_mac_ipv4_frag_fdir_drop",
-    "rule": "flow create 0 ingress pattern eth / ipv4 packet_id spec 0 packet_id last 0xffff packet_id mask 0xffff fragment_offset spec 0x2000 fragment_offset last 0x1fff fragment_offset mask 0xffff / end actions drop / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 fragment_offset spec 0x2000 fragment_offset mask 0x2000 / end actions drop / end",
     "scapy_str": {"matched": ["Ether()/IP(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"]
                   },
@@ -79,7 +78,7 @@ tv_mac_ipv4_frag_fdir_drop = {
 
 tv_mac_ipv4_frag_fdir_mark_rss = {
     "name": "tv_mac_ipv4_frag_fdir_mark_rss",
-    "rule": "flow create 0 ingress pattern eth / ipv4 packet_id spec 0 packet_id last 0xffff packet_id mask 0xffff fragment_offset spec 0x2000 fragment_offset last 0x1fff fragment_offset mask 0xffff / end actions mark / rss / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 fragment_offset spec 0x2000 fragment_offset mask 0x2000 / end actions mark / rss / end",
     "scapy_str": {"matched": ["Ether()/IP(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"]
                   },
@@ -88,7 +87,7 @@ tv_mac_ipv4_frag_fdir_mark_rss = {
 
 tv_mac_ipv4_frag_fdir_mark = {
     "name": "tv_mac_ipv4_frag_fdir_mark",
-    "rule": "flow create 0 ingress pattern eth / ipv4 packet_id spec 0 packet_id last 0xffff packet_id mask 0xffff fragment_offset spec 0x2000 fragment_offset last 0x1fff fragment_offset mask 0xffff / end actions mark id 1 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 fragment_offset spec 0x2000 fragment_offset mask 0x2000 / end actions mark id 1 / end",
     "scapy_str": {"matched": ["Ether()/IP(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"]
                   },
@@ -105,7 +104,7 @@ tvs_mac_ipv4_fragment_fdir = [
 ]
 
 tvs_mac_ipv4_fragment_fdir_l2dst = [eval(str(element).replace('mac_ipv4_frag', 'mac_ipv4_frag_l2dst')
-                                                     .replace('eth / ipv4 packet_id', 'eth dst is 00:00:00:00:00:01 / ipv4 packet_id')
+                                                     .replace('eth / ipv4 fragment_offset', 'eth dst is 00:00:00:00:00:01 / ipv4 fragment_offset')
                                                      .replace("Ether()", "Ether(dst='00:00:00:00:00:01')")
                                          )
                                     for element in tvs_mac_ipv4_fragment_fdir]
@@ -113,12 +112,12 @@ tvs_mac_ipv4_fragment_fdir_l2dst = [eval(str(element).replace('mac_ipv4_frag', '
 tvs_mac_ipv4_frag_fdir_with_l2 = tvs_mac_ipv4_fragment_fdir_l2dst
 
 tvs_mac_ipv4_fragment_fdir_l3src = [eval(str(element).replace('mac_ipv4_frag', 'mac_ipv4_frag_l3src')
-                                                     .replace('ipv4 packet_id', 'ipv4 src is 192.168.1.1 packet_id')
+                                                     .replace('ipv4 fragment_offset', 'ipv4 src is 192.168.1.1 fragment_offset')
                                                      .replace("IP(id=47750)", "IP(id=47750, src='192.168.1.1')"))
                                     for element in tvs_mac_ipv4_fragment_fdir]
 
 tvs_mac_ipv4_fragment_fdir_l3dst = [eval(str(element).replace('mac_ipv4_frag', 'mac_ipv4_frag_l3dst')
-                                                     .replace('ipv4 packet_id', 'ipv4 dst is 192.168.1.2 packet_id')
+                                                     .replace('ipv4 fragment_offset', 'ipv4 dst is 192.168.1.2 fragment_offset')
                                                      .replace("IP(id=47750)", "IP(id=47750, dst='192.168.1.2')"))
                                     for element in tvs_mac_ipv4_fragment_fdir]
 
@@ -126,7 +125,7 @@ tvs_mac_ipv4_frag_fdir_with_l3 = tvs_mac_ipv4_fragment_fdir_l3src + tvs_mac_ipv4
 
 tv_mac_ipv6_frag_fdir_queue_index = {
     "name": "tv_mac_ipv6_frag_fdir_queue_index",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext packet_id spec 0 packet_id last 0xffffffff packet_id mask 0xffffffff frag_data spec 0x0001 frag_data last 0xffff frag_data mask 0xffff / end actions queue index 1 / mark / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext frag_data spec 0x0001 frag_data mask 0x0001 / end actions queue index 1 / mark / end",
     "scapy_str": {"matched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IP(id=47750)/Raw('X'*666)"]
                   },
@@ -135,8 +134,7 @@ tv_mac_ipv6_frag_fdir_queue_index = {
 
 tv_mac_ipv6_frag_fdir_rss_queues = {
     "name": "tv_mac_ipv6_frag_fdir_rss_queues",
-    "rule": ["flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext packet_id spec 0 packet_id last 0xffffffff packet_id mask 0xffffffff frag_data spec 0x0001 frag_data last 0xffff frag_data mask 0xffff / end actions rss queues 2 3 end / mark / end",
-            "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext / end actions rss types ipv6-frag end key_len 0 queues end / end"],
+    "rule": ["flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext frag_data spec 0x0001 frag_data mask 0x0001 / end actions rss queues 2 3 end / mark / end",],
     "scapy_str": {"matched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IP(id=47750)/Raw('X'*666)"]
                   },
@@ -145,16 +143,16 @@ tv_mac_ipv6_frag_fdir_rss_queues = {
 
 tv_mac_ipv6_frag_fdir_passthru = {
     "name": "tv_mac_ipv6_frag_fdir_passthru",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext packet_id spec 0 packet_id last 0xffffffff packet_id mask 0xffffffff frag_data spec 0x0001 frag_data last 0xffff frag_data mask 0xffff / end actions passthru / mark / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext frag_data spec 0x0001 frag_data mask 0x0001 / end actions passthru / mark / end",
     "scapy_str": {"matched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IP(id=47750)/Raw('X'*666)"]
                   },
-    "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0}
+    "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss": True}
 }
 
 tv_mac_ipv6_frag_fdir_drop = {
     "name": "tv_mac_ipv6_frag_fdir_drop",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext packet_id spec 0 packet_id last 0xffffffff packet_id mask 0xffffffff frag_data spec 0x0001 frag_data last 0xffff frag_data mask 0xffff / end actions drop / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext frag_data spec 0x0001 frag_data mask 0x0001 / end actions drop / end",
     "scapy_str": {"matched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IP(id=47750)/Raw('X'*666)"]
                   },
@@ -163,7 +161,7 @@ tv_mac_ipv6_frag_fdir_drop = {
 
 tv_mac_ipv6_frag_fdir_mark_rss = {
     "name": "tv_mac_ipv6_frag_fdir_mark_rss",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext packet_id spec 0 packet_id last 0xffffffff packet_id mask 0xffffffff frag_data spec 0x0001 frag_data last 0xffff frag_data mask 0xffff / end actions mark / rss / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext frag_data spec 0x0001 frag_data mask 0x0001 / end actions mark / rss / end",
     "scapy_str": {"matched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IP(id=47750)/Raw('X'*666)"]
                   },
@@ -172,7 +170,7 @@ tv_mac_ipv6_frag_fdir_mark_rss = {
 
 tv_mac_ipv6_frag_fdir_mark = {
     "name": "tv_mac_ipv6_frag_fdir_mark",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext packet_id spec 0 packet_id last 0xffffffff packet_id mask 0xffffffff frag_data spec 0x0001 frag_data last 0xffff frag_data mask 0xffff / end actions mark id 1 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 / ipv6_frag_ext frag_data spec 0x0001 frag_data mask 0x0001 / end actions mark id 1 / end",
     "scapy_str": {"matched": ["Ether()/IPv6()/IPv6ExtHdrFragment(id=47750)/Raw('X'*666)"],
                   "unmatched": ["Ether()/IP(id=47750)/Raw('X'*666)"]
                   },
@@ -189,7 +187,7 @@ tvs_mac_ipv6_fragment_fdir = [
 ]
 
 tvs_mac_ipv6_fragment_fdir_l2dst = [eval(str(element).replace('mac_ipv6_frag', 'mac_ipv6_frag_l2dst')
-                                                     .replace('eth / ipv6 / ipv6_frag_ext packet_id', 'eth dst is 00:00:00:00:00:01 / ipv6 / ipv6_frag_ext packet_id')
+                                                     .replace('eth / ipv6 / ipv6_frag_ext frag_data', 'eth dst is 00:00:00:00:00:01 / ipv6 / ipv6_frag_ext frag_data')
                                                      .replace("Ether()", "Ether(dst='00:00:00:00:00:01')")
                                          )
                                     for element in tvs_mac_ipv6_fragment_fdir]
@@ -367,7 +365,7 @@ class TestCvlIpFragmentRteFlow(TestCase):
         result_list = []
         rule_list_fdir = [
             'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 / end actions queue index 1 / end',
-            'flow create 0 ingress pattern eth / ipv4 packet_id spec 0 packet_id last 0xffff packet_id mask 0xffff fragment_offset spec 0x2000 fragment_offset last 0x1fff fragment_offset mask 0xffff / end actions queue index 2 / end']
+            'flow create 0 ingress pattern eth / ipv4 fragment_offset spec 0x2000 fragment_offset mask 0x2000 / end actions queue index 2 / end']
         pkt_fdir = "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.20', id=47750)/Raw('X'*666)"
 
         self.logger.info('Subcase 1: exclusive validation fdir rule')
@@ -442,7 +440,7 @@ class TestCvlIpFragmentRteFlow(TestCase):
         if hashes1[0] != hashes1[1] and hashes2[0] != hashes2[1]:
             result = False
             self.logger.error("hash value is incorrect")
-        if hashes1[0] != hashes2[0]:
+        if hashes1[0] == hashes2[0]:
             result = False
             self.logger.error("hash value is incorrect")
         result_list.append(result)
