get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 56843,
    "url": "http://patches.dpdk.org/api/patches/56843/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1563786795-14027-19-git-send-email-matan@mellanox.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": "<1563786795-14027-19-git-send-email-matan@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1563786795-14027-19-git-send-email-matan@mellanox.com",
    "date": "2019-07-22T09:13:05",
    "name": "[18/28] net/mlx5: store protection domain number on create",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "c5ac3b3cd1b9c9528911bce65a38f0171587554f",
    "submitter": {
        "id": 796,
        "url": "http://patches.dpdk.org/api/people/796/?format=api",
        "name": "Matan Azrad",
        "email": "matan@mellanox.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/1563786795-14027-19-git-send-email-matan@mellanox.com/mbox/",
    "series": [
        {
            "id": 5639,
            "url": "http://patches.dpdk.org/api/series/5639/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=5639",
            "date": "2019-07-22T09:12:48",
            "name": "net/mlx5: support LRO",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/5639/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/56843/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/56843/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 09C991BE65;\n\tMon, 22 Jul 2019 11:14:14 +0200 (CEST)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n\tby dpdk.org (Postfix) with ESMTP id 556F61BDF9\n\tfor <dev@dpdk.org>; Mon, 22 Jul 2019 11:13:30 +0200 (CEST)",
            "from Internal Mail-Server by MTLPINE2 (envelope-from\n\tmatan@mellanox.com)\n\twith ESMTPS (AES256-SHA encrypted); 22 Jul 2019 12:13:24 +0300",
            "from pegasus07.mtr.labs.mlnx (pegasus07.mtr.labs.mlnx\n\t[10.210.16.112])\n\tby labmailer.mlnx (8.13.8/8.13.8) with ESMTP id x6M9DMjh010084;\n\tMon, 22 Jul 2019 12:13:24 +0300"
        ],
        "From": "Matan Azrad <matan@mellanox.com>",
        "To": "Shahaf Shuler <shahafs@mellanox.com>, Yongseok Koh <yskoh@mellanox.com>, \n\tViacheslav Ovsiienko <viacheslavo@mellanox.com>",
        "Cc": "dev@dpdk.org, Dekel Peled <dekelp@mellanox.com>",
        "Date": "Mon, 22 Jul 2019 09:13:05 +0000",
        "Message-Id": "<1563786795-14027-19-git-send-email-matan@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1563786795-14027-1-git-send-email-matan@mellanox.com>",
        "References": "<1563786795-14027-1-git-send-email-matan@mellanox.com>",
        "Subject": "[dpdk-dev] [PATCH 18/28] net/mlx5: store protection domain number\n\ton create",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Dekel Peled <dekelp@mellanox.com>\n\nFunction mlx5_alloc_shared_ibctx() allocates Protection Domain using\nverbs API, as part of shared IB device context.\nThis patch adds reading and storing of pdn value from the created PD\nobject, using DV API.\nThe pdn value is required when creating WQ using DevX API.\n\nThis patch also updates function flow_dv_create_counter_stat_mem_mng()\nwhich uses the pdn value as well.\n\nSigned-off-by: Dekel Peled <dekelp@mellanox.com>\nAcked-by: Matan Azrad <matan@mellanox.com>\n---\n drivers/net/mlx5/mlx5.c         | 38 ++++++++++++++++++++++++++++++++++++++\n drivers/net/mlx5/mlx5.h         |  1 +\n drivers/net/mlx5/mlx5_flow_dv.c |  7 +------\n 3 files changed, 40 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c\nindex 776198f..b085176 100644\n--- a/drivers/net/mlx5/mlx5.c\n+++ b/drivers/net/mlx5/mlx5.c\n@@ -270,6 +270,37 @@ struct mlx5_dev_spawn_data {\n }\n \n /**\n+ * Extract pdn of PD object using DV API.\n+ *\n+ * @param[in] pd\n+ *   Pointer to the verbs PD object.\n+ * @param[out] pdn\n+ *   Pointer to the PD object number variable.\n+ *\n+ * @return\n+ *   0 on success, error value otherwise.\n+ */\n+#ifdef HAVE_IBV_FLOW_DV_SUPPORT\n+static int\n+mlx5_get_pdn(struct ibv_pd *pd __rte_unused, uint32_t *pdn __rte_unused)\n+{\n+\tstruct mlx5dv_obj obj;\n+\tstruct mlx5dv_pd pd_info;\n+\tint ret = 0;\n+\n+\tobj.pd.in = pd;\n+\tobj.pd.out = &pd_info;\n+\tret = mlx5_glue->dv_init_obj(&obj, MLX5DV_OBJ_PD);\n+\tif (ret) {\n+\t\tDRV_LOG(DEBUG, \"Fail to get PD object info\");\n+\t\treturn ret;\n+\t}\n+\t*pdn = pd_info.pdn;\n+\treturn 0;\n+}\n+#endif /* HAVE_IBV_FLOW_DV_SUPPORT */\n+\n+/**\n  * Allocate shared IB device context. If there is multiport device the\n  * master and representors will share this context, if there is single\n  * port dedicated IB device, the context will be used by only given\n@@ -357,6 +388,13 @@ struct mlx5_dev_spawn_data {\n \t\terr = ENOMEM;\n \t\tgoto error;\n \t}\n+#ifdef HAVE_IBV_FLOW_DV_SUPPORT\n+\terr = mlx5_get_pdn(sh->pd, &sh->pdn);\n+\tif (err) {\n+\t\tDRV_LOG(ERR, \"Fail to extract pdn from PD\");\n+\t\tgoto error;\n+\t}\n+#endif /* HAVE_IBV_FLOW_DV_SUPPORT */\n \t/*\n \t * Once the device is added to the list of memory event\n \t * callback, its global MR cache table cannot be expanded\ndiff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h\nindex 955e28f..1dc8b7c 100644\n--- a/drivers/net/mlx5/mlx5.h\n+++ b/drivers/net/mlx5/mlx5.h\n@@ -525,6 +525,7 @@ struct mlx5_ibv_shared {\n \tuint32_t max_port; /* Maximal IB device port index. */\n \tstruct ibv_context *ctx; /* Verbs/DV context. */\n \tstruct ibv_pd *pd; /* Protection Domain. */\n+\tuint32_t pdn; /* Protection Domain number. */\n \tuint32_t tdn; /* Transport Domain number. */\n \tchar ibdev_name[IBV_SYSFS_NAME_MAX]; /* IB device name. */\n \tchar ibdev_path[IBV_SYSFS_PATH_MAX]; /* IB device path for secondary */\ndiff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex afaa19c..36696c8 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -2319,8 +2319,6 @@ struct field_modify_info modify_tcp[] = {\n {\n \tstruct mlx5_ibv_shared *sh = ((struct mlx5_priv *)\n \t\t\t\t\t(dev->data->dev_private))->sh;\n-\tstruct mlx5dv_pd dv_pd;\n-\tstruct mlx5dv_obj dv_obj;\n \tstruct mlx5_devx_mkey_attr mkey_attr;\n \tstruct mlx5_counter_stats_mem_mng *mem_mng;\n \tvolatile struct flow_counter_stats *raw_data;\n@@ -2344,13 +2342,10 @@ struct field_modify_info modify_tcp[] = {\n \t\trte_free(mem);\n \t\treturn NULL;\n \t}\n-\tdv_obj.pd.in = sh->pd;\n-\tdv_obj.pd.out = &dv_pd;\n-\tmlx5_glue->dv_init_obj(&dv_obj, MLX5DV_OBJ_PD);\n \tmkey_attr.addr = (uintptr_t)mem;\n \tmkey_attr.size = size;\n \tmkey_attr.umem_id = mem_mng->umem->umem_id;\n-\tmkey_attr.pd = dv_pd.pdn;\n+\tmkey_attr.pd = sh->pdn;\n \tmem_mng->dm = mlx5_devx_cmd_mkey_create(sh->ctx, &mkey_attr);\n \tif (!mem_mng->dm) {\n \t\tmlx5_glue->devx_umem_dereg(mem_mng->umem);\n",
    "prefixes": [
        "18/28"
    ]
}