get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 126097,
    "url": "http://patchwork.dpdk.org/api/patches/126097/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dts/patch/20230414125255.67812-8-akihiko.odaki@daynix.com/",
    "project": {
        "id": 3,
        "url": "http://patchwork.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": "<20230414125255.67812-8-akihiko.odaki@daynix.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20230414125255.67812-8-akihiko.odaki@daynix.com",
    "date": "2023-04-14T12:52:55",
    "name": "[7/7] tests/ip_pipeline: Use common tcpdump methods",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "341f212f00b423765314c897000c1763b4f50920",
    "submitter": {
        "id": 3042,
        "url": "http://patchwork.dpdk.org/api/people/3042/?format=api",
        "name": "Akihiko Odaki",
        "email": "akihiko.odaki@daynix.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.dpdk.org/project/dts/patch/20230414125255.67812-8-akihiko.odaki@daynix.com/mbox/",
    "series": [
        {
            "id": 27720,
            "url": "http://patchwork.dpdk.org/api/series/27720/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dts/list/?series=27720",
            "date": "2023-04-14T12:52:48",
            "name": "Fix for Fedora 37",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/27720/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/126097/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/126097/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 BB5DD42941;\n\tFri, 14 Apr 2023 14:53:20 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B5FDB42D0D;\n\tFri, 14 Apr 2023 14:53:20 +0200 (CEST)",
            "from mail-pj1-f53.google.com (mail-pj1-f53.google.com\n [209.85.216.53]) by mails.dpdk.org (Postfix) with ESMTP id 0B1FC400D5\n for <dts@dpdk.org>; Fri, 14 Apr 2023 14:53:20 +0200 (CEST)",
            "by mail-pj1-f53.google.com with SMTP id\n 98e67ed59e1d1-2465836870fso1161414a91.2\n for <dts@dpdk.org>; Fri, 14 Apr 2023 05:53:19 -0700 (PDT)",
            "from alarm.flets-east.jp ([2400:4050:a840:1e00:4457:c267:5e09:481b])\n by smtp.gmail.com with ESMTPSA id\n u21-20020a62ed15000000b00627df85cd72sm2961787pfh.199.2023.04.14.05.53.17\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 14 Apr 2023 05:53:18 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=daynix-com.20221208.gappssmtp.com; s=20221208; t=1681476799; x=1684068799;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=lwpY87yLmwKundUPrfY8XU5xxvrpDaLGTe1UFFQfLHs=;\n b=WMwRwhaOv4SO3cUGIEjPU69t4Y8nplSEnuxWdexNPDSTXiIeTUcIk3G6v35VP4yuGO\n xBx5XFqD/bogbYJECi59UGrwubryc7BBoOfveU5yAoJzADRkOEGTkbgEylidS5BBitTq\n vxG5e18h89FEr3W4QQQ07RbJE6zcdQY64kQx2P0aV5AgwGvg8/FZFtoKRnB68G5SqrAm\n 03r3JmdJX7BSdT5cze9+ZvPf5I5Ge58nXA4mcnjGRgduhq5hhWbfE/bQlBcs33sgwK7K\n 6uaGDHfbNVhXorj08XzooeDr9EVgVhARh47syqoE1XZ/peA+gnxCMAw4bSLglHZI3lfK\n CqKQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20221208; t=1681476799; x=1684068799;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=lwpY87yLmwKundUPrfY8XU5xxvrpDaLGTe1UFFQfLHs=;\n b=gsvk79xRmqRjomC3TBa3+JrYgqxq7gsGvwofec1ytUITOG3tPRjZbMsv75IzE0uYqP\n ACiWRzGQdAUngUYwAijnYGITCPFkxKJDM7jjkHIwzeJo/txTVNBK2oorvcPiHzTYiDa1\n tXToMagrz6fQsnKmRrYbR3vi0xitT1/h7q3ZOkhsIJi51pxdovcyP9qdaEd1297Vk2RV\n 6Iskb26NXfKHAtynpgwrXSLVIzAYJc7Q00Q4C8tfAj/J2B+iXWMC8t2w79rRP57ht0TC\n KaukZJUyZP6KNaNLhuVMxZvB+UNmpjszbFq7B4hEx9eQhR08Il82YmLopoAbhXgp64bh\n Eg4A==",
        "X-Gm-Message-State": "AAQBX9fAZsSaeoWTHmoizq40pPgJbOdvinXmP4eTCcsXx2hlv7dvRZMT\n YYgrwzj3bk9s5Syl7O1Y8qoBSnvyQEQI3dR6HiI=",
        "X-Google-Smtp-Source": "\n AKy350b664z0fdGZRKo5HWCCMLcaxxaYBAX3v/+ro99xybpEvQl0CETeY4c7IEA3H8AsukPbMC8rSQ==",
        "X-Received": "by 2002:a05:6a00:1147:b0:635:c8e4:ed0f with SMTP id\n b7-20020a056a00114700b00635c8e4ed0fmr7478137pfm.11.1681476799007;\n Fri, 14 Apr 2023 05:53:19 -0700 (PDT)",
        "From": "Akihiko Odaki <akihiko.odaki@daynix.com>",
        "To": "",
        "Cc": "dts@dpdk.org,\n\tAkihiko Odaki <akihiko.odaki@daynix.com>",
        "Subject": "[PATCH 7/7] tests/ip_pipeline: Use common tcpdump methods",
        "Date": "Fri, 14 Apr 2023 21:52:55 +0900",
        "Message-Id": "<20230414125255.67812-8-akihiko.odaki@daynix.com>",
        "X-Mailer": "git-send-email 2.40.0",
        "In-Reply-To": "<20230414125255.67812-1-akihiko.odaki@daynix.com>",
        "References": "<20230414125255.67812-1-akihiko.odaki@daynix.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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"
    },
    "content": "Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>\n---\n framework/packet.py            |   3 +\n tests/TestSuite_ip_pipeline.py | 106 +++++++++------------------------\n 2 files changed, 32 insertions(+), 77 deletions(-)",
    "diff": "diff --git a/framework/packet.py b/framework/packet.py\nindex 9603ec7b..a53cef34 100644\n--- a/framework/packet.py\n+++ b/framework/packet.py\n@@ -1063,6 +1063,9 @@ def get_filter_cmd(filters=[]):\n             elif list(pktfilter[\"config\"].keys())[0] == \"dstport\":\n                 dport = pktfilter[\"config\"][\"dstport\"]\n                 filter_cmd = \"dst port %s\" % dport\n+            elif list(pktfilter[\"config\"].keys())[0] == \"dsthost\":\n+                dport = pktfilter[\"config\"][\"dsthost\"]\n+                filter_cmd = \"dst host %s\" % dport\n         elif pktfilter[\"layer\"] == \"userdefined\":\n             if list(pktfilter[\"config\"].keys())[0] == \"pcap-filter\":\n                 filter_cmd = pktfilter[\"config\"][\"pcap-filter\"]\ndiff --git a/tests/TestSuite_ip_pipeline.py b/tests/TestSuite_ip_pipeline.py\nindex 043516dd..c28622cd 100644\n--- a/tests/TestSuite_ip_pipeline.py\n+++ b/tests/TestSuite_ip_pipeline.py\n@@ -2,7 +2,6 @@\n # Copyright(c) 2010-2018 Intel Corporation\n #\n \n-import re\n import time\n from time import sleep\n \n@@ -17,48 +16,6 @@ from framework.test_case import TestCase, skip_unsupported_host_driver\n \n \n class TestIPPipeline(TestCase):\n-    def get_flow_direction_param_of_tcpdump(self):\n-        \"\"\"\n-        get flow dirction param depend on tcpdump version\n-        \"\"\"\n-        param = \"\"\n-        direct_param = r\"(\\s+)\\[ (\\S+) in\\|out\\|inout \\]\"\n-        out = self.tester.send_expect(\"tcpdump -h\", \"# \")\n-        for line in out.split(\"\\n\"):\n-            m = re.match(direct_param, line)\n-            if m:\n-                opt = re.search(\"-Q\", m.group(2))\n-                if opt:\n-                    param = \"-Q\" + \" in\"\n-                else:\n-                    opt = re.search(\"-P\", m.group(2))\n-                    if opt:\n-                        param = \"-P\" + \" in\"\n-        if len(param) == 0:\n-            self.logger.info(\"tcpdump not support direction choice!!!\")\n-        return param\n-\n-    def tcpdump_start_sniff(self, interface, filters=\"\"):\n-        \"\"\"\n-        Starts tcpdump in the background to sniff packets that received by interface.\n-        \"\"\"\n-        command = \"rm -f /tmp/tcpdump_{0}.pcap\".format(interface)\n-        self.tester.send_expect(command, \"#\")\n-        command = \"tcpdump -n -e {0} -w /tmp/tcpdump_{1}.pcap -i {1} {2} 2>/tmp/tcpdump_{1}.out &\".format(\n-            self.param_flow_dir, interface, filters\n-        )\n-        self.tester.send_expect(command, \"# \")\n-\n-    def tcpdump_stop_sniff(self):\n-        \"\"\"\n-        Stops the tcpdump process running in the background.\n-        \"\"\"\n-        self.tester.send_expect(\"killall tcpdump\", \"# \")\n-        # For the [pid]+ Done tcpdump... message after killing the process\n-        sleep(1)\n-        self.tester.send_expect('echo \"Cleaning buffer\"', \"# \")\n-        sleep(1)\n-\n     def write_pcap_file(self, pcap_file, pkts):\n         try:\n             wrpcap(pcap_file, pkts)\n@@ -74,7 +31,7 @@ class TestIPPipeline(TestCase):\n \n         return pcap_pkts\n \n-    def send_and_sniff_pkts(self, from_port, to_port, pcap_file, filters=\"\", count=1):\n+    def send_and_sniff_pkts(self, from_port, to_port, pcap_file, filters=[], count=1):\n         \"\"\"\n         Sent pkts that read from the pcap_file.\n         Return the sniff pkts.\n@@ -85,7 +42,7 @@ class TestIPPipeline(TestCase):\n         tx_interface = self.tester.get_interface(tx_port)\n         rx_interface = self.tester.get_interface(rx_port)\n \n-        self.tcpdump_start_sniff(rx_interface, filters)\n+        inst = self.tester.tcpdump_sniff_packets(rx_interface, filters=filters)\n \n         # check that the link status of the port sending the packet is up\n         self.tester.is_interface_up(tx_interface)\n@@ -100,9 +57,7 @@ class TestIPPipeline(TestCase):\n         )\n         self.tester.scapy_execute()\n \n-        self.tcpdump_stop_sniff()\n-\n-        return self.read_pcap_file(\"/tmp/tcpdump_%s.pcap\" % rx_interface)\n+        return self.tester.load_tcpdump_sniff_packets(inst).pktgen.pkts\n \n     def setup_env(self, port_nums, driver):\n         \"\"\"\n@@ -217,7 +172,6 @@ class TestIPPipeline(TestCase):\n         self.verify(\"Error\" not in out, \"Compilation error\")\n         self.app_ip_pipline_path = self.dut.apps_name[\"ip_pipeline\"]\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     def set_up(self):\n         \"\"\"\n@@ -261,7 +215,7 @@ class TestIPPipeline(TestCase):\n         pcap_file = \"/tmp/route_0.pcap\"\n         pkt = [Ether(dst=self.dut_p0_mac) / IP(dst=\"100.0.0.1\") / Raw(load=\"X\" * 26)]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.0.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.0.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 0, pcap_file, filters)\n         dst_mac_list = []\n         for packet in sniff_pkts:\n@@ -272,7 +226,7 @@ class TestIPPipeline(TestCase):\n         pcap_file = \"/tmp/route_1.pcap\"\n         pkt = [Ether(dst=self.dut_p0_mac) / IP(dst=\"100.64.0.1\") / Raw(load=\"X\" * 26)]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.64.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.64.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 1, pcap_file, filters)\n         dst_mac_list = []\n         for packet in sniff_pkts:\n@@ -283,7 +237,7 @@ class TestIPPipeline(TestCase):\n         pcap_file = \"/tmp/route_2.pcap\"\n         pkt = [Ether(dst=self.dut_p0_mac) / IP(dst=\"100.128.0.1\") / Raw(load=\"X\" * 26)]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.128.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.128.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 2, pcap_file, filters)\n         dst_mac_list = []\n         for packet in sniff_pkts:\n@@ -294,7 +248,7 @@ class TestIPPipeline(TestCase):\n         pcap_file = \"/tmp/route_3.pcap\"\n         pkt = [Ether(dst=self.dut_p0_mac) / IP(dst=\"100.192.0.1\") / Raw(load=\"X\" * 26)]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.192.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.192.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 3, pcap_file, filters)\n         dst_mac_list = []\n         for packet in sniff_pkts:\n@@ -346,7 +300,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.0.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.0.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 0, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -362,7 +316,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.64.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.64.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 1, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -378,7 +332,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.128.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.128.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 2, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -394,7 +348,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"dst host 100.192.0.1\"\n+        filters = [{\"layer\": \"network\", \"config\": {\"dsthost\": \"100.192.0.1\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 3, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -446,7 +400,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 0, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -462,7 +416,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 1, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -478,7 +432,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 2, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -494,7 +448,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 3, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -546,7 +500,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 1, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -562,7 +516,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(1, 0, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -578,7 +532,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(2, 3, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -594,7 +548,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(3, 2, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -680,7 +634,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 1, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -696,7 +650,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(1, 0, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -712,7 +666,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(2, 3, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -728,7 +682,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(3, 2, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -792,7 +746,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 1, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -808,7 +762,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(1, 0, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -824,7 +778,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(2, 3, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -840,7 +794,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(3, 2, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -893,7 +847,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(0, 1, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -909,7 +863,7 @@ class TestIPPipeline(TestCase):\n             / Raw(load=\"X\" * 6)\n         ]\n         self.write_pcap_file(pcap_file, pkt)\n-        filters = \"tcp\"\n+        filters = [{\"layer\": \"userdefined\", \"config\": {\"pcap-filter\": \"tcp\"}}]\n         sniff_pkts = self.send_and_sniff_pkts(1, 0, pcap_file, filters)\n         dst_ip_list = []\n         for packet in sniff_pkts:\n@@ -1041,8 +995,6 @@ class TestIPPipeline(TestCase):\n         \"\"\"\n         Run after each test case.\n         \"\"\"\n-        # kill all tcpdump\n-        self.tcpdump_stop_sniff()\n         # close app\n         self.dut.send_expect(\"^C\", \"# \")\n         self.dut.kill_all()\n",
    "prefixes": [
        "7/7"
    ]
}