get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 93462,
    "url": "http://patches.dpdk.org/api/patches/93462/?format=api",
    "web_url": "http://patches.dpdk.org/project/dts/patch/20210527153047.24627-1-zhiminx.huang@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": "<20210527153047.24627-1-zhiminx.huang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20210527153047.24627-1-zhiminx.huang@intel.com",
    "date": "2021-05-27T15:30:47",
    "name": "[V2] tests/generic_filter: use flow api replace legancy",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "c5b766d9971ca45c62ecf96ca1c62dbdd90179cb",
    "submitter": {
        "id": 1685,
        "url": "http://patches.dpdk.org/api/people/1685/?format=api",
        "name": "Huang, ZhiminX",
        "email": "zhiminx.huang@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dts/patch/20210527153047.24627-1-zhiminx.huang@intel.com/mbox/",
    "series": [
        {
            "id": 17133,
            "url": "http://patches.dpdk.org/api/series/17133/?format=api",
            "web_url": "http://patches.dpdk.org/project/dts/list/?series=17133",
            "date": "2021-05-27T15:30:47",
            "name": "[V2] tests/generic_filter: use flow api replace legancy",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/17133/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/93462/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/93462/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 AC490A0546;\n\tThu, 27 May 2021 08:58:42 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 7A88240150;\n\tThu, 27 May 2021 08:58:42 +0200 (CEST)",
            "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by mails.dpdk.org (Postfix) with ESMTP id 7DE2040143\n for <dts@dpdk.org>; Thu, 27 May 2021 08:58:40 +0200 (CEST)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 May 2021 23:58:39 -0700",
            "from unknown (HELO localhost.localdomain) ([10.240.183.103])\n by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 May 2021 23:58:38 -0700"
        ],
        "IronPort-SDR": [
            "\n zs1sAEtVjs85A22bLRvvN1QiVTOTWH0Jc8zGkxxv/JldzSzANLIIMy97fASZ5nPVQ5XvfpkJ11\n AvybHQjXerUw==",
            "\n qaTj26OGndK/UeRtCqWsDVnOkpnqRyH4igcS6a83yu+ZpBksKu+Fj/m0ImahS8QFcWfk3sMYpb\n F6IXAyXIpETg=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,9996\"; a=\"266555615\"",
            "E=Sophos;i=\"5.82,334,1613462400\"; d=\"scan'208\";a=\"266555615\"",
            "E=Sophos;i=\"5.82,334,1613462400\"; d=\"scan'208\";a=\"477356333\""
        ],
        "From": "Zhimin Huang <zhiminx.huang@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Zhimin Huang <zhiminx.huang@intel.com>",
        "Date": "Thu, 27 May 2021 23:30:47 +0800",
        "Message-Id": "<20210527153047.24627-1-zhiminx.huang@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "Subject": "[dts] [PATCH V2] tests/generic_filter: use flow api replace legancy",
        "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": "*.use flow api replace legancy filter command\n\nSigned-off-by: Zhimin Huang <zhiminx.huang@intel.com>\n---\n tests/TestSuite_generic_filter.py | 41 ++++++++++++++++++-------------\n 1 file changed, 24 insertions(+), 17 deletions(-)",
    "diff": "diff --git a/tests/TestSuite_generic_filter.py b/tests/TestSuite_generic_filter.py\nindex d4ea8926..9990b234 100644\n--- a/tests/TestSuite_generic_filter.py\n+++ b/tests/TestSuite_generic_filter.py\n@@ -119,6 +119,12 @@ class TestGeneric_filter(TestCase):\n         \"\"\"\n         Run before each test case.\n         \"\"\"\n+        if self._suite_result.test_case == \"test_128_queues\":\n+            self.logger.info('will rebuild dpdk')\n+            self.dut.send_expect(\n+                \"sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128/' drivers/net/ixgbe/ixgbe_ethdev.h\",\n+                \"# \", 30)\n+            self.dut.build_install_dpdk(self.target)\n         pass\n \n     def filter_send_packet(self, type):\n@@ -711,8 +717,6 @@ class TestGeneric_filter(TestCase):\n         set_filter_flag = 1\n         packet_flag = 1\n         if self.kdriver == \"ixgbe\":\n-            self.dut.send_expect(\"sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128/' drivers/net/ixgbe/ixgbe_ethdev.h\", \"# \",30)\n-            self.dut.build_install_dpdk(self.target)\n             global valports\n             total_mbufs = self.request_mbufs(128) * len(valports)\n             self.pmdout.start_testpmd(\n@@ -729,7 +733,6 @@ class TestGeneric_filter(TestCase):\n                 \"vlan set filter off %s\" % valports[0], \"testpmd> \")\n             self.dut.send_expect(\n                 \"vlan set filter off %s\" % valports[1], \"testpmd> \")\n-            frames_to_send = 1\n             queue = ['64', '127', '128']\n \n             for i in [0, 1, 2]:\n@@ -739,35 +742,34 @@ class TestGeneric_filter(TestCase):\n                     if 'Invalid RX queue %s' % (queue[i]) not in out:\n                         set_filter_flag = 0\n                         break\n-                    out = self.dut.send_expect(\n-                        \"5tuple_filter %s add dst_ip 2.2.2.5 src_ip 2.2.2.4 dst_port %s src_port 1 protocol 0x06 mask 0x1f tcp_flags 0x0 priority 3 queue %s \" % (valports[0], (i + 1), queue[i]), \"testpmd> \")\n-                    if 'error' not in out:\n+                    cmd = \"flow create {} ingress pattern eth / \".format(\n+                        valports[0]) + \"ipv4 dst is 2.2.2.5 src is 2.2.2.4 / tcp dst is {} src is 1 / \".format(\n+                        i + 1) + \"end actions queue index {} / end\".format(queue[i])\n+                    out = self.dut.send_expect(cmd, \"testpmd> \")\n+                    if 'Invalid argument' not in out:\n                         set_filter_flag = 0\n                         break\n                     continue\n                 else:\n                     self.dut.send_expect(\"set stat_qmap rx %s %s %s\" %\n                                          (valports[0], queue[i], (i + 1)), \"testpmd> \")\n-                    out = self.dut.send_expect(\"5tuple_filter %s add dst_ip 2.2.2.5 src_ip 2.2.2.4 dst_port %s src_port 1 protocol 0x06 mask 0x1f tcp_flags 0x0 priority %d queue %s \" % (\n-                        valports[0], (i + 1), (3 - i), queue[i]), \"testpmd> \")\n+                    cmd = \"flow create {} ingress pattern eth / \".format(\n+                        valports[0]) + \"ipv4 dst is 2.2.2.5 src is 2.2.2.4 / tcp dst is {} src is 1 / \".format(\n+                        i + 1) + \"end actions queue index {} / end\".format(queue[i])\n+                    self.dut.send_expect(cmd, \"testpmd> \")\n                     self.dut.send_expect(\"start\", \"testpmd> \", 120)\n                 global filters_index\n                 filters_index = i\n                 self.filter_send_packet(\"packet\")\n                 time.sleep(1)\n                 out = self.dut.send_expect(\"stop\", \"testpmd> \")\n-                cmd = \"Stats reg  %s RX-packets:             ([0-9]+)\" % (\n-                    i + 1)\n-                result_scanner = r\"%s\" % cmd\n-                scanner = re.compile(result_scanner, re.DOTALL)\n-                m = scanner.search(out)\n-                cur_pkt = m.group(1)\n-                if int(cur_pkt) != frames_to_send:\n+                p = re.compile(r\"Forward Stats for RX Port= \\d+/Queue=(\\s?\\d+)\")\n+                res = p.findall(out)\n+                queues = [int(i) for i in res]\n+                if queues[0] != int(queue[i]):\n                     packet_flag = 0\n                     break\n             self.dut.send_expect(\"quit\", \"#\", timeout=30)\n-            self.dut.send_expect(\"sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64/' drivers/net/ixgbe/ixgbe_ethdev.h\", \"# \",30)\n-            self.dut.build_install_dpdk(self.target)\n             self.verify(set_filter_flag == 1, \"set filters error\")\n             self.verify(packet_flag == 1, \"packet pass assert error\")\n         else:\n@@ -853,6 +855,11 @@ class TestGeneric_filter(TestCase):\n         Run after each test case.\n         \"\"\"\n         self.dut.kill_all()\n+        if self._suite_result.test_case == \"test_128_queues\":\n+            self.dut.send_expect(\n+                \"sed -i -e 's/#define IXGBE_NONE_MODE_TX_NB_QUEUES 128$/#define IXGBE_NONE_MODE_TX_NB_QUEUES 64/' drivers/net/ixgbe/ixgbe_ethdev.h\",\n+                \"# \", 30)\n+            self.dut.build_install_dpdk(self.target)\n \n     def tear_down_all(self):\n         pass\n",
    "prefixes": [
        "V2"
    ]
}