diff --git a/tests/TestSuite_vf_offload.py b/tests/TestSuite_vf_offload.py
index 7a66229a..7a55c791 100644
--- a/tests/TestSuite_vf_offload.py
+++ b/tests/TestSuite_vf_offload.py
@@ -635,43 +635,6 @@ class TestVfOffload(TestCase):
         rx_packet_size = [len(p[Raw].load) for p in pkts]
         return rx_packet_count, rx_packet_size
 
-    def tcpdump_command(self, command):
-        """
-        Send a tcpdump related command and return an integer from the output.
-        """
-
-        result = self.tester.send_expect(command, "#")
-        print(result)
-        return int(result.strip())
-
-    def number_of_packets(self, iface):
-        """
-        By reading the file generated by tcpdump it counts how many packets are
-        forwarded by the sample app and received in the self.tester. The sample app
-        will add a known MAC address for the test to look for.
-        """
-
-        command = (
-            "tcpdump -A -nn -e -v -r tcpdump_{iface}.pcap 2>/dev/null | "
-            + 'grep -c "seq"'
-        )
-        return self.tcpdump_command(command.format(**locals()))
-
-    def tcpdump_scanner(self, scanner):
-        """
-        Execute scanner to return results
-        """
-        scanner_result = self.tester.send_expect(scanner, "#")
-        finally_result = re.findall(r"length( \d+)", scanner_result)
-        return list(finally_result)
-
-    def number_of_bytes(self, iface):
-        """
-        Get the length of loading_sizes
-        """
-        scanner = 'tcpdump  -n -vv -r tcpdump_{iface}.pcap 2>/dev/null | grep "seq"  | grep "length"'
-        return self.tcpdump_scanner(scanner.format(**locals()))
-
     def test_tso(self):
         """
         TSO IPv4 TCP, IPv6 TCP testing.
@@ -769,27 +732,26 @@ class TestVfOffload(TestCase):
             out = self.vm0_testpmd.execute_cmd("show port stats all")
             print(out)
             self.tcpdump_stop_sniff()
-            rx_stats = self.number_of_packets(rx_interface)
-            tx_stats = self.number_of_packets(tx_interface)
-            tx_outlist = self.number_of_bytes(rx_interface)
-            tx_outlist.sort(reverse=True)
-            self.logger.info(tx_outlist)
+            rx_stats, payload_size_list = self.tcpdump_analyse_sniff(rx_interface)
+            tx_stats, _ = self.tcpdump_analyse_sniff(tx_interface)
+            payload_size_list.sort(reverse=True)
+            self.logger.info(payload_size_list)
             if loading_size <= 800:
                 self.verify(
-                    rx_stats == tx_stats and int(tx_outlist[0]) == loading_size,
+                    rx_stats == tx_stats and int(payload_size_list[0]) == loading_size,
                     "IPV4 RX or TX packet number not correct",
                 )
             else:
                 num = loading_size // 800
                 for i in range(num):
                     self.verify(
-                        int(tx_outlist[i]) == 800,
-                        "the packet segmentation incorrect, %s" % tx_outlist,
+                        int(payload_size_list[i]) == 800,
+                        "the packet segmentation incorrect, %s" % payload_size_list,
                     )
                 if loading_size % 800 != 0:
                     self.verify(
-                        int(tx_outlist[num]) == loading_size % 800,
-                        "the packet segmentation incorrect, %s" % tx_outlist,
+                        int(payload_size_list[num]) == loading_size % 800,
+                        "the packet segmentation incorrect, %s" % payload_size_list,
                     )
 
         for loading_size in self.loading_sizes:
@@ -804,27 +766,26 @@ class TestVfOffload(TestCase):
             out = self.vm0_testpmd.execute_cmd("show port stats all")
             print(out)
             self.tcpdump_stop_sniff()
-            rx_stats = self.number_of_packets(rx_interface)
-            tx_stats = self.number_of_packets(tx_interface)
-            tx_outlist = self.number_of_bytes(rx_interface)
-            tx_outlist.sort(reverse=True)
-            self.logger.info(tx_outlist)
+            rx_stats, payload_size_list = self.tcpdump_analyse_sniff(rx_interface)
+            tx_stats, _ = self.tcpdump_analyse_sniff(tx_interface)
+            payload_size_list.sort(reverse=True)
+            self.logger.info(payload_size_list)
             if loading_size <= 800:
                 self.verify(
-                    rx_stats == tx_stats and int(tx_outlist[0]) == loading_size,
+                    rx_stats == tx_stats and int(payload_size_list[0]) == loading_size,
                     "IPV6 RX or TX packet number not correct",
                 )
             else:
                 num = loading_size // 800
                 for i in range(num):
                     self.verify(
-                        int(tx_outlist[i]) == 800,
-                        "the packet segmentation incorrect, %s" % tx_outlist,
+                        int(payload_size_list[i]) == 800,
+                        "the packet segmentation incorrect, %s" % payload_size_list,
                     )
                 if loading_size % 800 != 0:
                     self.verify(
-                        int(tx_outlist[num]) == loading_size % 800,
-                        "the packet segmentation incorrect, %s" % tx_outlist,
+                        int(payload_size_list[num]) == loading_size % 800,
+                        "the packet segmentation incorrect, %s" % payload_size_list,
                     )
 
     @check_supported_nic(
@@ -923,6 +884,7 @@ class TestVfOffload(TestCase):
                 self.tcpdump_stop_sniff()
                 rx_stats, payload_size_list = self.tcpdump_analyse_sniff(rx_interface)
                 tx_stats, _ = self.tcpdump_analyse_sniff(tx_interface)
+                payload_size_list.sort(reverse=True)
                 self.logger.info(payload_size_list)
                 if loading_size <= 800:
                     self.verify(
@@ -966,6 +928,7 @@ class TestVfOffload(TestCase):
                 self.tcpdump_stop_sniff()
                 rx_stats, payload_size_list = self.tcpdump_analyse_sniff(rx_interface)
                 tx_stats, _ = self.tcpdump_analyse_sniff(tx_interface)
+                payload_size_list.sort(reverse=True)
                 self.logger.info(payload_size_list)
                 if loading_size <= 800:
                     self.verify(
