get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 81790,
    "url": "http://patches.dpdk.org/api/patches/81790/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1603375597-430528-2-git-send-email-bingz@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": "<1603375597-430528-2-git-send-email-bingz@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1603375597-430528-2-git-send-email-bingz@nvidia.com",
    "date": "2020-10-22T14:06:32",
    "name": "[v2,1/6] net/mlx5: change hairpin queue peer checking",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "8fe3c17009c557fa610906ebed196d552b234663",
    "submitter": {
        "id": 1976,
        "url": "http://patches.dpdk.org/api/people/1976/?format=api",
        "name": "Bing Zhao",
        "email": "bingz@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/1603375597-430528-2-git-send-email-bingz@nvidia.com/mbox/",
    "series": [
        {
            "id": 13215,
            "url": "http://patches.dpdk.org/api/series/13215/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=13215",
            "date": "2020-10-22T14:06:31",
            "name": "add two ports hairpin mode support in mlx5 PMD",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/13215/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/81790/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/81790/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 8E654A04DD;\n\tThu, 22 Oct 2020 16:07:05 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id F0856A9FF;\n\tThu, 22 Oct 2020 16:06:52 +0200 (CEST)",
            "from git-send-mailer.rdmz.labs.mlnx (unknown [37.142.13.130])\n by dpdk.org (Postfix) with ESMTP id 2BF7DA9F6\n for <dev@dpdk.org>; Thu, 22 Oct 2020 16:06:46 +0200 (CEST)"
        ],
        "From": "Bing Zhao <bingz@nvidia.com>",
        "To": "viacheslavo@mellanox.com,\n\tmatan@mellanox.com",
        "Cc": "dev@dpdk.org,\n\torika@nvidia.com,\n\trasland@nvidia.com",
        "Date": "Thu, 22 Oct 2020 22:06:32 +0800",
        "Message-Id": "<1603375597-430528-2-git-send-email-bingz@nvidia.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1603375597-430528-1-git-send-email-bingz@nvidia.com>",
        "References": "<1602166620-46303-1-git-send-email-bingz@nvidia.com>\n <1603375597-430528-1-git-send-email-bingz@nvidia.com>",
        "Subject": "[dpdk-dev] [PATCH v2 1/6] net/mlx5: change hairpin queue peer\n\tchecking",
        "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 <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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "In the current implementation of single port mode hairpin, the peer\nqueue should belong to the same port of the current queue. When the\ntwo ports hairpin mode is introduced, such checking should be removed\nto make the hairpin queue setup execute successfully since it is not\na valid condition anymore.\n\nIn the meanwhile, different devices could have different queue\nconfigurations. The queues number of peer port is unknown to the\ncurrent device. The checking should be removed also.\n\nIf the Tx and Rx port IDs of a hairpin peer are different, only the\nmanual binding and explicit Tx flows are supported. Or else, the four\ncombinations of modes could be supported. The mode attributes\nconsistency checking will be done when connecting the queue with its\npeer queue.\n\nSigned-off-by: Bing Zhao <bingz@nvidia.com>\n---\n drivers/net/mlx5/mlx5_rxq.c | 23 +++++++++++++++++------\n drivers/net/mlx5/mlx5_txq.c | 23 +++++++++++++++++------\n 2 files changed, 34 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex e1783ba..78e15e7 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -777,15 +777,26 @@\n \tres = mlx5_rx_queue_pre_setup(dev, idx, &desc);\n \tif (res)\n \t\treturn res;\n-\tif (hairpin_conf->peer_count != 1 ||\n-\t    hairpin_conf->peers[0].port != dev->data->port_id ||\n-\t    hairpin_conf->peers[0].queue >= priv->txqs_n) {\n-\t\tDRV_LOG(ERR, \"port %u unable to setup hairpin queue index %u \"\n-\t\t\t\" invalid hairpind configuration\", dev->data->port_id,\n-\t\t\tidx);\n+\tif (hairpin_conf->peer_count != 1) {\n \t\trte_errno = EINVAL;\n+\t\tDRV_LOG(ERR, \"port %u unable to setup Rx hairpin queue index %u\"\n+\t\t\t\" peer count is %u\", dev->data->port_id,\n+\t\t\tidx, hairpin_conf->peer_count);\n \t\treturn -rte_errno;\n \t}\n+\tif (hairpin_conf->peers[0].port != dev->data->port_id) {\n+\t\tif (hairpin_conf->manual_bind == 0 ||\n+\t\t    hairpin_conf->tx_explicit == 0) {\n+\t\t\trte_errno = EINVAL;\n+\t\t\tDRV_LOG(ERR, \"port %u unable to setup Rx hairpin queue\"\n+\t\t\t\t\" index %u peer port %u with attributes %u %u\",\n+\t\t\t\tdev->data->port_id, idx,\n+\t\t\t\thairpin_conf->peers[0].port,\n+\t\t\t\thairpin_conf->manual_bind,\n+\t\t\t\thairpin_conf->tx_explicit);\n+\t\t\treturn -rte_errno;\n+\t\t}\n+\t}\n \trxq_ctrl = mlx5_rxq_hairpin_new(dev, idx, desc, hairpin_conf);\n \tif (!rxq_ctrl) {\n \t\tDRV_LOG(ERR, \"port %u unable to allocate queue index %u\",\ndiff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c\nindex 9c2dd2a..850a85c 100644\n--- a/drivers/net/mlx5/mlx5_txq.c\n+++ b/drivers/net/mlx5/mlx5_txq.c\n@@ -421,15 +421,26 @@\n \tres = mlx5_tx_queue_pre_setup(dev, idx, &desc);\n \tif (res)\n \t\treturn res;\n-\tif (hairpin_conf->peer_count != 1 ||\n-\t    hairpin_conf->peers[0].port != dev->data->port_id ||\n-\t    hairpin_conf->peers[0].queue >= priv->rxqs_n) {\n-\t\tDRV_LOG(ERR, \"port %u unable to setup hairpin queue index %u \"\n-\t\t\t\" invalid hairpind configuration\", dev->data->port_id,\n-\t\t\tidx);\n+\tif (hairpin_conf->peer_count != 1) {\n \t\trte_errno = EINVAL;\n+\t\tDRV_LOG(ERR, \"port %u unable to setup Tx hairpin queue index %u\"\n+\t\t\t\" peer count is %u\", dev->data->port_id,\n+\t\t\tidx, hairpin_conf->peer_count);\n \t\treturn -rte_errno;\n \t}\n+\tif (hairpin_conf->peers[0].port != dev->data->port_id) {\n+\t\tif (hairpin_conf->manual_bind == 0 ||\n+\t\t    hairpin_conf->tx_explicit == 0) {\n+\t\t\trte_errno = EINVAL;\n+\t\t\tDRV_LOG(ERR, \"port %u unable to setup Tx hairpin queue\"\n+\t\t\t\t\" index %u peer port %u with attributes %u %u\",\n+\t\t\t\tdev->data->port_id, idx,\n+\t\t\t\thairpin_conf->peers[0].port,\n+\t\t\t\thairpin_conf->manual_bind,\n+\t\t\t\thairpin_conf->tx_explicit);\n+\t\t\treturn -rte_errno;\n+\t\t}\n+\t}\n \ttxq_ctrl = mlx5_txq_hairpin_new(dev, idx, desc,\thairpin_conf);\n \tif (!txq_ctrl) {\n \t\tDRV_LOG(ERR, \"port %u unable to allocate queue index %u\",\n",
    "prefixes": [
        "v2",
        "1/6"
    ]
}