get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 52931,
    "url": "https://patches.dpdk.org/api/patches/52931/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20190418130419.25675-1-adrien.mazarguil@6wind.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": "<20190418130419.25675-1-adrien.mazarguil@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190418130419.25675-1-adrien.mazarguil@6wind.com",
    "date": "2019-04-18T13:11:26",
    "name": "net/failsafe: fix source port ID in Rx packets",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "79894f5690c1e2b5e73d0c7d3290b2de314881a8",
    "submitter": {
        "id": 165,
        "url": "https://patches.dpdk.org/api/people/165/?format=api",
        "name": "Adrien Mazarguil",
        "email": "adrien.mazarguil@6wind.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20190418130419.25675-1-adrien.mazarguil@6wind.com/mbox/",
    "series": [
        {
            "id": 4379,
            "url": "https://patches.dpdk.org/api/series/4379/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=4379",
            "date": "2019-04-18T13:11:26",
            "name": "net/failsafe: fix source port ID in Rx packets",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/4379/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/52931/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/52931/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 759B61B9E7;\n\tThu, 18 Apr 2019 15:11:29 +0200 (CEST)",
            "from mail-wr1-f65.google.com (mail-wr1-f65.google.com\n\t[209.85.221.65]) by dpdk.org (Postfix) with ESMTP id 6393F1B9CC\n\tfor <dev@dpdk.org>; Thu, 18 Apr 2019 15:11:28 +0200 (CEST)",
            "by mail-wr1-f65.google.com with SMTP id j9so2920358wrn.6\n\tfor <dev@dpdk.org>; Thu, 18 Apr 2019 06:11:28 -0700 (PDT)",
            "from 6wind.com (host.78.145.23.62.rev.coltfrance.com.\n\t[62.23.145.78]) by smtp.gmail.com with ESMTPSA id\n\tx5sm1445303wmi.37.2019.04.18.06.11.27\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 18 Apr 2019 06:11:27 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind.com; s=google; \n\th=date:from:to:cc:subject:message-id:mime-version:content-disposition;\n\tbh=hwRfl+u0iCW2lNfmR8L5HxnpFObV3SdBghyoIIaZ4/0=;\n\tb=V8IrMch7xfv4rDp9i6QI1A+s7bjWESGKXuZkOgus+V/wDarByQj7kU2syQA5McaRcX\n\teo6qpbk7a0HGWasIErZXvyjkXp0UTao78+xaosA5P+rf6vx4NjkPucNlABlrPJGTGZLn\n\tC7bTowiKFWal3rzDDv2MhZUD0b4FSdmBzNJKH9YPbcnzIIr0753vqpXBAPLHdVlE2YmI\n\tbZvwHpkzUDoYjWC6cn4KtTntbCLIvQ9N2O/KwOaQvgAQDmLvFlU7wTui2HVvR2iOA53W\n\tUwiUMxa/3MY16EeUea1OdhUiYxf94dlrbuO//BSPmEVJpIzuI9mTvvy7ByU7tEMZ+LJf\n\tnd4g==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version\n\t:content-disposition;\n\tbh=hwRfl+u0iCW2lNfmR8L5HxnpFObV3SdBghyoIIaZ4/0=;\n\tb=JKbkWl5nDi4Z4H/XZN30gVik0td6yspRzP0Hq4+5Vs3bqFC4ivXgivgtaSYGC4g08Q\n\tMoJ+DJPHTLt0HQlC3b7pehs1td43N/wjNZZCD9r8liX6QvNg0hScQQoJchKOahGlH7q6\n\tYXNci+SipqBdlebTExKHpa1gXmatG42tWHapAvXZlFE3RVXMI7jv9VbO4gv6QUJ4qYU8\n\tGmQM9UCWEHOJ8S8wjY0/EM4j2gLmKG9Gu8Oi8sfVmm4p2SVygnh/sN8c2lFzrnGvBoH4\n\trCYgQnr+hay8PCFBKqPmt75IMHA08a8t1SEb86vHFJmyzhrEAhoLbTExGQChlGi0F9O4\n\tKSCw==",
        "X-Gm-Message-State": "APjAAAWDiK5lXqQUGA8Mf6SDuP1Pc0mRtOpYSfL3Fucu8KFJeClNX/g6\n\tY//4GL2/7UZaiOqOxeP6Pcjz2A==",
        "X-Google-Smtp-Source": "APXvYqzu3ada448XDNm6HTVbJTkgKKwDzWc8rsNmcyRqsG/M3ynL155taVBcctLMZCzwQHAwAbn2Zg==",
        "X-Received": "by 2002:adf:ee42:: with SMTP id w2mr6663777wro.161.1555593088221;\n\tThu, 18 Apr 2019 06:11:28 -0700 (PDT)",
        "Date": "Thu, 18 Apr 2019 15:11:26 +0200",
        "From": "Adrien Mazarguil <adrien.mazarguil@6wind.com>",
        "To": "Gaetan Rivet <gaetan.rivet@6wind.com>",
        "Cc": "Ferruh Yigit <ferruh.yigit@intel.com>, dev@dpdk.org",
        "Message-ID": "<20190418130419.25675-1-adrien.mazarguil@6wind.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=us-ascii",
        "Content-Disposition": "inline",
        "X-Mailer": "git-send-email 2.11.0",
        "Subject": "[dpdk-dev] [PATCH] net/failsafe: fix source port ID in Rx packets",
        "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": "When passed to the application, Rx packets retain the port ID value\noriginally set by slave devices. Unfortunately these IDs have no meaning to\napplications, which are typically unaware of their existence.\n\nThis confuses those caring about the source port field in mbufs (m->port)\nwhich experience issues ranging from traffic drop to crashes.\n\nFixes: a46f8d584eb8 (\"net/failsafe: add fail-safe PMD\")\nSigned-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>\n---\n drivers/net/failsafe/failsafe_rxtx.c | 21 +++++++++++++++++++++\n 1 file changed, 21 insertions(+)",
    "diff": "diff --git a/drivers/net/failsafe/failsafe_rxtx.c b/drivers/net/failsafe/failsafe_rxtx.c\nindex 231c83291..e78624127 100644\n--- a/drivers/net/failsafe/failsafe_rxtx.c\n+++ b/drivers/net/failsafe/failsafe_rxtx.c\n@@ -61,6 +61,21 @@ failsafe_set_burst_fn(struct rte_eth_dev *dev, int force_safe)\n \trte_wmb();\n }\n \n+/*\n+ * Override source port in Rx packets.\n+ *\n+ * Make Rx packets originate from this PMD instance instead of one of its\n+ * slaves. This is mandatory to avoid breaking applications.\n+ */\n+static void\n+failsafe_rx_set_port(struct rte_mbuf **rx_pkts, uint16_t nb_pkts, uint16_t port)\n+{\n+\tunsigned int i;\n+\n+\tfor (i = 0; i != nb_pkts; ++i)\n+\t\trx_pkts[i]->port = port;\n+}\n+\n uint16_t\n failsafe_rx_burst(void *queue,\n \t\t  struct rte_mbuf **rx_pkts,\n@@ -87,6 +102,9 @@ failsafe_rx_burst(void *queue,\n \t\tsdev = sdev->next;\n \t} while (nb_rx == 0 && sdev != rxq->sdev);\n \trxq->sdev = sdev;\n+\tif (nb_rx)\n+\t\tfailsafe_rx_set_port(rx_pkts, nb_rx,\n+\t\t\t\t     rxq->priv->dev->data->port_id);\n \treturn nb_rx;\n }\n \n@@ -112,6 +130,9 @@ failsafe_rx_burst_fast(void *queue,\n \t\tsdev = sdev->next;\n \t} while (nb_rx == 0 && sdev != rxq->sdev);\n \trxq->sdev = sdev;\n+\tif (nb_rx)\n+\t\tfailsafe_rx_set_port(rx_pkts, nb_rx,\n+\t\t\t\t     rxq->priv->dev->data->port_id);\n \treturn nb_rx;\n }\n \n",
    "prefixes": []
}