get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/91950/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 91950,
    "url": "http://patches.dpdk.org/api/patches/91950/?format=api",
    "web_url": "http://patches.dpdk.org/project/dts/patch/1619000234-46133-3-git-send-email-churchill.khangar@intel.com/",
    "project": {
        "id": 3,
        "url": "http://patches.dpdk.org/api/projects/3/?format=api",
        "name": "DTS",
        "link_name": "dts",
        "list_id": "dts.dpdk.org",
        "list_email": "dts@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dts",
        "webscm_url": "http://git.dpdk.org/tools/dts/",
        "list_archive_url": "https://inbox.dpdk.org/dts",
        "list_archive_url_format": "https://inbox.dpdk.org/dts/{}",
        "commit_url_format": ""
    },
    "msgid": "<1619000234-46133-3-git-send-email-churchill.khangar@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/1619000234-46133-3-git-send-email-churchill.khangar@intel.com",
    "date": "2021-04-21T10:17:14",
    "name": "[2/2] tests/pipeline: add new features test coverage",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "fb0bfa92424149d64ba7e577e7ecf3c663f1ed11",
    "submitter": {
        "id": 2045,
        "url": "http://patches.dpdk.org/api/people/2045/?format=api",
        "name": "Churchill Khangar",
        "email": "churchill.khangar@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dts/patch/1619000234-46133-3-git-send-email-churchill.khangar@intel.com/mbox/",
    "series": [
        {
            "id": 16562,
            "url": "http://patches.dpdk.org/api/series/16562/?format=api",
            "web_url": "http://patches.dpdk.org/project/dts/list/?series=16562",
            "date": "2021-04-21T10:17:12",
            "name": "add pipeline new features test scenarios",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/16562/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/91950/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/91950/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dts-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id E4246A0547;\n\tWed, 21 Apr 2021 12:14:36 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id DA0EF41A4E;\n\tWed, 21 Apr 2021 12:14:36 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id 76E4B419D3\n for <dts@dpdk.org>; Wed, 21 Apr 2021 12:14:34 +0200 (CEST)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 21 Apr 2021 03:14:33 -0700",
            "from fourhctwonone.iind.intel.com (HELO bdcdev09.localdomain)\n ([10.190.193.143])\n by orsmga001.jf.intel.com with ESMTP; 21 Apr 2021 03:14:29 -0700"
        ],
        "IronPort-SDR": [
            "\n EYDdzZSykObtCzui7KWfKpVBHot1hHiBXPeE7CJQWzbWFjnJ3DliPxQnfFs0gXzshFPBvce+6W\n fLxrEM4gAaSw==",
            "\n 5hOSkXDmg9MhQPH0XA5miPfvVA3keyGIgZcqZz6sHoPikv8r2mSVnjP7KHmEvYD9BX61STxtCm\n vLTFrI3oO0tA=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,9960\"; a=\"195229781\"",
            "E=Sophos;i=\"5.82,238,1613462400\"; d=\"scan'208\";a=\"195229781\"",
            "E=Sophos;i=\"5.82,238,1613462400\"; d=\"scan'208\";a=\"463537304\""
        ],
        "X-ExtLoop1": "1",
        "From": "Churchill Khangar <churchill.khangar@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "cristian.dumitrescu@intel.com, venkata.suresh.kumar.p@intel.com,\n churchill.khangar@intel.com, yogesh.jangra@intel.com",
        "Date": "Wed, 21 Apr 2021 06:17:14 -0400",
        "Message-Id": "<1619000234-46133-3-git-send-email-churchill.khangar@intel.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1619000234-46133-1-git-send-email-churchill.khangar@intel.com>",
        "References": "<1619000234-46133-1-git-send-email-churchill.khangar@intel.com>",
        "Subject": "[dts] [PATCH 2/2] tests/pipeline: add new features test coverage",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "test suite reviews and discussions <dts.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dts/>",
        "List-Post": "<mailto:dts@dpdk.org>",
        "List-Help": "<mailto:dts-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dts-bounces@dpdk.org",
        "Sender": "\"dts\" <dts-bounces@dpdk.org>"
    },
    "content": "This patch has the pipeline test suite changes to cover\nthe new features and enhancements to existing tests.\nFollowing are the details of new features and\nexisting test cases enhancements\n     1. Framework enhancements to improve overall execution time.\n     2. RING I/O port type\n     3. WCM table match\n     4. Register Array\n     5. trTCM\n     6. Enhancement to existing test cases to verify\n          a. Endianness issue\n          b. Operands with variable size values\n     7. Additional tests to provide more coverage for table match and actions\n     8. Additional tests to cover customer common use cases\n\nSigned-off-by: Churchill Khangar <churchill.khangar@intel.com>\nSigned-off-by: Yogesh Jangra <yogesh.jangra@intel.com>\nTested-by: Venkata Suresh Kumar P <venkata.suresh.kumar.p@intel.com>\n---\n tests/TestSuite_pipeline.py | 8416 +++++++++++++++++++------------------------\n 1 file changed, 3661 insertions(+), 4755 deletions(-)",
    "diff": "diff --git a/tests/TestSuite_pipeline.py b/tests/TestSuite_pipeline.py\nindex 9597896..d1f4d50 100644\n--- a/tests/TestSuite_pipeline.py\n+++ b/tests/TestSuite_pipeline.py\n@@ -65,12 +65,17 @@ from scapy.sendrecv import sendp\n \n import itertools\n \n+MODE = 1  # 0: Development, 1: Release\n+\n TIMESTAMP = re.compile(r'\\d{2}\\:\\d{2}\\:\\d{2}\\.\\d{6}')\n PAYLOAD = re.compile(r'\\t0x([0-9a-fA-F]+):  ([0-9a-fA-F ]+)')\n \n FILE_DIR = os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)\n DEP_DIR = os.path.sep.join(FILE_DIR[:-1]) + '/dep/'\n \n+BUFFER_SIZE = 1024\n+CLI_SERVER_CONNECT_DELAY = 1\n+\n \n class TestPipeline(TestCase):\n \n@@ -200,9 +205,52 @@ class TestPipeline(TestCase):\n         self.convert_tcpdump_to_text2pcap('/tmp/packet_rx.txt', '/tmp/packet_rx_rcv.txt')\n         out = self.tester.send_command(\n             'diff -sqw /tmp/packet_rx_rcv.txt {}'.format('/tmp/' + out_pcap_file), timeout=0.5)\n-        if \"differ\" in out:\n+        if \"are identical\" not in out:\n+            self.dut.send_expect('^C', '# ')\n+            self.verify(False, \"Output pcap files mismatch error\")\n+\n+    def send_and_sniff_multiple(self, from_port, to_port, in_pcap, out_pcap, filters, rate=0):\n+\n+        self.tester.send_expect('rm -f /tmp/*.txt /tmp/*.pcap /tmp/*.out', '# ')\n+        tx_count = len(from_port)\n+        rx_count = len(to_port)\n+        tx_port, rx_port, tx_inf, rx_inf = ([] for i in range(4))\n+\n+        for i in range(tx_count):\n+            tx_port.append(self.tester.get_local_port(self.dut_ports[from_port[i]]))\n+            tx_inf.append(self.tester.get_interface(tx_port[i]))\n+\n+        for i in range(rx_count):\n+            rx_port.append(self.tester.get_local_port(self.dut_ports[to_port[i]]))\n+            rx_inf.append(self.tester.get_interface(rx_port[i]))\n+            self.tcpdump_start_sniff(rx_inf[i], filters[i])\n+\n+        self.tester.scapy_foreground()\n+        for i in range(tx_count):\n+            self.tester.send_expect(\n+                'text2pcap -q {} /tmp/tx_{}.pcap'.format('/tmp/' + in_pcap[i], tx_inf[i]), '# ')\n+            self.tester.scapy_append('pkt = rdpcap(\"/tmp/tx_{}.pcap\")'.format(tx_inf[i]))\n+            if rate:\n+                self.tester.scapy_append(\n+                    'sendp(pkt, iface=\"{}\", count=1, inter=1./{})'.format(tx_inf[i], rate))\n+            else:\n+                self.tester.scapy_append('sendp(pkt, iface=\"{}\", count=1)'.format(tx_inf[i]))\n+\n+        self.tester.scapy_execute()\n+        self.tcpdump_stop_sniff()\n+        mismatch_count = 0\n+        for i in range(rx_count):\n+            self.tester.send_expect(\n+                'tcpdump -n -r /tmp/tcpdump_{}.pcap -xx > /tmp/packet_rx.txt'.format(rx_inf[i]), '# ')\n+            self.convert_tcpdump_to_text2pcap(\n+                '/tmp/packet_rx.txt', '/tmp/packet_rx_rcv_{}.txt'.format(rx_inf[i]))\n+            cmd = 'diff -sqw /tmp/packet_rx_rcv_{}.txt {}'.format(rx_inf[i], '/tmp/' + out_pcap[i])\n+            out = self.tester.send_command(cmd, timeout=0.5)\n+            if \"are identical\" not in out:\n+                mismatch_count += 1\n+        if mismatch_count:\n             self.dut.send_expect('^C', '# ')\n-        self.verify(\"are identical\" in out, \"Output pcap files mismatch error\")\n+            self.verify(False, \"Output pcap files mismatch error\")\n \n     def setup_env(self, port_nums, driver):\n         \"\"\"\n@@ -279,7 +327,7 @@ class TestPipeline(TestCase):\n         self.vf3_mac = \"00:11:22:33:44:58\"\n \n         ports = [self.dut_p0_pci, self.dut_p1_pci, self.dut_p2_pci, self.dut_p3_pci]\n-        self.eal_para = self.dut.create_eal_parameters(cores=list(range(2)), ports=ports)\n+        self.eal_para = self.dut.create_eal_parameters(cores=list(range(4)), ports=ports)\n         self.sriov_vfs_port = []\n         self.session_secondary = self.dut.new_session()\n \n@@ -289,10 +337,13 @@ class TestPipeline(TestCase):\n         self.app_testpmd_path = self.dut.apps_name['test-pmd']\n         self.param_flow_dir = self.get_flow_direction_param_of_tcpdump()\n \n-        # update the ./dep/pipeline.tar.gz file for any new changes\n-        P4_PIPILINE_TAR_FILE = DEP_DIR + 'pipeline.tar.gz'\n+        # update the ./dep/pipeline.tar.gz file\n+        PIPELINE_TAR_FILE = DEP_DIR + 'pipeline.tar.gz'\n         self.tester.send_expect('rm -rf /tmp/pipeline', '# ')\n-        self.tester.send_expect('tar -zxf {} --directory /tmp'.format(P4_PIPILINE_TAR_FILE), \"# \", 20)\n+        if MODE == 0:  # Development\n+            self.tester.send_expect('rm -rf {}'.format(PIPELINE_TAR_FILE), '# ')\n+            self.tester.send_expect('tar -czf {} -C {} pipeline/'.format(PIPELINE_TAR_FILE, DEP_DIR), '# ')\n+        self.tester.send_expect('tar -zxf {} --directory /tmp'.format(PIPELINE_TAR_FILE), \"# \", 20)\n \n         # copy the ./dep/pipeline.tar.gz file to DUT\n         self.dut.send_expect('rm -rf /tmp/pipeline.tar.gz /tmp/pipeline', \"# \", 20)\n@@ -305,47 +356,44 @@ class TestPipeline(TestCase):\n         \"\"\"\n         pass\n \n-    def test_rx_tx_001(self):\n-        \"\"\"\n-        rx_tx_001: revert the received packet on the same port without any change\n-        \"\"\"\n-        cli_file = '/tmp/pipeline/rx_tx_001/rx_tx_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/rx_tx_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/rx_tx_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def connect_cli_server(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        SERVER_IP = '192.168.122.216'\n+        SERVER_PORT = 8086\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        try:\n+            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n+            try:\n+                s.connect((SERVER_IP, SERVER_PORT))\n+                sleep(1)\n+                msg = s.recv(BUFFER_SIZE)\n+                response = msg.decode()\n+                # print('Rxd: ' + response)\n+                if \"pipeline>\" not in response:\n+                    s.close()\n+                    self.verify(0, \"CLI Response Error\")\n+                else:\n+                    return s\n+            except socket.error as err:\n+                print(\"Socket connection failed with error %s\" % (err))\n+                self.verify(0, \"Failed to connect to server\")\n+        except socket.error as err:\n+            print(\"Socket creation failed with error %s\" % (err))\n+            self.verify(0, \"Failed to create socket\")\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def socket_send_cmd(self, socket, cmd, expected_rsp):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        socket.send(cmd.encode('utf-8'))\n+        sleep(0.1)\n+        msg = socket.recv(BUFFER_SIZE)\n+        response = msg.decode()\n+        print('Rxd: ' + response)\n+        if expected_rsp not in response:\n+            socket.close()\n+            self.dut.send_expect(\"^C\", \"# \", 20)\n+            self.verify(0, \"CLI Response Error\")\n \n-    def test_extract_emit_001(self):\n-        \"\"\"\n-        extract_emit_001: revert the received packet on the same port without any change\n-        \"\"\"\n-        cli_file = '/tmp/pipeline/extract_emit_001/extract_emit_001.cli'\n+    def run_dpdk_app(self, cli_file):\n \n         cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n         self.dut.send_expect(cmd, \"# \", 20)\n@@ -355,5249 +403,4107 @@ class TestPipeline(TestCase):\n         self.dut.send_expect(cmd, \"# \", 20)\n         cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n         self.dut.send_expect(cmd, \"# \", 20)\n-\n         cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 75)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+    def send_pkts(self, from_port, to_port, in_pcap_file):\n+        \"\"\"\n+        Send pkts read from the input pcap file.\n+        \"\"\"\n+        tx_port = self.tester.get_local_port(self.dut_ports[from_port])\n+        rx_port = self.tester.get_local_port(self.dut_ports[to_port])\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        tx_interface = self.tester.get_interface(tx_port)\n+        rx_interface = self.tester.get_interface(rx_port)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        self.tester.send_expect('rm -f /tmp/*.txt /tmp/*.pcap /tmp/*.out', '# ')\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        # Prepare the pkts to be sent\n+        self.tester.scapy_foreground()\n+        self.tester.send_expect('text2pcap -q {} /tmp/packet_tx.pcap'.format('/tmp/' + in_pcap_file), '# ')\n+        self.tester.scapy_append('pkt = rdpcap(\"/tmp/packet_tx.pcap\")')\n+        self.tester.scapy_append('sendp(pkt, iface=\"{}\", count=1)'.format(tx_interface))\n+        self.tester.scapy_execute()\n \n-    def test_extract_emit_002(self):\n+    def test_rx_tx_001(self):\n \n-        cli_file = '/tmp/pipeline/extract_emit_002/extract_emit_002.cli'\n+        cli_file = '/tmp/pipeline/rx_tx_001/rx_tx_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/rx_tx_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/rx_tx_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_extract_emit_001(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/extract_emit_001/extract_emit_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/extract_emit_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_extract_emit_002(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/extract_emit_002/extract_emit_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/extract_emit_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n     def test_extract_emit_003(self):\n \n         cli_file = '/tmp/pipeline/extract_emit_003/extract_emit_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/extract_emit_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_extract_emit_004(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/extract_emit_004/extract_emit_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/extract_emit_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_extract_emit_005(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/extract_emit_005/extract_emit_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/extract_emit_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"vlan\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_extract_emit_004(self):\n+    def test_extract_emit_006(self):\n \n-        cli_file = '/tmp/pipeline/extract_emit_004/extract_emit_004.cli'\n+        cli_file = '/tmp/pipeline/extract_emit_006/extract_emit_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/extract_emit_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp port 4789\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_extract_emit_007(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/extract_emit_007/extract_emit_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/extract_emit_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp port 4789\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_extract_emit_008(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/extract_emit_008/extract_emit_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/extract_emit_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp port 4789\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_extract_emit_005(self):\n+    def test_extract_emit_009(self):\n \n-        cli_file = '/tmp/pipeline/extract_emit_005/extract_emit_005.cli'\n+        cli_file = '/tmp/pipeline/extract_emit_009/extract_emit_009.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/extract_emit_009/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/extract_emit_009/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_and_001(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_005/pcap_files/out_1.txt'\n-        filters = \"vlan\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/and_001/and_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/and_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/and_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_and_002(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/and_002/and_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = 'pipeline/and_002/pcap_files/in_1.txt'\n+        out_pcap = 'pipeline/and_002/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(1, 0, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(2, 0, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(3, 0, in_pcap, out_pcap, \"tcp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_extract_emit_006(self):\n+    def test_and_003(self):\n \n-        cli_file = '/tmp/pipeline/extract_emit_006/extract_emit_006.cli'\n+        cli_file = '/tmp/pipeline/and_003/and_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/and_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/and_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_and_004(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_006/pcap_files/out_1.txt'\n-        filters = \"udp port 4789\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/and_004/and_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/and_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/and_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_and_005(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/and_005/and_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/and_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/and_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_extract_emit_007(self):\n+    def test_and_006(self):\n \n-        cli_file = '/tmp/pipeline/extract_emit_007/extract_emit_007.cli'\n+        cli_file = '/tmp/pipeline/and_006/and_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/and_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/and_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_and_007(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_007/pcap_files/out_1.txt'\n-        filters = \"udp port 4789\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/and_007/and_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/and_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/and_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_and_008(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/and_008/and_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/and_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/and_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_extract_emit_008(self):\n+    def test_or_001(self):\n \n-        cli_file = '/tmp/pipeline/extract_emit_008/extract_emit_008.cli'\n+        cli_file = '/tmp/pipeline/or_001/or_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/or_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/or_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_or_002(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_008/pcap_files/out_1.txt'\n-        filters = \"udp port 4789\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/or_002/or_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/or_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/or_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_or_003(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/or_003/or_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/or_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/or_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_extract_emit_009(self):\n+    def test_or_004(self):\n \n-        cli_file = '/tmp/pipeline/extract_emit_009/extract_emit_009.cli'\n+        cli_file = '/tmp/pipeline/or_004/or_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/or_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/or_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_or_005(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/extract_emit_009/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/extract_emit_009/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/or_005/or_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/or_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/or_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_or_006(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/or_006/or_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/or_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/or_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_001(self):\n+    def test_or_007(self):\n \n-        cli_file = '/tmp/pipeline/and_001/and_001.cli'\n+        cli_file = '/tmp/pipeline/or_007/or_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/or_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/or_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_or_008(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/or_008/or_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = 'pipeline/or_008/pcap_files/in_1.txt'\n+        out_pcap = 'pipeline/or_008/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 1, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(1, 1, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(2, 3, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(3, 3, in_pcap, out_pcap, \"tcp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_xor_001(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/xor_001/xor_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/xor_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [1, 0, 3, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_002(self):\n+    def test_xor_002(self):\n \n-        cli_file = '/tmp/pipeline/and_002/and_002.cli'\n+        cli_file = '/tmp/pipeline/xor_002/xor_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/xor_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_xor_003(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/xor_003/xor_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/xor_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_xor_004(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/xor_004/xor_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/xor_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_003(self):\n+    def test_xor_005(self):\n \n-        cli_file = '/tmp/pipeline/and_003/and_003.cli'\n+        cli_file = '/tmp/pipeline/xor_005/xor_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/xor_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_xor_006(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/xor_006/xor_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/xor_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [1, 0, 3, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_xor_007(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/xor_007/xor_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/xor_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_004(self):\n+    def test_xor_008(self):\n \n-        cli_file = '/tmp/pipeline/and_004/and_004.cli'\n+        cli_file = '/tmp/pipeline/xor_008/xor_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/xor_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/xor_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_add_001(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/add_001/add_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/add_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_add_002(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/add_002/add_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/add_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_005(self):\n+    def test_add_003(self):\n \n-        cli_file = '/tmp/pipeline/and_005/and_005.cli'\n+        cli_file = '/tmp/pipeline/add_003/add_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/add_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2]\n+        rx_port = [1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_add_004(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/add_004/add_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/add_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_add_005(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/add_005/add_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/add_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_006(self):\n+    def test_add_006(self):\n \n-        cli_file = '/tmp/pipeline/and_006/and_006.cli'\n+        cli_file = '/tmp/pipeline/add_006/add_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/add_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_add_007(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/add_007/add_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/add_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_add_008(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/add_008/add_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/add_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/add_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_007(self):\n+    def test_shl_001(self):\n \n-        cli_file = '/tmp/pipeline/and_007/and_007.cli'\n+        cli_file = '/tmp/pipeline/shl_001/shl_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shl_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_shl_002(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_007/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shl_002/shl_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/shl_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_shl_003(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shl_003/shl_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shl_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_and_008(self):\n+    def test_shl_004(self):\n \n-        cli_file = '/tmp/pipeline/and_008/and_008.cli'\n+        cli_file = '/tmp/pipeline/shl_004/shl_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shl_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_shl_005(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/and_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/and_008/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shl_005/shl_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/shl_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_shl_006(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shl_006/shl_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shl_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_001(self):\n+    def test_shl_007(self):\n \n-        cli_file = '/tmp/pipeline/or_001/or_001.cli'\n+        cli_file = '/tmp/pipeline/shl_007/shl_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shl_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_shl_008(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shl_008/shl_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/shl_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shl_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_shr_001(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shr_001/shr_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shr_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_002(self):\n+    def test_shr_002(self):\n \n-        cli_file = '/tmp/pipeline/or_002/or_002.cli'\n+        cli_file = '/tmp/pipeline/shr_002/shr_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shr_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_shr_003(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shr_003/shr_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/shr_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_shr_004(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shr_004/shr_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shr_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_003(self):\n+    def test_shr_005(self):\n \n-        cli_file = '/tmp/pipeline/or_003/or_003.cli'\n+        cli_file = '/tmp/pipeline/shr_005/shr_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shr_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_shr_006(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shr_006/shr_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/shr_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_shr_007(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/shr_007/shr_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shr_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_004(self):\n+    def test_shr_008(self):\n \n-        cli_file = '/tmp/pipeline/or_004/or_004.cli'\n+        cli_file = '/tmp/pipeline/shr_008/shr_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/shr_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/shr_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_sub_001(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/sub_001/sub_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/sub_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_sub_002(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/sub_002/sub_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/sub_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_005(self):\n+    def test_sub_003(self):\n \n-        cli_file = '/tmp/pipeline/or_005/or_005.cli'\n+        cli_file = '/tmp/pipeline/sub_003/sub_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/sub_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_sub_004(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/sub_004/sub_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/sub_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_sub_005(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/sub_005/sub_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/sub_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_006(self):\n+    def test_sub_006(self):\n \n-        cli_file = '/tmp/pipeline/or_006/or_006.cli'\n+        cli_file = '/tmp/pipeline/sub_006/sub_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/sub_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_sub_007(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/sub_007/sub_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/sub_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_sub_008(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/sub_008/sub_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/sub_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/sub_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_007(self):\n+    def test_mov_001(self):\n \n-        cli_file = '/tmp/pipeline/or_007/or_007.cli'\n+        cli_file = '/tmp/pipeline/mov_001/mov_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/mov_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/mov_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_mov_002(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_007/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/mov_002/mov_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/mov_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/mov_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_mov_003(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/mov_003/mov_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/mov_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/mov_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_or_008(self):\n+    def test_mov_004(self):\n \n-        cli_file = '/tmp/pipeline/or_008/or_008.cli'\n+        cli_file = '/tmp/pipeline/mov_004/mov_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/mov_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/mov_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_mov_005(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/or_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/or_008/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/mov_005/mov_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = 'pipeline/mov_005/pcap_files/in_1.txt'\n+        out_pcap = 'pipeline/mov_005/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(1, 0, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(2, 0, in_pcap, out_pcap, \"tcp\")\n+        self.send_and_sniff_pkts(3, 0, in_pcap, out_pcap, \"tcp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_mov_007(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/mov_007/mov_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/mov_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/mov_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_xor_001(self):\n+    def test_mov_008(self):\n \n-        cli_file = '/tmp/pipeline/xor_001/xor_001.cli'\n+        cli_file = '/tmp/pipeline/mov_008/mov_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/mov_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/mov_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_table_001(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/xor_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/table_001/table_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/table_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/table_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_vxlan_001(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 2, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/vxlan_001/vxlan_001.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap_0 = 'pipeline/vxlan_001/pcap_files/in_1.txt'\n+        in_pcap_1 = 'pipeline/vxlan_001/pcap_files/in_2.txt'\n+        in_pcap_2 = 'pipeline/vxlan_001/pcap_files/in_3.txt'\n+        in_pcap_3 = 'pipeline/vxlan_001/pcap_files/in_4.txt'\n+        out_pcap_0 = 'pipeline/vxlan_001/pcap_files/out_1.txt'\n+        out_pcap_1 = 'pipeline/vxlan_001/pcap_files/out_2.txt'\n+        out_pcap_2 = 'pipeline/vxlan_001/pcap_files/out_3.txt'\n+        out_pcap_3 = 'pipeline/vxlan_001/pcap_files/out_4.txt'\n+\n+        in_pcap = [in_pcap_0, in_pcap_1, in_pcap_2, in_pcap_3]\n+        out_pcap = [out_pcap_0, out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"udp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_dma_001(self):\n \n-    def test_xor_002(self):\n+        cli_file = '/tmp/pipeline/dma_001/dma_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cli_file = '/tmp/pipeline/xor_002/xor_002.cli'\n+        in_pcap = ['pipeline/dma_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_dma_002(self):\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        cli_file = '/tmp/pipeline/dma_002/dma_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/xor_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/dma_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+    def test_dma_003(self):\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/dma_003/dma_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/dma_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_dma_004(self):\n \n-    def test_xor_003(self):\n+        cli_file = '/tmp/pipeline/dma_004/dma_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cli_file = '/tmp/pipeline/xor_003/xor_003.cli'\n+        in_pcap = ['pipeline/dma_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_dma_005(self):\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        cli_file = '/tmp/pipeline/dma_005/dma_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/xor_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/dma_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"vlan\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+    def test_dma_006(self):\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/dma_006/dma_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/dma_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp port 4532\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_dma_007(self):\n \n-    def test_xor_004(self):\n+        cli_file = '/tmp/pipeline/dma_007/dma_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cli_file = '/tmp/pipeline/xor_004/xor_004.cli'\n+        in_pcap = ['pipeline/dma_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp port 4532\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_dma_008(self):\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        cli_file = '/tmp/pipeline/dma_008/dma_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/xor_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/dma_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/dma_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"udp port 4532\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_001(self):\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_001/jump_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_jump_002(self):\n \n-    def test_xor_005(self):\n+        cli_file = '/tmp/pipeline/jump_002/jump_002.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cli_file = '/tmp/pipeline/xor_005/xor_005.cli'\n+        in_pcap = ['pipeline/jump_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_jump_003(self):\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        cli_file = '/tmp/pipeline/jump_003/jump_003.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/xor_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_004(self):\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_004/jump_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_jump_005(self):\n \n-    def test_xor_006(self):\n-        \"\"\"\n-        find entry in the table based on the des mac address,\n-        then update the src mac address to the mac address in the table.\n-        \"\"\"\n+        cli_file = '/tmp/pipeline/jump_005/jump_005.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cli_file = '/tmp/pipeline/xor_006/xor_006.cli'\n+        in_pcap = ['pipeline/jump_005/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_005/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+    def test_jump_006(self):\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        cli_file = '/tmp/pipeline/jump_006/jump_006.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        in_pcap_file = 'pipeline/xor_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n+        in_pcap = ['pipeline/jump_006/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_006/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        sniff_pkts = self.send_and_sniff_pkts(0, 1, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_007(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_007/jump_007.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 3, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_007/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_007/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_008(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_008/jump_008.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_xor_007(self):\n-        \"\"\"\n-        find entry in the table based on the des mac address,\n-        then update the src mac address to the mac address in the table.\n-        \"\"\"\n+        in_pcap = ['pipeline/jump_008/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_008/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/xor_007/xor_007.cli'\n+    def test_jump_009(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_009/jump_009.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_009/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_009/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        in_pcap_file = 'pipeline/xor_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_007/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n+    def test_jump_010(self):\n \n-        # rule 0 test\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_010/jump_010.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_010/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_010/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_011(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_011/jump_011.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_011/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_011/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_xor_008(self):\n+    def test_jump_012(self):\n \n-        cli_file = '/tmp/pipeline/xor_008/xor_008.cli'\n+        cli_file = '/tmp/pipeline/jump_012/jump_012.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_012/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_012/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_jump_013(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/xor_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/xor_008/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_013/jump_013.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_013/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_013/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_014(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_014/jump_014.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_014/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_014/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_add_001(self):\n+    def test_jump_015(self):\n \n-        cli_file = '/tmp/pipeline/add_001/add_001.cli'\n+        cli_file = '/tmp/pipeline/jump_015/jump_015.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_015/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_015/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_jump_016(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_016/jump_016.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_016/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_016/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_017(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_017/jump_017.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_017/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_017/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_add_002(self):\n+    def test_jump_018(self):\n \n-        cli_file = '/tmp/pipeline/add_002/add_002.cli'\n+        cli_file = '/tmp/pipeline/jump_018/jump_018.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_018/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_018/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_jump_019(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_019/jump_019.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_019/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_019/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_020(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_020/jump_020.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_020/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_020/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-    def test_add_003(self):\n+    def test_jump_021(self):\n \n-        cli_file = '/tmp/pipeline/add_003/add_003.cli'\n+        cli_file = '/tmp/pipeline/jump_021/jump_021.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/jump_021/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_021/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_jump_022(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_022/jump_022.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_022/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_022/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_023(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_023/jump_023.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_add_004(self):\n+        in_pcap = ['pipeline/jump_023/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_023/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/add_004/add_004.cli'\n+    def test_jump_024(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_024/jump_024.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_024/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_024/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_025(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_025/jump_025.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_025/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_025/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_026(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_026/jump_026.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_add_005(self):\n+        in_pcap = ['pipeline/jump_026/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_026/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/add_005/add_005.cli'\n+    def test_jump_027(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_027/jump_027.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_027/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_027/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_028(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_028/jump_028.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_028/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_028/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_029(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_029/jump_029.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_add_006(self):\n+        in_pcap = ['pipeline/jump_029/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_029/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/add_006/add_006.cli'\n+    def test_jump_030(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_030/jump_030.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_030/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_030/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_031(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_031/jump_031.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_031/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_031/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_032(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_032/jump_032.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_add_007(self):\n+        in_pcap = ['pipeline/jump_032/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_032/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/add_007/add_007.cli'\n+    def test_jump_033(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_033/jump_033.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_033/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_033/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_007/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_034(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_034/jump_034.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_034/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_034/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_035(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_035/jump_035.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_add_008(self):\n+        in_pcap = ['pipeline/jump_035/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_035/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/add_008/add_008.cli'\n+    def test_jump_036(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_036/jump_036.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_036/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_036/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/add_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/add_008/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_037(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_037/jump_037.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_037/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_037/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_038(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_038/jump_038.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_001(self):\n+        in_pcap = ['pipeline/jump_038/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_038/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_001/shl_001.cli'\n+    def test_jump_039(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_039/jump_039.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_039/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_039/pcap_files/out_1.txt'] * 4\n+        filters = [\"\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_040(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_040/jump_040.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_040/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_040/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_041(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_041/jump_041.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_002(self):\n+        in_pcap = ['pipeline/jump_041/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_041/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_002/shl_002.cli'\n+    def test_jump_042(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_042/jump_042.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_042/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_042/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_043(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_043/jump_043.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_043/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_043/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_044(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_044/jump_044.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_003(self):\n+        in_pcap = ['pipeline/jump_044/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_044/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_003/shl_003.cli'\n+    def test_jump_045(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_045/jump_045.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_045/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_045/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_046(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_046/jump_046.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_046/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_046/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_047(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_047/jump_047.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_004(self):\n+        in_pcap = ['pipeline/jump_047/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_047/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_004/shl_004.cli'\n+    def test_jump_048(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_048/jump_048.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_048/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_048/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_049(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_049/jump_049.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_049/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_049/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_050(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_050/jump_050.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_005(self):\n+        in_pcap = ['pipeline/jump_050/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_050/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_005/shl_005.cli'\n+    def test_jump_051(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_051/jump_051.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_051/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_051/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_052(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_052/jump_052.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_052/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_052/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_053(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_053/jump_053.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_006(self):\n+        in_pcap = ['pipeline/jump_053/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_053/pcap_files/out_1.txt'] * 4\n+        filters = [\"\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_006/shl_006.cli'\n+    def test_jump_054(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/jump_054/jump_054.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/jump_054/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_054/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_jump_055(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/jump_055/jump_055.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/jump_055/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/jump_055/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_ckadd_001(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/ckadd_001/ckadd_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_007(self):\n+        in_pcap = ['pipeline/ckadd_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/ckadd_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_007/shl_007.cli'\n+    def test_ckadd_009(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/ckadd_009/ckadd_009.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/ckadd_009/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/ckadd_009/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_007/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_ckadd_010(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/ckadd_010/ckadd_010.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/ckadd_010/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/ckadd_010/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_cksub_001(self):\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/cksub_001/cksub_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-    def test_shl_008(self):\n+        in_pcap = ['pipeline/cksub_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/cksub_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cli_file = '/tmp/pipeline/shl_008/shl_008.cli'\n+    def test_invalidate_001(self):\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        cli_file = '/tmp/pipeline/invalidate_001/invalidate_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/invalidate_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/invalidate_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shl_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shl_008/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+    def test_validate_001(self):\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/validate_001/validate_001.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/validate_001/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/validate_001/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_table_002(self):\n \n+        cli_file = '/tmp/pipeline/table_002/table_002.cli'\n+        self.run_dpdk_app(cli_file)\n         sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s = self.connect_cli_server()\n \n-    def test_shr_001(self):\n+        # empty table scenario\n+        in_pcap = ['pipeline/table_002/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        cli_file = '/tmp/pipeline/shr_001/shr_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        # single rule scenario\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_2.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-    def test_shr_002(self):\n+        in_pcap = ['pipeline/table_002/pcap_files/in_2.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_2.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        cli_file = '/tmp/pipeline/shr_002/shr_002.cli'\n+        # two rules scenario\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_3.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/table_002/pcap_files/in_3.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_3.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        # delete one rule scenario\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_4_1.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update none {} none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/table_002/pcap_files/in_4_1.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_4_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        # delete all rules scenario\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_4_2.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update none {} none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/table_002/pcap_files/in_4_2.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_4_2.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        # action update scenario (restore one of the previously deleted rules and check the update)\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_5_1.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = 'pipeline/table_002/pcap_files/in_5_1.txt'\n+        out_pcap = 'pipeline/table_002/pcap_files/out_5_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap, out_pcap, \"tcp\")\n \n-    def test_shr_003(self):\n+        # action update scenario (change the action of restored rule and check the update)\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_5_2.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        cli_file = '/tmp/pipeline/shr_003/shr_003.cli'\n+        in_pcap = ['pipeline/table_002/pcap_files/in_5_1.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_5_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        # deafult action scenario [empty table]\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_6_1.txt'  # delete the previously added rule\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update none {} none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        in_pcap = ['pipeline/table_002/pcap_files/in_6_1.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_6_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        # deafult action scenario [table with one rule]\n+        '''\n+        Add key A => Lookup HIT for the right packet with the specific key associated action executed\n+                     Lookup MISS for any other packets with default action executed\n+        '''\n+        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_6_2.txt'  # add a new rule\n+        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/table_002/pcap_files/in_6_2.txt'] * 4\n+        out_pcap = ['pipeline/table_002/pcap_files/out_6_2.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+    def test_table_003(self):\n \n+        cli_file = '/tmp/pipeline/table_003/table_003.cli'\n+        self.run_dpdk_app(cli_file)\n         sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_shr_004(self):\n-\n-        cli_file = '/tmp/pipeline/shr_004/shr_004.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        s = self.connect_cli_server()\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        # Empty table scenario\n+        in_pcap = ['pipeline/table_003/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        # Single rule scenario\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_2.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-    def test_shr_005(self):\n+        in_pcap = ['pipeline/table_003/pcap_files/in_2.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_2.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        cli_file = '/tmp/pipeline/shr_005/shr_005.cli'\n+        # test two rules scenario\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_3.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = ['pipeline/table_003/pcap_files/in_3.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_3.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        # delete one rule scenario\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_4_1.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update none {} none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/table_003/pcap_files/in_4_1.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_4_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        # delete all rules scenario\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_4_2.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update none {} none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/table_003/pcap_files/in_4_2.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_4_2.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        # action update scenario (restore one of the previously deleted rules and check the update)\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_5_1.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        in_pcap = 'pipeline/table_003/pcap_files/in_5_1.txt'\n+        out_pcap = 'pipeline/table_003/pcap_files/out_5_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap, out_pcap, \"tcp\")\n \n-    def test_shr_006(self):\n+        # action update scenario (change the action of restored rule and check the update)\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_5_2.txt'\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        in_pcap = ['pipeline/table_003/pcap_files/in_5_1.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_5_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+\n+        # Default action scenario [Empty table]\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_6_1_1.txt'  # delete the previously added rule\n+        CMD_FILE_2 = '/tmp/pipeline/table_003/cmd_files/cmd_6_1_2.txt'  # change the default action of table\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update none {} {} \\n'.format(CMD_FILE, CMD_FILE_2)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        in_pcap = ['pipeline/table_003/pcap_files/in_6_1.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_6_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+\n+        # Default action scenario [Table with one rule]\n+        '''\n+        Add key A => Lookup HIT for the right packet with the specific key associated action executed\n+                     Lookup MISS for any other packets with default action executed\n+        '''\n+        CMD_FILE = '/tmp/pipeline/table_003/cmd_files/cmd_6_2.txt'  # add a new rule\n+        CLI_CMD = 'pipeline PIPELINE0 table table_003_table update {} none none\\n'.format(CMD_FILE)\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        cli_file = '/tmp/pipeline/shr_006/shr_006.cli'\n+        in_pcap = ['pipeline/table_003/pcap_files/in_6_2.txt'] * 4\n+        out_pcap = ['pipeline/table_003/pcap_files/out_6_2.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+    def test_table_004(self):\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/table_004/table_004.cli'\n+        self.run_dpdk_app(cli_file)\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        in_pcap = ['pipeline/table_004/pcap_files/in_1.txt'] * 4\n+        out_pcap = ['pipeline/table_004/pcap_files/out_1.txt'] * 4\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0, 1, 2, 3]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+    def test_reg_001(self):\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        cli_file = '/tmp/pipeline/reg_001/reg_001.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        # Read default initial value\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x0\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-    def test_shr_007(self):\n+        # Update the register array location\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x0 0xab\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n \n-        cli_file = '/tmp/pipeline/shr_007/shr_007.cli'\n+        # Verify updated value\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x0\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xab\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_002(self):\n+\n+        cli_file = '/tmp/pipeline/reg_002/reg_002.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        s.close()\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        # Read updated values through packet\n+        in_pcap_file = 'pipeline/reg_002/pcap_files/in_1.txt'\n+        out_pcap_file = 'pipeline/reg_002/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, \"tcp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_003(self):\n+\n+        cli_file = '/tmp/pipeline/reg_003/reg_003.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        s.close()\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_007/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        # Read updated values through packet\n+        in_pcap_file = 'pipeline/reg_003/pcap_files/in_1.txt'\n+        out_pcap_file = 'pipeline/reg_003/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, \"tcp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_004(self):\n+\n+        cli_file = '/tmp/pipeline/reg_004/reg_004.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        s.close()\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        # Read updated values through packet\n+        in_pcap_file = 'pipeline/reg_004/pcap_files/in_1.txt'\n+        out_pcap_file = 'pipeline/reg_004/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, \"tcp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_005(self):\n+\n+        cli_file = '/tmp/pipeline/reg_005/reg_005.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        s.close()\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        # Read updated values through packet\n+        in_pcap_file = 'pipeline/reg_005/pcap_files/in_1.txt'\n+        out_pcap_file = 'pipeline/reg_005/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, \"tcp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_006(self):\n+\n+        cli_file = '/tmp/pipeline/reg_006/reg_006.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send a packet to trigger the execution of apply block\n+        in_pcap_file = 'pipeline/reg_006/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify written vs read values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa3a4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb3b4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_007(self):\n+\n+        cli_file = '/tmp/pipeline/reg_007/reg_007.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send a packet to trigger the execution of apply block\n+        in_pcap_file = 'pipeline/reg_007/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify written vs read values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa3a4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb3b4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_008(self):\n+\n+        cli_file = '/tmp/pipeline/reg_008/reg_008.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send a packet to trigger the execution of apply block\n+        in_pcap_file = 'pipeline/reg_008/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify written vs read values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa3a4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb3b4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-    def test_shr_008(self):\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_009(self):\n+\n+        cli_file = '/tmp/pipeline/reg_009/reg_009.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0x123456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0x12345678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0x1234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0x12\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send a packet to trigger the execution of apply block\n+        in_pcap_file = 'pipeline/reg_009/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify written vs read values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa3a4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb3b4\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        cli_file = '/tmp/pipeline/shr_008/shr_008.cli'\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_010(self):\n+\n+        cli_file = '/tmp/pipeline/reg_010/reg_010.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_010/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x6\\npipeline> \")\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_011(self):\n+\n+        cli_file = '/tmp/pipeline/reg_011/reg_011.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_011/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x6\\npipeline> \")\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_012(self):\n+\n+        cli_file = '/tmp/pipeline/reg_012/reg_012.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_012/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/shr_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/shr_008/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_013(self):\n+\n+        cli_file = '/tmp/pipeline/reg_013/reg_013.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x06\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_013/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x6\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x06\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x9876543210987654\\npipeline> \")\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_014(self):\n+\n+        cli_file = '/tmp/pipeline/reg_014/reg_014.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_014/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x6\\npipeline> \")\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_015(self):\n+\n+        cli_file = '/tmp/pipeline/reg_015/reg_015.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_015/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x6\\npipeline> \")\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_016(self):\n+\n+        cli_file = '/tmp/pipeline/reg_016/reg_016.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_016/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_017(self):\n+\n+        cli_file = '/tmp/pipeline/reg_017/reg_017.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_017/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-    def test_sub_001(self):\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_018(self):\n+\n+        cli_file = '/tmp/pipeline/reg_018/reg_018.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_018/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        cli_file = '/tmp/pipeline/sub_001/sub_001.cli'\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_019(self):\n+\n+        cli_file = '/tmp/pipeline/reg_019/reg_019.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_019/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_020(self):\n+\n+        cli_file = '/tmp/pipeline/reg_020/reg_020.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_020/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_021(self):\n+\n+        cli_file = '/tmp/pipeline/reg_021/reg_021.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_021/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_022(self):\n+\n+        cli_file = '/tmp/pipeline/reg_022/reg_022.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_022/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x6\\npipeline> \")\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_023(self):\n+\n+        cli_file = '/tmp/pipeline/reg_023/reg_023.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_023/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_024(self):\n+\n+        cli_file = '/tmp/pipeline/reg_024/reg_024.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_024/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12\\npipeline> \")\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_025(self):\n+\n+        cli_file = '/tmp/pipeline/reg_025/reg_025.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Verify the default initial values of zero\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x0\\npipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_025/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234567890123456\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x123456789012\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345678\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1234\\npipeline> \")\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_026(self):\n+\n+        cli_file = '/tmp/pipeline/reg_026/reg_026.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_026/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-    def test_sub_002(self):\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_027(self):\n+\n+        cli_file = '/tmp/pipeline/reg_027/reg_027.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_027/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        cli_file = '/tmp/pipeline/sub_002/sub_002.cli'\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_028(self):\n+\n+        cli_file = '/tmp/pipeline/reg_028/reg_028.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_028/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_029(self):\n+\n+        cli_file = '/tmp/pipeline/reg_029/reg_029.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_029/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_030(self):\n+\n+        cli_file = '/tmp/pipeline/reg_030/reg_030.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_030/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_031(self):\n+\n+        cli_file = '/tmp/pipeline/reg_031/reg_031.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_031/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_032(self):\n+\n+        cli_file = '/tmp/pipeline/reg_032/reg_032.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_032/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_033(self):\n+\n+        cli_file = '/tmp/pipeline/reg_033/reg_033.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_033/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_034(self):\n+\n+        cli_file = '/tmp/pipeline/reg_034/reg_034.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_034/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_035(self):\n+\n+        cli_file = '/tmp/pipeline/reg_035/reg_035.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_035/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-    def test_sub_003(self):\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_036(self):\n+\n+        cli_file = '/tmp/pipeline/reg_036/reg_036.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_036/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        cli_file = '/tmp/pipeline/sub_003/sub_003.cli'\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_037(self):\n+\n+        cli_file = '/tmp/pipeline/reg_037/reg_037.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_037/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_038(self):\n+\n+        cli_file = '/tmp/pipeline/reg_038/reg_038.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_038/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_039(self):\n+\n+        cli_file = '/tmp/pipeline/reg_039/reg_039.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_039/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_040(self):\n+\n+        cli_file = '/tmp/pipeline/reg_040/reg_040.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_040/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_041(self):\n+\n+        cli_file = '/tmp/pipeline/reg_041/reg_041.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xf7 0x1f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_041/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Update the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ace68ac468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x12345777e68a\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x124448ac\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x10f1\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xf7\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x25\\npipeline> \")\n \n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_042(self):\n+\n+        cli_file = '/tmp/pipeline/reg_042/reg_042.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_042/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_043(self):\n+\n+        cli_file = '/tmp/pipeline/reg_043/reg_043.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_043/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_044(self):\n+\n+        cli_file = '/tmp/pipeline/reg_044/reg_044.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x1a1a2a3 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7fc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0x7f 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_044/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x1a1a2a3\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7fc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0x7f\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-    def test_sub_004(self):\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_reg_045(self):\n+\n+        cli_file = '/tmp/pipeline/reg_045/reg_045.cli'\n+        self.run_dpdk_app(cli_file)\n+        sleep(CLI_SERVER_CONNECT_DELAY)\n+        s = self.connect_cli_server()\n+\n+        # Initialize the register array locations with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xa1a2 0xff23456789012\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xb1b2 0xff5678\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xc1 0xff234\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regwr REG_ARR_1 0xd1 0xff2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        # Send packet to DUT to update the register array\n+        in_pcap_file = 'pipeline/reg_045/pcap_files/in_1.txt'\n+        self.send_pkts(0, 0, in_pcap_file)\n+\n+        # Verify whether the register array is updated with required values\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xa1a2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468acf12024\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xb1b2\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x1333acf0\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xc1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0x100468\\npipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 regrd REG_ARR_1 0xd1\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"0xff8\\npipeline> \")\n \n-        cli_file = '/tmp/pipeline/sub_004/sub_004.cli'\n+        s.close()\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_001(self):\n+\n+        cli_file = '/tmp/pipeline/met_001/met_001.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        # Platinum Profile with High Packet Transmission Rate\n+        in_pcap = ['pipeline/met_001/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_001/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_001/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_001/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        # Platinum Profile with Low Packet Transmission Rate\n+        out_pcap_1 = 'pipeline/met_001/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_001/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_001/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+\n+        # Gold Profile with High Packet Transmission Rate\n+        s = self.connect_cli_server()\n+        CLI_CMD = 'pipeline PIPELINE0 meter profile gold add cir 460 pir 1380 cbs 100 pbs 150\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 meter MET_ARRAY_1 from 0 to 0 set profile gold\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        CLI_CMD = 'pipeline PIPELINE0 meter profile platinum delete\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+\n+        out_pcap_1 = 'pipeline/met_001/pcap_files/out_31.txt'\n+        out_pcap_2 = 'pipeline/met_001/pcap_files/out_32.txt'\n+        out_pcap_3 = 'pipeline/met_001/pcap_files/out_33.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        # Default Profile with High Packet Transmission Rate\n+        CLI_CMD = 'pipeline PIPELINE0 meter MET_ARRAY_1 from 0 to 0 reset\\n'\n+        self.socket_send_cmd(s, CLI_CMD, \"pipeline> \")\n+        s.close()\n \n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_sub_005(self):\n-\n-        cli_file = '/tmp/pipeline/sub_005/sub_005.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_sub_006(self):\n-\n-        cli_file = '/tmp/pipeline/sub_006/sub_006.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_sub_007(self):\n-\n-        cli_file = '/tmp/pipeline/sub_007/sub_007.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_007/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_sub_008(self):\n-\n-        cli_file = '/tmp/pipeline/sub_008/sub_008.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/sub_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/sub_008/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_mov_001(self):\n-\n-        cli_file = '/tmp/pipeline/mov_001/mov_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/mov_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/mov_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_mov_002(self):\n-        \"\"\"\n-        mov_002: swap destination and source MAC address of packets received on port\n-        \"\"\"\n-        cli_file = '/tmp/pipeline/mov_002/mov_002.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/mov_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/mov_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_mov_003(self):\n-\n-        cli_file = '/tmp/pipeline/mov_003/mov_003.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/mov_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/mov_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_mov_004(self):\n-        \"\"\"\n-        find entry in the table based on the des mac address,\n-        then update the src mac address to the mac address in the table.\n-        \"\"\"\n-\n-        cli_file = '/tmp/pipeline/mov_004/mov_004.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        in_pcap_file = 'pipeline/mov_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/mov_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-\n-        # rule 0 test\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_mov_005(self):\n-        \"\"\"\n-        find entry in the table based on the des mac address,\n-        then update the src mac address to the mac address in the table.\n-        \"\"\"\n-\n-        cli_file = '/tmp/pipeline/mov_005/mov_005.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        in_pcap_file = 'pipeline/mov_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/mov_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-\n-        # rule 0 test\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_mov_007(self):\n-        \"\"\"\n-        find entry in the table based on the des mac address,\n-        then update the src mac address to the mac address in the table.\n-        \"\"\"\n-\n-        cli_file = '/tmp/pipeline/mov_007/mov_007.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        in_pcap_file = 'pipeline/mov_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/mov_007/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-\n-        # rule 0 test\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_mov_008(self):\n-        \"\"\"\n-        find entry in the table based on the des mac address,\n-        then update the src mac address to the mac address in the table.\n-        \"\"\"\n-\n-        cli_file = '/tmp/pipeline/mov_008/mov_008.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        in_pcap_file = 'pipeline/mov_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/mov_008/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-\n-        # rule 0 test\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_table_001(self):\n-\n-        cli_file = '/tmp/pipeline/table_001/table_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/table_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/table_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_vxlan_001(self):\n-        \"\"\"\n-        example application: vxlan pipeline\n-        \"\"\"\n-        cli_file = '/tmp/pipeline/vxlan_001/vxlan_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/vxlan_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/vxlan_001/pcap_files/out_1.txt'\n-        filters = \"udp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        in_pcap_file = 'pipeline/vxlan_001/pcap_files/in_2.txt'\n-        out_pcap_file = 'pipeline/vxlan_001/pcap_files/out_2.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        in_pcap_file = 'pipeline/vxlan_001/pcap_files/in_3.txt'\n-        out_pcap_file = 'pipeline/vxlan_001/pcap_files/out_3.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        in_pcap_file = 'pipeline/vxlan_001/pcap_files/in_4.txt'\n-        out_pcap_file = 'pipeline/vxlan_001/pcap_files/out_4.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_001(self):\n-        \"\"\"\n-        example application: vxlan pipeline\n-        \"\"\"\n-        cli_file = '/tmp/pipeline/dma_001/dma_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_002(self):\n-\n-        cli_file = '/tmp/pipeline/dma_002/dma_002.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_003(self):\n-\n-        cli_file = '/tmp/pipeline/dma_003/dma_003.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_004(self):\n-\n-        cli_file = '/tmp/pipeline/dma_004/dma_004.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_005(self):\n-\n-        cli_file = '/tmp/pipeline/dma_005/dma_005.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_005/pcap_files/out_1.txt'\n-        filters = \"vlan\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_006(self):\n-\n-        cli_file = '/tmp/pipeline/dma_006/dma_006.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_006/pcap_files/out_1.txt'\n-        filters = \"udp port 4532\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_007(self):\n-\n-        cli_file = '/tmp/pipeline/dma_007/dma_007.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_007/pcap_files/out_1.txt'\n-        filters = \"udp port 4532\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_dma_008(self):\n-\n-        cli_file = '/tmp/pipeline/dma_008/dma_008.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/dma_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/dma_008/pcap_files/out_1.txt'\n-        filters = \"udp port 4532\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_001(self):\n-\n-        cli_file = '/tmp/pipeline/jump_001/jump_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_002(self):\n-\n-        cli_file = '/tmp/pipeline/jump_002/jump_002.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_003(self):\n-\n-        cli_file = '/tmp/pipeline/jump_003/jump_003.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_003/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_003/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_004(self):\n-\n-        cli_file = '/tmp/pipeline/jump_004/jump_004.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_004/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_004/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_005(self):\n-\n-        cli_file = '/tmp/pipeline/jump_005/jump_005.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_005/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_005/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_006(self):\n-\n-        cli_file = '/tmp/pipeline/jump_006/jump_006.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_006/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_006/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_007(self):\n-\n-        cli_file = '/tmp/pipeline/jump_007/jump_007.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_007/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_007/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_008(self):\n-\n-        cli_file = '/tmp/pipeline/jump_008/jump_008.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_008/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_008/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_009(self):\n-\n-        cli_file = '/tmp/pipeline/jump_009/jump_009.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_009/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_009/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_010(self):\n-\n-        cli_file = '/tmp/pipeline/jump_010/jump_010.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_010/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_010/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_011(self):\n-\n-        cli_file = '/tmp/pipeline/jump_011/jump_011.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_011/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_011/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_012(self):\n-\n-        cli_file = '/tmp/pipeline/jump_012/jump_012.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_012/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_012/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_013(self):\n-\n-        cli_file = '/tmp/pipeline/jump_013/jump_013.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_013/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_013/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_014(self):\n-\n-        cli_file = '/tmp/pipeline/jump_014/jump_014.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_014/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_014/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_015(self):\n-\n-        cli_file = '/tmp/pipeline/jump_015/jump_015.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_015/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_015/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_016(self):\n-\n-        cli_file = '/tmp/pipeline/jump_016/jump_016.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_016/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_016/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_017(self):\n-\n-        cli_file = '/tmp/pipeline/jump_017/jump_017.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_017/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_017/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_018(self):\n-\n-        cli_file = '/tmp/pipeline/jump_018/jump_018.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_018/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_018/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_019(self):\n-\n-        cli_file = '/tmp/pipeline/jump_019/jump_019.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_019/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_019/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_020(self):\n-\n-        cli_file = '/tmp/pipeline/jump_020/jump_020.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_020/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_020/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_021(self):\n-\n-        cli_file = '/tmp/pipeline/jump_021/jump_021.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_021/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_021/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_022(self):\n-\n-        cli_file = '/tmp/pipeline/jump_022/jump_022.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_022/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_022/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_023(self):\n-\n-        cli_file = '/tmp/pipeline/jump_023/jump_023.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_023/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_023/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_024(self):\n-\n-        cli_file = '/tmp/pipeline/jump_024/jump_024.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_024/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_024/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_025(self):\n-\n-        cli_file = '/tmp/pipeline/jump_025/jump_025.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_025/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_025/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_026(self):\n-\n-        cli_file = '/tmp/pipeline/jump_026/jump_026.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_026/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_026/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_027(self):\n-\n-        cli_file = '/tmp/pipeline/jump_027/jump_027.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_027/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_027/pcap_files/out_1.txt'\n-        filters = \"\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_028(self):\n-\n-        cli_file = '/tmp/pipeline/jump_028/jump_028.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_028/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_028/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_029(self):\n-\n-        cli_file = '/tmp/pipeline/jump_029/jump_029.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_029/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_029/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_030(self):\n-\n-        cli_file = '/tmp/pipeline/jump_030/jump_030.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_030/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_030/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_031(self):\n-\n-        cli_file = '/tmp/pipeline/jump_031/jump_031.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_031/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_031/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_032(self):\n-\n-        cli_file = '/tmp/pipeline/jump_032/jump_032.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_032/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_032/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_033(self):\n-\n-        cli_file = '/tmp/pipeline/jump_033/jump_033.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_033/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_033/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_034(self):\n-\n-        cli_file = '/tmp/pipeline/jump_034/jump_034.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_034/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_034/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_035(self):\n-\n-        cli_file = '/tmp/pipeline/jump_035/jump_035.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_035/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_035/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_036(self):\n-\n-        cli_file = '/tmp/pipeline/jump_036/jump_036.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_036/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_036/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_037(self):\n-\n-        cli_file = '/tmp/pipeline/jump_037/jump_037.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_037/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_037/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_038(self):\n-\n-        cli_file = '/tmp/pipeline/jump_038/jump_038.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_038/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_038/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_039(self):\n-\n-        cli_file = '/tmp/pipeline/jump_039/jump_039.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_039/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_039/pcap_files/out_1.txt'\n-        filters = \"\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_040(self):\n-\n-        cli_file = '/tmp/pipeline/jump_040/jump_040.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_040/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_040/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_041(self):\n-\n-        cli_file = '/tmp/pipeline/jump_041/jump_041.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_041/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_041/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_042(self):\n-\n-        cli_file = '/tmp/pipeline/jump_042/jump_042.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_042/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_042/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_043(self):\n-\n-        cli_file = '/tmp/pipeline/jump_043/jump_043.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_043/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_043/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_044(self):\n-\n-        cli_file = '/tmp/pipeline/jump_044/jump_044.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_044/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_044/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_045(self):\n-\n-        cli_file = '/tmp/pipeline/jump_045/jump_045.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_045/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_045/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_046(self):\n-\n-        cli_file = '/tmp/pipeline/jump_046/jump_046.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_046/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_046/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_047(self):\n-\n-        cli_file = '/tmp/pipeline/jump_047/jump_047.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_047/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_047/pcap_files/out_1.txt'\n-        filters = \"\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_048(self):\n-\n-        cli_file = '/tmp/pipeline/jump_048/jump_048.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_048/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_048/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_049(self):\n-\n-        cli_file = '/tmp/pipeline/jump_049/jump_049.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_049/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_049/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_050(self):\n-\n-        cli_file = '/tmp/pipeline/jump_050/jump_050.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_050/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_050/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_051(self):\n-\n-        cli_file = '/tmp/pipeline/jump_051/jump_051.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_051/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_051/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_052(self):\n-\n-        cli_file = '/tmp/pipeline/jump_052/jump_052.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_052/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_052/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_053(self):\n-\n-        cli_file = '/tmp/pipeline/jump_053/jump_053.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_053/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_053/pcap_files/out_1.txt'\n-        filters = \"\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_054(self):\n-\n-        cli_file = '/tmp/pipeline/jump_054/jump_054.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_054/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_054/pcap_files/out_1.txt'\n-        filters = \"\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_jump_055(self):\n-\n-        cli_file = '/tmp/pipeline/jump_055/jump_055.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/jump_055/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/jump_055/pcap_files/out_1.txt'\n-        filters = \"\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_ckadd_001(self):\n-\n-        cli_file = '/tmp/pipeline/ckadd_001/ckadd_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/ckadd_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/ckadd_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_ckadd_009(self):\n-\n-        cli_file = '/tmp/pipeline/ckadd_009/ckadd_009.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/ckadd_009/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/ckadd_009/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_ckadd_010(self):\n-\n-        cli_file = '/tmp/pipeline/ckadd_010/ckadd_010.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/ckadd_010/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/ckadd_010/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_cksub_001(self):\n-\n-        cli_file = '/tmp/pipeline/cksub_001/cksub_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/cksub_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/cksub_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_invalidate_001(self):\n-\n-        cli_file = '/tmp/pipeline/invalidate_001/invalidate_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/invalidate_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/invalidate_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_validate_001(self):\n-\n-        cli_file = '/tmp/pipeline/validate_001/validate_001.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        # rule 0 test\n-        in_pcap_file = 'pipeline/validate_001/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/validate_001/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 1 test\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 2 test\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # rule 3 test\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-    def test_table_002(self):\n-\n-        cli_file = '/tmp/pipeline/table_002/table_002.cli'\n-\n-        cmd = \"sed -i -e 's/0000:00:04.0/%s/' {}\".format(cli_file) % self.dut_p0_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:05.0/%s/' {}\".format(cli_file) % self.dut_p1_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:06.0/%s/' {}\".format(cli_file) % self.dut_p2_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-        cmd = \"sed -i -e 's/0000:00:07.0/%s/' {}\".format(cli_file) % self.dut_p3_pci\n-        self.dut.send_expect(cmd, \"# \", 20)\n-\n-        cmd = \"{0} {1} -- -s {2}\".format(self.app_pipeline_path, self.eal_para, cli_file)\n-        self.dut.send_expect(cmd, \"PIPELINE0 enable\", 60)\n-\n-        sleep(2)\n-\n-        # create TCP connection to the server\n-        SERVER_IP = '192.168.122.216'\n-        SERVER_PORT = 8086\n-        BUFFER_SIZE = 1024\n-\n-        try:\n-            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n-        except socket.error as err:\n-            print(\"socket creation failed with error %s\" % (err))\n-\n-        try:\n-            s.connect((SERVER_IP, SERVER_PORT))\n-        except socket.error as err:\n-            print(\"socket connection failed with error %s\" % (err))\n-\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        # print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-\n-        # test empty table scenario\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_1.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_1.txt'\n-        filters = \"tcp\"\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        # test single rule scenario\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_2.txt'\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        # print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_2.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_2.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        # test two rules scenario\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_3.txt'\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        # print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_3.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_3.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        # delete one rule scenario\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_4_1.txt'\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update none {} none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        # print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_4_1.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_4_1.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        # delete all rules scenario\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_4_2.txt'\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update none {} none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        # print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_4_2.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_4_2.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        # action update scenario (restore one of the previously deleted rules and check the update)\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_5_1.txt'\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_5_1.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_5_1.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-\n-        # action update scenario (change the action of restored rule and check the update)\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_5_2.txt'\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_5_1.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_5_1.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 3, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 2, in_pcap_file, out_pcap_file, filters)\n-\n-        # deafult action scenario [empty table]\n-        '''\n-        Empty table => Lookup MISS with default action executed\n-        '''\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_6_1.txt'  # delete the previously added rule\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update none {} none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_6_1.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_6_1.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        # deafult action scenario [table with one rule]\n-        '''\n-        Add key A => Lookup HIT for the right packet with the specific key associated action executed\n-                     Lookup MISS for any other packets with default action executed\n-        '''\n-        CMD_FILE = '/tmp/pipeline/table_002/cmd_files/cmd_6_2.txt'  # add a new rule\n-        CLI_CMD = 'pipeline PIPELINE0 table table_002_table update {} none none\\n'.format(CMD_FILE)\n-        s.send(CLI_CMD.encode('utf-8'))\n-        sleep(0.1)\n-        msg = s.recv(BUFFER_SIZE)\n-        response = msg.decode()\n-        print('Rxd: ' + response)\n-        if \"pipeline>\" not in response:\n-            s.close()\n-            self.verify(0, \"CLI response error\")\n-        filters = \"tcp\"\n-        in_pcap_file = 'pipeline/table_002/pcap_files/in_6_2.txt'\n-        out_pcap_file = 'pipeline/table_002/pcap_files/out_6_2.txt'\n-        sniff_pkts = self.send_and_sniff_pkts(0, 0, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(1, 1, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(2, 2, in_pcap_file, out_pcap_file, filters)\n-        sniff_pkts = self.send_and_sniff_pkts(3, 3, in_pcap_file, out_pcap_file, filters)\n-\n-        s.close()\n-        sleep(1)\n-        cmd = \"^C\"\n-        self.dut.send_expect(cmd, \"# \", 20)\n+        out_pcap_1 = 'pipeline/met_001/pcap_files/out_41.txt'\n+        out_pcap_2 = 'pipeline/met_001/pcap_files/out_42.txt'\n+        out_pcap_3 = 'pipeline/met_001/pcap_files/out_43.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_002(self):\n+\n+        cli_file = '/tmp/pipeline/met_002/met_002.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_002/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_002/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_002/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_002/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_002/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_002/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_002/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_003(self):\n+\n+        cli_file = '/tmp/pipeline/met_003/met_003.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_003/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_003/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_003/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_003/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_003/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_003/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_003/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_004(self):\n+\n+        cli_file = '/tmp/pipeline/met_004/met_004.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_004/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_004/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_004/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_004/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_004/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_004/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_004/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_005(self):\n+\n+        cli_file = '/tmp/pipeline/met_005/met_005.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_005/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_005/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_005/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_005/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_005/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_005/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_005/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_006(self):\n+\n+        cli_file = '/tmp/pipeline/met_006/met_006.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_006/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_006/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_006/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_006/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_006/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_006/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_006/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_007(self):\n+\n+        cli_file = '/tmp/pipeline/met_007/met_007.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_007/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_007/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_007/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_007/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_007/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_007/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_007/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_008(self):\n+\n+        cli_file = '/tmp/pipeline/met_008/met_008.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_008/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_008/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_008/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_008/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_008/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_008/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_008/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_009(self):\n+\n+        cli_file = '/tmp/pipeline/met_009/met_009.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_009/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_009/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_009/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_009/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_009/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_009/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_009/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_010(self):\n+\n+        cli_file = '/tmp/pipeline/met_010/met_010.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_010/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_010/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_010/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_010/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_010/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_010/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_010/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_011(self):\n+\n+        cli_file = '/tmp/pipeline/met_011/met_011.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_011/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_011/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_011/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_011/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_011/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_011/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_011/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_012(self):\n+\n+        cli_file = '/tmp/pipeline/met_012/met_012.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_012/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_012/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_012/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_012/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+\n+        out_pcap_1 = 'pipeline/met_012/pcap_files/out_21.txt'\n+        out_pcap_2 = 'pipeline/met_012/pcap_files/out_22.txt'\n+        out_pcap_3 = 'pipeline/met_012/pcap_files/out_23.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 10)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_013(self):\n+\n+        cli_file = '/tmp/pipeline/met_013/met_013.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_013/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_013/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_013/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_013/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_014(self):\n+\n+        cli_file = '/tmp/pipeline/met_014/met_014.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_014/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_014/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_014/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_014/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_met_015(self):\n+\n+        cli_file = '/tmp/pipeline/met_015/met_015.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = ['pipeline/met_015/pcap_files/in_1.txt']\n+        out_pcap_1 = 'pipeline/met_015/pcap_files/out_11.txt'\n+        out_pcap_2 = 'pipeline/met_015/pcap_files/out_12.txt'\n+        out_pcap_3 = 'pipeline/met_015/pcap_files/out_13.txt'\n+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3]\n+        filters = [\"tcp\"] * 3\n+        tx_port = [0]\n+        rx_port = [0, 1, 2]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters, 1000)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    '''\n+    def test_tap_port_001(self):\n+\n+        cli_file = '/tmp/pipeline/tap_port_001/tap_port_001.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = 'pipeline/tap_port_001/pcap_files/in_1.txt'\n+        out_pcap = 'pipeline/tap_port_001/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 0, in_pcap, out_pcap, \"udp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+    '''\n+\n+    def test_ring_port_001(self):\n+\n+        cli_file = '/tmp/pipeline/ring_port_001/ring_port_001.cli'\n+        self.run_dpdk_app(cli_file)\n+\n+        in_pcap = 'pipeline/ring_port_001/pcap_files/in_1.txt'\n+        out_pcap = 'pipeline/ring_port_001/pcap_files/out_1.txt'\n+        self.send_and_sniff_pkts(0, 1, in_pcap, out_pcap, \"udp\")\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n+\n+    def test_tencent_001(self):\n+\n+        cli_file = '/tmp/pipeline/tencent_001/tencent_001.cli'\n+        self.run_dpdk_app(cli_file)\n+        base_dir = 'pipeline/tencent_001/pcap_files/'\n+\n+        # TCP Packets\n+        in_pcap = ['in_1.txt']\n+        in_pcap = [base_dir + s for s in in_pcap]\n+        out_pcap = ['out_11.txt', 'out_12.txt', 'out_13.txt', 'out_14.txt']\n+        out_pcap = [base_dir + s for s in out_pcap]\n+        filters = [\"tcp\"] * 4\n+        tx_port = [0]\n+        rx_port = [0, 1, 2, 3]\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+\n+        # UDP Packets\n+        in_pcap = ['in_2.txt']\n+        in_pcap = [base_dir + s for s in in_pcap]\n+        out_pcap = ['out_21.txt', 'out_22.txt', 'out_23.txt', 'out_24.txt']\n+        out_pcap = [base_dir + s for s in out_pcap]\n+        filters = [\"udp port 200\"] * 4\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+\n+        # ICMP Packets\n+        in_pcap = ['in_3.txt']\n+        in_pcap = [base_dir + s for s in in_pcap]\n+        out_pcap = ['out_31.txt', 'out_32.txt', 'out_33.txt', 'out_34.txt']\n+        out_pcap = [base_dir + s for s in out_pcap]\n+        filters = [\"icmp\"] * 4\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+\n+        # IGMP Packets\n+        in_pcap = ['in_4.txt']\n+        in_pcap = [base_dir + s for s in in_pcap]\n+        out_pcap = ['out_41.txt', 'out_42.txt', 'out_43.txt', 'out_44.txt']\n+        out_pcap = [base_dir + s for s in out_pcap]\n+        filters = [\"igmp\"] * 4\n+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)\n+        self.dut.send_expect(\"^C\", \"# \", 20)\n \n     def tear_down(self):\n         \"\"\"\n",
    "prefixes": [
        "2/2"
    ]
}