get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 118648,
    "url": "http://patches.dpdk.org/api/patches/118648/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20221019184007.1032874-2-michaelsav@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20221019184007.1032874-2-michaelsav@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20221019184007.1032874-2-michaelsav@nvidia.com",
    "date": "2022-10-19T18:40:04",
    "name": "[v2,1/4] common/mlx5: new glue callback for send to kernel action",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "ded7434f43d79b87d6a5d6a42dce92743d213342",
    "submitter": {
        "id": 2805,
        "url": "http://patches.dpdk.org/api/people/2805/?format=api",
        "name": "Michael Savisko",
        "email": "michaelsav@nvidia.com"
    },
    "delegate": {
        "id": 3268,
        "url": "http://patches.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20221019184007.1032874-2-michaelsav@nvidia.com/mbox/",
    "series": [
        {
            "id": 25318,
            "url": "http://patches.dpdk.org/api/series/25318/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=25318",
            "date": "2022-10-19T18:40:03",
            "name": "net/mlx5: implement send to kernel action",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/25318/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/118648/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/118648/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 CFB36A09EC;\n\tWed, 19 Oct 2022 20:41:30 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id EB5AC42C1E;\n\tWed, 19 Oct 2022 20:41:27 +0200 (CEST)",
            "from NAM12-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam12on2048.outbound.protection.outlook.com [40.107.243.48])\n by mails.dpdk.org (Postfix) with ESMTP id ED42E42BF9\n for <dev@dpdk.org>; Wed, 19 Oct 2022 20:41:25 +0200 (CEST)",
            "from MW3PR05CA0003.namprd05.prod.outlook.com (2603:10b6:303:2b::8)\n by DM4PR12MB6011.namprd12.prod.outlook.com (2603:10b6:8:6b::14) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29; Wed, 19 Oct\n 2022 18:41:24 +0000",
            "from CO1NAM11FT088.eop-nam11.prod.protection.outlook.com\n (2603:10b6:303:2b:cafe::be) by MW3PR05CA0003.outlook.office365.com\n (2603:10b6:303:2b::8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.6 via Frontend\n Transport; Wed, 19 Oct 2022 18:41:23 +0000",
            "from mail.nvidia.com (216.228.117.161) by\n CO1NAM11FT088.mail.protection.outlook.com (10.13.175.131) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.5746.16 via Frontend Transport; Wed, 19 Oct 2022 18:41:23 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Wed, 19 Oct\n 2022 11:41:10 -0700",
            "from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Wed, 19 Oct\n 2022 11:41:08 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Qg//YhJEbVHbhbrgjO1lRyX7CkiRmsk4eV3tsXSO6JTPksnnlEuR4YhVbSKvDSXdp9P82xcO52eiG4BvMs0SHp7TkGPK5yS9zdXf08sXsE3jcMSbX/oH4qfbB0qhGeOzpx95WfmaUoAI7YVgjUQt5ymvRcQqtg8cZCBIoisB9n0fbFsQunvTaMB/17qo6VTnOUZPqmH6HJz0cz2rcGT7ts8ffr56vlw2+aR7FaXLLWFe80iDbQFbcptR1Nlmdgvq+kGiA0cKNzYl/HC0KLFpni4eQ63w3QJe+s+XEasYaSZhXPjOi3DuRFaTj6OjsNaPKFshhgLF+kjToTwCUfsfoQ==",
        "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=rWQ2tMb8Y3UVzxUakFrgIQmF0CqHUe/vttSDEis0UDM=;\n b=nLLD2ylMbZFAvvmgdCrH73qWpOBKSrmMiyZGp/zXtD6HaYfNMu9hbNaYdFB+Md4R1eNsIGGIUqUiR9yamWBPqLhYSzCfJFJWyzSwZ3jpc5WPXHx6N80VcPQz+6HuQrXU3egf1tz2Qt8bchARN6DYH3AIVw5I13V4qnj3fAkT8ShZUS5XGdOLt/R/afQOF2ervw3OF1N+HUO6QqSXEdz74qYG5hlc4WSWClS4JE3AT0P0Rq7infv9ouc1RPlxuYAj4QhDflHkba7PVUj7M+sP/8AitW/y6iWktZc91rZ9F39nWrpYCFYWufZ8wQuFdVZJkBNZwaBwopzfD+POsOVwgA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=none (sender ip is\n 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;\n dmarc=fail (p=reject sp=reject pct=100) action=oreject\n header.from=nvidia.com; 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=rWQ2tMb8Y3UVzxUakFrgIQmF0CqHUe/vttSDEis0UDM=;\n b=IzloorFzV2vckq0BzkSu5yjeD6bozsXQzW2GqcpfeoZkWDKYWY+FVEtcCiFvirl4Y/AXzFwQC8BMwEeei2N0OWLXOyBm6BDIUki9D7cxpiGAS1hFd5UQs8iwmuUEJo+la8YgLc37MRTi2OJI/CFuDjcXVdPDZiUy8c99t1RvF3RqvffA5QBtItssL8PEVWGNRc5mLYxmiypfcrKqgu4aFqNIPjT/qEq4LPYSP6H63pQsYKUOqq4W2AT3XALSj7GbDnIIku4hAtdF0IYGsE44Y+25gGJIqUNPGHU4urriH21aTAwtOJQSeeVThbcLwQlJcQJDxBI4spAYtrAnROdmmg==",
        "X-MS-Exchange-Authentication-Results": "spf=none (sender IP is 216.228.117.161)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=fail action=oreject header.from=nvidia.com;",
        "Received-SPF": "None (protection.outlook.com: nvidia.com does not designate\n permitted sender hosts)",
        "From": "Michael Savisko <michaelsav@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<michaelsav@nvidia.com>, <orika@nvidia.com>, <viacheslavo@nvidia.com>,\n <asafp@nvidia.com>, Matan Azrad <matan@nvidia.com>",
        "Subject": "[PATCH v2 1/4] common/mlx5: new glue callback for send to kernel\n action",
        "Date": "Wed, 19 Oct 2022 21:40:04 +0300",
        "Message-ID": "<20221019184007.1032874-2-michaelsav@nvidia.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20221019184007.1032874-1-michaelsav@nvidia.com>",
        "References": "<20221019184007.1032874-1-michaelsav@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.230.35]",
        "X-ClientProxiedBy": "rnnvmail202.nvidia.com (10.129.68.7) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "CO1NAM11FT088:EE_|DM4PR12MB6011:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "a20bec11-2c32-45ad-906f-08dab20185ef",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n RECN+hMkUAbOBjJunNnD28uoX8NAI5jK1fShKglFR/WvH7WvWarf3TImJLWyA90A6xF0iJg51jJPvRs3yoiYoj/EBlWBHJQGZr3FbnWrOoeu82UEDRBMuykIDNaNW4VKdyN0/35yeM4ROYu8nFUloLeXWJeZdYZcV/hLJrti347CIYTUHYCm4NKV3VD/O7C/+CblZ0NXX/nmUaFdMMHxx2l7b2hQWH8nCjN7NBemMX1Khz2C5nIVFA2p1V7BXSyoQ2WpvLjOkRESO9XzWKBlSx199yBNHOfzyOF/0tOqJCu8iDKBgwIrydvXMGzzYU/JLFqlI8J52O2jBxcDXM75BgrSq6Vpn7r9g2VlUIyQ+qbMZILbjMW/tK0OdXGGhYb+54DcXwE9FkgBQSPrqRke9dT05sep2fcvbc6wXKEZJ10z2Zpw7caozQItucGa6X8ir8qZ27VxmYPM5Vm+IZ+dG6SMN0QQ4g2WgZdE8pDnq5pnaF1ZSr4UcP2sPar7+oMQ1SOrvvR99eM3rEyFKbGhMniQV7qzhcXwZKUsdTZGW6G1LGAX8wKifpMNvaeNfQiTs5z4KPpdEWyCCltId/6g2YBLDSn+Ajbej+c2cN9j9ivpZnXkHiewOpawwbFK3eKBdHScD+xLbkoPU3YiF1o4cZgsRDi17JQvKKDjAVdvyylW8UJxLcHwJSneLg56AgmeHo8H0dLNySDjLA0p6Pg6nCPrEQj8gm76TUmBOb+je74Bi5LP+RaQKRBbRzUctnzZoN3+XHQqG0brkc4mrY+xWw==",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE;\n SFS:(13230022)(4636009)(39860400002)(136003)(376002)(346002)(396003)(451199015)(36840700001)(40470700004)(46966006)(2616005)(6286002)(36860700001)(40480700001)(107886003)(26005)(6666004)(7696005)(478600001)(83380400001)(336012)(1076003)(16526019)(186003)(5660300002)(40460700003)(55016003)(82310400005)(6916009)(54906003)(4326008)(316002)(70206006)(41300700001)(8936002)(8676002)(70586007)(47076005)(426003)(86362001)(36756003)(7636003)(356005)(82740400003)(2906002);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Oct 2022 18:41:23.6252 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n a20bec11-2c32-45ad-906f-08dab20185ef",
        "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.161];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT088.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM4PR12MB6011",
        "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": "Add new glue callback dr_create_flow_action_send_to_kernel.\nDefault callback invokes mlx5dv_dr_action_create_dest_root_table().\n\nAdd static inline mlx5_flow_os_create_flow_action_send_to_kernel(),\nwhich calls dr_create_flow_action_send_to_kernel glue callback.\n\nDefine HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE macro if function\nmlx5dv_dr_action_create_dest_root_table exists in infiniband/mlx5dv.h\n\nSigned-off-by: Michael Savisko <michaelsav@nvidia.com>\nAcked-by: Matan Azrad <matan@nvidia.com>\n---\n drivers/common/mlx5/linux/meson.build   |  2 ++\n drivers/common/mlx5/linux/mlx5_glue.c   | 17 +++++++++++++++++\n drivers/common/mlx5/linux/mlx5_glue.h   |  2 ++\n drivers/net/mlx5/linux/mlx5_flow_os.h   | 22 ++++++++++++++++++++++\n drivers/net/mlx5/windows/mlx5_flow_os.h | 24 ++++++++++++++++++++++++\n 5 files changed, 67 insertions(+)",
    "diff": "diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build\nindex e77b46d157..b044f95700 100644\n--- a/drivers/common/mlx5/linux/meson.build\n+++ b/drivers/common/mlx5/linux/meson.build\n@@ -213,6 +213,8 @@ has_sym_args = [\n             'ibv_reg_mr_iova' ],\n         [ 'HAVE_MLX5_IBV_IMPORT_CTX_PD_AND_MR', 'infiniband/verbs.h',\n             'ibv_import_device' ],\n+        [ 'HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE', 'infiniband/mlx5dv.h',\n+            'mlx5dv_dr_action_create_dest_root_table' ],\n ]\n if  libmtcr_ul_found\n     has_sym_args += [\ndiff --git a/drivers/common/mlx5/linux/mlx5_glue.c b/drivers/common/mlx5/linux/mlx5_glue.c\nindex 450dd6a06a..b954df0784 100644\n--- a/drivers/common/mlx5/linux/mlx5_glue.c\n+++ b/drivers/common/mlx5/linux/mlx5_glue.c\n@@ -1434,6 +1434,21 @@ mlx5_glue_dv_free_pp(struct mlx5dv_pp *pp)\n #endif\n }\n \n+static void *\n+mlx5_glue_dr_create_flow_action_send_to_kernel(void *tbl, uint16_t priority)\n+{\n+#ifdef HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE\n+\tstruct mlx5dv_dr_table *table = (struct mlx5dv_dr_table *)tbl;\n+\n+\treturn mlx5dv_dr_action_create_dest_root_table(table, priority);\n+#else\n+\tRTE_SET_USED(tbl);\n+\tRTE_SET_USED(priority);\n+\terrno = ENOTSUP;\n+\treturn NULL;\n+#endif\n+}\n+\n __rte_cache_aligned\n const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue) {\n \t.version = MLX5_GLUE_VERSION,\n@@ -1561,4 +1576,6 @@ const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue) {\n \t.dv_free_var = mlx5_glue_dv_free_var,\n \t.dv_alloc_pp = mlx5_glue_dv_alloc_pp,\n \t.dv_free_pp = mlx5_glue_dv_free_pp,\n+\t.dr_create_flow_action_send_to_kernel =\n+\t\tmlx5_glue_dr_create_flow_action_send_to_kernel,\n };\ndiff --git a/drivers/common/mlx5/linux/mlx5_glue.h b/drivers/common/mlx5/linux/mlx5_glue.h\nindex c4903a6dce..9616dfdd06 100644\n--- a/drivers/common/mlx5/linux/mlx5_glue.h\n+++ b/drivers/common/mlx5/linux/mlx5_glue.h\n@@ -373,6 +373,8 @@ struct mlx5_glue {\n \tvoid *(*dv_create_flow_action_aso)\n \t\t\t(struct mlx5dv_dr_domain *domain, void *aso_obj,\n \t\t\t uint32_t offset, uint32_t flags, uint8_t return_reg_c);\n+\tvoid *(*dr_create_flow_action_send_to_kernel)(void *tbl,\n+\t\t\t\t\t\t      uint16_t priority);\n };\n \n extern const struct mlx5_glue *mlx5_glue;\ndiff --git a/drivers/net/mlx5/linux/mlx5_flow_os.h b/drivers/net/mlx5/linux/mlx5_flow_os.h\nindex bcb48b3e56..ed71289322 100644\n--- a/drivers/net/mlx5/linux/mlx5_flow_os.h\n+++ b/drivers/net/mlx5/linux/mlx5_flow_os.h\n@@ -368,6 +368,28 @@ mlx5_flow_os_create_flow_action_default_miss(void **action)\n \treturn (*action) ? 0 : -1;\n }\n \n+/**\n+ * Create flow action: send_to_kernel.\n+ *\n+ * @param[in] tbl\n+ *   Pointer to destination root table.\n+ * @param[in] priority\n+ *   Priority to which traffic will arrive.\n+ * @param[out] action\n+ *   Pointer to a valid action on success, NULL otherwise.\n+ *\n+ * @return\n+ *   0 on success, or -1 on failure and errno is set.\n+ */\n+static inline int\n+mlx5_flow_os_create_flow_action_send_to_kernel(void *tbl, uint16_t priority,\n+\t\t\t\t\t  void **action)\n+{\n+\t*action = mlx5_glue->dr_create_flow_action_send_to_kernel(tbl,\n+\t\t\t\t\t\t\t\t  priority);\n+\treturn (*action) ? 0 : -1;\n+}\n+\n /**\n  * Create flow action: dest_devx_tir\n  *\ndiff --git a/drivers/net/mlx5/windows/mlx5_flow_os.h b/drivers/net/mlx5/windows/mlx5_flow_os.h\nindex 347ec64580..1c1c17fc41 100644\n--- a/drivers/net/mlx5/windows/mlx5_flow_os.h\n+++ b/drivers/net/mlx5/windows/mlx5_flow_os.h\n@@ -326,6 +326,30 @@ mlx5_flow_os_create_flow_action_default_miss(void **action)\n \treturn 0;\n }\n \n+/**\n+ * Create flow action: send_to_kernel.\n+ *\n+ * @param[in] tbl\n+ *   Pointer to destination root table.\n+ * @param[in] priority\n+ *   Priority to which traffic will arrive.\n+ * @param[out] action\n+ *   Pointer to a valid action on success, NULL otherwise.\n+ *\n+ * @return\n+ *   0 on success, or -1 on failure and errno is set.\n+ */\n+static inline int\n+mlx5_flow_os_create_flow_action_send_to_kernel(void *tbl, uint16_t priority,\n+\t\t\t\t\t  void **action)\n+{\n+\tRTE_SET_USED(tbl);\n+\tRTE_SET_USED(priority);\n+\t*action = NULL;\n+\trte_errno = ENOTSUP;\n+\treturn -rte_errno;\n+}\n+\n /**\n  * Create flow action: sampler\n  *\n",
    "prefixes": [
        "v2",
        "1/4"
    ]
}