get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 116572,
    "url": "https://patches.dpdk.org/api/patches/116572/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220921145409.511328-2-michaelba@nvidia.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20220921145409.511328-2-michaelba@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220921145409.511328-2-michaelba@nvidia.com",
    "date": "2022-09-21T14:54:07",
    "name": "[1/3] ethdev: add strict queue to pre-configuration flow hints",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "85a5e22cfb50ad279aeb6de45994b2b3e32e8946",
    "submitter": {
        "id": 1949,
        "url": "https://patches.dpdk.org/api/people/1949/?format=api",
        "name": "Michael Baum",
        "email": "michaelba@nvidia.com"
    },
    "delegate": {
        "id": 3961,
        "url": "https://patches.dpdk.org/api/users/3961/?format=api",
        "username": "arybchenko",
        "first_name": "Andrew",
        "last_name": "Rybchenko",
        "email": "andrew.rybchenko@oktetlabs.ru"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220921145409.511328-2-michaelba@nvidia.com/mbox/",
    "series": [
        {
            "id": 24755,
            "url": "https://patches.dpdk.org/api/series/24755/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=24755",
            "date": "2022-09-21T14:54:06",
            "name": "ethdev: AGE action preparation",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/24755/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/116572/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/116572/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-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 EE89DA00C3;\n\tWed, 21 Sep 2022 16:54:36 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0847E4281B;\n\tWed, 21 Sep 2022 16:54:33 +0200 (CEST)",
            "from NAM11-CO1-obe.outbound.protection.outlook.com\n (mail-co1nam11on2045.outbound.protection.outlook.com [40.107.220.45])\n by mails.dpdk.org (Postfix) with ESMTP id 813BB40E0F\n for <dev@dpdk.org>; Wed, 21 Sep 2022 16:54:30 +0200 (CEST)",
            "from MW4PR04CA0122.namprd04.prod.outlook.com (2603:10b6:303:84::7)\n by SN7PR12MB7226.namprd12.prod.outlook.com (2603:10b6:806:2a9::18) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.18; Wed, 21 Sep\n 2022 14:54:28 +0000",
            "from CO1NAM11FT054.eop-nam11.prod.protection.outlook.com\n (2603:10b6:303:84:cafe::a8) by MW4PR04CA0122.outlook.office365.com\n (2603:10b6:303:84::7) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.14 via Frontend\n Transport; Wed, 21 Sep 2022 14:54:28 +0000",
            "from mail.nvidia.com (216.228.117.160) by\n CO1NAM11FT054.mail.protection.outlook.com (10.13.174.70) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.5654.14 via Frontend Transport; Wed, 21 Sep 2022 14:54:28 +0000",
            "from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Wed, 21 Sep\n 2022 07:54:17 -0700",
            "from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail204.nvidia.com\n (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Wed, 21 Sep\n 2022 07:54:17 -0700",
            "from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.9) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29 via Frontend\n Transport; Wed, 21 Sep 2022 07:54:15 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=RfX8O2BkJBKh0Lli40kP0qFg83p9xH7n2cCmHsrGjiiDeWtYT2JS0IwVnq7DDGQKPQ/B2Bbqon3DJrgKLvw5Uf/ZSFGtUVRekuDoFnOKbjaJNaONq+bA5RYB5Y49Mc9XDNXFKJ/iDVWv8my5evlm+MVfqUMZVfIX5WB/fe53VLv1cozcj7eKtwxEvlC5L36/hSIoWMVUr4AgRPn1wbguiHW58n4KEHs9m3/7KApaRMeQrsKu6IvKQHuItbTKhM0n4afwf7tVdmbygS8CPKWpwkd7eWHRU+EIRvSObnOZIq5WMCUZu6o7v4H+JU2Aa6VuGYBi72bH0Q6ZNam6ShPHVA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=jySY3qp+QiV+eHnaqeGHCCNRrU8PI5G769GuEDSnsr4=;\n b=Exr56JADR/SdhLKNNTkz6KBkUsV+QVO+9B26NQ2XCitDVMiVry1mcpPDce6pPO0L2E6w9WOn8DaTond0qzEwwp6148pWYfi49UETRCuFnzlT9ZU+OKCg+6sPQZUYLeMpy2qTLddy4zGAD5dQajBrvBFrfh+PJwulPxZNyc1KTDr+juSOgi7VAt0yGeMU1e271d2ii7D0hgY4GWp2vno3hCB71qlhgncxK54ZzFEutCpPcqAeIo50kg9iQhJlURYl6wBJOwAyjKdCAangRYgOEPFoGdxy6T8A8saU+l+lS2RAV0F7Gwl/vWNlm6gk3xWucee2my0JJ44svhP9gIQJFA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=jySY3qp+QiV+eHnaqeGHCCNRrU8PI5G769GuEDSnsr4=;\n b=iyOV7pGYOGZbtfWCq3LPdG4ElMp80wlWkZO/q1UysFp/Z+S2a/qUozApD1+00OId+KxgyMw9D7Svh74E1sbpu9zArcXdHUqRbk3NHgpS4MPrlFQo1N1LvYQ5ZD3wjjqOtckGmTGbUm7wX6SK7co0A5qrKkg5S+Tx8493jZc4G1dre9cS0jFvF3uMBRM/zu3W3zgrpEhyZ2lCdr8G7pAVmjNCXEJApn2U684+D7939bmwXJJEtqKfSm/Vtoe0bjrbpt+CBK0Oar/uHP8wa3rErhST4MXFalv9l4R+YVGxJMVhDmopJdPTT9mBg9nUWa546sFqBqd+B5ybUD4ePbeUGw==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C",
        "From": "Michael Baum <michaelba@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Matan Azrad <matan@nvidia.com>, Raslan Darawsheh <rasland@nvidia.com>,\n \"Ori Kam\" <orika@nvidia.com>",
        "Subject": "[PATCH 1/3] ethdev: add strict queue to pre-configuration flow hints",
        "Date": "Wed, 21 Sep 2022 17:54:07 +0300",
        "Message-ID": "<20220921145409.511328-2-michaelba@nvidia.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220921145409.511328-1-michaelba@nvidia.com>",
        "References": "<20220921145409.511328-1-michaelba@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "CO1NAM11FT054:EE_|SN7PR12MB7226:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "ef893d07-aa99-49e3-f652-08da9be12ee4",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n tebzQiS77XvtX1jX5VC8V0XhrDE/CcIW2TE2+vbZNrEA5BaWCWdrthBbWb6WidBPZ2IjBOGJ2ol77FikFrWaazns2pjCt1/bkJxHZzWCwuxoVFPvzBYt8tc8bCAUGhU0ZiPM2NYgpGcp2cBNJRCUu5Dyq35zBDCC3Myx+1fyktfXq5JaGvRFh4DTaSOyLAWj7VN3ag/9n0op2LDVUIfdKfBW7YHjMmeldyhTjL4uKg2ba0V9bZK+dDOhynPG/NU2HXZ3QKl8MHfRjqkPB45RWwg2+EdPDr8kqAi1WMThPorPyvkM2guu1Bx7Jl6HV+1zqTIFlJOvAvdQclUUIApWVhGxnFhch8UXAslKfEz1e8DJ/EgOzHaMZfs63XVDuhSCwUtZpsbnOxSlG7uVbhJoxBgv+cuTJNZ+bEkI1kUQ10Ektywo0SLnTWM2sby5br8pGsCP7otGygRC91F+wMsxVQRpzmGUekT8tMb7X/mPMKpxxiiiywu69lfMuCpXAPK0DfkGrmVdyqZHPTdjU3MKx3EwyZ8Cq7ea/P5Lp+V1cwzjJzOJKBmxr6yfrSOn2Ig0XTWeey7uxPWlTG463uSzDVZXBaiNMnqePvD8BC/crMlasEUwktwpoDhsJx0TvBKHWOjOtaZUk60wI+VzasFWbnGrrbcPYh2kueiXHznLavHMJndAVziqd3VtWasISHQz7sfuBivd6OhAP0uzY7obpw/nm64td0+hFubcFL/QEPeEbjEwMqgeWV5VHdbjOm7logKIELly83ZIzYfRmVvA6A==",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE;\n SFS:(13230022)(4636009)(346002)(136003)(376002)(39860400002)(396003)(451199015)(36840700001)(46966006)(40470700004)(2616005)(107886003)(86362001)(6666004)(7696005)(82310400005)(8936002)(41300700001)(26005)(356005)(7636003)(36756003)(6916009)(478600001)(55016003)(70206006)(54906003)(70586007)(1076003)(186003)(316002)(336012)(6286002)(2906002)(8676002)(82740400003)(47076005)(426003)(5660300002)(40460700003)(40480700001)(83380400001)(4326008)(36860700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Sep 2022 14:54:28.1956 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ef893d07-aa99-49e3-f652-08da9be12ee4",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT054.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SN7PR12MB7226",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "The data-path focused flow rule management can manage flow rules in more\noptimized way than traditional one by using hints provided by\napplication in initialization phase.\n\nIn addition to the current hints we have in port attr, more hints could\nbe provided by application about its behaviour.\n\nOne example is how the application do with the same flow rule ?\nA. create/destroy flow on same queue but query flow on different queue\n   or queue-less way (i.e, counter query)\nB. All flow operations will be exactly on the same queue, by which PMD\n   could be in more optimized way then A because resource could be\n   isolated and access based on queue, without lock, for example.\n\nThis patch add flag about above situation and could be extended to cover\nmore situations.\n\nSigned-off-by: Michael Baum <michaelba@nvidia.com>\n---\n app/test-pmd/cmdline_flow.c                 | 10 ++++++++++\n doc/guides/testpmd_app_ug/testpmd_funcs.rst |  4 ++--\n lib/ethdev/rte_flow.h                       | 14 ++++++++++++++\n 3 files changed, 26 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c\nindex 7f50028eb7..a982083d27 100644\n--- a/app/test-pmd/cmdline_flow.c\n+++ b/app/test-pmd/cmdline_flow.c\n@@ -219,6 +219,7 @@ enum index {\n \tCONFIG_COUNTERS_NUMBER,\n \tCONFIG_AGING_OBJECTS_NUMBER,\n \tCONFIG_METERS_NUMBER,\n+\tCONFIG_FLAGS,\n \n \t/* Indirect action arguments */\n \tINDIRECT_ACTION_CREATE,\n@@ -1081,6 +1082,7 @@ static const enum index next_config_attr[] = {\n \tCONFIG_COUNTERS_NUMBER,\n \tCONFIG_AGING_OBJECTS_NUMBER,\n \tCONFIG_METERS_NUMBER,\n+\tCONFIG_FLAGS,\n \tEND,\n \tZERO,\n };\n@@ -2667,6 +2669,14 @@ static const struct token token_list[] = {\n \t\t.args = ARGS(ARGS_ENTRY(struct buffer,\n \t\t\t\t\targs.configure.port_attr.nb_meters)),\n \t},\n+\t[CONFIG_FLAGS] = {\n+\t\t.name = \"flags\",\n+\t\t.help = \"configuration flags\",\n+\t\t.next = NEXT(next_config_attr,\n+\t\t\t     NEXT_ENTRY(COMMON_UNSIGNED)),\n+\t\t.args = ARGS(ARGS_ENTRY(struct buffer,\n+\t\t\t\t\targs.configure.port_attr.flags)),\n+\t},\n \t/* Top-level command. */\n \t[PATTERN_TEMPLATE] = {\n \t\t.name = \"pattern_template\",\ndiff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\nindex 330e34427d..6c12e0286c 100644\n--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n@@ -3082,7 +3082,7 @@ following sections.\n        [queues_number {number}] [queues_size {size}]\n        [counters_number {number}]\n        [aging_counters_number {number}]\n-       [meters_number {number}]\n+       [meters_number {number}] [flags {number}]\n \n - Create a pattern template::\n    flow pattern_template {port_id} create [pattern_template_id {id}]\n@@ -3233,7 +3233,7 @@ for asynchronous flow creation/destruction operations. It is bound to\n        [queues_number {number}] [queues_size {size}]\n        [counters_number {number}]\n        [aging_counters_number {number}]\n-       [meters_number {number}]\n+       [meters_number {number}] [flags {number}]\n \n If successful, it will show::\n \ndiff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h\nindex a79f1e7ef0..c552771472 100644\n--- a/lib/ethdev/rte_flow.h\n+++ b/lib/ethdev/rte_flow.h\n@@ -4874,6 +4874,12 @@ rte_flow_flex_item_release(uint16_t port_id,\n \t\t\t   const struct rte_flow_item_flex_handle *handle,\n \t\t\t   struct rte_flow_error *error);\n \n+/**\n+ * Indicate all operations for a given flow rule will _strictly_\n+ * happen on the same queue (create/destroy/query/update).\n+ */\n+#define RTE_FLOW_PORT_FLAG_STRICT_QUEUE RTE_BIT32(0)\n+\n /**\n  * @warning\n  * @b EXPERIMENTAL: this API may change without prior notice.\n@@ -4902,6 +4908,10 @@ struct rte_flow_port_info {\n \t * @see RTE_FLOW_ACTION_TYPE_METER\n \t */\n \tuint32_t max_nb_meters;\n+\t/**\n+\t * Port supported flags (RTE_FLOW_PORT_FLAG_*).\n+\t */\n+\tuint32_t supported_flags;\n };\n \n /**\n@@ -4971,6 +4981,10 @@ struct rte_flow_port_attr {\n \t * @see RTE_FLOW_ACTION_TYPE_METER\n \t */\n \tuint32_t nb_meters;\n+\t/**\n+\t * Port flags (RTE_FLOW_PORT_FLAG_*).\n+\t */\n+\tuint32_t flags;\n };\n \n /**\n",
    "prefixes": [
        "1/3"
    ]
}